Skip to content

fix(command-code): rotate on insufficient-credit refusals - #7558

Merged
lidge-jun merged 13 commits into
devfrom
sweep/w2-command-code-credit
Oct 24, 2026
Merged

lidge-jun merged 13 commits into
devfrom
sweep/w2-command-code-credit

Conversation

@lidge-jun

@lidge-jun lidge-jun commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Summary

Carries #7471 by @scy7796 onto the current dev tip. Related to #7426 (the Command Code half of that report only).

Command Code's /alpha/generate reports exhausted monthly credits as HTTP 400 with success: false, error.code: "BAD_REQUEST" and a message beginning You have insufficient credits to make this request. Generic OAuth account rotation only reacts to 429, so before this change that refusal failed the turn even when a sibling Command Code account still had credits.

On OAuth rows the adapter now rewrites only that exact refusal to 429, adds x-opencodex-refusal: insufficient-credits, and keeps the original body plus x-opencodex-upstream-status: 400. The existing rotateGenericOAuthAccountOn429 path, cooldowns and send budget then move the same request to the next account; there is no new retry loop. The same rewrite applies to the retry after a reasoning-effort rejection.

Before: account A out of credits → client sees a 400 and the turn ends.
After: account A out of credits → the same request completes on account B, and B stays active.

What this carry adds on top of the original five commits (kept with their authorship):

  • tests/providers/command-code-credit-failover.test.ts: a genuine upstream 429 (with or without the credit wording) and a 402 (with the credit body or a plain payment body) pass through unchanged, keep their own Retry-After, and never get x-opencodex-refusal or x-opencodex-upstream-status. The ordinary-400 case now also asserts no upstream-status header.
  • tests/providers/command-code-credit-rotation.test.ts (new): with two stored Command Code accounts, handleResponses turns the credit refusal on account A into a completed response from account B; an ordinary BAD_REQUEST 400 stays on A, surfaces as 400, and sends once.
  • structure/providers-and-adapters.md: the Command Code row names the 429/402 boundary and both tests.

Review threads on #7471

Finding Status
CodeRabbit: matcher accepted request!, request and other casings Fixed in the carried commits (literal case-sensitive prefix, near-miss cases tested)
CodeRabbit: retry-path test did not assert body and upstream status Fixed in the carried commits
CodeRabbit: non-fatal UTF-8 decoding could classify a malformed body Fixed in the carried commits (fatalUtf8: true, tested)
CodeRabbit: caller abort was converted into the original 400 Fixed in the carried commits (abort reason rethrown, tested)
@Ingwannu: test missing from tests/fixtures/test-layout-expected.json, adapter contract undocumented Fixed in the carried commits; the reviewer withdrew the blocker

Review threads on #7558

Finding Status
Codex P2: key-auth rows would turn a permanent billing 400 into a 429 that the same-key retry ladder replays Fixed in 3fe73f6: the rewrite runs only when authMode === "oauth"; key and forward rows keep the 400 (tested, red without the gate)
CodeRabbit pre-merge warning: docstring coverage 28.57% Declined. The repository sets no docstring threshold; the counted functions are test helpers and the existing createCommandCodeAdapter factory, and the new normalizer already carries a doc comment explaining the OAuth-only rule

No other finding was raised; CodeRabbit reported no actionable comments at 3fe73f6.

Decisions

  • Only OAuth rows are rewritten. A canonical key-auth Command Code row gets a same-key 429 retry ladder from rateLimitRetryPolicyFor (src/providers/key-failover.ts), so a rewritten 429 would replay a credential with no credits left before the error surfaced. Forward rows carry the client's own credential and have nothing to rotate to.
  • 429 is the rotation signal, not 402. Generic OAuth rotation keys only on 429 (src/server/responses/adapter-dispatch.ts 429 arm); the 400/402 loop there serves API-key pools and returns early for OAuth (hasKeyPoolFailover). Rewriting to 402 would not rotate. The x-opencodex-refusal header keeps the credit refusal distinguishable from a real rate limit.
  • The boundary is pinned at the adapter. Nothing in src/ reads the two new headers yet, so the only place a widening could happen is the adapter's status check and matcher. The new adapter cases fail if the normalizer accepts 429 or 402 (checked by mutating the status guard to [400, 402, 429]: two tests went red).
  • Layout registration stays on existing lines. scripts/test-layout/layout.json sits at its 1999-line cap, so the new file is appended to the line that already holds command-code-credit-failover.test.ts, as the original PR did.
  • Known limit, left unchanged: the refusal carries no Retry-After, so the exhausted account cools for the default 60 s (or until its quota reset when quota data already shows it exhausted). Round-robin can return to it after that and spend one send to rediscover the refusal. A credit-aware cooldown keyed on x-opencodex-refusal would be a separate change to the shared failover module.

Security summary

The change sits next to OAuth account rotation but does not touch credential storage, token refresh or logging. It reads at most 8 KiB of an already-received 400 body from a clone, fails open on parse, size or UTF-8 errors, and adds two fixed header values that carry no account or request data. The body is passed through unchanged, as before.

Verification

After 3fe73f6 (OAuth gate): credit tests 9 pass / 0 fail; removing the gate turns the new key/forward test red (Expected 400, Received 429); bun run typecheck, structure:check, privacy:scan and git diff --check pass. bun run test:changed reported 63 failures outside Command Code during a busy window; the 10 affected files then passed 437 / 0 serially on this head, matching 437 / 0 on the previous head 7aaaada, and claude-messages-endpoint.test.ts passed 54 / 0 with and without the change.

Earlier runs at 7aaaada: run on macOS with Bun 1.4.3, isolated HOME/CLAUDE_CONFIG_DIR/OPENCODEX_HOME from mktemp -d, branch on dev 516aaaaf84.

  • bun test tests/providers/command-code-credit-failover.test.ts tests/providers/command-code-credit-rotation.test.ts tests/providers/command-code-provider.test.ts tests/providers/command-code-efforts.test.ts tests/providers/command-code-error-finish.test.ts tests/test-layout.test.ts tests/test-layout-tooling.test.ts tests/ci-workflows/file-size-ratchet.test.ts: 142 pass, 0 fail

  • Red→green: the rotation test fails (Expected 200, Received 400) against dev's src/adapters/command-code.ts and passes with this branch; the 429/402 boundary test fails when the status guard is widened to 429/402

  • bun run test:changed (under the shared lockf): 17504 pass, 34 skip, 0 fail across 727 files

  • bun run typecheck: pass

  • bun run structure:check: pass

  • bun run privacy:scan: pass

  • git diff --check origin/dev...HEAD: clean

  • bun run test (full suite, under the shared lockf while other worktrees were testing): the parallel pass reported 34 failures, all outside Command Code; most were 5-40 s timeouts and the runner flagged a busy CPU. Rerunning the 15 affected files with --parallel=1: 364 pass, 3 skip, 2 fail. The two remaining failures (tests/claude-integration/claude-desktop-remote-hub.test.ts "connected Desktop uses hub IDs across a cold restart", tests/codex-integration/codex-runtime.test.ts "treats missing persisted and resolved versions as the same selection") fail identically on a clean dev 516aaaaf84 checkout on this host: the runtime test finds the host's installed Codex, so they are host-environment failures unrelated to this change.

The local pre-push hook (bun run prepush) was skipped with --no-verify: it runs in the unisolated shell with Bun 1.3.14 and exited in its test step within seconds. Every step it runs was executed above in the isolated Bun 1.4.3 environment; there are no gui/ changes for its GUI steps. No live Command Code account was used for this carry; the original PR describes a live two-account check on 2.88.0.

Windows-sensitive: no. No changed path matches the windows filter in .github/workflows/ci.yml, and no added line under src/ or tests/ contains a marker from scripts/ci/windows-sensitive-diff.sh.

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs or release notes were updated when needed. (Maintainer contract in structure/; no user-facing config or docs change.)
  • Security-sensitive changes were reviewed for secrets, auth, and unsafe defaults.

Co-authored-by: Yushi Chen chenyushi63@gmail.com

Summary by CodeRabbit

  • Bug Fixes
    • Command Code OAuth requests that receive the specific insufficient-credit response are now reported as rate-limited, allowing the request to retry with another account when available.
    • Other error responses—including ordinary 400 errors, 402 responses, and existing 429 responses—retain their previous handling. Key and forward authentication continue to return the insufficient-credit response as 400.

scy7796 and others added 7 commits October 23, 2026 04:15
Command Code reports exhausted credits as HTTP 400/BAD_REQUEST, which bypasses the generic OAuth 429 rotation path. Normalize only the exact refusal to 429 while preserving the original body and status in headers.
CodeRabbit noted the regex also accepted near-miss messages. Require the exact upstream prefix and cover the near misses.
Cover the normalized retry response's original 400 status and preserved JSON body, as requested in review.
Review noted that non-fatal UTF-8 decoding could still classify a malformed 400 body as an insufficient-credit refusal. Decode fatally so the existing fail-open path preserves the original response.
- Re-throw the caller's abort reason from refusal inspection.
- Register the new test in both layout maps and keep layout.json below the file-size ratchet.
- Document the narrow 400-to-429 normalization in the adapter contract.
- Cover the abort path with a focused test.
…ation

