6.0 KiB
L-17 · MOCK / TODO / FIXME audit — 2026-04-19 (rev 2026-05-10)
Scope: apps/web/src, packages/*/src (excludes test directories and
HTML placeholder="..." attributes).
Grep pattern: // (MOCK|TODO|FIXME|XXX): or the /* … */ equivalent.
Current count: 0 production-path marker lines. The prior hook stub markers
were removed as the Wave 2/3 implementations landed. Zero new production code
may introduce a marker without updating tests/placeholder-audit.test.ts and
this document in the same commit.
Revision 2026-07-16: 6 -> 0 after the hook implementations were completed.
Revision history:
- 2026-04-19: 14 → 10 (initial L-17 audit + C2/C3/C4/C5 cleanup)
- 2026-05-08: 10 → 0 (DAY0V-01 WS gateway hard-fail replaces TODO + DAY0V-02
deletes
mock-channel-connectors.ts) - 2026-05-10: 0 → 6 (Phase 2 consolidation merge introduces
hive-mind-hooks-*subtree-split stubs; see Category D below)
Category A — RESOLVED 2026-05-08 (was 9 hits, now 0)
packages/agent/src/connectors/mock-channel-connectors.ts — DELETED
in DAY0V-02 (2026-05-08). The file's 9 // MOCK: markers are gone with
the file. Real connectors (slack-connector.ts, discord-connector.ts,
ms-teams-connector.ts) are unaffected — they were never the same
classes. No tests referenced the mocks (verified via grep), and the
mocks were already gated behind NODE_ENV !== 'production' in
setup-connectors.ts, so no production user ever saw them registered.
2026-04-20 decision was: keep as "(Demo)" connectors until real OAuth integrations land. 2026-05-08 supersedes: PM master Day-0 ETA is 2026-05-08..12, and the mock-vs-real conflation surface is itself a launch risk per CONCERNS.md §4. Drop the mocks now; reintroduce only when real OAuth ships under different class names.
Category B — RESOLVED 2026-05-08 (was 1 hit, now 0)
| File | Line | Original note | Resolution |
|---|---|---|---|
packages/server/src/ws/gateway.ts |
91 | Replace with full Clerk verification once CLERK_SECRET_KEY is always configured |
DAY0V-01 / commit d6971f6 (2026-05-08, rebased from 8ec8419) — replaced unsigned-JWT-decode fallback with hard-fail in production + connection-time reject in dev/desktop. decodeJwtPayload() deleted. |
Category D — INTENTIONAL STUBS introduced 2026-05-10 (6 hits)
Phase 2 consolidation merge of feature/hive-mind-monorepo-migration brought
in 11 new hive-mind-* packages, of which 6 are subtree-split hook stubs
awaiting Wave 2/3 implementation. The // TODO: Wave 2/3 implementation
markers are load-bearing — they signal to developers (in both waggle-os main
and the public hive-mind repo) that these hooks aren't implemented yet.
| File | Line | Marker | Status |
|---|---|---|---|
packages/hive-mind-hooks-claude-desktop/src/index.ts |
10 | // TODO: Wave 2/3 implementation |
OPEN — implements Wave 2/3 |
packages/hive-mind-hooks-codex-desktop/src/index.ts |
10 | // TODO: Wave 2/3 implementation |
OPEN — implements Wave 2/3 |
packages/hive-mind-hooks-codex/src/index.ts |
10 | // TODO: Wave 2/3 implementation |
OPEN — implements Wave 2/3 |
packages/hive-mind-hooks-cursor/src/index.ts |
10 | // TODO: Wave 2/3 implementation |
OPEN — implements Wave 2/3 |
packages/hive-mind-hooks-hermes/src/index.ts |
10 | // TODO: Wave 2/3 implementation |
OPEN — implements Wave 2/3 |
packages/hive-mind-hooks-openclaw/src/index.ts |
10 | // TODO: Wave 2/3 implementation |
OPEN — implements Wave 2/3 |
Note: The hive-mind-hooks-claude-code package does NOT carry a stub
marker — it has Wave 1 implementation complete. Wave 2/3 covers the
remaining 6 client integrations.
Resolution path: when each Wave 2/3 hook gets real implementation, drop
its marker AND bump EXPECTED_MARKER_COUNT down by 1 in the same commit.
Once all 6 are implemented, count returns to 0 and Category D collapses.
Category C — Closed 2026-04-20 (4 hits resolved)
These TODOs shipped concrete fixes in the 2026-04-20 cleanup pass and no longer appear in the codebase:
| Commit | File | Original TODO | Resolution |
|---|---|---|---|
a748f8f |
apps/web/src/hooks/useMemory.ts:54 |
Dedicated PATCH /api/memory/frames/:id/access endpoint for atomic increment |
Added the PATCH route + LocalAdapter.incrementFrameAccess. FrameStore.touch() now returns the new count via SQL RETURNING. |
2367426 |
packages/core/src/compliance/report-generator.ts:52 |
Track classification date in workspace config | Added riskLevel + riskClassifiedAt to WorkspaceConfig; WorkspaceManager auto-stamps on change; ReportGenerator reads via getWorkspaceRiskClassifiedAt dep. |
b8dab3d |
apps/web/src/components/os/apps/CapabilitiesApp.tsx:352 |
Marketplace tab may show duplicate catalog data | Added pure dedupePacks() helper; applied client-side on both merged packs and marketplacePacks. |
49b8e6d |
packages/server/src/local/routes/fleet.ts:32 |
Track per-session tokens | WorkspaceSession.tokensUsed + WorkspaceSessionManager.addTokens(); chat route hooks after costTracker.addUsage. Fleet reads the real value. |
Regression guard
tests/placeholder-audit.test.ts runs on CI and fails if the
production-path marker count diverges from the pinned value
(EXPECTED_MARKER_COUNT). A contributor adding a new TODO in
production code must:
- Categorise it here (mock / follow-up / closed).
- Bump the pinned count in the test.
Making a ticket easy is better than making the rule loud.
2026-06-01 update — 6 → 1 (Wave 2/3 hook ports)
The Wave 2/3 hook ports implemented 5 of the 6 subtree-split stub packages,
removing their // TODO: Wave 2/3 implementation markers:
hive-mind-hooks-{codex, codex-desktop, cursor, hermes, openclaw}.
The only remaining production-path marker is the still-deferred stub
packages/hive-mind-hooks-claude-desktop/src/index.ts:10 (Claude Desktop is
MCP-only — no hook surface — and was explicitly excluded from Wave 2/3, see
docs/superpowers/specs/2026-06-01-wave23-hook-stubs-design.md §1/D1).
EXPECTED_MARKER_COUNT bumped 6 → 1 accordingly.