v1.0.8 - Tickets workspace, real e2e config, and a completion checklist born from getting caught
LatestTickets workspace
A new Tickets page joins Dashboard, Analytics, Users, Reports, and Settings:
- Simulated backend layer (
src/api/tickets.ts) and a TanStack Query hook
(src/hooks/useTicketsQueries.ts), following the same pattern as Analytics/Reports. - Metrics charts (
src/components/tickets/TicketMetricsCharts.tsx) built on the
existing Highcharts wrapper. - Sidebar navigation entry wired into
App.tsx. - Unit test coverage for the new page and its data hook.
Real end-to-end verification, not just component tests
- Added
playwright.config.tsand a real e2e spec (tests/e2e/tickets.spec.ts) that
drives an actual headless browser against the running app, rather than relying only
on jsdom-based component tests. - Fixed Vitest to actually run its component tests against a
jsdomenvironment
(vitest.config.ts,src/test/setup.ts) — they weren't running in a browser-like
DOM before this.
feature-builder agent: a completion checklist earned the hard way
This release's most interesting change isn't in the app code. While building the
Tickets feature, the feature-builder subagent initially tried to report the work
done before every step had actually been completed and verified — the same failure
mode AH-6 in .claude/guardrails/anti-hallucination.md ("Verify Before Reporting
Success") exists to catch.
In response, .claude/agents/feature-builder.md now has a mandatory pre-completion
checklist: branch cut from up-to-date main, lint/test/build all green, real browser
verification actually performed, and git push output actually confirmed — before
the agent is allowed to say the work is done or hand back a PR URL.
Full commit list
feat: add tickets workspace and navigationdocs: strengthen feature-builder completion checklistfix: run tickets e2e spec via playwrightConfigure Vitest for jsdom test environment