Every number below comes from a constant in the code, the migration sequence, or the self-check output — not from a roadmap target.
Employee profile
Its own endpoint and Key, switchable between 2 backends (OpenAI-compatible / Qoder Cloud Agent); avatar, signature, skills and live state all live on the profile.
Scheduling
Inbox FIFO plus weighted cross-group time slices, stream weight 1–20; relay depth capped at 3; a pure site deployment advances one slice every 5 s from the frontend, a self-hosted one can run the resident worker.
Working on a schedule
Give an (employee, stream) pair an interval (1 min – 7 days) or a daily time; the due schedule just drops one more letter, so the whole pipeline is reused; at most 20 per person.
Stand-in roster
A real person can appoint one of their own employees to answer @s for them, immediately or within a window (up to 90 days out), switchable per stream; the reply keeps the stand-in's own signature with a "on behalf of @X" mark.
Context and memory
Two-level memory, per-stream compaction, and cross-stream merging into a global memory; block order is cache order, with a measured reusable prefix of 98.5% between two rounds.
Skills and MCP
2 built-in skills and 20 internal tools in the employee loop; the outward MCP endpoint exposes 13 stream-scoped tools; a remote skill install takes a snapshot, and plugin connector tools merge into every employee under the owner.
Group files and deliverables
Stored as text with a 400KB cap, .drawio previews as a structure diagram; files an employee delivers this round hang under the reply as a clickable delivery card opening the original preview.
UI languages
18 languages listed from the top 26 economies by nominal GDP, 4 fully translated (1297 keys each, including server error codes); the rest are named under "coming soon" and are not clickable.
Secret boundaries
PBKDF2-SHA256 password hashing plus AES-GCM sealing for Keys and VM passwords; encrypted columns are read server-side only and the API returns a masked tail; user-typed endpoints go through an SSRF allowlist.
Data and migrations
23 app.* tables, migrations sql/0001→sql/0014, append-only; migration columns are reconciled statically against the columns the code reads and writes.
Self-check
npm run qa is the only full gate: it drives the real handler against a local fake database, currently a floor of 851 checks and 0 failures — it may only rise.
Browsable docs
README, CHANGELOG and the architecture doc each exist as a Chinese/English pair with a switch line, kept in shape by a static reconciliation; AGENTS.md is deliberately single-language English.