amal66 puts guardrails under Mike's web refresh

The fork adds a safety net for the shared interface pieces that users encounter most often.

workflowinfrastructure

amal66 has introduced automated checks for the web application's common building blocks, reducing the need to rely solely on someone clicking through the product after every visual change.

The coverage now watches the small but widely reused parts of the experience: buttons, icons, citation controls, information grids and a reveal interaction. That matters because these are the pieces a broad interface refresh can quietly disturb. The setup is kept separate from the live product, and the reported checks and type review passed.

There is also a useful bit of candour: the information grid is not yet marked up in a way assistive technology would recognise as a table. The new check confirms that content appears, while leaving that accessibility issue clearly open rather than pretending it is solved.

So what Legal-product teams planning frequent interface changes should care because this makes regressions in familiar user journeys easier to catch before users do.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

2 commits from amal66/mike, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
4039b949 test: minimal vitest harness for backend and frontend QA Runner 2026-07-20 ↗ GitHub
commit body
Ported from amal66/mike#24 onto current main; lockfiles regenerated against
this tree. Adds vitest as a dev dependency with a `test` script in both
packages, excludes test files from the backend tsc build, and seeds one
suite per package (backend: downloadTokens, 12 tests; frontend: cn() utils,
8 tests). Verified locally: backend 12/12, frontend 8/8 passing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
a29e67de test: component and hook unit tests for the web app QA Runner 2026-07-20 ↗ GitHub
commit body
Ported from the amal66 fork (index: Open-Legal-Products/mike#205), adapted
to this repo's frontend/ layout and current component behavior. Adds the
jsdom + testing-library harness on top of the existing vitest setup:
vitest.config.mts (jsdom environment, @/ alias mirroring tsconfig paths,
dummy Supabase env for modules that build a client at import time) and
vitest.setup.ts (jest-dom matchers). New devDependencies: jsdom,
@testing-library/react, @testing-library/jest-dom,
@testing-library/user-event, @vitejs/plugin-react.

Ported suites (30 new tests):
- FileTypeIcon.test.tsx (11) - fileTypeKind mapping + icon rendering
- TRTable.test.tsx (1) - header/row render smoke test; the fork's ARIA
  role assertions (table/columnheader, "Tabular review" label) target
  fork-only markup - this repo's grid is div-based, so the test asserts
  rendered content instead
- button.test.tsx (4), pill-button.test.tsx (8), cite-button.test.tsx (3)
- useSmoothedReveal.test.ts (3) - passes against this repo's early-return
  snap behavior unchanged

Dropped (subjects don't exist here):
- HistoryDropdown.test.tsx - no tr-chat-panel/HistoryDropdown component
- applyAssistantStreamEvent.test.ts - no such module
- useProjectsQuery/useTabularReviewsQuery/useWorkflowsQuery tests -
  react-query is fork-only
- lib/toast.test.ts - no frontend/src/lib/toast.ts
- useAssistantChat.parsers.test.ts - the parser helpers exist inside
  useAssistantChat.ts but are not exported, and the fork's extracted
  module doesn't exist here

Verified: frontend npm test 38/38 passing (30 new + 8 pre-existing cn()
utils tests); npx tsc --noEmit clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-1339.md from inside the repo you want the changes in.

⬇ Download capture-thread-1339.md