The scroll body holds [nav, RECENTS header, RECENTS], and RECENTS carries the only stretch factor. Collapsing hides it, which leaves a fixed-height nav tree (app.py sets one per row count) and nothing that can expand — so the box layout centred what was left and the destinations dropped 297px down a 1048px window, with the same gap opening below them. A stretch spacer at the foot of the body takes the slack instead. It takes none of it while RECENTS is visible, because RECENTS carries stretch 1 against its 0, so the open rail is byte-for-byte what it was. This is what "thu gọn menu lại ra giữa" meant, reported three times. I read it as horizontal each time and measured x — which was 4px and correct throughout. The report was about the vertical axis and I never checked it. check_rail_align now measures the gap between the + button and the first destination in both states: 6px/6px now, 6px/223px with the spacer removed. 15/15 checkers pass. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Cowork Local
Cowork Local is the internal AI cowork desktop platform owned by the Cowork Team. It provides the Cowork runtime, workspace and agent experiences, MCP/connectors, security controls, and model routing foundation.
The Cowork Team owns this product and its stable branch. The FSG AI Core Team contributes selected reusable capabilities through branches and Pull Requests; it is not the owner or final merger of this repository.
Quick start
The imported application is a Python/PySide6 package. Run it from the directory that contains cowork_local:
python -m cowork_local
The source snapshot does not include a complete runtime dependency manifest. Use the Cowork Team's supported runtime environment until that packaging contract is documented. The reliable automated test surface currently checked by CI is:
python -m pip install -r cowork_local/requirements-test.txt
python -m pytest cowork_local/tests -q
When already inside this repository, run python -m pytest tests -q.
Configuration and runtime data live under ~/.cowork_local/. Provider keys and local unlock codes must be supplied through environment variables or an approved secret manager; see .env.example.
Contributing
Start with START_CONTRIBUTING.md, then read CONTRIBUTING.md. Core AI task execution remains in fsg-ai-core-assets; source changes are reviewed as Pull Requests in this repository.
Security concerns should follow SECURITY.md. Ownership and completion rules are documented under docs/governance/.