Repository navigation
Description
Outcome
Provide reproducible evidence that the integrated Code Review workspace matches R1–R4 and behaves correctly through navigation, remote diffs, native review, drafts and explicit actions. A passing image comparison alone is not completion; a mock run is not live GitHub/native-provider evidence.
Parent: #319. Start dependency: #320's accepted reference/fixture contract; test design can begin immediately after it. Completion dependencies: accepted implementations/evidence from #321, #322, #323, #324, #325 and #326. Every implementation issue still owns its own tests; this issue integrates and independently audits them rather than postponing testing until the end. Do not create a dependency from those producers back to this issue.
Context / entry points
Read current AGENTS.md, the live #319 graph, apps/desktop/package.json, existing Playwright configuration/layout tests and docs/status.md. Audit baseline cb33db5df00e235f68d36b5fac556dc30e0851f2 already has ui:capture/ui:compare scripts and substantial conversation-fixture work under #281. Extend appropriate existing harnesses; do not create a second browser, transcript or test-reporting platform.
Proposed additions: a focused apps/desktop/e2e/code-review-acceptance.spec.ts or several small specs beside existing e2e tests, approved reference/golden assets in the existing convention, and a dated docs/reviews/ evidence record. Confirm exact existing paths in #320's source map. Do not publish original private screenshots or real PR payloads without approval.
Items to do
- Build an acceptance matrix mapping every R1–R4 region/control and each producer AC to a test/evidence owner. Mark native window chrome, voice, proprietary review integrations and other explicitly deferred controls as documented deviations, not secretly implemented functionality.
- Make deterministic captures through the actual Electron application and main/IPC fixtures: fixed synthetic PR data, timestamps, locale, theme, approved fonts, viewport and DPR. Calibrate original image crop/scale with [CR-1][P1] Establish the Code Review reference contract and deterministic fixtures #320. Browser-only component snapshots must be labeled as such.
- Reach R1 by navigation, R2 by scrolling, R3 by opening the instructions popover and R4 through split/Changes controls. Compare panel boundaries, text hierarchy, card density, independent scrolling and composer clearance. Use screenshot assertions plus behavioral assertions and human review of meaningful differences; never mask the main content or auto-accept a new golden to hide a defect.
- Exercise a complete fixture journey: inbox → overview/activity → file/context selection → explicit native-CLI fixture review → inspect stale/current findings → draft → confirmation → mocked external write → reconciliation/restart. Assert zero actual external writes and zero paid inference in the default suite.
- Add integrated adversarial/race cases: wrong-account delayed responses, two repositories sharing a PR number, revoked access, head changes, incomplete pagination/diffs, unsafe Markdown/URLs/paths, injected review instructions, provider stop/unknown completion and lost responses to writes. Assert no secret leakage, local Discard routing, duplicate provider start or replayed mutation.
- Verify keyboard navigation, visible focus, accessible labels/status, popover Escape/focus return, resizable panes, reduced motion and readable contrast. Capture 900×600, 1440×900 and the calibrated reference conditions. Record a separate human screen-reader pass; automated checks cannot stand in for it.
- Measure representative and stress fixtures on a named environment, including a large inbox, 1,000 changed files and a 3 MiB textual patch. Record actual request count, mounted content/memory and navigation/scroll responsiveness. Agree numerical regression budgets from measured baseline before enabling them as gates; distinguish these product fixtures from provider API limits.
- Run existing local Changes/discard, shell/tab, conversation, native approval and recovery regressions. Route defects to their existing owner/child with a minimal reproducer; avoid a broad final-stage rewrite or duplicate follow-up issue when a matching owner already exists.
- Produce an evidence matrix with separate columns for Node/model tests, main/IPC integration, real Electron, authenticated read-only GitHub, authorized live native provider, explicitly authorized disposable-target writes and human accessibility review. Missing authorization/environment leaves a named open gate, never a fabricated pass.
- Document staged enablement: read-only navigation/overview/diffs first; native review and GitHub writes have independent capability gates. Document a rollback that disables new capabilities safely without deleting private drafts, replaying actions or claiming to cancel an already accepted remote write. Activation/release needs its own authorization.
Acceptance criteria
- AC1: R1–R4 are reproduced by an interactive test journey in real Electron, with approved visual differences and reference provenance recorded.
- AC2: every in-scope visible control has behavioral evidence or an explicit unavailable state; no static fake-working controls or unrelated private screenshot data ship.
- AC3: identity/revision isolation, injection resistance, incomplete-data handling and at-most-one local dispatch/unknown-outcome recovery pass integrated regression tests.
- AC4: local Changes, navigation and native conversation/approval behavior remain intact; unresolved regressions block readiness.
- AC5: measured performance and keyboard/contrast checks have reproducible evidence. The human screen-reader gate is completed or explicitly remains open.
- AC6: the final matrix separates fixture, authenticated, live-provider and live-write evidence and ties each result to its actual SHA/environment. No unrun test is reported as passing.
- AC7: a reviewer can reproduce the result from the documented setup/commands and identify exactly which capabilities are ready, blocked or deliberately deferred. No merge/deployment is performed by this acceptance task without separate authority.
Validation / handoff
Run focused e2e specs, then repository-required pnpm build && pnpm test and pnpm test:e2e. Inspect the existing ui:capture and ui:compare scripts before using them for this feature; do not assume they automatically cover new views. Preserve final screenshots/traces outside directories overwritten by later Playwright runs. Record full SHA, OS/Electron/browser/native-CLI versions, fixture revision, viewport/DPR, exact commands/results, approved deviations, risks and remaining manual gates in docs/reviews/ and docs/status.md.
Sources: #319; Playwright screenshot comparisons, Electron security, and the existing #281 acceptance work. Follow current official documentation for concrete test APIs.
Long-running goal prompt
Complete CR-8 as the independent integration and acceptance pass for #319 in TypeSafeAI/modex. Read the live issue graph, #320's accepted reference contract, all producer PRs, current source and scoped AGENTS.md. Verify your owned worktree and the exact build SHA. Reuse existing Electron/Playwright/native-CLI fixtures. Exercise R1–R4 through actual controls and verify behavior as well as pixels. Test account/head races, incomplete data, hostile content, stop/restart, draft isolation and uncertain external writes without real paid requests or mutations in the default suite. Recheck local Changes and conversation/approval regressions. Inspect screenshots, keyboard/narrow layouts and measured stress behavior; never auto-accept goldens or call mocks live evidence. Record separate authenticated, provider, write and human accessibility gates; use existing authority for canaries only when explicit. Fix only bounded defects within your ownership, otherwise hand the reproducer to the right child. Checkpoint SHA, commands/results, evidence paths, risks and one next action. Finish with a reproducible readiness matrix and signed reviewable changes, not an unsupported all-done claim. Do not activate, merge or release.
Follow-up / resume prompt
Resume CR-8 by reading current producer heads, the evidence matrix and the latest checkpoint. Verify worktree ownership and rebuild/rerun a focused smoke test; invalidate evidence whose source, fixture or environment changed. Continue the smallest remaining integrated gate rather than repeating the entire plan. Do not overwrite screenshots/traces before preserving final evidence, and do not rerun uncertain provider/write canaries automatically. Keep unavailable live and human checks explicit. Update the exact readiness/blocked/deferred matrix and one next action; no automatic golden acceptance, merge or release.
Independent review prompt
Audit the final evidence matrix against the actual current SHA and interactive R1–R4 flows. Reproduce representative identity/head races, hostile input, incomplete diffs and restart-after-unknown-write cases. Inspect meaningful visual differences and keyboard/narrow behavior yourself. Verify local regressions and that mock, Electron, authenticated, native and human evidence are not conflated. Report remaining blockers and precise capability readiness; do not approve from the implementer's summary alone.
Activity
BunsDev commentedon Oct 20, 2026
The CR-1 contract is on
mainas43d5b9c(#334). Bind to these files at that commit:apps/desktop/src/shared/code-review.ts(the contract)apps/desktop/test/fixtures/code-review.ts(synthetic fixtures)docs/design/code-review.md(source map, references, inventory, open decisions)For CR-8:
Coven-Harness: Claude Code / claude-opus-5-5
mariscate commentedon Oct 22, 2026
Refreshed goal prompts — 2026-10-22 (
mainat0e674e7)Where it stands: no acceptance spec yet. The harness pieces exist:
e2e/code-review-navigation.spec.ts,e2e/code-review-ipc.spec.ts, theui:capture/ui:comparescripts, and the reference manifest indocs/design/code-review.md(R1 at 1×, R2–R4 at 2×; the references themselves stay off-repo). Evidence already recorded:Not started: #323, #324, #325, #326.
Long-running goal prompt
Follow-up / resume prompt
Add the CR-8 acceptance matrix, Electron journeys and cross-slice reg…
BunsDev commentedon Oct 22, 2026
CR-8 checkpoint, 2026-10-22
0e674e7(main). Branchcr8-acceptanceatac5fc58adds tests and docs only, in Add the CR-8 acceptance matrix, Electron journeys and cross-slice regressions (#327) #372. It is not merged.docs/reviews/2026-10-22-cr8-acceptance-matrix.md. It has rows for C01–C82 and the ACs of [CR-2][P1] Add a main-owned, revision-aware GitHub PR read service #321–[CR-7][P1] Add explicit review actions and head-guarded GitHub merge #326. CR-3's controls have fixture evidence (F-nav, andF-prodthrough the production read path with a synthetic gh). Rows owned by [CR-4][P1] Reconstruct PR overview, activity, checks, stack and preview cards #323–[CR-7][P1] Add explicit review actions and head-guarded GitHub merge #326 are pending.ui:compare --captures; 7 cross-slice regressions; keyboard and contrast checks; measurements on Mac17,6; and a VoiceOver checklist for Val.A-*evidence is from pre-merge candidates, so this needs Val's go-ahead.~/Desktop, the path the manifest records. Where are they now?Coven-Harness: Claude Code / claude-opus-5-5
BunsDev commentedon Oct 22, 2026
CR-8 update: Val authorized a read-only authenticated re-run on
main(0e674e7) on 2026-10-22. The CR-2 service smoke against #367 (head0866265) passed: 17 GET requests, 7 of them 304s;stackunavailable as designed; the foreign-account and unknown-repository keys were refused. CR-3's authenticated navigation probe passed all six checks. It is recorded asA-mainin the matrix (#372 at1a3aa18). Still open: the R1–R4 reference comparison (waiting on Val for the references' new location), the human VoiceOver pass, and R2/R3 (#323, #325).Coven-Harness: Claude Code / claude-opus-5-5
BunsDev commentedon Oct 23, 2026
Refreshed goal prompts — 2026-10-23 (
mainat203a350)On
mainalready:ui:capture/ui:comparescripts;docs/design/code-review.md.The acceptance matrix itself has not landed.
In review: #372 (
cr8-acceptance, head92ce082). Tests and docs only. All checks pass and it merges cleanly. It adds:code-review-journeyspec: inbox → R1 → R4;code-review-regressions: seven cross-slice cases;code-review-a11yandcode-review-measure, run on Mac17,6;main0e674e7, recorded asA-main, on Val's authorization.Still open:
~/Desktoppaths, and Add the CR-8 acceptance matrix, Electron journeys and cross-slice regressions (#327) #372 asked Val where they are. There is no answer yet. feat(code-review): add PR overview, activity and evidence cards #393 and the CR-5 evidence report the same.52375d4is ready for the journey's R2 step.cr5-remote-diffsworktree (head0fd82e1).Long-running goal prompt
Follow-up / resume prompt
docs(code-review): record the 2026-11-01 full-suite and VoiceOver see…
docs(code-review): fix a matrix anchor and the seed launch note (#327)
BunsDev commentedon Nov 1, 2026
CR-8 checkpoint, 2026-11-01 (
mainat0a8c513)PR: #472 (
cr-gates-lane-c). Docs and evidence only. It adds the refreshed matrix.Commands and results (Mac17,6, macOS 27.2, load average about 40):
Code Review unit tests: 224 tests, 223 passed, 1 skipped (Windows only).
MODEX_CR6_NATIVE=1native denial: 6 of 6 passed on Claude Code 2.1.316 and codex-cli 0.166.0.Focused Playwright run, 51 of 51 passed:
The journey's R1–R4 captures carry CR-3 acceptance re-run on main: populated journey captures and evidence (#322) #464's populated checks and diff. They are kept outside the repository.
pnpm build: passed.pnpm test: exit 0, 2,277 passed, 26 skipped.pnpm test:e2e: exit 1: desktop 477 passed, 7 skipped, 1 failed. The failure isapp.spec.ts:729(accessibility), a strict-mode violation with two "Chat details" dialogs, at a load average near 100. It is not a Code Review spec, and it passed 1/1 alone. The chain stopped before the site stage, which passed 7/7 when run separately. This is not a green local full run. The hostedunit + e2e (macOS)check passed onc1f74c7.Evidence by kind:
The refresh also adds:
modex.codeReviewswitch;Waiting on Val: VoiceOver, the R1–R4 references, the two repositories, decisions 1, 5, 6 and 7, and the switch. The batched ask is on #319.
Next action: fold the a11y spec's required set over the CR-4 to CR-7 controls (C76), in a test-only PR.
test(code-review): measure composer clearance beside the inline Ask s…
docs: record the C61 follow-up's full run (#319, #327)