6.6 KiB
Backlog Reconciliation — 2026-04-19
Scope: MEDIUM tier items M-18..M-28 in docs/plans/BACKLOG-MASTER-2026-04-18.md v2.
Trigger: Session ok lets continue picked the M-18..M-21 UX chunk for work. Pre-flight
grep showed all four already shipped with tests, so I expanded the sweep to the adjacent
engagement cluster (M-22..M-28).
Net: 10 of 11 items in this range are fully shipped end-to-end (lib helper + test +
UI wiring). Only M-26 remains open, and it's [M]-08 decision-blocked (harvest-first
onboarding depends on the Marko-side "replace step 2 or parallel opt-in?" call).
Verification method
For each item I ran three checks:
- Lib helper present? —
apps/web/src/lib/<feature>.ts - Test present? —
apps/web/src/lib/<feature>.test.ts - Wired in UI? — grep for
M-<NN> / <CODE>annotation in a component
Any item that failed all three is "not shipped." Any that passed all three is "shipped." Partial matches are flagged individually.
All apps/web tests in scope were run: npx vitest run inside apps/web/ — 20/20 passed
for M-18/19/20 triad directly confirmed. Full apps/web suite at 301/301 from S3 already
covers the rest.
Block M6 — UX fixes (M-18..M-21) — 100% shipped
| # | Backlog title | Lib | Test | Wired | Notes |
|---|---|---|---|---|---|
| M-18 | UX-1 · Reduce onboarding decisions (default Blank + General Purpose path) | lib/onboarding-skip.ts |
onboarding-skip.test.ts (5) |
OnboardingWizard.tsx:223 + WhyWaggleStep.tsx |
"Skip and set me up" escape hatch on step 1; default Blank template + General Purpose persona |
| M-19 | UX-4 · Dock text labels first 7d / 20 sessions | lib/dock-labels.ts + hooks/useDockLabels.ts |
dock-labels.test.ts (10) |
Dock.tsx:28 + SettingsApp.tsx:101 |
SESSION_COUNT_KEY localStorage counter + Settings permanent toggle |
| M-20 | UX-5 · Hide token/cost behind dev mode | hooks/useDeveloperMode.ts |
useDeveloperMode.test.ts (5) |
StatusBar.tsx:29 + SettingsApp.tsx:99 |
developerMode && ... gates the chips; Settings → Advanced toggle |
| M-21 | UX-6 · Chat header overflow menu | lib/chat-header-layout.ts |
chat-header-layout.test.ts |
ChatApp.tsx:450,808,815 |
shouldCollapseChatHeader(width) + data-testid="chat-header-overflow-menu" |
Recommendation: Move M-18..M-21 to "Shipped" in BACKLOG-MASTER-2026-04-18.md v2.
Block M7 — Engagement features (M-22..M-28) — 6 of 7 shipped
| # | Backlog title | Lib | Test | Wired | Notes |
|---|---|---|---|---|---|
| M-22 | ENG-1 · "I just remembered" toast after 5th message | lib/memory-recall-toast.ts |
memory-recall-toast.test.ts |
ChatApp.tsx:469 |
Triggers on 5th user message when relevant memories exist |
| M-23 | ENG-2 · Briefing sidebar (left rail) | lib/workspace-briefing-state.ts |
workspace-briefing-state.test.ts |
WorkspaceBriefing.tsx:28 |
Per-workspace collapsed-state persistence |
| M-24 | ENG-3 · Dock nudge "unlock more apps" | lib/dock-nudge.ts + hooks/useDockNudge.ts |
dock-nudge.test.ts |
Desktop.tsx:151 |
One-time toast at session 10 and 50 |
| M-25 | ENG-4 · LoginBriefing every launch | lib/login-briefing.ts |
login-briefing.test.ts |
Desktop.tsx:436 + SettingsApp.tsx:103 |
permanent=true flag for "Don't show again" |
| M-26 | ENG-5 · Harvest-first onboarding | — | — | — | Not shipped — blocked on [M]-08 Marko decision (replace step 2 or parallel opt-in?) |
| M-27 | ENG-6 · Brain Health score | lib/brain-health.ts |
brain-health.test.ts |
DashboardApp.tsx:127 |
Divergence from backlog spec — note in lib header; check before closing |
| M-28 | ENG-7 · Suggested next-actions chips | lib/suggested-actions.ts |
suggested-actions.test.ts |
ChatApp.tsx:458,1061 |
Extraction from last assistant message; hidden while streaming |
Recommendations:
- Move M-22/23/24/25/28 to "Shipped." All four checks pass cleanly.
- M-27 is shipped but has a divergence note in
lib/brain-health.ts. Marko to read and decide: accept the divergence + close, or file a follow-up. Not blocking. - M-26 remains open until
[M]-08resolves. No engineering change until then.
What this changes for planning
Before this sweep, NEXT-UP-2026-04-19.md listed M-18..21 and M-22..28 as ~11
items and ~7 hours + 4 days of engineering still owed. That matches the BACKLOG-MASTER
totals row.
After this sweep, the true remaining MEDIUM engagement + UX work is:
- M-26 only — blocked on
[M]-08Marko decision - M-27 divergence review — ~15 min Marko read + yes/no
Remaining MEDIUM tier items that genuinely need engineering (unchanged):
| Range | What | Eng days | Blocking |
|---|---|---|---|
| M-02..06 | Compliance PDF block | 3.5 d | template JSON schema + brand-asset upload design |
| M-11..14 | Wiki v2 (incremental + Obsidian + Notion + health) | 4 d | Notion adapter needs live workspace test |
| M-15..17 | Ollama bundled installer + HW scan + daemon | 2 d | — (Tauri Rust work) |
| M-29 | MS Graph OAuth connector | 2-3 d | MS365 OAuth app registration (Marko) |
| M-31..32 | Demo video + LinkedIn sequence | 1.5 d | [M]-09, [M]-10 |
| M-33..48 | 16 deferred PDF items | ~5 d | product decisions on P4/P6/P10/P14-17 |
| M-49 | KVARK model strategy doc | 2 hr | — |
| M-50 | Cognitive layer thesis doc | 3-4 hr | H-42 benchmark numbers |
Calendar impact: ~7 hours of "UX quick wins" that NEXT-UP scheduled for this session turn out to need ~0 engineering. That time was spent on the hive-mind Track A polish (4 commits) and is available for the next cluster.
Commits in this session so far
Hive-mind (sibling repo), 4 commits:
471a840ci: Node 22→24 + cross-platform matrix + first-run smoke job6c0752cfeat(cli): addinitandstatuspersona-facing commandsf04434dfeat(cli): addmcp startandmcp call <tool>subcommandsb1e009ddocs(scripts): exercise new CLI persona commands in first-run smoke
Waggle-os: this doc only — no code changes needed for M-18..M-28 (already shipped).
Next
With M-18..M-21 and M-22..M-25/27/28 already closed, remaining options for this session:
- PDF deferred decision briefs (next task in my queue per the session plan)
- Pick up a genuinely open MEDIUM cluster — Wiki v2 (M-11..14, 4 d) or Ollama installer (M-15..17, 2 d) or MS Graph (M-29, 2-3 d). All larger than this session.
- Backlog hygiene pass — propagate this reconciliation into
BACKLOG-MASTER-2026-04-18.mdv2 so NEXT-UP stops listing shipped items.
Recommend option 1 (PDF briefs) plus a backlog-master edit after, so the next session starts from an accurate picture.