Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
12cce79
docs(agents): require npm run format before pushing
claude Jul 30, 2026
9b7cec2
docs(ledger): record PR #1394 CI green after format + main sync
cursoragent Jul 30, 2026
8781932
Merge remote-tracking branch 'origin/main' into claude/top-search-des…
cursoragent Jul 30, 2026
2ac85d5
docs(agents): require committing the formatter output, not just runni…
claude Jul 30, 2026
c0647ae
fix(guard,test): check pushed blobs, and require a rendered mount
claude Jul 30, 2026
fc166c8
fix(guard): block when Prettier cannot check the push
claude Jul 30, 2026
055df85
fix(test): stop counting a named re-export as a rendered mount
claude Jul 30, 2026
25102a4
Merge origin/main into claude/top-search-design-mockups-w53znc
claude Jul 30, 2026
20235cc
fix(guard): verify formatting in a checkout of the pushed commit
claude Jul 30, 2026
bee4680
Merge origin/main into claude/top-search-design-mockups-w53znc
claude Jul 30, 2026
0ce9f5e
fix(test,guard): resolve band reachability by reach, not presence
claude Jul 30, 2026
4e1fe6d
Merge branch 'main' into claude/top-search-design-mockups-w53znc
BigSimmo Jul 30, 2026
7c5c613
fix(test,guard): handle the object-wrapper lazy shape, discarded impo…
claude Jul 30, 2026
de2d16d
Merge remote-tracking branch 'origin/claude/top-search-design-mockups…
claude Jul 30, 2026
0258f33
fix(guard,test): pushed-lockfile Prettier parity, and skip type-only …
claude Jul 30, 2026
d9cc90b
Merge branch 'main' into claude/top-search-design-mockups-w53znc
BigSimmo Jul 30, 2026
e869cb9
fix(test): do not count identifiers in type positions as component re…
claude Jul 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,12 @@ When a branch or PR review completes, record it with `npm run ledger:append -- -
- For non-trivial source/config/test changes, prefer `npm run verify:cheap` as the first broad gate and `npm run verify:pr-local` before PR handoff when the change is ready. The PR-local gate runs the full unit suite once, then conditionally adds the production build/client-bundle scan and RAG fixture/manifest validation. Browser, dependency-audit, Docker/Supabase replay, and provider-backed checks remain separate gates. Use `npm run verify:pr-local -- --dry-run --files <comma-separated paths>` to inspect selection without running commands. The broader `--extended` plan is dry-run only unless explicit approval is reflected by `ALLOW_EXTENDED_PR_LOCAL=true`.
- Let the repository run coordinator control cross-worktree verification. It permits at most two focused Vitest/read-only typecheck leases from different worktrees; full Vitest, coverage, lint, build, Playwright, and live-provider tests remain exclusive. Do not install while a repository test, build, lint, typecheck, or server command is active. Avoid aggressive short-interval polling, and do not repeat an unchanged full gate after it passes.
- For UI, frontend, browser, routing, styling, reduced-motion, or forced-colors changes, run `npm run ensure` before browser work and use `npm run verify:ui` as the Chromium UI gate. For phone-chrome changes, run `npm run verify:phone-chrome` first: it checks installed-lock parity, selects the affected browser/PWA owners and exact journeys, and adds `verify:ui` last only when shared chrome foundations make the broad gate necessary. Inspect uncertain scope with `-- --dry-run`.
- **Run `npm run format` and commit the result before every push.** `format:check` is in neither `npm run test`, `npm run typecheck`, nor `npm run lint`, so the ordinary loop reports green while `Static PR checks` and `ci/circleci: verify` both fail on `prettier --check .`. Three CI failures on 2026-07-30 came from exactly this. Two traps beyond simply running it:
- **Formatting without committing does nothing for the push.** A push sends commits, not your working tree, so formatting after committing leaves the unformatted blob on the branch. Amend or add a follow-up commit.
- **A per-file check is not the repository-wide check.** `prettier --check <file>` on the source file you edited passes while a doc or ledger edit in the same push fails; that was the missed file twice out of three.

`.githooks/pre-push` carries the guard, and since 2026-07-30 it checks the pushed commit where CI checks it: `guard-push.mjs` puts the pushed SHA in a temporary `git worktree` with `node_modules` linked in and runs Prettier there, so neither the working tree's contents nor its prettier config can vouch for the commit, and a dynamic `prettier.config.*` still loads. A push that changes prettier policy (`.prettierrc*`, `.prettierignore`, `.editorconfig`, or a `package.json` carrying a `prettier` field) escalates to a whole-tree `prettier --check .`, because a policy change alters the verdict for files the push never touched. But `core.hooksPath` is set by this checkout's `npm install`, so an agent pushing from its own environment bypasses the hook entirely and only CI catches the break — which is why the rule above is still a rule.

Comment thread
coderabbitai[bot] marked this conversation as resolved.
- For release or handoff confidence, use `npm run verify:release`; this includes the full Playwright project set.
- For clinical ingestion, answer generation, source governance, privacy, production-readiness, or environment changes, run the smallest relevant domain check plus `npm run check:production-readiness`.
- For pull requests that touch ingestion, answer generation, search/ranking, source rendering, document access, privacy, production env, or clinical output, complete the clinical governance preflight in `.github/pull_request_template.md`.
Expand Down
1 change: 1 addition & 0 deletions docs/branch-review-ledger.md
Original file line number Diff line number Diff line change
Expand Up @@ -1313,6 +1313,7 @@ Records before 2026-07-28 were written by hand and had drifted: 146 lines carrie
| 2026-07-30 | claude/top-search-design-mockups-w53znc | 7577a1ea60ab5f0918885f90e849bbac754234b1 | PR #1394 search-results-band-adoption + #096/#115 | No P0/P1. Disposition1 partial: isAlwaysStandaloneShellPath fixes services/etc; /tools still layout-false-positive (P2). Disposition2 verified: import-as-rendered deferred as #115 (P3). #096 closure text accurate for root-path; row still open with stale Still-live clause. | vitest tests/search-results-band-adoption.test.ts 6/6; offline gutting repro tools vs services; static read search-route-ownership + outstanding-issues |
| 2026-07-30 | PR #1394 / `claude/top-search-design-mockups-w53znc` | `8c39158d99876338613d5bb3195847fd253ef5ff` | CI/review closeout: /tools page-only roots + thread disposition | FIXED. Layout false-positive for `/tools` closed via `isStandaloneModeHomePath` in reachabilityRoots. Import-as-rendered finding left as `#115` (pre-existing; lint catches the plausible slip). Both Codex threads dispositioned. Merge clean vs main. | vitest adoption 6/6; full unit 4451 passed / 4 skipped; typecheck; prettier; Bugbot pr-bugbot |
| 2026-07-30 | PR #1394 / `claude/top-search-design-mockups-w53znc` | `d658f120253ac0a2dbfe1c9b1a14c6a0744af14d` | CI/review closeout tip (supersedes 8c39158d row) | FIXED layout `/tools` false-positive; `#115` deferred with human disposition; threads resolved; merge-tree clean; CI settling | vitest adoption 6/6; full unit 4451/4; typecheck; Bugbot |
| 2026-07-30 | PR #1394 / `claude/top-search-design-mockups-w53znc` | `4a001efadedea6e8f8ad59ac7374ff9293cf7e14` | CI/review closeout after format + main sync | FIXED. Tip `66c5eb2c` failed Static PR / CircleCI solely on prettier padding in `#096` row; fixed on `61314887`. Main synced via `4a001efa` (shallow-clone inventory refusal from #1392). No open review threads; layout/`/tools` false-positive already fixed; `#115` remains deferred. No product-code change this pass. | format:check pass; Static PR pass; Unit coverage pass; PR required pass; CircleCI pass; vitest adoption 6/6; typecheck; Bugbot no open P0/P1; merge-tree clean vs main |
| 2026-07-28 | claude/pr-policy-caveman-fix-6875bb | ebd169358d1d1c9c596a486c12d51101cb5860ee | PR policy caveman-mode carve-out (docs-only) | Opened via reopened PR #1322; merged origin/main (real conflict in handoff SKILL.md resolved by hand, both step-6/step-7 edits kept); squash-auto-merge enabling | check:pr-policy self-test+workflow-guard PASS; prettier --check PASS; lint PASS 0 warnings; typecheck/test/rag:fixtures not run locally (cross-worktree heavy-lock contention, docs-only diff, deferred to hosted CI); no provider-backed checks |
| 2026-07-30 | claude/test-coverage-analysis-2vcd8a | 4f498b66a56b2a7eddde6c841a79621f23b59cc7 | PR #1398 babysit | BLOCKER CLEARED: CONFLICTING due to docs/outstanding-issues.md vs main (#115 band-adoption follow-up). Kept main #115 + next-id=116; preserved PR #109 single-branch/refspec update. Prior tip had no GitHub CI suite (only PR Policy/CircleCI) — push retriggered full CI. 0 review threads; 0 Bugbot findings. | verify:cheap PASS (432 files, 4467 passed \| 4 skipped); repo-hygiene 38/38; sweep:branch-ledger --no-fetch exit 0; format:changed PASS; Bugbot none; hosted CI re-triggered on tip |
| 2026-07-30 | PR #1394 / `claude/top-search-design-mockups-w53znc` | `0d47141fc030684299dcb265e3d853c93b9e2a91` | CI/review closeout — merged | MERGED as squash `0d47141f`. Prior tip `4a001efa` had required CI green after prettier fix `61314887` (Static PR/CircleCI red on `#096` padding) and main sync. Layout/`/tools` false-positive fixed; `#115` deferred; review threads resolved. Post-merge ledger-only follow-up. | hosted Static/Unit/PR-required/CircleCI pass on pre-merge tip; vitest adoption 6/6; typecheck; Bugbot no open P0/P1; merge-tree clean |
Expand Down
Loading