Skip to content

fix(tooling): follow the project's Node runtime - #708

Merged
lastobelus merged 5 commits into
lastcode/mainfrom
lastcode/tooling-follows-engines-node
Nov 14, 2026
Merged

lastobelus merged 5 commits into
lastcode/mainfrom
lastcode/tooling-follows-engines-node

Conversation

@lastobelus

@lastobelus lastobelus commented Nov 14, 2026 •

Copy link
Copy Markdown
Owner

LastCode's merge and local CI scripts rejected Node 26.12.1 even though root engines.node already requires it. This also made the merge-lifecycle tests fail unless Node 24 came first on PATH. Fixes #665.

The runtime guard now accepts the exact version in root engines.node, with temporary support for ^24.13.1 while saved Project Actions migrate. Downstream package commands, Action declarations, installed launchers, setup examples, and pilot CI select Node 26.12.1; package tests no longer override the project runtime with Node 24. Existing Settings are unchanged. After preparation, the shared CI Action executes the target checkout's own CI command, preserving that checkout's runtime pin for both Quick and Full CI. Local package builds also select the target tag's CI runtime so older installable tags remain buildable.

Upstream's Node alignment came from https://redirect.github.com/pingdotgg/t3code/pull/23165 at ed9b7ca9c53843ea1e6b466bf7d52928d10e7db0.

Validation:

  • With the unchanged runtime guard and only the project Node available, all seven merge-lifecycle cases fail with the unsupported-runtime fixture error. With this change, all seven pass.
  • Node 26.12.1: the final changed-file gate passed formatting, lint, unused-code checks, generated-code checks, all 41 affected workspace typechecks, and 321 tests across 15 files. An additional integration run passed 65 tests, including local-CI entrypoints and Action reconciliation.
  • Node 24.13.1: 320 focused tests across 15 files passed on the rebased branch. The final target-tag runtime-selection regression also passes under both Node versions (35 tests each). The Action launch, preparation, and local-CI tests pass under both versions (86 tests each).
  • Three older-target Action runtime cases fail before the fix and pass afterward. A real-runtime fixture shows preparation on Node 26.12.1 followed by the old target guard passing on Node 24.13.1 for both Quick and Full modes.
  • The older-tag runtime regression failed before its fix and passes afterward. The merge-lock fixture now explicitly selects its disposable repository's hooks so global Git settings cannot disable its rejection checks.
  • Same-base carry validation passed for the final source commits and reproduced the exact PR tree. The commits are assigned to Build & CI, Resumable Actions, and Incubator according to their replay dependencies.
  • The saved Quick CI Action deferred to required GitHub CI because local capacity was busy; no local Quick CI receipt is claimed. The local checks above cover the identical final source tree.

Local review: 1 round with GPT-6.1 Sol (high) found the older-tag build regression, now fixed. Pre-push reviews with GPT-6.1 Terra (xhigh) approved the full diff, the Action runtime fix, and the final rebase onto the current checkpoint. Claude's writing pass was skipped because its quota was exhausted.

Implemented with Claude Opus 5.5 in the Claude Code harness and GPT-6.1 Sol in the Codex harness.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 14, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

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

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-14T09:15:15.221742Z 2c2dfb5 Manual request
ℹ️ 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.

@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🎉

Reviewed commit: a873c0eba5

ℹ️ 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".

@lastobelus
lastobelus force-pushed the lastcode/tooling-follows-engines-node branch from a873c0e to 556f06d Compare November 14, 2026 08:07
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@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: 556f06df79

ℹ️ 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 t3.json Resolved
lastobelus added a commit that referenced this pull request Nov 14, 2026
After dependency preparation, execute the target checkout's own lastcode:ci command with the requested mode. This preserves its Node pin when a shared Action targets an older checkout whose runtime guard still requires Node 24.

Cover older target runtime selection for Quick and Full CI, nested Node processes, preparation failure and CI exit propagation.

Carry-Group: incubator
Carry-Fix: #708 (comment)
Carry-Observation: The shared Action declaration is reconciled by Incubator; its runtime-selection repair and focused fixtures must replay together after that declaration.
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🎉

Reviewed commit: 39a2c19c66

ℹ️ 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".

Move package commands, installed launchers, CI, and setup examples to Node 26.12.1. Package builds resolve the selected tag's own CI runtime so existing installables remain buildable. Keep the pilot rejection assertion and isolate the merge-lock hook fixture from global Git settings.

Carry-Group: build-ci
Carry-Fix: #665
Carry-Upstream: https://redirect.github.com/pingdotgg/t3code/pull/23165
Carry-Observation: Runtime setup follows upstream Node alignment commit ed9b7ca; historical package tags retain their own CI runtime.
Keep Action reconciliation fixtures aligned with the downstream runtime declarations.

Carry-Group: resumable-actions
Carry-Fix: #665
Accept root engines.node exactly alongside temporary Node ^24.13.1 support, and align setup and Action declarations with Node 26.12.1.

Carry-Group: incubator
Carry-Fix: #665
Carry-Observation: These runtime and setup edits depend on definitions currently introduced or reconciled by the Incubator group, so they must replay after it. Independent packaging and CI edits remain in Build & CI, and Action reconciliation fixtures remain in Resumable Actions.
After dependency preparation, execute the target checkout's own lastcode:ci command with the requested mode. This preserves its Node pin when a shared Action targets an older checkout whose runtime guard still requires Node 24.

Cover older target runtime selection for Quick and Full CI, nested Node processes, preparation failure and CI exit propagation.

Carry-Group: incubator
Carry-Fix: #708 (comment)
Carry-Observation: The shared Action declaration is reconciled by Incubator; its runtime-selection repair and focused fixtures must replay together after that declaration.
@lastobelus
lastobelus force-pushed the lastcode/tooling-follows-engines-node branch from 39a2c19 to be506d9 Compare November 14, 2026 08:47
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit: be506d96f6

ℹ️ 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".

A later metadata-only CI check suite leaves GitHub expecting CI Gate despite successful exact-head CI and a successful gate rerun. Refresh the source check suite with an unchanged tree.

Carry-Group: build-ci
Carry-Observation: This empty commit refreshes GitHub required checks; it changes no source behavior.
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

Reviewed commit: 2c2dfb5494

ℹ️ 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".

@lastobelus
lastobelus merged commit 217eac9 into lastcode/main Nov 14, 2026
25 checks passed
@lastobelus
lastobelus deleted the lastcode/tooling-follows-engines-node branch November 14, 2026 11:42
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.

lastcode-merge-lifecycle.test.ts fails locally unless Node 24 is first on PATH

1 participant