You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v0.23.2 — wire Phase 1 endpoints into the dashboard UI (the missing user-facing half)
v0.23.0 shipped the lint / polisher / security-scan / exemplar-tagging API
endpoints but FORGOT to add buttons to the dashboard. The features were
unreachable through the UI — only direct curl/SQL access worked.
This patch closes the gap. Per skill row in the Active Skills panel:
✨ Polish → POST /dashboard/skills/:id/polish/html
Side-by-side original-vs-polished diff with lint badge,
Apply button (disabled when polished == original or lint fails)
Recent runs → GET /dashboard/skills/:id/runs
Last 50 skill_runs with status / score / agent / run_id;
each row has ☆ Tag exemplar / ★ Exemplar disabled
🛡 Security → GET /dashboard/skills/:id/security
Last 30 security scan rows with verdict, source attribution,
collapsible per-failure detail with severity color-coding
☆/★ button → POST /dashboard/skill-runs/:run_id/tag-exemplar/html
Operator clicks ☆, browser prompt asks for note, server
stores tag + note + timestamp, swaps the row inline
Fixes:
- 30s skills auto-poll now pauses while ANY .skill-edit-zone is non-empty
so the polish/runs/security expansion isn't wiped out mid-interaction
- HTMX URL-encodes the HX-Prompt header (HTTP can't carry raw non-ASCII).
Server now decodeURIComponent's it before storing — without this fix
the operator's note lands in PG as "Hello%20%E2%80%94" instead of
"Hello —". Caught DURING browser click-through (PG row inspection).
Verification — all surfaces clicked through Playwright with real telemetry
on Test_Agent_Coordination's developer-debugging-methodology@1.1@global:
- 10 real skill_runs render in the runs panel
- ☆ click → button swap to ★ Exemplar [disabled] → PG row updated with
decoded note, tagged_by=operator, tagged_at=NOW()
- ✨ click → polish preview renders with side-by-side diff, lint badge,
Apply button correctly disabled for already-good descriptions
- 🛡 click → 2 prior scan rows render with 8/8 PASS verdict and
operator source attribution from the v0.23.0 API E2E
The browser pass also exposed the URL-encode bug. That's the value of
real user-level testing over backend-only verification — bugs surface
where the user actually clicks.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments