PR: #527: feat(matter): Strategy tab strategy-documents shelf (home=strategy) [Story-2121] by @ankitmaheshwari-com
View PR →

Files changed

9 file(s), +311 / -11 lines

Path Role + -
messages/en.jsonConfig+7-0
messages/hi.jsonConfig+7-0
src/app/[locale]/(workspace)/matters/[matterId]/record/page.tsxApp route+2-1
src/app/[locale]/(workspace)/matters/[matterId]/strategy/page.tsxApp route+40-8
src/components/matter-detail/strategy/strategy-document-shelf.stories.tsxComponent+70-0
src/components/matter-detail/strategy/strategy-document-shelf.tsxComponent+108-0
src/lib/documents/home.test.tsLibrary+37-0
src/lib/documents/home.tsLibrary+38-0
src/lib/surface-registry/route-registry.tsLibrary+2-2

Story-2121: Strategy tab — the strategy-documents shelf

The Strategy tab gets its first real content. Per the founder-locked document-homes doctrine (2026-07-08), a document's nature is its home in the Worknav: record (evidence — full citizenship) or strategy (counsel's internal analysis, e.g. the Harsha Venkatesh note). Strategy documents run the pipeline but are structurally excluded from the Record register, world-fact assertions, contradiction candidates, and discovery/export — not filtered, excluded.

"The notice is in the Record. My Harsha analysis is in Strategy."

The home seam (Story-2119 lands in parallel)

The wire home enum is not yet on the generated DocumentListItem, and assertContract strips unknown keys at the trust boundary — so today every document reads undefined and defaults to record. Both consumers are wired now and light up with zero app changes the moment Story-2119 lands the field and pnpm codegen regenerates the schema.

The Record register excludes home=strategy

The Strategy shelf

Deliberately deferred (not this story)

Verification

pnpm gen:routes + pnpm check:routes (37 surfaces, fresh), pnpm lint (0 errors), pnpm test (1017 passed), and pnpm build all green. No codegen / contract change — the home field arrives with Story-2119.