feat: Add GitHub Actions CI for PR protection

- Add CI workflow with Python (ruff lint, security tests) and UI (ESLint, TypeScript, build) jobs
- Add ruff, mypy, pytest to requirements.txt
- Add pyproject.toml with ruff configuration
- Fix import sorting across Python files (ruff --fix)
- Fix test_security.py expectations to match actual security policy
- Remove invalid 'eof' command from ALLOWED_COMMANDS

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Auto
2026-01-07 10:35:19 +02:00
parent 17b7354db8
commit 122f03dc21
28 changed files with 144 additions and 85 deletions

View File

@@ -20,9 +20,8 @@ from typing import AsyncGenerator, Optional
from claude_agent_sdk import ClaudeAgentOptions, ClaudeSDKClient
from .assistant_database import (
create_conversation,
add_message,
get_conversation,
create_conversation,
)
logger = logging.getLogger(__name__)

View File

@@ -11,8 +11,8 @@ from datetime import datetime
from pathlib import Path
from typing import Optional
from sqlalchemy import create_engine, Column, Integer, String, Text, DateTime, ForeignKey
from sqlalchemy.orm import sessionmaker, relationship, declarative_base
from sqlalchemy import Column, DateTime, ForeignKey, Integer, String, Text, create_engine
from sqlalchemy.orm import declarative_base, relationship, sessionmaker
logger = logging.getLogger(__name__)

View File

@@ -14,11 +14,10 @@ import sys
import threading
from datetime import datetime
from pathlib import Path
from typing import Literal, Callable, Awaitable, Set
from typing import Awaitable, Callable, Literal, Set
import psutil
logger = logging.getLogger(__name__)
# Patterns for sensitive data that should be redacted from output

View File

@@ -6,7 +6,6 @@ Manages interactive spec creation conversation with Claude.
Uses the create-spec.md skill to guide users through app spec creation.
"""
import asyncio
import json
import logging
import shutil