Skip to content

Nightly audit: 8 issue(s) - #63

Merged
slittycode merged 1 commit into
mainfrom
claude/nightly-audit-2026-05-19
May 18, 2026
Merged

Nightly audit: 8 issue(s)#63
slittycode merged 1 commit into
mainfrom
claude/nightly-audit-2026-05-19

Conversation

@slittycode

Copy link
Copy Markdown
Owner

Summary

Automated nightly audit against the Phase 1 ground-truth invariant.

  • Vitest: 426/428 pass (2 correctly skipped via decision-gate snapshot guards)
  • Playwright smoke: 37 pass / 8 unexpected fail / 1 skipped / 0 flaky
  • Phase boundary violations: 0 confirmed, 0 new review items

The eight Playwright failures are independent of the Phase 1 contract:

  • Seven share page.goto('/', { waitUntil: 'networkidle' }) against the shared reused Vite dev server (webServer.reuseExistingServer: true) and look like server/HMR flakiness — the simplest one ("header shows SonicAnalyzer brand", no upload, no stubs) still times out at 90 s.
  • One (upload-phase1-live.spec.ts:44) needs a real backend to finish analyzing silence.wav within 35 s.

Notable: upload-estimate-phase1.spec.ts:13 has now failed in two consecutive nightlies (2026-05-16, 2026-05-19) without code change — repeats the 2026-05-16 suggestion to inspect recent changes to analysisRunsClient.ts / analyzer.ts for an interpretation-fetch gating change.

The 2026-05-16 estimatePlr boundary review item was closed by adb715ef and verified read-only in this audit. The three previously failing decision-gate suites were skip-gated by e9e97e1e and now correctly fall under the 2 skipped count.

Full triage in audits/nightly-2026-05-19.md. No auto-fixes (per audit policy).

Test plan

  • Read the boundary-audit section to confirm the chain-of-custody invariant remains intact
  • Triage the eight Playwright failures using the per-file pass/fail breakdown and the waitUntil: 'networkidle' hypothesis
  • Decide whether upload-phase1-live.spec.ts should move to a live-only config alongside upload-phase2-live-gemini.spec.ts
  • Decide whether the second consecutive upload-estimate-phase1.spec.ts failure warrants a git blame walk on analysisRunsClient.ts / analyzer.ts

🤖 Generated with Claude Code

Vitest 426/428 (2 correctly skipped). Playwright 37 pass, 8 unexpected fail.
Seven of the failures share `await page.goto('/', { waitUntil: 'networkidle' })`
against the shared reused Vite dev server and look like server/HMR flakiness
(simplest case: "header shows SonicAnalyzer brand" with no upload still times
out at 90 s). The eighth is upload-phase1-live.spec.ts requiring a real
backend response within 35 s on a silence.wav analysis.

Phase boundary audit clean: zero assignments to phase1/measurement_result
across apps/ui/src and Phase 2/3 backend modules. The 2026-05-16 estimatePlr
review item was closed on adb715e and re-verified read-only here.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

@slittycode slittycode left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: APPROVE

Summary

Docs-only PR adding audits/nightly-2026-05-19.md, the third entry in an established audit series. Unit tests green (426/428, 2 correctly skipped). Phase boundary invariant clean — the regex audit methodology and the manual per-file enumeration in §3 are both sound, and the estimatePlr open item from 2026-05-16 is correctly confirmed closed. No production code touches.

Findings

Worth considering

  1. networkidle scope understated. The suggested fix in §2 says "the five networkidle waits are at [error-states:340/465, file-validation:350, ui-details:360/396, upload-estimate-phase1, upload-phase1-midi:84]". A grep across the smoke directory shows waitUntil: 'networkidle' in at least 20 locations across error-states, file-validation, upload-estimate-phase1, upload-phase1, upload-phase1-live, phase2-degradation, responsive-layout, and upload-phase1-midi. Anyone acting on suggestion #1 will miss most of the instances — the fix scope should say "all occurrences repo-wide" rather than listing five.

  2. upload-estimate-phase1.spec.ts:13 is 2-for-2 across consecutive nightlies. The audit correctly flags this under "re-check" and the git blame recommendation still stands. Worth emphasising: at 100% failure rate across all observed runs, this is trending toward "latent regression" rather than flakiness, and treating it as "intermittent" may be letting a real gating change go undetected longer than necessary.

  3. _fix_grammar_in_record line number: audit cites line 1037; actual def is at 1034. Three-line slip, probably citing a line inside the function body. Cosmetic but will mislead a reader navigating by line number.

Test results

426 pass / 0 fail / 2 skipped (vitest). 37 pass / 8 fail / 1 skipped (Playwright). All 8 Playwright failures are infra-level (7× networkidle HMR sensitivity, 1× real-backend timeout) with no production-code causation identified.

Phase boundary check

Clean. The field-assignment regex scan returned zero matches in production code. Per-file manual review in §3 covers all Phase 2/3 backend modules and the relevant frontend services, with correct identification of the test-fixture false positive at test_sample_generation.py:106. No new review items.


Generated by Claude Code

@slittycode
slittycode merged commit 5bca498 into main May 18, 2026
2 checks passed
@slittycode
slittycode deleted the claude/nightly-audit-2026-05-19 branch May 18, 2026 21:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant