Skip to content

ci(lanes): hand an empty subscription token to the fallback leg - #995

Merged
kyle-sexton merged 2 commits into
mainfrom
ci/uniform-lane-legs
Nov 6, 2026
Merged

kyle-sexton merged 2 commits into
mainfrom
ci/uniform-lane-legs

Conversation

@kyle-sexton

@kyle-sexton kyle-sexton commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

Refs: melodic-software/claude-code-plugins#13586

Summary

Before this change, an empty subscription token in either reusable stopped the lane, even when FALLBACK_CLAUDE_CODE_OAUTH_TOKEN was set. Now both reusables hand that case to the fallback leg, the same rule an empty key already follows to the subscription leg. The owner asked for this as part of making the lanes "consistent and uniform" (#13586). The claude-code-plugins lanes already follow it (#13590, #13608).

Fix

  • intake-triage.yml:
    • Each leg now outputs fallback-ready.
    • The fallback job starts on handoff == 'true', or on credential-present == 'false' && fallback-ready == 'true'.
    • Its lane record names fallback reason no-key.
  • pr-review-cli.yml: the same change for review-fallback.
  • With every token empty, nothing new starts, and the existing status and record logic report it as before.

Verification

  • node --test .github/scripts/*.test.cjs: 912 tests, 912 pass.
  • New assertions in intake-triage-legs.test.cjs and pr-review-cli.test.cjs. An empty subscription token with the fallback token set starts the fallback leg. Without the fallback token, or with no credential check at all, it does not. The leg records no-key.
  • zizmor --offline: no findings. actionlint reports only the existing $/ self-reference format.

Related

  • Not in this PR: the check-key-credit gate for intake-triage.yml. pr-review-cli.yml already has it. Every caller pins intake-triage.yml@main and grants no actions: read, so a gate job added here would break those callers the moment this merges. The callers have to add actions: read first.
  • claude-code-plugins#13608: the same rule for that repository's lanes.

🤖 Generated with Claude Code

intake-triage.yml and pr-review-cli.yml ran their fallback leg only on
the subscription leg's handoff, so an empty subscription token stopped
the lane even with FALLBACK_CLAUDE_CODE_OAUTH_TOKEN set. The fallback
job now also starts when the subscription job's credential-present is
false and its fallback-ready is true, the same rule an empty key follows
to the subscription leg, and its lane record names fallback reason
no-key. With every token empty nothing new starts.

Refs: melodic-software/claude-code-plugins#13586

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 5, 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-11-05T21:47:01.279845Z 899c0ec Draft marked ready
ℹ️ 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.

@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

claude-review reviewed 422abd9f625bbdb38fc79944992f9dc26f0cc7e5: 0 finding(s), 0 as inline comments.

Incremental review of 422abd9, covering .github/scripts/intake-triage-legs.test.cjs and .github/scripts/pr-review-cli.test.cjs. I found nothing to report.

The change only reflows long assert.equal(...) calls onto multiple lines in the way the repository's biome formatter does. I compared each reflowed call with its original in .claude-lane/incremental.diff, and the inputs and expected values are the same:

  • intake-triage-legs.test.cjs has two starts(...) assertions (expecting true and false) and one evaluate(...) assertion (expecting "no-key").
  • pr-review-cli.test.cjs has three starts(...) assertions (expecting true, false, false). The only other difference is that a stray space before a comma is gone.

I did not run the tests; this verdict comes from reading the diff. I also did not check the formatting against biome. The PR context, settled-threads and prior-findings files were not needed for a formatting-only change.

@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

claude-security-review reviewed 422abd9f625bbdb38fc79944992f9dc26f0cc7e5: 0 finding(s), 0 as inline comments.

Incremental review of 422abd9, covering the changes since 899c0ec in .github/scripts/intake-triage-legs.test.cjs and .github/scripts/pr-review-cli.test.cjs.

No security findings.

Both changes only reformat existing assert.equal(...) calls across several lines. They add, remove, or change no assertion, input value, expected result, or code path. The files are test-only, and neither is a trust control, trusted path, plugin manifest, or instruction surface.

critical-findings: 0

@kyle-sexton
kyle-sexton added this pull request to the merge queue Nov 5, 2026
@kyle-sexton
kyle-sexton removed this pull request from the merge queue due to a manual request Nov 6, 2026
@kyle-sexton
kyle-sexton added this pull request to the merge queue Nov 6, 2026
Merged via the queue into main with commit 17985f4 Nov 6, 2026
29 checks passed
@kyle-sexton
kyle-sexton deleted the ci/uniform-lane-legs branch November 6, 2026 00:27
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