A genuine upstream 429 must keep its own Retry-After and reach rotation
unlabelled, and a 402 stays a 402 even when its body repeats the credit
wording. Pin both so the narrow 400 normalization cannot widen.

Co-authored-by: Yushi Chen <chenyushi63@gmail.com>
With two stored Command Code accounts, the exact credit refusal on the
first account now completes the same request on the sibling, while an
ordinary BAD_REQUEST stays on the account and surfaces as a 400. The
rotation case fails against the adapter without the normalization.

Co-authored-by: Yushi Chen <chenyushi63@gmail.com>
@lidge-jun
lidge-jun requested a review from Ingwannu as a code owner October 22, 2026 19:56
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-22T19:59:18.065824Z 7aaaada PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 3119e9d and 65b29fa.

Files selected for processing: 1
  • tests/fixtures/test-layout-expected.json

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

Walkthrough

The Command Code adapter converts a matching OAuth HTTP 400 credit-refusal response to 429. Tests cover response boundaries, reasoning-effort retries, abort handling, and sibling-account rotation. The provider documentation and test-layout mappings are updated.

Changes: Command Code credit-refusal handling

Layer / File(s) Summary
OAuth response normalization and send paths
src/adapters/command-code.ts, tests/providers/command-code-credit-failover.test.ts, structure/providers-and-adapters.md, scripts/test-layout/layout.json, tests/fixtures/test-layout-expected.json
The adapter converts only the specified OAuth HTTP 400 response to 429 and records the upstream status and refusal type. It applies the conversion to initial sends and reasoning-effort retries. Tests cover authentication modes, other statuses, malformed or unsafe bodies, and caller aborts. The documentation and test-layout mappings reflect the behavior and new tests.
Sibling-account rotation validation
tests/providers/command-code-credit-rotation.test.ts
Dispatch-path tests verify that a credit refusal retries with a sibling OAuth account and that an ordinary BAD_REQUEST does not rotate accounts.

Priority: Normal

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Bug fix

Possibly related issues

  • lidge-jun/opencodex#7587 — The PR normalizes the specified OAuth credit refusal so account rotation can select another account. The issue also covers desktop admission, usage authority, and account safeguards.
  • lidge-jun/opencodex#7684 — The PR adds refusal-aware handling for insufficient credits. It does not handle the issue’s MODEL_NOT_IN_PLAN 403 response.

Suggested reviewers: lcxhh521

Merge Risk: Minimal · up to 65b29

