- Refactor 6000+ line web_server.py into server/ module - Create separate modules: auth, chat, conversation, files, admin, etc. - Keep web_server.py as backward-compatible entry point - Add container running status field in user_container_manager - Improve admin dashboard API with credentials and debug support 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
21 lines
997 B
Plaintext
21 lines
997 B
Plaintext
DEFAULT_PORT = 8091
|
|
THINKING_FAILURE_KEYWORDS = ["⚠️", "🛑", "失败", "错误", "异常", "终止", "error", "failed", "未完成", "超时", "强制"]
|
|
CSRF_HEADER_NAME = "X-CSRF-Token"
|
|
CSRF_SESSION_KEY = "_csrf_token"
|
|
CSRF_SAFE_METHODS = {"GET", "HEAD", "OPTIONS", "TRACE"}
|
|
CSRF_PROTECTED_PATHS = {"/login", "/register", "/logout"}
|
|
CSRF_PROTECTED_PREFIXES = ("/api/",)
|
|
CSRF_EXEMPT_PATHS = {"/api/csrf-token"}
|
|
FAILED_LOGIN_LIMIT = 5
|
|
FAILED_LOGIN_LOCK_SECONDS = 300
|
|
SOCKET_TOKEN_TTL_SECONDS = 45
|
|
PROJECT_STORAGE_CACHE: Dict[str, Dict[str, Any]] = {}
|
|
PROJECT_STORAGE_CACHE_TTL_SECONDS = float(os.environ.get("PROJECT_STORAGE_CACHE_TTL", "30"))
|
|
USER_IDLE_TIMEOUT_SECONDS = int(os.environ.get("USER_IDLE_TIMEOUT_SECONDS", "900"))
|
|
LAST_ACTIVE_FILE = Path(LOGS_DIR).expanduser().resolve() / "last_active.json"
|
|
_last_active_lock = threading.Lock()
|
|
_last_active_cache: Dict[str, float] = {}
|
|
_idle_reaper_started = False
|
|
TITLE_PROMPT_PATH = PROJECT_ROOT / "prompts" / "title_generation_prompt.txt"
|
|
|