Skip to content

fix(ci): main's lint and tests pass again - #54

Merged
pseudoseed merged 1 commit into
mainfrom
t3/fix-main-ci
Oct 29, 2026
Merged

pseudoseed merged 1 commit into
mainfrom
t3/fix-main-ci

Conversation

@pseudoseed

Copy link
Copy Markdown
Owner

Main's CI failed on every push. 2 jobs caused it:

  • Lint: 54 errors in fork code, all from upstream lint rules that arrived with the 0.0.76 sync.
  • Test: 6 fork tests in scripts/mobile-native-client.test.ts hit upstream's Apple-silicon check on CI's x64 runners. They pass on an arm64 Mac, which is why the local suites missed them.

Fixes:

  • Comments: deleted the ones the comment rule rejects, rather than trimmed. No comments in code unless absolutely needed.
  • Dead code: deleted issueProviderRequirement in packages/contracts/src/issue.ts. Nothing has called it since it was added.
  • Effects: the 11 flagged effects each hold a native, DOM or server resource, so each keeps its effect with the reason the rule asks for. Direct push now reads environments through useEffectEvent, so its effects depend only on the signals that re-run them.
  • IssuesPanel: dropped 8 manual memos; the React Compiler memoizes the component.
  • Browser tests: RightPanelTabs and SourceClearCooldown use the shared render helper.
  • Copy: the attention notification title uses a colon instead of an em dash.
  • Test host: the native-client test pins arm64, as it already pins darwin.
  • sync-upstream skill: runs the whole-repo lint (vp run lint), and a sync PR's CI must pass.

Proof:

  • vp run lint: exits 0. The 3 warnings left are in files identical to upstream.
  • Native-client test: pinned to x64 it fails with CI's exact error; pinned to arm64, 8 of 8 pass.
  • vp run check:changed: format, lint, knip, typecheck (32 packages) and 76 tests pass.
  • Rewritten browser tests: 10 of 10 pass.
  • Web, live:
    • Issues panel: list, search, sort, clear and detail work.
    • Copy on select: copied exactly the dragged text.
    • Attention notification: reads "PseudoCode (Dev): Approval needed".
  • iOS, live (iPhone 18 Pro simulator):
    • Turning "Use my servers" on registered with the server ("APNs setup needed on this server"; the test server has no Apple keys).
    • Turning it off sent the unregister. The server trace shows DirectPush.status and DirectPush.unregister, both successful.

Not covered: the Mobile Native Static Analysis job on main was cancelled because GitHub had no macOS runner ("not acquired by Runner"). A rerun is the fix if it happens here.

🤖 Generated with Claude Code
Model: Claude Opus 5.5, harness: Claude Code in PseudoCode

Main's CI failed on every push. Lint found 54 errors in fork code, all from
upstream lint rules that arrived with the 0.0.76 sync. 6 tests in
scripts/mobile-native-client.test.ts failed on CI's x64 runners, because the
fork's test reached upstream's Apple-silicon check without pinning the host.

- Delete the comments the comment rule rejects, rather than trim them.
- Delete issueProviderRequirement, which nothing ever called.
- State the reason on effects that hold native, DOM or server resources.
  Direct push reads environments through useEffectEvent, so its effects
  depend only on the signals that re-run them.
- Drop IssuesPanel's manual memos; the React Compiler memoizes it.
- Move 2 browser tests onto the shared render helper.
- Replace the em dash in the attention notification title.
- Pin arm64 in the native-client test, as it already pins darwin.
- sync-upstream now runs the whole-repo lint and requires CI to pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Oct 29, 2026
@github-actions

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

⚠️ The thread fixture changed, so impact percentages are not directly comparable to the main baseline.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire — 5.0 KiB — 6.8 KiB ✅
Codex Thread snapshot wire — 3.8 KiB — 4.9 KiB ✅
Codex Live turn WebSocket wire — 1.2 KiB — 2.0 KiB ✅
Codex Live turn WebSocket decoded — 21.6 KiB — 24.4 KiB ✅
Codex Live turn messages — 2 — 8 ✅
Claude Total thread wire — 5.0 KiB — 6.8 KiB ✅
Claude Thread snapshot wire — 3.8 KiB — 4.9 KiB ✅
Claude Live turn WebSocket wire — 1.3 KiB — 2.0 KiB ✅
Claude Live turn WebSocket decoded — 21.9 KiB — 24.4 KiB ✅
Claude Live turn messages — 2 — 8 ✅

Baseline: c7b6da7 · PR result: b38dcd0 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@pseudoseed
pseudoseed merged commit 1f5c51a into main Oct 29, 2026
25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant