PR: #528: feat(matter): Import drawer โ€” Strategy chip (home=strategy uploads) [Story-2120] by @ankitmaheshwari-com
View PR →

Files changed

8 file(s), +184 / -44 lines

Path Role + -
messages/en.jsonConfig+4-0
messages/hi.jsonConfig+4-0
src/components/matters/import-into-matter-sheet-v2.stories.tsxComponent+34-3
src/components/matters/import-into-matter-sheet-v2.tsxComponent+74-26
src/components/matters/use-document-upload-queue.tsComponent+4-4
src/components/matters/use-matter-import-v2.tsComponent+40-10
src/lib/matters/import-source.tsLibrary+15-0
src/lib/matters/upload-queue.tsLibrary+9-1

Story-2120: Import drawer โ€” the Strategy chip

The founder-locked document homes doctrine (2026-07-08) says a document's nature is its home in the Worknav โ€” no invented "work product" labels. The drawer's one chip row folds two axes into one gesture: side (Client's / Opponent's / Other) for Record documents, and Strategy, which implies "ours" and sends the upload to a different home entirely. This story adds the 5th chip between Other and ๐Ÿ”’ Privileged. It builds directly on Story-2111 (armed dropzone) and Bug-2118 (optimistic row on drop + animated exit) โ€” neither is regressed.

The homes doctrine, in one line

"The notice is in the Record. My Harsha analysis is in Strategy. My advice emails are privileged โ€” PRAMAAN won't take them." Strategy = counsel's internal analysis made from evidence. The pipeline still runs over it (anchors, cards, search, Mira's strategy context), but it is structurally excluded from world-fact assertions, the contradiction engine, discovery and export. Enum: home = record | strategy, default record.

What landed

Two axes, one gesture

Armed chiphomedeclaredSideDroppable?Zone / registered copy
Client'srecordclientyesgreen ยท "In the Record"
Opponent'srecordopponentyescrimson ยท "In the Record"
Otherrecordotheryesneutral ยท "In the Record"
Strategystrategynull (ours)yesblue ยท "In Strategy"
๐Ÿ”’ Privilegedโ€”โ€”no (refused)amber ยท protective refusal

Not regressed (Story-2111 / Bug-2118)

Storybook (verify here)

Verification

Live-data seam (Story-2119): Strategy arming, the blue zone, the "In Strategy" rows and the trust-line swap are live client-side today. The home=strategy stamp rides the ledger mint through the typed overlay, but the backend does not persist home or route uploads to the Strategy shelf until functions Story-2119 lands and its contract syncs to the mirror (then the overlay is deleted and home is read straight off ImportItemInput). The end-to-end "strategy upload never enters the Record" guarantee is server-enforced there, not here.