Feature Status Matrix

Authoritative source of truth for release readiness. The working tree and

deployed application are deliberately reported separately: local checks do

not establish deployment, production verification, or pilot readiness.

Status vocabulary (spec §3.3, §9.3):

deployment.

succeeded with recorded evidence (e.g., the 2026-07-25 audit).

product acceptance gates pass.

pass.

A health endpoint returning 200 is not evidence that a user workflow

works.

Snapshot date: 2026-07-26

Last update: release candidate baseline = 959 unit tests passing after the

2026-07-26 capability, session-state, authorization, and dependency remediation

work. Production deployment and verification remain pending. Production evidence remains the

2026-07-25/26 adversarial audit until a new deployment is verified.

Audited preview: https://a40ae28a.court-lusion.pages.dev (classified

development preview)

Production alias: https://court-lusion.pages.dev

Capability manifest overrides (effective immediately)

The CapabilityId set in src/lib/editor/capabilities.ts is extended for

this matrix. New IDs are introduced by their target phase and start as

blocked until that phase ships.

CapabilityIdEffective stateReason
vaultblockedSpec §13 remediation not complete
redactionblockedSpec §7.5 irreversible export not verified
sandboxblockedSpec §11 infrastructure not complete
mcpblockedSpec §10.2 governance not complete
skillsblockedSpec §10.1 lifecycle not complete
tabular-reviewdegradedOnly Refresh is wired; copy must be corrected
workflowsdegradedStub paths in callProvider; UI hides "queue run"
codex-actblockedApproval path not surfaced (already in code)

The override takes effect through the existing

editor-capability-overrides JSON block in

src/pages/editor.astro lines 52–62. The

build-time env-flag seeding stays; it is no longer the authority.

Product area status