No actionable merge-blocking risk remains in the reviewed changes.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 28.57% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 7 functions across 3 files. (1 skipped: 1… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title "fix(command-code): rotate on insufficient-credit refusals" matches the main change. The diff adds OAuth-only normalization in src/adapters/command-code.ts that rewrites the exact insufficie…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title "fix(command-code): rotate on insufficient-credit refusals" matches the main change. The diff adds OAuth-only normalization in src/adapters/command-code.ts that rewrites the exact insufficient-credit HTTP 400 to 429, so OAuth rotation can take over. The title names the adapter scope and the behavior. It omits the 400-to-429 rewrite and the OAuth-only gate, which are details the reader needs, but it does not mislead. Changes to layout.json, the fixture, the docs, and the two new test files support this same change.

Full details: Docstring Coverage

Explanation

Docstring coverage is 28.57% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 7 functions across 3 files. (1 skipped: 1 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7aaaadad07

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/adapters/command-code.ts Resolved
A canonical key-auth Command Code row gets a same-key 429 retry ladder
from rateLimitRetryPolicyFor, so rewriting its permanent credit 400 into
a 429 would replay a credential with no credits left before surfacing
the error. Only OAuth rows have sibling accounts to rotate to, so key and
forward rows now keep the original 400.

Co-authored-by: Yushi Chen <chenyushi63@gmail.com>
@github-actions

Copy link
Copy Markdown
Contributor

✅ Deterministic PR hygiene checks passed.

@github-actions github-actions Bot added the bug Something isn't working label Oct 22, 2026

@Ingwannu Ingwannu left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Reviewed the complete carry at 3fe73f6b45756dd113936fac5888efe916348afc, including the original five author-preserved commits and the matching Co-authored-by trailer. The 400-to-429 classification is narrowly gated to OAuth and the exact bounded/fatal-UTF-8 credit-refusal shape. Key/forward rows, real 429 Retry-After and 402 retain their original semantics; the effort-repair response is covered as well. Rotation reuses the existing send-budget/account owner rather than adding an unbounded replay loop.

Independent capped Linux/Bun 1.4.3: bun test tests/providers/command-code-credit-failover.test.ts tests/providers/command-code-credit-rotation.test.ts — 9 pass / 0 fail / 89 assertions, including actual dispatch with two synthetic stored accounts and a fully stubbed upstream. The ordinary BAD_REQUEST sends once and stays on its account. Current-head CI 39848926882 and gates/Typecheck succeeded; the OAuth-only finding is resolved and no standing objection remains in the thread snapshot.

The full local suite/typecheck were not repeated under the shared host limits; hosted Ubuntu CI supplies broader coverage. This approval is head/diff-bound, not a later union, live billing statement or native-platform certification. No real account, credential, credit spend, provider call or service change was used.

@lidge-jun

Copy link
Copy Markdown
Owner Author

Local CI-equivalent (Linux) at 3119e9d

Overall: PASS (temporary rule; three raw shard commands failed BASE-IDENTICALLY) under the temporary local-verification rule. This is local Linux evidence, not hosted CI.

  • Host: lidge-AI-AI; Ubuntu 24.04.4 LTS; x86_64; kernel 7.0.0-30-generic.
  • Bun test runner/gates: 1.4.3 (scratch-installed official binary, first on PATH); runtime pin: 1.4.4 (used for structure/docs roles).
  • Exact detached head: 3119e9d1a847d35868437c314d792bae65ca29a0; expected brief: 3119e9d1a847d35868437c314d792bae65ca29a0; moved: False.
  • Base comparison: 47316142fe06171a94de02d63f1727dbed4c0382; git merge-base origin/dev HEAD: 47316142fe06171a94de02d63f1727dbed4c0382.
  • Workflow authority: origin/dev at 8066099651f8ed356bb73a67d9c99978ea65447c, .github/workflows/ci.yml and .github/actions/setup-project-bun/action.yml.
  • Tests ran outside hooks, explicitly without GIT_DIR, GIT_INDEX_FILE, or GIT_WORK_TREE. CI=true; no shard/batch/parallel/timeout overrides. Original check failures were retained; no head-check retries.
  • Scratch artifacts: /tmp/ocx-linux-ci.MlWNCd. Recorded command outputs and exit codes were retained across the manager-requested resume.
Command (repository root unless noted) Bun Exit Pass / fail / skip
bun install --frozen-lockfile 1.4.3 0 N/A
cd gui && bun install --frozen-lockfile 1.4.3 0 N/A
cd gui && bun run build 1.4.3 0 N/A
bash scripts/ci/run-bun-test-batches.sh 1/4 1.4.3 1 2640 / 0 / 3
bash scripts/ci/run-bun-test-batches.sh 2/4 1.4.3 1 1000 / 1 / 0
bash scripts/ci/run-bun-test-batches.sh 3/4 1.4.3 0 12891 / 0 / 74
bash scripts/ci/run-bun-test-batches.sh 4/4 1.4.3 1 2051 / 1 / 0
cd gui && bun run lint 1.4.3 0 N/A
bun x tsc --noEmit 1.4.3 0 N/A
bun x tsc --noEmit -p tests/tsconfig.doctor-service-memory-contract.json 1.4.3 0 N/A
bun x tsc --ignoreConfig --noEmit --strict --target ESNext --module ESNext --moduleResolution bundler --types bun-types --skipLibCheck scripts/ci/docker-smoke.ts 1.4.3 0 N/A
cd gui && bun test --isolate tests 1.4.3 0 3493 / 0 / 0
bun run privacy:scan 1.4.3 0 N/A
bun run skill:surface:check 1.4.3 0 N/A
bun build scripts/release.ts --target=bun --outdir=/tmp/ocx-linux-ci.MlWNCd/evidence-7558/release-build 1.4.3 0 N/A
bun run src/cli/index.ts help 1.4.3 0 N/A
bun run structure:check 1.4.4 0 N/A
bun test --isolate ./tests/storage/api-storage-policy-already-running.test.ts ./tests/storage/api-storage-policy-mutation-busy.test.ts ./tests/storage/api-storage-policy-put-race.test.ts ./tests/storage/api-storage-policy-run.test.ts ./tests/storage/api-storage-policy.test.ts ./tests/storage/api-storage.test.ts 1.4.3 0 9 / 0 / 0
bun test --isolate ./tests/server/api-usage.test.ts 1.4.3 0 34 / 0 / 0

Failure classification (failed commands remain failed):

  • BASE-IDENTICAL — tests/ci-workflows/bun-runtime.test.ts:74 — PATH-selected provenance test rejects all fixture roots because /tmp is group/other-writable. Same test/exception on base: 19 pass / 1 fail / 0 skip, exit 1.
  • BASE-IDENTICAL — tests/claude-integration/claude-desktop-remote-hub.test.ts:249 — connected Desktop uses hub IDs across a cold restart (stored profile=false). Same assertion on base: 1 pass / 1 fail / 0 skip, exit 1.
  • BASE-IDENTICAL — Shard 1/4 batch 10/64 (12 CLI files, cli-ensure-readiness.test.ts through cli-restart-health.test.ts) reports 338 pass / 0 fail but process exits 1. The exact same 12-file command on base also reports 338 pass / 0 fail and exits 1. Process failure retained; not promoted to a raw check success.

Base comparisons (same Bun/environment; once per distinct failing file, reused where recorded):

  • bun install --frozen-lockfile (cwd /tmp/ocx-linux-ci.MlWNCd/base-47316142fe): exit 0; 0 pass / 0 fail / 0 skip; log /tmp/ocx-linux-ci.MlWNCd/base-evidence/install-root.log.
  • bun install --frozen-lockfile (cwd /tmp/ocx-linux-ci.MlWNCd/base-47316142fe/gui): exit 0; 0 pass / 0 fail / 0 skip; log /tmp/ocx-linux-ci.MlWNCd/base-evidence/install-gui.log.
  • bun run build (cwd /tmp/ocx-linux-ci.MlWNCd/base-47316142fe/gui): exit 0; 0 pass / 0 fail / 0 skip; log /tmp/ocx-linux-ci.MlWNCd/base-evidence/build-gui.log.
  • bun test --isolate --timeout 60000 ./tests/ci-workflows/bun-runtime.test.ts (cwd /tmp/ocx-linux-ci.MlWNCd/base-47316142fe): exit 1; 19 pass / 1 fail / 0 skip; log /tmp/ocx-linux-ci.MlWNCd/base-evidence/tests__ci-workflows__bun-runtime.test.ts.log.
  • bun test --isolate --timeout 60000 ./tests/claude-integration/claude-desktop-remote-hub.test.ts (cwd /tmp/ocx-linux-ci.MlWNCd/base-47316142fe): exit 1; 1 pass / 1 fail / 0 skip; log /tmp/ocx-linux-ci.MlWNCd/base-evidence/tests__claude-integration__claude-desktop-remote-hub.test.ts.log.
  • bun test --isolate --timeout 60000 tests/cli/cli-ensure-readiness.test.ts tests/cli/cli-integration-droid.test.ts tests/cli/cli-kiro-auto-selection.test.ts tests/cli/cli-link-cleanup.test.ts tests/cli/cli-log-view-filter.test.ts tests/cli/cli-models-custom-runtime.test.ts tests/cli/cli-models-free-only.test.ts tests/cli/cli-models-reasoning.test.ts tests/cli/cli-models-runtime-dispatch.test.ts tests/cli/cli-models.test.ts tests/cli/cli-remote-workspace-hub.test.ts tests/cli/cli-restart-health.test.ts (cwd /tmp/ocx-linux-ci.MlWNCd/base-47316142fe): exit 1; 338 pass / 0 fail / 0 skip; log /tmp/ocx-linux-ci.MlWNCd/base-evidence/test-1-of-4-batch-10.log.

NOT RUN: Shard 1/4 batches 11–64, shard 2/4 batches 5–59, and shard 4/4 batches 12–65: original CI script stops after the first failed batch; no retries or manual skips were added; Hosted CI and nonrequested jobs/platforms; docs-site build is outside this non-docs PR scope

All requested command invocations completed. Every non-shard gate, GUI test/build, structure check, storage-policy and api-usage command exited 0. No INTRODUCED failures were observed in executed coverage. Overall disposition follows the manager’s explicit base-identical exception; this does not claim the unexecuted shard remainders passed. Fresh subsequent PR checkouts will use a private scratch path under /home/lidgeai, matching CI workspace ownership requirements, without changing fixture/test controls.

Head re-fetched before posting: 3119e9d1a847d35868437c314d792bae65ca29a0. Source status: clean (git status --short empty); HEAD unchanged.

Recorded UTC: 2026-10-24T09:54:11.493958+00:00

@lidge-jun

lidge-jun commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner Author

Final full-coverage result: see the completed addendum. The initial command results below are retained unchanged.

Local CI-equivalent (macOS) at 3119e9d

Overall: PROVISIONAL — full-suite coverage pending under the updated verification rule.

Host: juns-Mac-Studio.local; macOS 26.6.2 (25G83), Darwin arm64. Scratch-installed test runner: Bun 1.4.3; package runtime pin (dependencies.bun): 1.4.4.

Git setup: fetch pull head, resolve FETCH_HEAD, confirm detached HEAD, and compute merge-base completed with exit 0; no test counts apply. Head was re-fetched after verification to check for movement.
Detached HEAD: 3119e9d1a847d35868437c314d792bae65ca29a0. Merge base with fetched origin/dev: 47316142fe06171a94de02d63f1727dbed4c0382. Reference base: 47316142fe06171a94de02d63f1727dbed4c0382.

Workflow source: .github/workflows/ci.yml from fetched origin/dev (retained with logs). Root/GUI frozen installs, GUI build, and bounded coreutils setup were shared by the jobs; passing setup/gates were not repeated. No PR branch changes, push, approval, or merge.

Environment: CI=true RUNNER_OS=macOS RUNNER_ARCH=ARM64; scratch Bun first on PATH, GNU coreutils gnubin next; GIT_DIR, GIT_INDEX_FILE, GIT_WORK_TREE and all inherited GIT_*, BUN_TEST_*, OCX_TEST_* overrides explicitly removed before checks. Tests ran directly outside hooks.

Suite environment: BUN_TEST_FILE_SCOPE=all BUN_TEST_BATCH_SIZE=12 BUN_TEST_PARALLEL=1 BUN_TEST_BATCH_TIMEOUT_SECONDS=300 OCX_TEST_NO_QUEUE=1 OCX_TEST_FULL_SUITE=1; TEST_SHARD = 1/3, 2/3, 3/3, then control 1/1. Commands retained the CI runner’s first-failure exit behavior, 300-second batch deadlines, 20-minute platform and 75-minute control caps. No retry changed a failure into a pass.

Command (working directory) Exit Pass / fail / skip Seconds
command -v bun; bun --version; node --version; command -v timeout; timeout --version | head -1 (root) 0 n/a 0.68
bun install --frozen-lockfile (root) 0 n/a 1.08
bun install --frozen-lockfile (gui/) 0 n/a 0.21
bun run build (gui/) 0 n/a 6.99
brew list coreutils >/dev/null 2>&1 || brew install coreutils; brew --prefix coreutils; command -v timeout (root) 0 n/a 0.33
bun run lint (gui/) 0 n/a 0.86
bun x tsc --noEmit (root) 0 n/a 1.71
bun x tsc --noEmit -p tests/tsconfig.doctor-service-memory-contract.json (root) 0 n/a 1.12
bun x tsc --ignoreConfig --noEmit --strict --target ESNext --module ESNext --moduleResolution bundler --types bun-types --skipLibCheck scripts/ci/docker-smoke.ts (root) 0 n/a 0.14
bun test --isolate tests (gui/) 0 3493 / 0 / 0 114.39
bun run privacy:scan (root) 0 n/a 1.47
bun run skill:surface:check (root) 0 n/a 0.09
bun build scripts/release.ts --target=bun --outdir=/var/folders/h7/f1j0n8vj6ggcy9wprpxkfdsc0000gn/T/ocx-macos-ci-h860y3r5/results-7558-3119e9d1/release-check (root) 0 n/a 0.05
bun run src/cli/index.ts help (root) 0 n/a 0.2
bun run structure:check (root) 0 n/a 0.15
bun test --isolate ./tests/storage/api-storage-policy-already-running.test.ts ./tests/storage/api-storage-policy-mutation-busy.test.ts ./tests/storage/api-storage-policy-put-race.test.ts ./tests/storage/api-storage-policy-run.test.ts ./tests/storage/api-storage-policy.test.ts ./tests/storage/api-storage.test.ts (root) 0 9 / 0 / 0 4.36
bun test --isolate ./tests/server/api-usage.test.ts (root) 0 34 / 0 / 0 1.06
bash scripts/ci/run-bun-test-batches.sh "$TEST_SHARD" (env TEST_SHARD=1/3) (root) 1 1982 / 1 / 0 100.28
bash scripts/ci/run-bun-test-batches.sh "$TEST_SHARD" (env TEST_SHARD=2/3) (root) 1 2674 / 1 / 3 98.77
bash scripts/ci/run-bun-test-batches.sh "$TEST_SHARD" (env TEST_SHARD=3/3) (root) 0 17466 / 0 / 27 599.21
bash scripts/ci/run-bun-test-batches.sh "$TEST_SHARD" (env TEST_SHARD=1/1) (root) 1 6509 / 1 / 10 301.72

Failures and base comparisons:

Base scratch setup: bun install --frozen-lockfile at root exit 0, same command in gui/ exit 0, and bun run build in gui/ exit 0 (test counts n/a). Base comparisons use the common suite environment above with TEST_SHARD=1/3.

  • BASE-IDENTICAL tests/claude-integration/claude-desktop-remote-hub.test.ts: connected Desktop uses hub IDs across a cold restart (stored profile=false); assertion at :249 (same assertion on base).
    Base 47316142fe06171a94de02d63f1727dbed4c0382: bun test --isolate --parallel=1 --timeout 60000 ./tests/claude-integration/claude-desktop-remote-hub.test.ts, exit 1, 1 pass / 1 fail / 0 skip. Same scratch Bun and suite environment; one run per distinct file, reused across PRs. This comparison does not erase the head failure.
  • BASE-IDENTICAL tests/cli/cli-codex-cli-update-boundary.test.ts: Codex CLI selection inspection boundary > plan identity binds the bytes a real npm-global install placed; assertion at :287: expected blocked_active_session, received target_not_newer (same on base).
    Base 47316142fe06171a94de02d63f1727dbed4c0382: bun test --isolate --parallel=1 --timeout 60000 ./tests/cli/cli-codex-cli-update-boundary.test.ts, exit 1, 20 pass / 1 fail / 2 skip. Same scratch Bun and suite environment; one run per distinct file, reused across PRs. This comparison does not erase the head failure.

NOT RUN:

  • 1/3: batches 13–88 (CI runner stopped on its first failure).
  • suite-1-3: job-tail CLI help smoke after failed test step (the shared gates CLI help was run successfully).
  • 2/3: batches 15–86 (CI runner stopped on its first failure).
  • suite-2-3: job-tail CLI help smoke after failed test step (the shared gates CLI help was run successfully).
  • 1/1: batches 33–253 (CI runner stopped on its first failure).
  • suite-1-1: job-tail CLI help smoke after failed test step (the shared gates CLI help was run successfully).
  • Hosted Actions and other platform jobs are outside this macOS leg. No docs-only PR was included in the six-PR queue.

Raw command logs and structured results retained on this host in /var/folders/h7/f1j0n8vj6ggcy9wprpxkfdsc0000gn/T/ocx-macos-ci-h860y3r5/results-7558-3119e9d1; base comparison logs in /var/folders/h7/f1j0n8vj6ggcy9wprpxkfdsc0000gn/T/ocx-macos-ci-h860y3r5/base-results. Counts are the tests actually executed before first-failure termination, not the entire repository test count.

@lidge-jun

Copy link
Copy Markdown
Owner Author

Local CI-equivalent (Linux) coverage addendum at 3119e9d

Final verdict: PASS (temporary rule; raw base-identical test failures retained). This supersedes the earlier verdict’s incomplete coverage: #7558 (comment)

Host lidge-AI-AI, Ubuntu 24.04.4 LTS x86_64, kernel 7.0.0-30-generic. Bun runner/gates 1.4.3; runtime pin 1.4.4. Detached exact head 3119e9d1a847d35868437c314d792bae65ca29a0; brief head 3119e9d1a847d35868437c314d792bae65ca29a0; moved from brief False. Base 47316142fe06171a94de02d63f1727dbed4c0382; observed merge-base with origin/dev 47316142fe06171a94de02d63f1727dbed4c0382.

All new suite/base invocations use documented OPENCODEX_TEST_TRUSTED_FIXTURE_DIR=/home/lidgeai/ocx-linux-ci.p2R3NT/trusted-fixtures (new private directory, mode 0700 under trusted ownership). Original results remain unchanged; no completed head batch was retried. GIT_DIR, GIT_INDEX_FILE, and GIT_WORK_TREE are explicitly absent. CI=true; shard scope general, batch size at most 12, no parallel override, per-test timeout 60000 ms, batch process deadline 120 s, TERM/KILL grace 15 s.

Batch file lists are generated by the exact head’s original planner. Only its script-directory anchors point back to the original location; its test command/deadlines are unchanged. Every previously executed batch file list was checked against the reconstructed manifest. Remaining batches ran serially; any new failure stayed failed and did not suppress later missing batches.

Shard Original batches executed Remaining batches executed Required total Coverage
1/4 10 54 64 COMPLETE
2/4 4 55 59 COMPLETE
3/4 64 0 64 COMPLETE
4/4 11 54 65 COMPLETE

Remaining primary batches — each command is timeout --signal=TERM --kill-after=15s 120s bun test --isolate --timeout 60000 <exact manifest files>:

Shard / batch Exit Pass Fail Skip
1/4, 11/64 0 32 0 0
1/4, 12/64 0 8 0 0
1/4, 13/64 0 322 0 2
1/4, 14/64 0 230 0 0
1/4, 15/64 0 151 0 1
1/4, 16/64 0 211 0 0
1/4, 17/64 0 596 0 3
1/4, 18/64 0 282 0 8
1/4, 19/64 0 455 0 0
1/4, 20/64 0 267 0 1
1/4, 21/64 0 214 0 0
1/4, 22/64 0 139 0 1
1/4, 23/64 0 14 0 0
1/4, 24/64 0 24 0 0
1/4, 25/64 0 195 0 0
1/4, 26/64 0 278 0 0
1/4, 27/64 0 142 0 0
1/4, 28/64 0 190 0 0
1/4, 29/64 0 66 0 0
1/4, 30/64 0 53 0 0
1/4, 31/64 0 190 0 6
1/4, 32/64 0 164 0 0
1/4, 33/64 0 207 0 0
1/4, 34/64 0 348 0 0
1/4, 35/64 0 246 0 0
1/4, 36/64 0 166 0 0
1/4, 37/64 0 244 0 0
1/4, 38/64 0 200 0 1
1/4, 39/64 0 420 0 0
1/4, 40/64 0 266 0 0
1/4, 41/64 0 259 0 0
1/4, 42/64 0 339 0 0
1/4, 43/64 0 310 0 0
1/4, 44/64 0 237 0 0
1/4, 45/64 0 306 0 0
1/4, 46/64 0 306 0 0
1/4, 47/64 0 307 0 0
1/4, 48/64 0 204 0 0
1/4, 49/64 0 359 0 0
1/4, 50/64 0 199 0 0
1/4, 51/64 0 171 0 0
1/4, 52/64 0 252 0 2
1/4, 53/64 0 216 0 0
1/4, 54/64 0 106 0 0
1/4, 55/64 0 61 0 0
1/4, 56/64 0 78 0 0
1/4, 57/64 0 5 0 0
1/4, 58/64 0 24 0 0
1/4, 59/64 0 212 0 0
1/4, 60/64 0 161 0 0
1/4, 61/64 0 113 0 0
1/4, 62/64 0 100 0 0
1/4, 63/64 0 175 0 0
1/4, 64/64 0 79 0 1
2/4, 5/59 0 248 0 0
2/4, 6/59 0 185 0 7
2/4, 7/59 0 189 0 0
2/4, 8/59 0 337 0 0
2/4, 9/59 0 309 0 1
2/4, 10/59 0 364 0 1
2/4, 11/59 0 409 0 0
2/4, 12/59 0 230 0 2
2/4, 13/59 0 151 0 0
2/4, 14/59 0 245 0 4
2/4, 15/59 0 134 0 0
2/4, 16/59 0 7 0 0
2/4, 17/59 0 15 0 0
2/4, 18/59 0 202 0 0
2/4, 19/59 0 519 0 2
2/4, 20/59 0 87 0 1
2/4, 21/59 0 92 0 0
2/4, 22/59 0 1 0 0
2/4, 23/59 0 17 0 0
2/4, 24/59 0 195 0 2
2/4, 25/59 0 479 0 1
2/4, 26/59 0 282 0 1
2/4, 27/59 0 237 0 0
2/4, 28/59 0 144 0 1
2/4, 29/59 0 262 0 0
2/4, 30/59 0 176 0 0
2/4, 31/59 0 93 0 0
2/4, 32/59 0 160 0 0
2/4, 33/59 0 219 0 0
2/4, 34/59 0 301 0 0
2/4, 35/59 0 176 0 0
2/4, 36/59 0 242 0 0
2/4, 37/59 0 221 0 0
2/4, 38/59 0 345 0 0
2/4, 39/59 0 188 0 0
2/4, 40/59 0 250 0 0
2/4, 41/59 0 143 0 0
2/4, 42/59 0 211 0 0
2/4, 43/59 0 286 0 0
2/4, 44/59 0 169 0 0
2/4, 45/59 0 165 0 0
2/4, 46/59 0 284 0 0
2/4, 47/59 0 248 0 0
2/4, 48/59 0 357 0 0
2/4, 49/59 0 215 0 0
2/4, 50/59 0 210 0 0
2/4, 51/59 0 140 0 0
2/4, 52/59 0 83 0 0
2/4, 53/59 0 290 0 1
2/4, 54/59 0 299 0 0
2/4, 55/59 0 218 0 0
2/4, 56/59 0 168 0 3
2/4, 57/59 0 366 0 0
2/4, 58/59 0 181 0 0
2/4, 59/59 0 273 0 29
4/4, 12/65 0 232 0 0
4/4, 13/65 0 373 0 0
4/4, 14/65 0 442 0 0
4/4, 15/65 0 251 0 0
4/4, 16/65 0 352 0 0
4/4, 17/65 0 213 0 0
4/4, 18/65 0 180 0 2
4/4, 19/65 0 199 0 0
4/4, 20/65 0 250 0 1
4/4, 21/65 0 202 0 0
4/4, 22/65 0 248 0 1
4/4, 23/65 0 194 0 0
4/4, 24/65 0 284 0 1
4/4, 25/65 0 152 0 0
4/4, 26/65 0 17 0 0
4/4, 27/65 0 302 0 1
4/4, 28/65 0 243 0 0
4/4, 29/65 0 161 0 0
4/4, 30/65 0 185 0 0
4/4, 31/65 0 101 0 0
4/4, 32/65 0 287 0 0
4/4, 33/65 0 125 0 0
4/4, 34/65 0 167 0 0
4/4, 35/65 0 321 0 0
4/4, 36/65 0 197 0 0
4/4, 37/65 0 281 0 0
4/4, 38/65 0 219 0 0
4/4, 39/65 0 180 0 0
4/4, 40/65 0 234 0 0
4/4, 41/65 0 339 0 0
4/4, 42/65 0 219 0 0
4/4, 43/65 0 146 0 0
4/4, 44/65 0 231 0 0
4/4, 45/65 0 184 0 0
4/4, 46/65 0 157 0 0
4/4, 47/65 0 167 0 0
4/4, 48/65 0 337 0 1
4/4, 49/65 0 215 0 0
4/4, 50/65 0 38 0 0
4/4, 51/65 0 26 0 0
4/4, 52/65 0 169 0 0
4/4, 53/65 0 229 0 0
4/4, 54/65 0 333 0 1
4/4, 55/65 0 363 0 0
4/4, 56/65 0 198 0 0
4/4, 57/65 0 33 0 0
4/4, 58/65 0 8 0 0
4/4, 59/65 0 105 0 0
4/4, 60/65 0 4 0 0
4/4, 61/65 0 126 0 0
4/4, 62/65 0 26 0 0
4/4, 63/65 0 245 0 0
4/4, 64/65 0 77 0 0
4/4, 65/65 0 40 0 0

Remainder totals: 33523 pass / 0 fail / 90 skip. Combined original + remainder command counts: 55641 pass / 2 fail / 167 skip. Failed checks remain failed; final disposition uses only the explicit BASE-IDENTICAL exception.

Failure classification across original and remainder evidence:

  • BASE-IDENTICAL — test-1-of-4 shard 1/4 batch 10/64 (12 files): process exit 1 with batch counts {'pass': 338, 'fail': 0, 'skip': 0}. Exact 12-file base batch exit 1, counts {'pass': 338, 'fail': 0, 'skip': 0, 'todo': 0}. Root cause unattributed; failed process status retained.
  • BASE-IDENTICAL — tests/ci-workflows/bun-runtime.test.ts:38 — bundledBunPath / durableBunPath > PATH-selected process provenance survives durable selection and project dotenv. Base exit 1, 19/1/0 pass/fail/skip; same failing label reproduced. This original failure is the host /tmp trusted-fixture rejection; all new runs use the documented private trusted-fixture directory.
  • BASE-IDENTICAL — tests/claude-integration/claude-desktop-remote-hub.test.ts:249 — connected Desktop uses hub IDs across a cold restart (stored profile=false). Base exit 1, 1/1/0 pass/fail/skip; same failing label reproduced.

Base comparisons (cached once per distinct file/exact failed batch):

  • bun test --isolate --timeout 60000 tests/cli/cli-ensure-readiness.test.ts tests/cli/cli-integration-droid.test.ts tests/cli/cli-kiro-auto-selection.test.ts tests/cli/cli-link-cleanup.test.ts tests/cli/cli-log-view-filter.test.ts tests/cli/cli-models-custom-runtime.test.ts tests/cli/cli-models-free-only.test.ts tests/cli/cli-models-reasoning.test.ts tests/cli/cli-models-runtime-dispatch.test.ts tests/cli/cli-models.test.ts tests/cli/cli-remote-workspace-hub.test.ts tests/cli/cli-restart-health.test.ts (cwd /tmp/ocx-linux-ci.MlWNCd/base-47316142fe, Bun 1.4.3): exit 1; 338 pass / 0 fail / 0 skip. Log /tmp/ocx-linux-ci.MlWNCd/base-evidence/test-1-of-4-batch-10.log; cached once per distinct file/batch.
  • bun test --isolate --timeout 60000 ./tests/ci-workflows/bun-runtime.test.ts (cwd /tmp/ocx-linux-ci.MlWNCd/base-47316142fe, Bun 1.4.3): exit 1; 19 pass / 1 fail / 0 skip. Log /tmp/ocx-linux-ci.MlWNCd/base-evidence/tests__ci-workflows__bun-runtime.test.ts.log; cached once per distinct file/batch.
  • bun test --isolate --timeout 60000 ./tests/claude-integration/claude-desktop-remote-hub.test.ts (cwd /tmp/ocx-linux-ci.MlWNCd/base-47316142fe, Bun 1.4.3): exit 1; 1 pass / 1 fail / 0 skip. Log /tmp/ocx-linux-ci.MlWNCd/base-evidence/tests__claude-integration__claude-desktop-remote-hub.test.ts.log; cached once per distinct file/batch.
  • bun install --frozen-lockfile (cwd /home/lidgeai/ocx-linux-ci.p2R3NT/base-47316142fe, Bun 1.4.3): exit 0; 0 pass / 0 fail / 0 skip. Log /home/lidgeai/ocx-linux-ci.p2R3NT/base-evidence/install-root.log; cached once per distinct file/batch.
  • bun install --frozen-lockfile (cwd /home/lidgeai/ocx-linux-ci.p2R3NT/base-47316142fe/gui, Bun 1.4.3): exit 0; 0 pass / 0 fail / 0 skip. Log /home/lidgeai/ocx-linux-ci.p2R3NT/base-evidence/install-gui.log; cached once per distinct file/batch.
  • bun run build (cwd /home/lidgeai/ocx-linux-ci.p2R3NT/base-47316142fe/gui, Bun 1.4.3): exit 0; 0 pass / 0 fail / 0 skip. Log /home/lidgeai/ocx-linux-ci.p2R3NT/base-evidence/build-gui.log; cached once per distinct file/batch.

Every original non-test gate result is retained in #7558 (comment). No source edits, pushes, approvals or merges were performed. Source status: clean (git status --short empty); HEAD unchanged. Final fetched head 3119e9d1a847d35868437c314d792bae65ca29a0.

NOT RUN: Hosted CI and platforms/jobs outside the requested Linux scope

Exact manifests and raw logs (retained on the named Linux host):

  • Shard 1: /tmp/ocx-linux-ci.MlWNCd/evidence-7558/remainder-1-manifest.tsv, SHA-256 58dff45d22e8cef964e8a236e913027e6b6bb9071223a4ba7d6dba9693d16dc7; planner validation True.
  • Shard 2: /tmp/ocx-linux-ci.MlWNCd/evidence-7558/remainder-2-manifest.tsv, SHA-256 e42d8a02d573dba5e61ec338f96110d12d04ce3c45c5e542936201ab3e4e3b50; planner validation True.
  • Shard 4: /tmp/ocx-linux-ci.MlWNCd/evidence-7558/remainder-4-manifest.tsv, SHA-256 884653230b74e53404b755ea837b6105cee36392c1bed21ca0a7baa01f8bfa15; planner validation True.
  • Per-batch argv/exits/counts: /tmp/ocx-linux-ci.MlWNCd/evidence-7558/remainder-results.json; all original commands: /tmp/ocx-linux-ci.MlWNCd/evidence-7558/results.json; final evidence: /tmp/ocx-linux-ci.MlWNCd/evidence-7558/coverage-analysis.json.

UTC: 2026-10-24T11:06:25.206140+00:00

@lidge-jun

Copy link
Copy Markdown
Owner Author

Local CI-equivalent (macOS) at 3119e9d — full coverage addendum

Final verdict: PASS (owner’s BASE-IDENTICAL test-failure exception).

This supersedes the coverage limitation in the initial result. Host juns-Mac-Studio.local, macOS 26.6.2 arm64, test-runner Bun 1.4.3, runtime Bun pin 1.4.4. Detached HEAD 3119e9d1a847d35868437c314d792bae65ca29a0; reference base 47316142fe06171a94de02d63f1727dbed4c0382. The pull head was fetched again after verification to check for movement.

All suite runs after the manager’s coverage instruction use OPENCODEX_TEST_TRUSTED_FIXTURE_DIR=/Users/jun/.ocx-ci-trusted-ia7c0xcb. This is a fresh private mode-0700 scratch directory; the repository’s untrustedFixtureAncestor check returned null. Earlier successful batches were retained, and original failed exits remain failed. No test failure was retried into a pass.

The remainder plans are computed by each exact head’s own batch-planning code (all original code before its final execution loop). The only planner path substitution points BASH_SOURCE directory lookups back to that head’s scripts/ci; its computed batch boundaries and file lists are exported. Every already executed batch list matched the reconstructed list byte-for-byte. File-header auditing verifies each planned file actually ran. No repository files or PR branches were changed.

Each remaining batch ran sequentially as timeout --signal=TERM --kill-after=15s 300s bun test --isolate --parallel=1 --timeout 60000 <the exact planned files>. Same shard/total, BUN_TEST_FILE_SCOPE=all, batch size 12, BUN_TEST_PARALLEL=1, BUN_TEST_BATCH_TIMEOUT_SECONDS=300, OCX_TEST_NO_QUEUE=1, OCX_TEST_FULL_SUITE=1; TEST_SHARD set per lane. All inherited GIT_* variables were explicitly removed, and tests ran outside hooks. New private transpiler caches follow the CI runner’s per-lane cache contract. Every batch keeps its 300-second deadline; failures are retained and subsequent unexecuted batches continue only for coverage.

Coverage: 508/508 batches have all planned file headers confirmed. Original gates/build/lint/typechecks/GUI/storage/API results are retained from the initial comment.

Lane Original executed batches Remainder batches Remainder pass / fail / skip Combined pass / fail / skip
1/3 12 76 15148 / 1 / 79 17130 / 2 / 79
2/3 14 72 14882 / 0 / 53 17556 / 1 / 56
3/3 81 0 0 / 0 / 0 17466 / 0 / 27
1/1 32 221 45643 / 2 / 152 52152 / 3 / 162

Failure classification:

  • BASE-IDENTICAL tests/claude-integration/claude-desktop-remote-hub.test.ts from the initial result; the same-assertion base comparison is retained once per distinct file as requested.
  • BASE-IDENTICAL tests/cli/cli-codex-cli-update-boundary.test.ts from the initial result; the same-assertion base comparison is retained once per distinct file as requested.
  • Remainder BASE-IDENTICAL tests/cli/cli-codex-cli-update-boundary.test.ts: Codex CLI selection inspection boundary > plan identity binds the bytes a real npm-global install placed; head assertion line(s): 287, 300. Base comparison exit 1, 20 pass / 1 fail / 2 skip (bun test --isolate --parallel=1 --timeout 60000 ./tests/cli/cli-codex-cli-update-boundary.test.ts).
  • Remainder BASE-IDENTICAL tests/update/update-stop-first.test.ts: update stops the running proxy before replacing files > npm launcher restarts the stopped runtime after a staged update failure; head assertion line(s): 687. Base comparison exit 1, 25 pass / 1 fail / 0 skip (bun test --isolate --parallel=1 --timeout 60000 ./tests/update/update-stop-first.test.ts).

Per-batch remainder results (counts reflect that batch only):

Lane Batch Exit Pass / fail / skip Seconds
1/3 13/88 0 228 / 0 / 0 8.1
1/3 14/88 0 219 / 0 / 0 3.51
1/3 15/88 0 390 / 0 / 0 1.33
1/3 16/88 0 278 / 0 / 0 5.19
1/3 17/88 0 197 / 0 / 0 8.21
1/3 18/88 0 217 / 0 / 0 5.36
1/3 19/88 0 8 / 0 / 0 0.11
1/3 20/88 0 365 / 0 / 3 35.08
1/3 21/88 0 155 / 0 / 29 1.64
1/3 22/88 0 134 / 0 / 2 0.77
1/3 23/88 0 206 / 0 / 0 0.8
1/3 24/88 0 96 / 0 / 2 0.77
1/3 25/88 0 93 / 0 / 0 1.62
1/3 26/88 0 228 / 0 / 0 1.65
1/3 27/88 0 266 / 0 / 5 11.54
1/3 28/88 0 143 / 0 / 1 5.32
1/3 29/88 0 125 / 0 / 0 6.15
1/3 30/88 0 479 / 0 / 1 18.14
1/3 31/88 0 289 / 0 / 1 31.47
1/3 32/88 0 81 / 0 / 23 39.4
1/3 33/88 0 141 / 0 / 1 5.01
1/3 34/88 0 429 / 0 / 0 12.17
1/3 35/88 0 155 / 0 / 1 24.63
1/3 36/88 0 193 / 0 / 1 3.99
1/3 37/88 0 309 / 0 / 0 2.6
1/3 38/88 0 166 / 0 / 0 2.82
1/3 39/88 0 83 / 0 / 0 0.65
1/3 40/88 0 181 / 0 / 0 1.39
1/3 41/88 0 151 / 0 / 0 97.19
1/3 42/88 0 139 / 0 / 0 1.96
1/3 43/88 0 137 / 0 / 0 1.96
1/3 44/88 0 226 / 0 / 0 2.07
1/3 45/88 0 257 / 0 / 0 1.72
1/3 46/88 0 176 / 0 / 0 2.74
1/3 47/88 0 225 / 0 / 0 1.07
1/3 48/88 0 94 / 0 / 0 0.93
1/3 49/88 0 18 / 0 / 0 0.11
1/3 50/88 0 315 / 0 / 0 6.83
1/3 51/88 0 199 / 0 / 0 1.27
1/3 52/88 0 107 / 0 / 0 3.79
1/3 53/88 0 295 / 0 / 0 8.97
1/3 54/88 0 224 / 0 / 0 1.27
1/3 55/88 0 518 / 0 / 0 1.84
1/3 56/88 0 213 / 0 / 0 1.18
1/3 57/88 0 169 / 0 / 0 7.96
1/3 58/88 0 156 / 0 / 0 14.98
1/3 59/88 0 478 / 0 / 0 6.4
1/3 60/88 0 279 / 0 / 0 1.6
1/3 61/88 0 331 / 0 / 0 19.8
1/3 62/88 0 130 / 0 / 0 5.15
1/3 63/88 0 235 / 0 / 0 17.7
1/3 64/88 0 440 / 0 / 0 27.54
1/3 65/88 0 607 / 0 / 0 1.52
1/3 66/88 0 147 / 0 / 0 0.67
1/3 67/88 0 26 / 0 / 0 0.33
1/3 68/88 0 153 / 0 / 0 2.09
1/3 69/88 0 34 / 0 / 0 1.26
1/3 70/88 0 352 / 0 / 0 5.71
1/3 71/88 0 134 / 0 / 0 9.21
1/3 72/88 0 218 / 0 / 1 11.83
1/3 73/88 0 465 / 0 / 1 19.69
1/3 74/88 0 144 / 0 / 1 3.58
1/3 75/88 0 55 / 0 / 0 3.02
1/3 76/88 0 196 / 0 / 0 1.22
1/3 77/88 0 80 / 0 / 2 0.5
1/3 78/88 0 46 / 0 / 0 0.17
1/3 79/88 0 4 / 0 / 0 0.1
1/3 80/88 0 5 / 0 / 0 0.18
1/3 81/88 0 53 / 0 / 0 10.59
1/3 82/88 0 1 / 0 / 0 1.39
1/3 83/88 0 88 / 0 / 1 12.66
1/3 84/88 1 25 / 1 / 0 7.9
1/3 85/88 0 356 / 0 / 2 29.88
1/3 86/88 0 198 / 0 / 0 2.49
1/3 87/88 0 104 / 0 / 0 1.54
1/3 88/88 0 291 / 0 / 1 0.94
2/3 15/86 0 392 / 0 / 0 11.61
2/3 16/86 0 252 / 0 / 0 21.44
2/3 17/86 0 245 / 0 / 0 2.04
2/3 18/86 0 367 / 0 / 2 29.11
2/3 19/86 0 225 / 0 / 0 0.78
2/3 20/86 0 133 / 0 / 1 3.15
2/3 21/86 0 134 / 0 / 0 1.12
2/3 22/86 0 15 / 0 / 0 0.41
2/3 23/86 0 182 / 0 / 0 12.59
2/3 24/86 0 554 / 0 / 0 4.31
2/3 25/86 0 625 / 0 / 9 20.14
2/3 26/86 0 108 / 0 / 0 2.8
2/3 27/86 0 105 / 0 / 0 54.93
2/3 28/86 0 17 / 0 / 0 5.91
2/3 29/86 0 211 / 0 / 0 1.16
2/3 30/86 0 642 / 0 / 0 1.84
2/3 31/86 0 310 / 0 / 1 33.13
2/3 32/86 0 283 / 0 / 2 4.67
2/3 33/86 0 192 / 0 / 0 3.85
2/3 34/86 0 353 / 0 / 0 36.67
2/3 35/86 0 67 / 0 / 0 1.01
2/3 36/86 0 14 / 0 / 0 3.28
2/3 37/86 0 310 / 0 / 0 12.44
2/3 38/86 0 149 / 0 / 0 16.3
2/3 39/86 0 174 / 0 / 1 0.63
2/3 40/86 0 365 / 0 / 0 3.67
2/3 41/86 0 87 / 0 / 0 1.99
2/3 42/86 0 241 / 0 / 0 1.77
2/3 43/86 0 162 / 0 / 4 4.05
2/3 44/86 0 210 / 0 / 0 2.15
2/3 45/86 0 101 / 0 / 1 7.51
2/3 46/86 0 232 / 0 / 0 4.21
2/3 47/86 0 380 / 0 / 0 5.53
2/3 48/86 0 224 / 0 / 0 1.09
2/3 49/86 0 208 / 0 / 0 19.27
2/3 50/86 0 112 / 0 / 0 27.58
2/3 51/86 0 311 / 0 / 0 1.56
2/3 52/86 0 126 / 0 / 1 2.08
2/3 53/86 0 290 / 0 / 0 1.75
2/3 54/86 0 298 / 0 / 0 1.63
2/3 55/86 0 238 / 0 / 0 8.28
2/3 56/86 0 235 / 0 / 0 31.2
2/3 57/86 0 312 / 0 / 0 3.28
2/3 58/86 0 256 / 0 / 0 3.58
2/3 59/86 0 164 / 0 / 0 2.27
2/3 60/86 0 156 / 0 / 0 9.12
2/3 61/86 0 241 / 0 / 0 6.67
2/3 62/86 0 176 / 0 / 0 5.88
2/3 63/86 0 237 / 0 / 0 1.4
2/3 64/86 0 322 / 0 / 1 2.29
2/3 65/86 0 231 / 0 / 0 0.87
2/3 66/86 0 315 / 0 / 0 16.55
2/3 67/86 0 158 / 0 / 0 4.03
2/3 68/86 0 121 / 0 / 0 2.26
2/3 69/86 0 209 / 0 / 0 11.48
2/3 70/86 0 217 / 0 / 0 3.11
2/3 71/86 0 282 / 0 / 0 14.03
2/3 72/86 0 190 / 0 / 0 7.72
2/3 73/86 0 184 / 0 / 0 8.22
2/3 74/86 0 16 / 0 / 0 0.11
2/3 75/86 0 8 / 0 / 0 0.09
2/3 76/86 0 287 / 0 / 0 9.11
2/3 77/86 0 33 / 0 / 0 0.37
2/3 78/86 0 1 / 0 / 0 1.57
2/3 79/86 0 1 / 0 / 0 1.1
2/3 80/86 0 3 / 0 / 0 0.47
2/3 81/86 0 2 / 0 / 0 0.41
2/3 82/86 0 273 / 0 / 1 10.22
2/3 83/86 0 182 / 0 / 0 4.69
2/3 84/86 0 125 / 0 / 0 1.87
2/3 85/86 0 116 / 0 / 0 0.78
2/3 86/86 0 185 / 0 / 29 2.56
1/1 33/253 0 281 / 0 / 0 1.2
1/1 34/253 0 236 / 0 / 0 6.82
1/1 35/253 0 376 / 0 / 0 10.29
1/1 36/253 0 174 / 0 / 1 4.71
1/1 37/253 0 201 / 0 / 0 2.62
1/1 38/253 0 332 / 0 / 0 19.4
1/1 39/253 0 360 / 0 / 0 1.02
1/1 40/253 0 426 / 0 / 0 0.99
1/1 41/253 0 228 / 0 / 0 2.14
1/1 42/253 1 171 / 1 / 2 8.44
1/1 43/253 0 360 / 0 / 1 10.13
1/1 44/253 0 300 / 0 / 0 20.35
1/1 45/253 0 364 / 0 / 0 1.57
1/1 46/253 0 355 / 0 / 0 0.95
1/1 47/253 0 211 / 0 / 0 7.93
1/1 48/253 0 443 / 0 / 0 17.33
1/1 49/253 0 285 / 0 / 0 28.93
1/1 50/253 0 244 / 0 / 0 3.16
1/1 51/253 0 8 / 0 / 0 0.11
1/1 52/253 0 431 / 0 / 0 8.76
1/1 53/253 0 235 / 0 / 3 7.68
1/1 54/253 0 164 / 0 / 1 14.52
1/1 55/253 0 206 / 0 / 29 15.04
1/1 56/253 0 212 / 0 / 0 16.5
1/1 57/253 0 232 / 0 / 0 7.51
1/1 58/253 0 198 / 0 / 6 4.48
1/1 59/253 0 182 / 0 / 2 1.14
1/1 60/253 0 144 / 0 / 0 1.11
1/1 61/253 0 323 / 0 / 0 1.25
1/1 62/253 0 64 / 0 / 0 0.6
1/1 63/253 0 199 / 0 / 1 12.58
1/1 64/253 0 164 / 0 / 0 7.6
1/1 65/253 0 48 / 0 / 3 0.84
1/1 66/253 0 178 / 0 / 0 1.36
1/1 67/253 0 15 / 0 / 0 0.44
1/1 68/253 0 228 / 0 / 0 9.51
1/1 69/253 0 171 / 0 / 0 8.5
1/1 70/253 0 219 / 0 / 0 3.67
1/1 71/253 0 240 / 0 / 0 2.03
1/1 72/253 0 620 / 0 / 1 3.15
1/1 73/253 0 114 / 0 / 0 1.49
1/1 74/253 0 593 / 0 / 6 23.4
1/1 75/253 0 379 / 0 / 10 28.15
1/1 76/253 0 170 / 0 / 0 1.24
1/1 77/253 0 156 / 0 / 0 5.23
1/1 78/253 0 196 / 0 / 1 56.42
1/1 79/253 0 17 / 0 / 0 5.85
1/1 80/253 0 208 / 0 / 0 12.1
1/1 81/253 0 144 / 0 / 0 1.12
1/1 82/253 0 354 / 0 / 0 14.09
1/1 83/253 0 282 / 0 / 0 9.28
1/1 84/253 0 636 / 0 / 1 24.91
1/1 85/253 0 320 / 0 / 0 2.16
1/1 86/253 0 480 / 0 / 1 14.46
1/1 87/253 0 246 / 0 / 1 44.19
1/1 88/253 0 44 / 0 / 0 29.29
1/1 89/253 0 81 / 0 / 23 40.57
1/1 90/253 0 185 / 0 / 1 3.54
1/1 91/253 0 271 / 0 / 2 6.07
1/1 92/253 0 241 / 0 / 0 2.65
1/1 93/253 0 257 / 0 / 0 2.65
1/1 94/253 0 75 / 0 / 0 4.23
1/1 95/253 0 17 / 0 / 0 5.16
1/1 96/253 0 376 / 0 / 0 13.22
1/1 97/253 0 438 / 0 / 0 3.6
1/1 98/253 0 127 / 0 / 2 47.61
1/1 99/253 0 219 / 0 / 0 13.29
1/1 100/253 0 42 / 0 / 0 0.47
1/1 101/253 0 14 / 0 / 0 3.4
1/1 102/253 0 24 / 0 / 0 0.36
1/1 103/253 0 200 / 0 / 0 16.13
1/1 104/253 0 247 / 0 / 1 12.06
1/1 105/253 0 223 / 0 / 0 7.71
1/1 106/253 0 306 / 0 / 0 1.66
1/1 107/253 0 200 / 0 / 0 1.11
1/1 108/253 0 129 / 0 / 0 0.78
1/1 109/253 0 204 / 0 / 0 17.12
1/1 110/253 0 130 / 0 / 0 0.42
1/1 111/253 0 203 / 0 / 1 2.11
1/1 112/253 0 109 / 0 / 0 0.55
1/1 113/253 0 180 / 0 / 0 0.47
1/1 114/253 0 210 / 0 / 0 3.35
1/1 115/253 0 128 / 0 / 0 1.56
1/1 116/253 0 167 / 0 / 0 1.34
1/1 117/253 0 142 / 0 / 0 97.88
1/1 118/253 0 56 / 0 / 0 1.09
1/1 119/253 0 105 / 0 / 0 2.27
1/1 120/253 0 268 / 0 / 0 1.04
1/1 121/253 0 218 / 0 / 4 5.76
1/1 122/253 0 166 / 0 / 0 1.61
1/1 123/253 0 170 / 0 / 0 2.09
1/1 124/253 0 184 / 0 / 0 8.76
1/1 125/253 0 233 / 0 / 0 15.77
1/1 126/253 0 237 / 0 / 0 2.93
1/1 127/253 0 205 / 0 / 0 6.83
1/1 128/253 0 145 / 0 / 1 4.38
1/1 129/253 0 249 / 0 / 0 2.04
1/1 130/253 0 140 / 0 / 0 0.81
1/1 131/253 0 176 / 0 / 0 2.37
1/1 132/253 0 210 / 0 / 0 3.42
1/1 133/253 0 273 / 0 / 0 3.14
1/1 134/253 0 301 / 0 / 0 0.65
1/1 135/253 0 221 / 0 / 0 1.03
1/1 136/253 0 220 / 0 / 0 5.37
1/1 137/253 0 69 / 0 / 0 0.54
1/1 138/253 0 18 / 0 / 0 0.12
1/1 139/253 0 198 / 0 / 0 4.72
1/1 140/253 0 377 / 0 / 0 6.49
1/1 141/253 0 148 / 0 / 0 1.83
1/1 142/253 0 285 / 0 / 0 2.77
1/1 143/253 0 240 / 0 / 0 0.88
1/1 144/253 0 211 / 0 / 0 17.78
1/1 145/253 0 194 / 0 / 0 13.64
1/1 146/253 0 203 / 0 / 0 7.69
1/1 147/253 0 188 / 0 / 0 2.57
1/1 148/253 0 253 / 0 / 0 1.69
1/1 149/253 0 192 / 0 / 0 7.3
1/1 150/253 0 243 / 0 / 0 1.77
1/1 151/253 0 223 / 0 / 1 8.79
1/1 152/253 0 271 / 0 / 0 1.6
1/1 153/253 0 286 / 0 / 0 1.73
1/1 154/253 0 237 / 0 / 0 3.63
1/1 155/253 0 277 / 0 / 0 2.82
1/1 156/253 0 172 / 0 / 0 1.11
1/1 157/253 0 472 / 0 / 0 1.21
1/1 158/253 0 167 / 0 / 0 7.85
1/1 159/253 0 313 / 0 / 0 25.67
1/1 160/253 0 197 / 0 / 0 2.05
1/1 161/253 0 196 / 0 / 0 1.13
1/1 162/253 0 227 / 0 / 0 20.33
1/1 163/253 0 156 / 0 / 0 5.51
1/1 164/253 0 167 / 0 / 0 21.24
1/1 165/253 0 201 / 0 / 0 11.68
1/1 166/253 0 543 / 0 / 0 4.21
1/1 167/253 0 488 / 0 / 0 5.11
1/1 168/253 0 281 / 0 / 0 2.59
1/1 169/253 0 201 / 0 / 0 0.59
1/1 170/253 0 192 / 0 / 0 0.95
1/1 171/253 0 212 / 0 / 0 5.77
1/1 172/253 0 179 / 0 / 0 1.58
1/1 173/253 0 93 / 0 / 0 11.99
1/1 174/253 0 378 / 0 / 0 21.28
1/1 175/253 0 220 / 0 / 0 10.09
1/1 176/253 0 243 / 0 / 0 5.23
1/1 177/253 0 141 / 0 / 0 2.0
1/1 178/253 0 174 / 0 / 0 2.2
1/1 179/253 0 323 / 0 / 0 20.27
1/1 180/253 0 146 / 0 / 0 13.14
1/1 181/253 0 300 / 0 / 0 2.8
1/1 182/253 0 258 / 0 / 0 7.69
1/1 183/253 0 477 / 0 / 0 18.56
1/1 184/253 0 294 / 0 / 0 1.21
1/1 185/253 0 360 / 0 / 0 5.56
1/1 186/253 0 246 / 0 / 1 1.86
1/1 187/253 0 565 / 0 / 0 1.25
1/1 188/253 0 226 / 0 / 0 2.48
1/1 189/253 0 227 / 0 / 0 0.8
1/1 190/253 0 237 / 0 / 0 1.0
1/1 191/253 0 201 / 0 / 0 5.9
1/1 192/253 0 102 / 0 / 0 0.39
1/1 193/253 0 26 / 0 / 0 0.36
1/1 194/253 0 274 / 0 / 0 13.15
1/1 195/253 0 106 / 0 / 0 4.82
1/1 196/253 0 68 / 0 / 0 1.73
1/1 197/253 0 34 / 0 / 0 1.42
1/1 198/253 0 214 / 0 / 0 5.89
1/1 199/253 0 337 / 0 / 0 1.37
1/1 200/253 0 105 / 0 / 0 2.62
1/1 201/253 0 185 / 0 / 0 8.88
1/1 202/253 0 123 / 0 / 0 2.15
1/1 203/253 0 201 / 0 / 0 2.48
1/1 204/253 0 274 / 0 / 0 3.09
1/1 205/253 0 188 / 0 / 0 11.47
1/1 206/253 0 116 / 0 / 0 1.35
1/1 207/253 0 282 / 0 / 1 14.25
1/1 208/253 0 340 / 0 / 1 9.15
1/1 209/253 0 233 / 0 / 0 3.6
1/1 210/253 0 419 / 0 / 0 26.73
1/1 211/253 0 239 / 0 / 0 15.12
1/1 212/253 0 162 / 0 / 1 7.36
1/1 213/253 0 55 / 0 / 0 3.26
1/1 214/253 0 176 / 0 / 0 4.68
1/1 215/253 0 90 / 0 / 0 1.88
1/1 216/253 0 217 / 0 / 0 18.09
1/1 217/253 0 310 / 0 / 0 27.76
1/1 218/253 0 32 / 0 / 0 3.52
1/1 219/253 0 61 / 0 / 0 0.23
1/1 220/253 0 48 / 0 / 0 0.3
1/1 221/253 0 8 / 0 / 0 0.09
1/1 222/253 0 289 / 0 / 2 10.91
1/1 223/253 0 72 / 0 / 0 6.26
1/1 224/253 0 46 / 0 / 0 5.11
1/1 225/253 0 48 / 0 / 0 1.16
1/1 226/253 0 5 / 0 / 0 0.75
1/1 227/253 0 63 / 0 / 0 4.29
1/1 228/253 0 4 / 0 / 0 0.7
1/1 229/253 0 212 / 0 / 0 4.74
1/1 230/253 0 118 / 0 / 0 13.07
1/1 231/253 0 1 / 0 / 0 1.56
1/1 232/253 0 1 / 0 / 0 1.4
1/1 233/253 0 1 / 0 / 0 0.73
1/1 234/253 0 1 / 0 / 0 1.05
1/1 235/253 0 3 / 0 / 0 0.44
1/1 236/253 0 2 / 0 / 0 0.42
1/1 237/253 0 168 / 0 / 0 18.69
1/1 238/253 0 222 / 0 / 0 4.86
1/1 239/253 0 154 / 0 / 2 36.68
1/1 240/253 1 25 / 1 / 0 5.57
1/1 241/253 0 129 / 0 / 2 1.05
1/1 242/253 0 222 / 0 / 0 5.44
1/1 243/253 0 105 / 0 / 0 1.59
1/1 244/253 0 419 / 0 / 0 19.34
1/1 245/253 0 281 / 0 / 0 2.23
1/1 246/253 0 146 / 0 / 0 1.7
1/1 247/253 0 132 / 0 / 0 1.13
1/1 248/253 0 132 / 0 / 0 1.41
1/1 249/253 0 217 / 0 / 0 0.93
1/1 250/253 0 190 / 0 / 0 16.38
1/1 251/253 0 219 / 0 / 6 2.91
1/1 252/253 0 298 / 0 / 30 2.6
1/1 253/253 0 18 / 0 / 0 0.11

NOT RUN: No test batches remain unexecuted. Original job-tail CLI-help steps after a failing suite were not repeated; the identical gates CLI-help command already exited 0.

Original raw logs: /var/folders/h7/f1j0n8vj6ggcy9wprpxkfdsc0000gn/T/ocx-macos-ci-h860y3r5/results-7558-3119e9d1. Remainder commands, per-batch files, manifests, source provenance, results, and file coverage audit: /var/folders/h7/f1j0n8vj6ggcy9wprpxkfdsc0000gn/T/ocx-macos-ci-h860y3r5/remainders-7558-3119e9d1. Known base results: /var/folders/h7/f1j0n8vj6ggcy9wprpxkfdsc0000gn/T/ocx-macos-ci-h860y3r5/base-results. All original nonzero exits remain visible; PASS means only the explicit owner exception for BASE-IDENTICAL failures after complete coverage, not a green hosted run.

@lidge-jun

Copy link
Copy Markdown
Owner Author

Integration evidence for exact head 65b29fa (only a dev merge on top of the verified 3119e9d):

  • Review: APPROVED by @Ingwannu; carries fix(command-code): rotate on insufficient-credit refusals #7471 with Co-authored-by scy7796.
  • Local CI-equivalent on 3119e9d with full batch coverage: Linux (lidge-ts) 55641 pass / 2 base-identical fail / 167 skip, all gates exit 0; macOS (mac-studio) 508/508 batches, 52152 pass / 3 base-identical fail / 162 skip, all gates exit 0 (see the verifier comments above).
  • Hosted Ubuntu CI was green on the earlier head 3b72fae (30 checks).

Static merge simulation on current dev e8ff1b2 (this Mac): dev=e8ff1b2061465782a61aafbba4ffa15f66b97a21 base=e8ff1b2061465782a61aafbba4ffa15f66b97a21 pr_files= 6 overlap=[]; merge clean; install exit=0; gui install exit=0; tsc exit=0; tsc doctor exit=0; structure:check exit=0; privacy:scan exit=0;

Merged by the triage manager as maintainer integration (MAINTAINERS.md, dev only) under the owner's static-judgment rule while GitHub Actions is degraded; dev push CI will be checked when Actions recovers.

@lidge-jun
lidge-jun merged commit e01c5a7 into dev Oct 24, 2026
1 of 8 checks passed
@lidge-jun
lidge-jun deleted the sweep/w2-command-code-credit branch October 24, 2026 12:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants