Skip to content

fix(ci): make owned-fork runners and PR-size capture portable - #2

Merged
rwasayc merged 7 commits into
workbench/android-sshfrom
ci/pr-size-bounded-read-v1
Nov 13, 2026
Merged

rwasayc merged 7 commits into
workbench/android-sshfrom
ci/pr-size-bounded-read-v1

Conversation

@rwasayc

@rwasayc rwasayc commented Nov 13, 2026 •

Copy link
Copy Markdown
Owner

The owned fork has no registered Blacksmith runner, and its base-owned PR-size script exceeded Node's default output buffer on the main PR. This prerequisite uses GitHub-hosted ubuntu-24.04/macOS-15, isolates the migrated concurrency cohort, and bounds both numstat captures to 16 MiB. Existing jobs, matrices, tests, conditions, permissions, timeouts and size thresholds remain intact. Node heap is 2048 MiB and Rayon/UV use two threads; hardware fit requires actual hosted results.

The original full hosted gate exposed baseline blockers. Backport only the upstream TestClock fix for the removed-directory usage case, preserving its August transcript mtime, queried empty window and all assertions. Production retention is unchanged. Recognize only Git's exact C-locale invalid-gitfile diagnostic as an identity mismatch that keeps the worktree. Preserve other Git errors as failed, with permission/unrelated-fatal/non-prefix negative cases and no-deletion checks.

Mobile's original ktlint formatting issues were fixed without changing tokens. Its next actual failure exposed detekt ComplexCondition and SwallowedException. Name the same current-job profile/generation predicate inside the original stateLock, retaining the nonnull/no-queued conditions. Use the existing three-argument TunnelException constructor to retain a native cause while preserving CONFIG and the fixed safe message. The entire JS Promise.reject bridge is byte-identical: category/message/null only. No cause, stack or profile data is added to the bridge or logs; no suppression, threshold, permission or thread policy is added.

Final diff is seven files: three workflows, UsageService.test.ts, T3SshModule.kt and storageCleanup.ts/test.ts. No main-PR product history, model-facing context/budget, deployment/EAS/release behavior, upstream write or global runner permission change is included. PR1's working tree and managed/untracked ownership stay intact through a private index.

Validation: explicit-parent git diff --check and static exact-change/bridge/lock-bound predicate checks passed; no local heavy/native tests ran. At c429, Server7 succeeded; Server1 failed the broken-gitfile assertion, and Mobile failed detekt after SwiftLint and ktlint succeeded. Those failure records remain. At 435ef24, the three new negatives received TestContext in the second @effect/vitest callback parameter, causing both TS2339 and runtime stderr.toLowerCase TypeError. Destructure the first row argument instead, preserving all three stderr literals and no-deletion assertions, and format the one long assertion to the existing file style. New head 047fbb5 requires the original full hosted gates; no manual rerun, skipped gate or weakened assertion is used. The bot's transfer measurement is only its fixed upper-bound check without a main baseline; aggregate Check and skipped uploads are not full-CI evidence.

Codex gpt-6.1-sol high, T3 Code Codex harness.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS labels Nov 13, 2026
@rwasayc rwasayc changed the title fix(ci): bound PR size diff capture for large fork changes fix(ci): make owned-fork runners and PR-size capture portable Nov 13, 2026
@github-actions github-actions Bot added size:M and removed size:XS labels Nov 13, 2026
@github-actions github-actions Bot added the 📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. label Nov 13, 2026
@github-actions

github-actions Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ No successful main baseline artifact is available yet. This run establishes the initial measurement.

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: unavailable · PR result: 047fbb5 · 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.

陈焕翔 added 3 commits November 13, 2026 09:26
Recognize only Git's C-locale invalid-gitfile diagnostic as a
repository identity mismatch. Preserve failure reporting for unrelated
Git errors and verify neither path removes the worktree.
Keep the same lock-bound coalescing predicate and use the existing
native-cause constructor without changing the fixed JS rejection.
Destructure the single row passed by @effect/vitest instead of treating
its TestContext as stderr, and wrap the existing long assertion.
@rwasayc
rwasayc merged commit a8d2e35 into workbench/android-ssh Nov 13, 2026
27 of 28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. size:M 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