AreaStatusEvidenceOwnerPhase
Public marketing — claimsimplementedInherited awards and the Bristol address are removed locally; verified claims remain governed by docs/product/release-claims-register.mdproduct10
Public marketing — H1sdegradedF-009, F-022product10
Public marketing — zoomblockedF-004 viewport metadesign2
Public marketing — PlaygrounddegradedF-008 empty WebGL shell, indexedproduct10
Public marketing — wide-renderdegradedF-033 near-empty 1920design10
Public marketing — a11ydegradedF-005, F-006, F-007, F-020, F-021design10
Editor shell — desktopimplementedLocal containment exists in src/pages/editor.astro; production remains failed at desktop widthfrontend1
Editor shell — mobileimplementedOff-canvas at 390/768; not yet polishedfrontend1
Editor shell — nav stateimplementedLocal route-derived active-panel logic; production verification remains openfrontend1
Editor shell — a11ydegradedF-019 (16 mains, 11 H1s, focusable in aria-hidden)design2
Editor shell — focus ringdegradedF-029design2
Editor shell — reduced motiondegradedF-028design2
Editor shell — contrastdegradedF-030 (35 nodes below AA or tiny)design2
Editor shell — typographydegradedLegacy 8/9/10.5px text in editorKanban.css, editorProfileVault.css, editorAssistantPolish.cssdesign2
Auth — sessionimplementedWorkOS callback + cookie session in convex/auth.config.tssecurity4
Auth — shell/content truthimplementedLocal partial mitigation only; normalized AppSession and production verification remain openfrontend1
Auth — session policyimplementedCookie TTL 30d, rotation in functions/auth/callback.tssecurity4
Auth — SCIMnot_designedSpec §18.1 design onlysecurity11
Workspaces — modelimplementedconvex/workspaces.tsbackend4
Workspaces — membershipimplementedconvex/memberships.tsbackend4
Workspaces — organizationsnot_implementedSpec §12.1 — required for ethical wallsbackend4
Matters — modelimplementedconvex/matters.tsbackend4
Matters — ACLdegradedmatterAccess, matterPolicy, and requireMatterAccess exist; assistant/document/chronology record access and matter-linked list rows fail closed locally, while adoption across other product tables and runtime authorization tests remain openbackend4
Matters — restricteddegradedRestricted assistant/document/chronology records and list contracts use the canonical gate locally; broader matter scoping, role-policy verification, deployment, and production authorization evidence remain openbackend4
Matters — UIdegradedpanel-matters; missing members, ethics walls, retentionproduct3
Kanban / Tasks — boardsimplementedconvex/boards.ts, convex/columns.ts, convex/cards.tsfrontend5
Kanban / Tasks — legal opsnot_implementedSpec §7.7product3
Activity — feedimplementedconvex/activity.tsfrontend3
Activity — auditnot_implementedSpec §12.5 — append-only AuditEventbackend4
Files — uploadimplementedconvex/files.ts, IndexedDB fallbackfrontend5
Files — resumablenot_implementedSpec §7.4backend5
Files — malware scannot_implementedSpec §18.3security5
Documents — versionsimplementedconvex/documents.tsbackend5
Documents — annotationsnot_implementedSpec §7.4backend5
Documents — searchnot_implementedSpec §7.4 — permission-aware indexbackend5
Documents — OCRdegradedF-013 shows controls but no verified OCR pipelinebackend5
RedactionblockedSpec §13 — no irreversible export yetsecurity5+
Chronology — CRUDimplementedconvex/chronology.tsbackend3
Chronology — provenancenot_implementedSpec §7.6backend3
Chronology — copydegradedF-015 "Harvey-style" wordingproduct3
Notes — modelimplementedconvex/notes.tsbackend6
Notes — versionsnot_implementedSpec §8.2backend6
Notes — wikilinksimplementedBasicfrontend6
Notes — backlinksnot_implementedSpec §8.3 — durable backlink indexbackend6
Notes — Obsidian importnot_implementedSpec §8.9backend6
Knowledge graphprototypeSVG force graph derived from note titles; O(n²) client; 200-node ceilingfrontend6
Knowledge graph — durablenot_implementedSpec §8.6backend6
Assistant — modelintegratedConvex Agent + MiniMax env vars; F-011 final-pass metric ambiguousbackend7
Assistant — citationsnot_implementedSpec §9.7 — gateway returns empty stubbackend7
Assistant — retrievalnot_implementedSpec §9.7backend7
Assistant — persisted msgsimplementedassistantMessages records user, running, complete, and failed turns; the editor hydrates the authorized thread projection after reload. Runtime Convex coverage, deployment, and authenticated production verification remain required.backend7
Assistant — true streamingnot_implementededitor-remaining-work-2026-07-25.md §2backend7
Codex — threadsimplementedconvex/codex.tsfrontend7
Codex — provider switchingimplementedUI switcher; MiniMax defaultfrontend7
Codex — Act modeblockedSpec §9.2 — approval path requiredbackend8
Workflows — modelimplementedconvex/workflows.ts, convex/workflowEngine.tsbackend9
Workflows — UInot_implementedpanel-workflows panel missing (editor-remaining-work-2026-07-25.md §4)frontend9
Workflows — approvalsnot_implementedSpec §9.8backend9
Workflows — idempotencynot_implementedSpec §14.2backend9
Tabular reviewprototypeF-014 copy vs function gap; panel-tabular-reviews missingfrontend9
Provider vaultblockedF-013 implied; spec §13 — placeholder rows + AES-for-HMAC + missing KMSsecurity4
SkillsblockedSpec §10.1 — prompt templates ≠ installed skillsbackend8
MCP connectorsblockedSpec §10.2 — no governed registrybackend8
SandboxblockedSpec §11 — no production isolationsecurity8
Notifications — localimplementedsrc/scripts/editor/notifications.tsfrontend3
Notifications — durablenot_implementedSpec §7.9backend7
Settings — localimplementedsrc/scripts/editor/settingsPanel.tsfrontend3
Settings — servernot_implementedSpec §7.10backend4
Search — globalnot_implementedSpec §7.4/§12.7 — permission-aware cross-entity searchbackend5
Audit — append-onlynot_implementedSpec §12.5backend4
Audit — exportsnot_implementedSpec §12.5backend4
Retention — policiesnot_implementedSpec §12.6backend4
Legal holdnot_implementedSpec §12.6backend4
Enterprise — SSOnot_implementedSpec §18.1security11
Enterprise — SCIMnot_designedSpec §18.1security11
Observability — healthimplementedconvex/auth.config.ts redirect + health endpointsbackend11
Observability — SLOsnot_implementedSpec §19.1ops11
Observability — admin statusnot_implementedSpec §19.4frontend11
Assets — map integrityintegratednpm run imagegen:validate-map passesassets10
Assets — provenancedegraded285 prompted + 12 accepted-but-empty-runtime + stale markdown summaryassets10
Assets — runtime placeholdersdegradedSeveral prompted records are runtime-bound; treat as placeholdersassets10
Tests — unitintegrated959 unit tests passing; TypeScript and lint cleanquality11
Tests — browser shellnot_implementedSpec §20.2quality11
Tests — a11y automationnot_implementedSpec §20.3quality11
Tests — authorizationnot_implementedSpec §20.4quality11
Tests — sandbox adversarialnot_implementedSpec §11.6quality8
Dependencies — known CVEsimplementedLocal npm audit --omit=dev --json reports 0 vulnerabilities after Astro 7.1.3 / Sharp 0.35.3 and patched transitive resolutions; deployment verification remains requiredsecurity11

Finding assignment

