Files
waggle-os/docs/plans/PDF-AUDIT-2026-04-20.md
Oleg Maslov 0c3e2ead3b
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled
moving
2026-09-02 10:10:29 +02:00

108 lines
8.3 KiB
Markdown

# 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)