T-Z5MK-converge-with-apps-desktop-and-adapter-seam
Status: closed/superseded · Impact: medium · Complexity: large
Close the Phase-2 convergence: resolve the relationship between the fat
apps/pumice and the thin apps/desktop wrapper drafted in T-CKC1, and —
if pumice consumes any of the TS substrate — route it through the
S-0008-apps-consume-substrate-through-published-surfaces adapter seam rather than
importing plugin/lib directly.
T-CKC1 drafts a thin Tauri wrapper at apps/desktop embedding the dashboard
SPA. D-0016-pumice-app-integration introduces the fat apps/pumice. Both
may exist in parallel after Phase 1, and pumice currently consumes nothing from
the substrate.
| Location | Role today |
|---|---|
apps/pumice | Fat, self-contained Tauri app (this milestone) |
apps/desktop (T-CKC1) | Thin Tauri wrapper embedding the dashboard SPA |
| S-0008-apps-consume-substrate-through-published-surfaces | The app→substrate contract; not yet binding on pumice |
Proposed
Section titled “Proposed”Decide whether apps/pumice supersedes apps/desktop or the two coexist, and
introduce the adapter seam the first time pumice depends on the substrate (e.g.
consuming packages/ts/dashboard-client or exposing pumice data to the
dashboard).
Approach
Section titled “Approach”- Resolve the two-Tauri-apps question. Determine whether the thin
apps/desktopis redundant onceapps/pumicelands, folds into pumice, or serves a distinct purpose. Record the outcome (an ADR update if it changesT-CKC1’s status). - Introduce the adapter seam on first coupling. When pumice first consumes
the substrate, add an adapter package (typically under
packages/ts/) so the dependency direction obeys S-0008-apps-consume-substrate-through-published-surfaces — no directplugin/libimport. - Activate the S-0008 validator for pumice. Ensure the apps-import
discipline validator covers
apps/pumice.
Files to touch
Section titled “Files to touch”| Location | Kind | Change |
|---|---|---|
docs/planning/** | edit | Record the desktop/pumice convergence decision |
packages/ts/<adapter>/** | new (conditional) | Adapter package if pumice consumes the substrate |
apps/pumice/** | edit (conditional) | Consume the substrate via the adapter, not directly |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: The
apps/pumicevsapps/desktoprelationship is decided and recorded (supersede, coexist, or fold). - AC-2: Any pumice→substrate dependency goes through an adapter per
S-0008-apps-consume-substrate-through-published-surfaces; no direct
plugin/libimport. - AC-3: The apps-import discipline validator covers
apps/pumice.
Out of scope
Section titled “Out of scope”- New pumice product features.
- Crate promotion —
T-X8CF(this task builds on it).
Dependencies
Section titled “Dependencies”T-X8CF(hard): shared-crate promotion and the cargo workspace precede the full convergence.T-CKC1(prose): the thin-wrapper task this reconciles against.
Depends on
Section titled “Depends on”T-X8CF