Project status
What is built, what is not yet, and where the build departs from the architecture plan. Taken from the platform's README.
Where this differs from the plan
Each was decided against the published sources (Nov 2026):
- No rig. rig 0.46 needs Rust 1.97.1 and its API is still moving.
crates/llmcalls the OpenAI-compatible API directly for completions too, which the plan already did for structured output and embeddings. A rig-backedLlmProvidercan be added beside it. - Template tags. Loco 1.3 renders
<%= get_env(...) %>(YAML-safe) and only warns on{{ }}. Definition files use the same tag, rendered by our own loader, so runtime placeholders such as{{ session_id }}stay untouched — the plan's open question about Tera. Quote the tag (key: '<%= ... %>'): an empty default otherwise parses as YAML null. - Terminal nodes. A graph-flow task with no outgoing edge pauses rather than ends, so every
non-terminal node must have an edge and
invoice_v1endspostwith adonenode. The compiler enforces this, and refuses any path that reaches arequires_approvalconnector action without passing ahuman.approvalnode. - Token forwarding. CopilotKit's runtime accepts an agents factory that receives the request, so
each
HttpAgentis built with the caller'sAuthorizationheader. - Added:
GET /api/runs/{thread}(status, state and open interrupt of a run started by an upload); approval edits restricted to the card'seditablefields; PII hashing ofpii.hash_fieldsat extraction; interrupt ids per approval node ({thread}:{node}).
Not built yet
Phases 4–6 of the plan's roadmap and parts of 2–3: real accounting adapters (QuickBooks, Xero,
Odoo) and the MCP connector; the per-tenant rate-limit layer from policies.yaml; trace redaction;
the eval set (evals/); sign-in through an identity provider; collections_v1; tools wired into the
model; long steps handed to the worker mid-request; the container images have not been built here.
Checks
cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace # no database needed
cargo test -p bo-app --test http -- --ignored --test-threads=1 # needs PostgreSQL + pgvector
LOCO_ENV=development cargo run -p bo-app -- task config_validate
cargo deny check licenses bans advisories sources
cd web && bun run build && bun run type-check
CI runs all of these (.github/workflows/backoffice-agents.yml), license gate first.
.github/workflows/website.yml builds the documentation site.