Skip to content

ci(deps): report timeouts in the upstream dependency upgrade - #3304

Merged
wan9chi merged 2 commits into
claude/install-shortcut-recorded-packagefrom
claude/amazing-proskuriakova-5aa09f
Nov 1, 2026
Merged

wan9chi merged 2 commits into
claude/install-shortcut-recorded-packagefrom
claude/amazing-proskuriakova-5aa09f

Conversation

@wan9chi

@wan9chi wan9chi commented Nov 1, 2026 •

Copy link
Copy Markdown
Member

Timeouts in the Upgrade Upstream Dependencies workflow currently go unnoticed unless someone reads the run log. In run 41210115268, a Kimi K3 Bash call ("Rebuild binding with debug symbols") exceeded its 600s limit. The step later failed with a Kimi 429 usage-limit error. On 2026-05-22 and 2026-05-25, the Kimi step itself hit its 180-minute limit, and the job stopped without a PR.

Changes

  • Kimi step timeout: the job continues with the partial fixes, and the PR stays a draft even if final validation passes. Final validation doesn't cover all fixups, such as the docs syncs. A new "Check Kimi K3 result" step still stops the job on any other Kimi failure, so a 429 behaves as before.
  • Agent command timeouts: .github/scripts/agent-command-timeouts.ts reads the Kimi transcript (the action's execution_file) for Bash calls with timedOutAfterMs, and passes them on as a job output.
  • New report-timeouts job: runs after upgrade, even when it fails or exceeds its own time limit. It reads step and job timeouts from the upgrade job's annotations, adds the command timeouts, and opens an issue labelled upgrade-deps-timeout. If one is already open, it comments instead. It's a separate job so the Kimi steps never get a token with issues: write.
  • Step names in the issue: hosted runners report a step timeout as The action has timed out., without the step name. The report job finds that message in the upgrade job's log and names the step that was running. The runner logs it as the step ends, in the same second the next step starts, so the job picks the last step that started in an earlier second. If the log can't be read, the issue falls back to the plain message.
  • PR description step: gets a 30-minute limit; it normally takes 1–7 minutes. A hang there can no longer exhaust the job's 360-minute limit.
  • PR build status: now includes a kimi-fixups line (success or timed out).

Verification

  • actionlint, zizmor (no new findings), and oxfmt pass.
  • The new spec passes. I ran it with upstream Vitest 5.0.5 aliased as vite-plus/test, because the local pnpm install was broken.
  • The script, run on the transcript rebuilt from run 41210115268, reports exactly the 600s timeout.
  • The annotation filter matches the real May timeouts (The action has timed out., the wording hosted runners still use) and the newer wording in the runner source, which names the step. It ignores unrelated "timed out" messages.
  • I ran the check step's script locally for four cases: success, an early failure, a step timeout, and an unreadable transcript.
  • End-to-end on GitHub: run 41268780486 was dispatched from a throwaway branch with this PR's workflow plus one test-only commit. That commit set the Kimi limit to 1 minute and skipped final validation, the second Kimi step, and the PR steps, so the real upgrade PR feat(deps): upgrade upstream dependencies #3284 was untouched. The Kimi step was stopped at 73s (The action has timed out.). "Check Kimi K3 result" let the job continue, the computed draft was true, and report-timeouts created Upgrade Upstream Dependencies timed out #3307 with the new upgrade-deps-timeout label.
  • Re-run with step names: run 41273740227 repeated that setup with the step-naming change. Because Upgrade Upstream Dependencies timed out #3307 was still open, it commented on #3307 instead of opening a new issue, with Check upgrade dependencies with Kimi K3: The action has timed out. Before pushing, I dry-ran the report script against the first run's real data, including the fallback when the job log can't be read.
  • The agent command-timeout path was not exercised on GitHub. It's covered by the transcript check above.

🤖 Generated with Claude Code

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview URL: https://claude-amazing-proskuriakova-5aa09f-viteplus-dev.voidzero-docs.workers.dev (commit 3d203c3)

This URL reflects your latest Preview deployment

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://a41c9247-viteplus-dev.voidzero-docs.workers.dev 3d203c3 2026-11-01T04:36:42.187Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://f6466369-viteplus-dev.voidzero-docs.workers.dev 1ecb869 2026-11-01T03:07:13.050Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://91846010-viteplus-dev.voidzero-docs.workers.dev e540fea 2026-11-01T03:03:16.691Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://4b4ca25d-viteplus-dev.voidzero-docs.workers.dev 7c3d64f 2026-11-01T02:51:26.211Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://48ecc711-viteplus-dev.voidzero-docs.workers.dev ed21ed6 2026-11-01T02:49:46.363Z Visit the dashboard ↗

@wan9chi
wan9chi requested review from cpojer and fengmk2 November 1, 2026 02:51
When the Kimi K3 fixup step reaches its time limit, continue with the
partial fixes and keep the PR as a draft. Other Kimi K3 failures still
stop the job.

A separate report-timeouts job opens or updates an issue labelled
upgrade-deps-timeout. It reads step and job timeouts from the upgrade
job's annotations, plus agent Bash calls that exceeded their timeout in
the Kimi K3 transcript. The PR description step gets a 30-minute limit
so it cannot exhaust the job's time limit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wan9chi
wan9chi force-pushed the claude/amazing-proskuriakova-5aa09f branch from e540fea to 1ecb869 Compare November 1, 2026 03:06
@wan9chi
wan9chi changed the base branch from main to claude/install-shortcut-recorded-package November 1, 2026 03:06
@wan9chi
wan9chi added this pull request to stack #3306 November 1, 2026 03:06
Hosted runners report step timeouts as "The action has timed out."
without the step name. Read the upgrade job log for that message and
match its time to the step that was running. The message is logged as
the step ends, in the second the next step starts, so pick the last
step that started in an earlier second. Fall back to the plain message
if the log cannot be read.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wan9chi
wan9chi merged commit 6fae750 into main Nov 1, 2026
49 checks passed
@wan9chi
wan9chi deleted the claude/amazing-proskuriakova-5aa09f branch November 1, 2026 04:45
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.

2 participants