amal66 turns frontend quality checks into a real gate

A clean slate means new frontend mistakes now stop at review instead of becoming the next inherited backlog.

workflowinfrastructure

amal66 has cleared the fork's outstanding frontend quality-check errors and made that check mandatory before changes can pass its automated review.

This is deliberately unglamorous work, but it matters. The team removed avoidable type shortcuts and corrected a small text-rendering issue, while preserving the carefully timed behaviour behind log-in, chat switching, streaming responses, scrolling and page loading. Where changing that behaviour carried risk, the exceptions are recorded narrowly rather than weakening the rule for the whole product.

The result is a clearer operating standard: existing warnings remain visible, but any new error blocks a proposed change. That makes quality debt harder to quietly accumulate as the fork evolves.

So what Teams assessing Mike as a foundation should care because this is the kind of maintenance discipline that keeps a fast-moving legal product easier to change safely.

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
b20109ac ci: build and test workflow for backend and frontend QA Runner 2026-07-20 ↗ GitHub
commit body
Ported from amal66/mike#46 onto current main, extended for this tree:
backend job runs npm ci, tests (--if-present, so it is safe to merge in any
order relative to the test-harness PR) and tsc build; frontend job runs
tests, eslint as an advisory step (main currently carries 23 lint errors -
flip to blocking once burned down), and a production next build with
placeholder NEXT_PUBLIC_* env (verified locally that the build succeeds and
contacts nothing); evals job runs node evals/run.mjs when present, else
skips.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0740f656 fix: burn down frontend eslint errors; make CI lint blocking QA Runner 2026-07-20 ↗ GitHub
commit body
Takes frontend/npm run lint from 23 errors / 40 warnings to 0 errors /
40 warnings, then removes continue-on-error from the CI lint step so it
gates merges.

Errors fixed outright:
- @typescript-eslint/no-explicit-any (5, ChatView.tsx): dropped
  redundant (msg as any) casts - Message already declares files,
  workflow, and error with the exact shapes the props expect.
- react/no-unescaped-entities (1, support/page.tsx): "We'll" ->
  "We&apos;ll".

Targeted disables (17, all react-hooks/set-state-in-effect): every site
is an intentional effect-driven state pattern - SSR/hydration mount
gates (Modal, useSelectedModel), reset-on-prop/identity-change
(CaseLawPanel x3, ChatView chat switch, CitationQuotesHeader,
ChatHistoryContext logout, useFetchDocxBytes), sync fast paths of async
fetch/check effects (CaseLawPanel, MfaLoginGate x2), DOM-measured state
(ChatView scroll button, message-visibility restore), and timed UI
latches (PreResponseWrapper, TRChatPanel, AskInputPopup auto-submit).
Rewriting any of them would change runtime behavior, so each carries a
// eslint-disable-next-line with a one-line reason instead of a fix or
a repo-wide rule change.

CI: lint step is now blocking; comments updated to say the backlog is
at zero.

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-1340.md from inside the repo you want the changes in.

⬇ Download capture-thread-1340.md