- Slice 1 shipped 2026-09-14: collections work over 17 object types, not only records.
- Rule set on 2026-09-14: every field declares where it lives, and every JSON container has a schema.
- Next: field declarations (in spec), then joins and the remaining object types, then the task board.
- Reserved field slugs (QRM-659) — the platform-wide hole the slice-1 review exposed — is tracked here, blocked on its own ruling.
- Placed 2026-09-21: slice A storage declarations (QRM-664) and 2a-ii-B boot reconciliation (QRM-743) are live; 2a-iii pack declarations (QRM-741) and 2a-ii-C ladder reads (QRM-744) are blocked behind the R4 golden-rule rulings split out as QRM-745 (Architecture: CDT unions, DSLs as CDTs, open-container escape).
Qorum · Phase 1 / Hearth
Roadmap
Snapshot ·
What’s built, what’s moving, and what comes next.
Linked issues closed 80%
393 of 490 issues · 68 blocks
Progress through a curated subset of design and implementation issues. Linked issues count once across phases; canceled and duplicate issues are excluded.
The road ahead
Agreed order ↗ · QRM-601, opens in Linear, new tabPriority order, with progress across tracked issues. Select a step to explore.
Priority 1: Build throughput72% closed
48 of 67 tracked issues closed. This excludes work not yet filed.
Priority 2: Flow-related work100% closed
39 of 39 tracked issues closed. This excludes work not yet filed.
Priority 3: Lens search67% closed
18 of 27 tracked issues closed. This excludes work not yet filed.
Priority 4: Logged bugs95% closed
36 of 38 tracked issues closed. This excludes work not yet filed.
Priority 5: Notes & stickies100% closed
6 of 6 tracked issues closed. This excludes work not yet filed.
Priority 6: Oru & Pulse100% closed
8 of 8 tracked issues closed. This excludes work not yet filed.
Priority 7: Icon Studio100% closed
19 of 19 tracked issues closed. This excludes work not yet filed.
Priority 8: UI framework0% closed
0 of 4 tracked issues closed. This excludes work not yet filed.
Priority 9: FramesNot yet tracked
No tracked issues yet. Scope is still to be defined.
Priority 10: Client streams0% closed
0 of 2 tracked issues closed. This excludes work not yet filed.
Priority 11: ProductionNot yet tracked
No tracked issues yet. Scope is still to be defined.
Deeper purple = more tracked issues closed
Recent progress
Newly completed work, with what it means.
Batch 771 · 670 · 685 published 2026-09-22 (4200 ✓ / 1 exempt, 61 min). Gate #23 on the same candidate had gone red on a single load flake (marks cost-ratio bound) — attribution cleared all three tasks, recovery resolved, re-gated. 771 is the first Ring-0 change under the new sign-off flow; kernel-change label re-applied after merge.
QRM-771 · DoneBatch 744 · 775 · 754 · 734 published 2026-09-22 (4177 ✓ / 1 exempt, 55 min). Gate #21 had run green on the same code and was refused only because master moved mid-run (UI commits); #22 re-synced and admitted. The red-tree blocker was golden-template drift — 1,375 unreconciled dev_collection_sample schemas — repaired by running the boot reconcile on the template (class fix QRM-780). QRM-771 (kernel scope refusal) passed review and rides gate #23.
QRM-744 · DoneBatch 727 · 765 · 717 · 757 · 773 published 2026-09-22 (4163 ✓). Gate #19 had gone red on the new census-freshness rule for two pre-rule branches; forward-fixed in 40 min. The T2b-i rewind automation (727) is live for the next red batch.
QRM-727 · DoneA structured saved search becomes an on-demand Collection with the same root and criteria, through the Collections service and its authorization door (gate #5).
QRM-714 · DoneThe deterministic focused-test planner and exception classifier replace prose reasoning about which tests to run; the rehearsal cohort is path-glob gated (gate #4).
QRM-703 · DoneThe ten --color-qorum-* tokens are a governed SYSTEM ref set, offered in the Icon Studio colour picker; the shared purple stays one identity (gate #4).
QRM-713 · DoneBudget-exceeded is no longer retried, forkserver preload recovers most of the per-call cost, and the startup timeout, close() masking and error text are fixed (gate #5).
QRM-711 · DoneThe governed grammar registry is asserted against an explicit list, and a rejected highlighter promise is no longer memoised (gate #5).
QRM-708 · DoneOne search surface over every labelled object with a per-viewer Iris, structured search, Pulse messages, saved Focus searches and the Cmd+K palette; landed as one seven-task batch through the new sprint gate.
QRM-680 · DoneImplementation and review lanes now run the offline tier plus the touched slice's live tests instead of the whole 45-minute suite; the full suite runs once per batch on the sprint branch before master moves.
QRM-710 · DoneReviewed tasks merge to a sprint branch and master only moves after one full test run per batch — the first step of the throughput programme, activated after its own gated bridge.
QRM-701 · DoneCode highlighting loads only the languages Qorum actually renders, through an explicit registry with a plain-text fallback — the largest single chunk in the dev graph is gone.
QRM-677 · DoneA review no longer repeats a 43-minute full suite the implementer already ran on the identical tree — the reuse rule is live in the dispatcher's review prompt.
QRM-695 · DoneBrand marks from Simple Icons render again in browse and search instead of a placeholder, and adding one to a palette stores it in the canonical form.
QRM-672 · DoneThe connector palette now seeds a generic plug as its fallback, and brand logos (JotForm first) are curated on top in colour.
QRM-675 · DoneIcon Studio search and the discovery index now use Qorum's own icon service, so browsing and indexing no longer hit third-party rate limits.
QRM-627 · DoneBeacons and node feeds now show unread counts and can be muted per viewer; your read position stays private to you.
QRM-349 · DoneOpening a thread no longer marks everything read; a message is read when its row is actually in view, and reload shows the server's truth.
QRM-497 · DoneEach pack carries a version lock; two branches bumping the same version now conflict before merge instead of failing in production.
QRM-665 · DoneEach object type now declares its table, lifecycle and reserved columns in one place; start-up refuses to boot if the database disagrees.
QRM-650 · DoneYou can reply to a comment or a note (one level); who can see the reply follows what it is attached to.
QRM-654 · DonePalettes added after go-live now pick up new manifest icons automatically; the form-connector icon appeared on this deploy.
QRM-652 · DoneClients can no longer write the computed section of a record; the platform owns it.
QRM-662 · Done
Explore the roadmap
Showing 14 of 68 blocks · completed history is tucked away
- Live 2026-09-17: search across every labelled object (POST /lens/search), the per-viewer Iris (GET /lens/iris), structured search over Collection criteria with SEQ values, Pulse messages as a second source, saved Focus searches with run telemetry, and the Cmd+K palette wired to real results (QRM-680/681/682/683).
- Live 2026-09-17: schema-by-slug lookups resolve over the unique index's own domain — the structured-search 500 on duplicated slugs (mail/notifications/marks) is closed (QRM-719).
- Next major block after the flow-related priority work.
- Design inputs cover search and linked references; collections over objects landed separately.
- The search palette and Oru's search tool still depend on this work.
- Reconciled 2026-09-17: the Focus → Collection bridge is live (QRM-714, gate #5); the duplicated-slug resolver fix is in review (QRM-719) with the L2 follow-ups (QRM-721) and the shared schema-by-slug resolver (QRM-723) queued behind it.
- Placed 2026-09-21: the Atlas is the Iris — features/lens/iris.py, GET /lens/iris (QRM-732, live gate #11, ruled R6b 2026-09-17).
- Design record: CITE_DESIGN.md. Deliverable 2 (batch resolve, QRM-683) shipped with Lens L4; deliverable 1 (the per-type display registry) is this phase.
- Re-homed out of the Lens phase 2026-09-17 (Rickus) so Lens can close on its own slices.
Linked work · opens in Linear
- A per-pack lock now makes a colliding manifest change impossible to merge unnoticed (QRM-665).
- The notifications seed fault that triggered it was fixed and verified in production the same evening.
- Reopened 2026-09-17: seven logged bugs and small fixes — two flaky live tests (QRM-720, QRM-725), pack schedule / obligation / reminder edge cases (QRM-656/657/658) and two Pulse fixes (QRM-667, QRM-670).
- Placed 2026-09-21 — the schema-by-slug resolution cluster QRM-723 exposed: facet slug resolution made ACTIVE/kind-first (QRM-749), core get_schema_by_ref_or_slug scope filter (QRM-750) and the facet-list tenant fix (QRM-753) are live (gate #16); Qortex (QRM-747), Connectors (QRM-751) and facet aliases (QRM-757) still carry the same scope-blind lookup. Also QRM-685 (seq-eval env hygiene).
- Measured: 19 lines of code cost 8 full suites and 8 hours; the suite grew +62 % in 18 days.
- Ruled 2026-09-16 (QRM-698, nine rulings): a new In Sprint state, batch triggers, cumulative failure attribution with rewind recovery, a docs-only master exception.
- Reviewers may reuse the producer's full run when it matches the exact tree (QRM-695, live).
- Next: T1 sprint routing (QRM-701) → T2 batch gate (QRM-702) → T3 focused lane tests (QRM-703); path-glob gating of migration rehearsals (QRM-699) in parallel; 3-way sharding measured at 2.5× (QRM-693) after the blocked-child fix.
- The blocked-child sandbox bug (QRM-689) now poisons roughly one full run in three on an idle host — promoted ahead of the sprint gate work; sharding waits on it too.
- Live since 16:11 UTC: reviewed work now lands on a sprint branch (T1, QRM-701); master advances only through a full-suite batch gate. Next: the lane prompts stop demanding the full suite (QRM-710, prose) — the moment small fixes stop costing 55 minutes.
- Live 19:13 UTC: lanes run the focused producer gate (QRM-710) — a 28-line fix now reviews in ~10 min instead of ~55; the SEQ sandbox poison is gone from full runs (QRM-689). One 45-min batch gate per batch on the sprint branch, run by the orchestrator until QRM-702 automates it.
- Live 2026-09-17 07:02: the deterministic focused-test planner (run_focused_suite.py --plan) + R8 exception classifier (QRM-703) — lanes now derive their test selection instead of reasoning it out; 714 went implement→review→sprint in 21 minutes.
- Reconciled 2026-09-17: path-glob rehearsal gating (QRM-699) closed by ruling; T2 is re-cut as T2a (QRM-702, in sprint for gate #6) + T2b (QRM-727); the flaky revert-proof (QRM-696) rides the same gate; the Astra gate-cost brief (QRM-690/691), the admission and impact-index specs (QRM-692/694) and the SEQ sandbox follow-ups (QRM-726) are queued.
- Live 2026-09-17 10:11: the daemon-run batch gate (T2a, QRM-702) — lease-based resource allocation, relay-state validation and a pending-batch census; in Monitoring until its first gate agrees with the manual bridge. Six manual gates landed 15 tasks in 15 hours.
- Live 2026-09-17 12:53 (gate #7): T2a's eight follow-ups (QRM-729) and per-run suite logs (QRM-707) — the daemon-run gate's first read-only check agreed with the manual bridge on the post-publish candidate.
- Placed 2026-09-21: the roadmap now refreshes itself after every admitted batch (QRM-742) and will place labelled issues + write a BUILD_ORDER gate-log line (QRM-758, ruled §12.6); rehearsal split B (QRM-737) and per-task selection auditing (QRM-746) landed; parallel live shards (QRM-693) are merged and found order-dependent tests (QRM-756); wiring the gate to the shard coordinator (QRM-754) and T2b recovery (QRM-727) are unblocked now that T2a is daemon-proven (first daemon-run gate 2026-09-18 12:05; QRM-702 closed 2026-09-19).
Linked work · opens in Linear
- The dispatcher notices moved branches; lanes use a dedicated test MinIO; the fifth-review hold and seed-dev memory are fixed.
- Ruled: the test MinIO moves to a loopback bind with rotated keys (an ops step).
- Left: the Pulse dev-graph spike investigation.
- Pulse dev compile re-measured: 9.6k modules / 64 s / 3.5 GB — the icon fix landed; Shiki is next (QRM-501 → QRM-677).
- Test suites no longer go red just because the host is busy — the SEQ sandbox wall budget is load-tolerant under test (QRM-668); the remaining blocked-child case is tracked separately.
- Production logs are now real JSON with levels honoured — the structured-logging setting had never actually applied (QRM-669).
- The Pulse dev graph no longer bundles ~300 Shiki grammars — an explicit registry loads only the governed language set (QRM-677).
- Reopened 2026-09-17 with follow-ups: two dispatcher tier-1 bugs (QRM-718, QRM-666), lane isolation for packages/ (QRM-684), a model-vs-DDL drift guard (QRM-705), a stronger from-empty janitor (QRM-706) and one logging configuration point (QRM-697).
- Placed 2026-09-21 (gates #11–#16): lane isolation for in-repo packages (QRM-735), the retained-lease expiry (QRM-733, Monitoring) with its /proc ordering fix (QRM-740), the result-block escaping bug (QRM-736) and lane clones migrated to the branch head (QRM-755, gate #16) are live; still open — the operator pull command (QRM-731) and the un-owned golden-template drift (QRM-734).
Linked work · opens in Linear
- Follows Lens and the six current priority buckets.
- A shared renderer contract is the first design input.
- The Booth web surface, the Task Station and the client setup wizard land here.
Linked work · opens in Linear
- Follows the UI component framework.
- Will provide view types for working with collections.
- Implementation issues have not yet been assigned.
- Follows Frames in the agreed sequence.
- Capture Alfharon and Gauteng City College requirements.
- Use the work-surface gap analysis to decide what to configure and what to build.
Linked work · opens in Linear
- Follows the first client feature streams.
- Covers AWS, environments and release management.
- Includes help, support, monitoring and alerts; detailed issues are still to be defined.
- Planned: editable speech-to-text capture.
- Depends on the shared audio and transcription work.
- Voice remains outside the current priority sequence.
Linked work · opens in Linear
- Planned: listening, spoken replies and interruption.
- Depends on dictation, audio handling and metering decisions.
- Not part of the current priority sequence.
Linked work · opens in Linear
- Planned: document understanding, transcription and speech output.
- Shared metering and caching are prerequisites.
- Audio work remains outside the current priority sequence.
Linked work · opens in Linear
- Each item names the block or client stream that will pull it.
- Nothing here is routed; moving an item back into a track is a decision, not a drift.
- Kept off the active tracks so a track can close when its build is done.
- Reconciled 2026-09-17: every Parked / Blocked issue Linear holds is now listed here (32 added), plus five architecture captures still in Backlog awaiting a design session — connector substrate (QRM-464), SYSTEM-row writers (QRM-480), Notes AI assistance (QRM-715), Contact rich response (QRM-716) and the note-colour subset (QRM-717).
- Placed 2026-09-21: two Architecture captures awaiting a session — the hardcoded member-colour swatch list (QRM-739, Parked) and connector glyphs end to end (QRM-752).
Linked work · opens in Linear