a71085b39e759912b3b0a649f82b926b19c156cb
Hai bản tách song song của cùng một god-file cùng được giữ lại sau một lần merge. Bản chết không ai import, và hai file trong đó còn không import nổi: `graph_render.py` lấy `GraphQaMixin` không tồn tại, `task_actions.py` lấy `ui.calendar_view` đã bị xoá. Kèm theo 5 gói chỉ có `__init__.py` với docstring hứa những module chưa bao giờ được tạo. Hai trong số đó (`adapters/qt/`, `infrastructure/platform/qt/`) là vị trí đã bị bác bỏ có ghi lý do — `QtSchedulerClock` nằm ở `infrastructure/qt/`, và lý do vì sao không đặt ở `platform/` vẫn còn nguyên trong `infrastructure/qt/__init__.py`. Không cổng nào bắt được đám này: file không ai import vẫn đúng chiều phụ thuộc, vẫn sạch credential, vẫn dưới 400 dòng. Cổng O ở commit sau đi tìm đúng khoảng trống đó. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Cowork Local
Cowork Local is the internal AI cowork desktop platform. It provides a local-first desktop runtime, multi-turn conversational agents, workspace isolation, task scheduling, MCP connectors, security guardrails, and model routing.
🏛️ 4-Tier Clean Architecture
The codebase strictly adheres to Clean Architecture with unidirectional inward dependencies:
presentation/ (PySide6 UI, Shell, NavRail, Chat, Scheduling, Settings, Dashboard)
│
▼
application/ (Pure Python Orchestration: Conversations, Scheduling, Workspaces, Monitoring, Routing)
│
▼
domain/ (Pure Python: Entities, Immutable Execution Requests, Agent Events, Descriptors)
▲
│
infrastructure/ (Adapters, LLM Providers, Atomic Persistence, Keyring SecretStore, MCP)
- Domain & Application Layers: 100% Pure Python (zero Qt/UI imports).
- Single Responsibility: Every production module is strictly
<= 400 LOC. - Security & Durability: API keys stored in OS Keyring; atomic JSON disk persistence.
🚀 Quick Start
1. Run the Desktop Application
From the repository root:
python -m cowork_local
2. Run Automated Tests
python -m pip install -r requirements-test.txt
pytest -q
🛡️ CASAN Quality Gate & Verification
Before submitting any Pull Request, run the unified CASAN Quality Gate:
# Run all 4 quality gates (Clean Arch, Secrets, LOC, and Pytest Suite)
python scripts/run_quality_gate.py
# Run static and architectural guards only (fast check)
python scripts/run_quality_gate.py --skip-tests
Individual guard scripts:
- Clean Architecture Import Guard:
python scripts/check_imports.py - Secrets & Plaintext Audit:
python scripts/audit_security.py - Single Responsibility LOC Guard:
python scripts/check_loc.py --max-lines 400 - Release E2E Smoke Test:
pytest tests/e2e/test_smoke.py -v
🤝 Contributing & Recipes
- Quick Start Guide: See START_CONTRIBUTING.md.
- Contributor Recipes: See docs/governance/contributor-recipes.md for step-by-step recipes to:
- Add a new AI Model Provider.
- Add a new Built-in Tool / MCP Server.
- Add a new Screen / Tab / Widget.
- Security Policy: See SECURITY.md.
Description
Cowork Local — internal AI cowork platform and shared foundation for FSG AI capabilities.
34 MiB
Languages
Python
97.8%
HTML
1.7%
Batchfile
0.4%