This commit is contained in:
107
docs/plans/PDF-AUDIT-2026-04-20.md
Normal file
107
docs/plans/PDF-AUDIT-2026-04-20.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# PDF Triage Audit — 2026-04-20 (M-33..48 status close-out)
|
||||
|
||||
**Scope:** Verify each item in `PDF-E2E-ISSUES-2026-04-17.md` against current code as
|
||||
of `bf18e16` (head of `main`). The 2026-04-19 plan estimated M-33..48 at ~5 d
|
||||
"audit first, many likely shipped in S2/S3/S4." This audit confirms that
|
||||
estimate was conservative — most items have shipped under M-XX commit numbers
|
||||
since S2.
|
||||
|
||||
## Method
|
||||
|
||||
For each P-item still marked 🟠 deferred or 🟡 partial in the source PDF doc:
|
||||
1. `git log --since="2026-04-17"` for commits referencing the area
|
||||
2. Grep current source files for the relevant component/handler
|
||||
3. Cross-reference recent session handoffs (S2 / S3 / S4 / S1)
|
||||
4. Classify: ✅ shipped / 🟡 needs verification / 🟠 still open / 🔴 blocked
|
||||
|
||||
## Findings — full P-item disposition
|
||||
|
||||
| # | Item (one-liner) | Prior | Audit verdict | Evidence |
|
||||
|---|---|---|---|---|
|
||||
| P1 | Opens as General Purpose — should be Researcher | 🟡 | 🟡 wired, needs LIVE test | OnboardingWizard.tsx:134 maps template → persona; handleFinish:275 saves `persona: selectedPersona`; useWindowManager.ts:230 reads `ws?.persona`; ChatWindowInstance.tsx:87 falls back to `'general-purpose'` if `initialPersona` undefined. Chain is correct in code; bug is either server-side persona save OR first-window-before-workspace-load timing |
|
||||
| P2 | Chat input too small | ✅ | ✅ shipped (S2 batch `1c6d9f2`) | confirmed at PDF source |
|
||||
| P3 | Tier-gated menu items | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P4 | Mutation Gates / 3-level approval | 🟠 | ✅ shipped S1 `07cbf25` + `575f2c9` | `defaultAutonomy` enum + radio + new-window inheritance |
|
||||
| P5 | Advanced Settings actionable | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P6 | Room — verify 2 parallel agents | 🟠 | ✅ shipped (S4 verification) | per S4 handoff "PDF picks shipped (P14/P15/P6/P10)" |
|
||||
| P7a | `//` slash commands | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P7b | "No tools assigned" | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P8 | Agents vs Personas naming | 🟡 | ✅ shipped — addressed by M-01 | `a8b6548` PersonaSwitcher two-tier + `02c029d` rich tooltip — the redesign disambiguates personas as "modes" vs "specialists", removing the naming ambiguity |
|
||||
| P9 | AI-generate agent → Stripe link broken | 🔴 | 🔴 blocked (Stripe products) | external — Marko's Stripe dashboard work; see `[M]-01` |
|
||||
| P10 | Bee-style persona icons (light + dark) | 🟠 | ✅ shipped (S4 PDF picks) | per S4 handoff |
|
||||
| P11 | Group members shows only 3 | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P12 | Workspace template Blank twice | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P13 | Group filter Projects/Research | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P14 | Virtual path truncated + Local D-drive only | 🟠 | ✅ shipped S4 (option 1: home on C: + D:) | per PDF-DEFERRED-DECISIONS pick + S4 handoff |
|
||||
| P15 | Create Template modal overlap | 🟠 | ✅ shipped S4 (option 2 / viewport check) | per S4 handoff |
|
||||
| P16 | Files app only Virtual storage | 🟠 | ✅ shipped S1 `516090c` | 3-tab `<FilesAppTabs>` |
|
||||
| P17 | Tooltips missing app-wide | 🟠 | ✅ shipped S1 (P17.1..5, ~80 sites) | `bf18e16` is the last commit; zero `title=""` remain in `components/os/` |
|
||||
| P18 | Waggle Dance signals | 🟠 | ✅ shipped — M-41 `9faaf78` | "Waggle Dance deterministic signal ordering" |
|
||||
| P19 | Cockpit System Health "Ok" red | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P20 | AI Act warning explanation | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P21 | Timeline always empty | 🟠 | ✅ shipped — M-42 `0b49a42` | "align Timeline vocabulary with server AuditEventType" |
|
||||
| P22 | Telemetry "Upgrade to unlock" | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P23 | Backup & Restore doubled | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P24 | Events Replay unclear | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P25 | Scheduled Jobs toggle stays off | 🟠 | ✅ shipped — M-43 (per code comment) | ScheduledJobsApp.tsx:106-114 explicit "M-43 / P25" comment — server auto-enables on trigger; client syncs from response |
|
||||
| P26 | New scheduled job creation unclear | 🟠 | ✅ shipped — improved UX | ScheduledJobsApp uses CRON_SCHEDULE_PRESETS + CRON_JOB_TYPES + describeCronExpr (plain-English schedule summary) — far clearer than raw cron |
|
||||
| P27 | Skills & Apps Installed/Starter overlap | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P28 | Marketplace empty — sync from DB | 🟠 | ✅ shipped — `ac586f7` "fix(marketplace): correct monorepo seed path resolution" | combined with C4 dedupe (S1 `b8dab3d`) |
|
||||
| P29 | Skills & Apps cards not clickable | 🟠 | ✅ shipped — detail pane wired | CapabilitiesApp.tsx:160 `onClick={() => setSelectedPack(pack)}` opens overlay detail card at line 218+ |
|
||||
| P30 | MCP install flow unclear | 🟠 | ✅ shipped (S3 PDF picks) | per S3 handoff "P30 MCP install clarity" |
|
||||
| P31 | Second Marketplace dock | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P32 | Team Governance on Free | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P33 | "API Keys" vs "Vault" naming | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P34 | Approvals → Ops or delete | 🟠 | ✅ shipped (S3) — Approvals → Teams-tier | per S3 handoff |
|
||||
| P35 | Spawn Agent "no models available" | 🟠 | ✅ shipped — `8782cab` Phase A/B polish | SpawnAgentDialog.tsx:263-277 has actionable empty state: "Keys configured but no models returned — the LiteLLM proxy may not be running." |
|
||||
| P36 | Dock spawn-agent click does nothing | 🟠 | ✅ shipped — fully wired | Dock.tsx:152 `onClick={onSpawnAgent}` ← Desktop.tsx:398 `onSpawnAgent={() => ov.setShowSpawnAgent(true)}` |
|
||||
| P37 | Ctrl-K search hidden | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P38 | Status bar WiFi badge / 24h | ✅ | ✅ shipped (S2 batch) | confirmed |
|
||||
| P39 | Status bar left static | 🟡 | ✅ shipped — M-47 `bb9cae5` | "dynamic focused-window label in status bar" |
|
||||
| P40 | Light mode boot logo / animation | 🟠 | ✅ shipped — `cbe8924` H-04..06 + `8782cab` theme-aware logo | BootScreen.tsx:27-28 `useIsLightTheme` + `waggleLogoLight` / `waggleLogoDark`, full animation set still present |
|
||||
| P41 | Light mode "Waggle AI" text styling | 🟠 | ✅ shipped — H-04..06 polish close | text uses `text-foreground` (theme-aware token); `font-display font-bold` consistent across modes |
|
||||
|
||||
## Summary
|
||||
|
||||
| Status | Count | Items |
|
||||
|---|---|---|
|
||||
| ✅ shipped | 38 | P2-P8, P10-P34, P35-P41 (all but P1 + P9) |
|
||||
| 🟡 wired but needs LIVE test | 1 | P1 — onboarding persona → first chat window |
|
||||
| 🔴 blocked external | 1 | P9 — Stripe products (Marko, post-benchmarks) |
|
||||
| 🟠 still open | 0 | — |
|
||||
|
||||
**M-33..48 effective effort:** ~0 engineering hours of new build. ~1-2 hours
|
||||
for P1 Playwright E2E test (or live binary smoke). All other items are
|
||||
already on `main` under M-XX commits since S2.
|
||||
|
||||
## Recommendation
|
||||
|
||||
1. **P1 verification only** — write a Playwright test that:
|
||||
- Onboards with `researcher-tools` template (auto-selects researcher persona)
|
||||
- Lands on Ready step → completes
|
||||
- Verifies the first chat window opens with `currentPersona === 'researcher'`
|
||||
- If green: close P1 ✅. If red: 1-2 hr fix in handleFinish or ChatWindowInstance fallback.
|
||||
|
||||
2. **Skip remaining "exec" of M-33..48** — there's nothing to execute.
|
||||
|
||||
3. **Move directly to `#2` M-07..10 Harvest UX polish** — this was the next item
|
||||
in Marko's S2 sequence. ~2-3 d of genuine functional work.
|
||||
|
||||
## Why the gap: PDF triage doc rot
|
||||
|
||||
The PDF source doc (`PDF-E2E-ISSUES-2026-04-17.md`) was last edited 2026-04-17,
|
||||
the day of the S2 sweep that closed 20 of 41 items. Every commit since has
|
||||
been numbered under the M-XX scheme (the "milestone backlog" at
|
||||
`BACKLOG-MASTER-2026-04-18.md`), so the cross-references back to the original
|
||||
P-numbers were buried in commit messages but never re-landed in the PDF status
|
||||
table. The 16 items presumed open under "M-33..48 = remaining PDF" were
|
||||
actually shipped one-by-one as M-41/M-42/M-43/M-47 etc.
|
||||
|
||||
**Lesson for future planning surfaces:** When work splits across multiple
|
||||
backlog files (PDF triage + M-XX milestone + L-XX latency), the *source*
|
||||
should hold canonical status; commits should be tagged with both numbering
|
||||
schemes (`M-41 · P18` is the right pattern, used in some commits but not all).
|
||||
|
||||
---
|
||||
|
||||
**Author:** Claude (audit per Marko's S2 directive — sequence M-33..48 first)
|
||||
Reference in New Issue
Block a user