IDSevTitleOwnerPhaseStatus
F-001P0Desktop editor layout collapsed into unusable gridfrontend1contained
F-002P0Authenticated shell shows signed-out gatesfrontend1partial close: sessionState() helper + boot-window "Loading…" copy; full close requires normalized AppSession (Phase 4)
F-003P0Multiple primary panels simultaneously activefrontend1partial close: applyRouteActiveClass() derives from URL only; legacy direct handlers + duplicated click handlers still present in 3,817-line editor.astro
F-031P0Desktop editor layout collapsed at 1440/1920frontend1contained
F-004P1Viewport meta disables zoomdesign2closed (BaseLayout viewport meta updated)
F-005P1About page retains Lusion client award linksproduct10closed: src/data/awards.ts zeroed with placeholder renderer; Porsche/Wallpaper/Awwwards/FWA/CSSDA/Webby/Lovie/Drum/CommArts removed
F-006P1Team section is emptyproduct10closed: src/data/team.ts exports an empty array; about-hero degrades to no members; verified identities will land via release-claims-register
F-007P1Footer still shows Bristol UK Lusion office addressproduct10closed: src/data/site.ts address block cleared; contact remains via email
F-008P1Playground is an exposed empty home-mode WebGL shellproduct10closed: /playground replaced with a noindex development-state page; no public nav ref
F-009P1Missing semantic H1 on key marketing routesproduct10implemented locally + browser-verified: /about, /projects, and project-detail routes now expose semantic visually-hidden H1s; deployment required
F-010P1Astronaut drop incomplete at max scrollfrontend10closed locally: fresh 1440×900 Aside run at scrollToPixel(contentSize, true) reached astronautDropRatio=1, whiteTunnelWaitRatio=1, and dominant phase astronautWait; retain a deployed-browser rerun as release evidence
F-011P1renderer.info stays calls=1 triangles=1 across all 17 stagesfrontend10open
F-012P1Dashboard and Files claim cloud auth issuesfrontend1open
F-013P1Document pipeline controls visible without verified pipelinesecurity5closed: redaction_export now gated by its own redaction capability id (forced blocked by Phase 0 override); OCR / preview / convert remain gated on documents / pdf-annotations until Phase 5 worker ships
F-014P1Tabular reviews advertise CSV upload + real-time streaming but only Refresh is enabledfrontend9closed: panel intro copy now states "not available in the development preview"; capability forced to unconfigured; full implementation is Phase 9 workstream
F-024P2Workflows empty with Queue run; Mike MIT corpus claimfrontend9partial close: Mike MIT claim removed from panel intro; "Queue run" affordance remains in the disabled-capability path until provider path lands
F-015P1Chronology marketed as "Harvey-style timeline"product3closed (renamed to Matter chronology across convex, schema, panel, spotlight, editor labels)
F-016P1Production notes contain internal probe/test titlesbackend0open
F-017P1Workspace identity is test scaffoldingbackend0open
F-019P1Editor accessibility tree polluteddesign2open
F-028P1prefers-reduced-motion is detected but animations keep runningdesign2closed (global reduced-motion rule added to accessibility-floor.css)
F-029P1Keyboard focus has no visible focus ringdesign2closed (global :focus-visible 2px outline via accessibility-floor.css)
F-030P1Editor UI has 35 sampled text nodes failing WCAG AA contrast or tiny typedesign2partial close: accessibility-floor.css raises status/permission/citation text to ≥ 13px and captions to ≥ 12px; full fix requires component-by-component redesign
F-033P1Several public routes render near-empty at 1920×1080design10open
F-020P2Three separate Let's talk controlsproduct10open
F-021P2Menu labels duplicatedproduct10open
F-022P2Project detail routes lack H1 in probeproduct10implemented locally + browser-verified: detail H1 derives from project.title; deployment required
F-023P2Asset tree and Live page panels are empty shellsfrontend3partial close: assets/live/style quick-launch tiles marked data-labs-only="true" hidden; sidebar taxonomy migration deferred to Phase 1 AppShell decomposition
F-025P2Stop control visible idle; empty thread list; shared gateway claimsfrontend7open
F-026P2Preview deploy sends x-robots-tag: noindexops0open
F-032P2Projects archive screenshot ~1.4MB at 390×844frontend10open
F-034P2html is-mobile / is-tablet classes not applied under mobile device metricsfrontend1open
F-036P2Mobile WebGL phase mapping differs from desktopfrontend10open
F-018P3Aux editor HTML is auth-gated when signed out (prior concern downgraded)security4closed
F-027P3Preloader present but display:none after readyfrontendclosed
F-035P3Sampled public/home/about asset URLs returned 0 HTTP failures (47/47 ok)assets10open (visual + licensing still required)

Updating this matrix

automatic status regression.