Skip to content

feat(every-astro): add interactive Astro regression bisect CLI - #301

Merged
Fryuni merged 45 commits into
mainfrom
every-astro
Jul 22, 2026
Merged

feat(every-astro): add interactive Astro regression bisect CLI#301
Fryuni merged 45 commits into
mainfrom
every-astro

Conversation

@Fryuni

@Fryuni Fryuni commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Intent

Implement a new publishable @inox-tools/every-astro CLI that runs inside an Astro project and identifies the Astro commit that introduced a user-observed bug. It must determine the installed Astro major, clone the full Astro repository to a temporary directory, build and link or install every Astro monorepo package used by the project, test latest and the first release of that major by running the project's dev server and asking whether the bug is present, stop with fixed or predates-major messages when applicable, and otherwise drive git bisect until the exact first bad commit is identified. Use Astro's real astro@.0.0 Git ref while displaying v.0.0 to users; support pnpm, npm, Yarn Classic/Berry/PnP, and Bun; use Node >=22.12, bundled Corepack, and Windows-safe process spawning; recompute available linked packages per revision; and always restore manifests, lockfiles, dependencies, links, processes, bisect state, and temporary files before reporting success.

What Changed

  • Add a publishable interactive CLI that tests Astro revisions against a project’s dev server and uses git bisect to identify the first bad commit.
  • Support pnpm, npm, Yarn Classic/Berry/PnP, and Bun projects, with revision-specific Astro package substitution and cleanup/restoration handling.
  • Add package configuration, unit coverage, documentation, and a minor changeset for @inox-tools/every-astro.

Risk Assessment

🚨 High: The cleanup path can alter or break the user’s dependency installation, including a deterministic restoration failure on common Windows package-manager layouts.

Testing

The focused package tests and packed-CLI end-to-end checks passed. Bun and Yarn Berry/PnP both built and activated the selected Astro checkout, reached the interactive result, restored manifests, lockfiles, dependency state, and original Astro behavior, and left no testing residue in the worktree.

Evidence: Bun revision activation and restoration

built fixture Astro ASTRO_FIXTURE_BEHAVIOR=bad latest: is the bug present? [y/n] n The bug is already fixed in the latest Astro revision. RESTORED_ASTRO_VERSION=7.0.0 RESTORATION_HASHES_MATCH

$ node -e "console.log('built fixture Astro')"
built fixture Astro
ASTRO_FIXTURE_BEHAVIOR=bad
latest: is the bug present? [y/n] n
The bug is already fixed in the latest Astro revision.
RESTORED_ASTRO_VERSION=7.0.0
RESTORATION_HASHES_MATCH
Evidence: Yarn Berry/PnP activation and restoration

built fixture Astro ➤ YN0085: │ + astro@portal:/tmp/every-astro-EhzbwI/astro/packages/astro latest: is the bug present? [y/n] ASTRO_FIXTURE_BEHAVIOR=bad The bug is already fixed in the latest Astro revision. ASTRO_FIXTURE_BEHAVIOR=original-restored RESTORATION_HASHES_MATCH

$ node -e "console.log('built fixture Astro')"
built fixture Astro
➤ YN0085: │ + astro@portal:/tmp/every-astro-EhzbwI/astro/packages/astro::locator=every-astro-yarn-pnp-consumer%40workspace%3A.
latest: is the bug present? [y/n] ASTRO_FIXTURE_BEHAVIOR=bad
The bug is already fixed in the latest Astro revision.
ASTRO_FIXTURE_BEHAVIOR=original-restored
RESTORATION_HASHES_MATCH
- Outcome: 🔧 2 issues found → auto-fixed ✅ across 2 runs (37m58s)

@vercel

vercel Bot commented Jul 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
inox-tools Ready Ready Preview Jul 22, 2026 5:29am

@coderabbitai

coderabbitai Bot commented Jul 18, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are limited based on label configuration.

🏷️ Required labels (at least one) (1)
  • ai-review

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 2f81b81f-3630-46ad-8fe8-363e1ebe302c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@pkg-pr-new

pkg-pr-new Bot commented Jul 18, 2026

Copy link
Copy Markdown

Open in StackBlitz

@inox-tools/astro-tests

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/astro-tests@301

@inox-tools/astro-when

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/astro-when@301

@inox-tools/content-utils

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/content-utils@301

@inox-tools/custom-routing

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/custom-routing@301

@inox-tools/cut-short

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/cut-short@301

@inox-tools/every-astro

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/every-astro@301

@inox-tools/git-redirect

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/git-redirect@301

@inox-tools/inline-mod

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/inline-mod@301

@inox-tools/modular-station

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/modular-station@301

@inox-tools/portal-gun

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/portal-gun@301

@inox-tools/request-nanostores

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/request-nanostores@301

@inox-tools/request-state

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/request-state@301

@inox-tools/route-config

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/route-config@301

@inox-tools/runtime-logger

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/runtime-logger@301

@inox-tools/server-islands

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/server-islands@301

@inox-tools/sitemap-ext

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/sitemap-ext@301

@inox-tools/star-warp

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/star-warp@301

@inox-tools/utils

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/utils@301

@inox-tools/velox-luna

npm i https://pkg.pr.new/Fryuni/inox-tools/@inox-tools/velox-luna@301

commit: 740a5e8

@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: 1d339e82e3

ℹ️ 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 packages/every-astro/src/runtime.ts Outdated
Comment thread packages/every-astro/src/index.ts Outdated
Comment thread packages/every-astro/src/runtime.ts Outdated

@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: 044c620a99

ℹ️ 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 packages/every-astro/src/runtime.ts Outdated
Comment thread packages/every-astro/src/workflow.ts Outdated

@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: 9703234ba0

ℹ️ 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 packages/every-astro/src/runtime.ts Outdated
Comment thread packages/every-astro/src/workflow.ts Outdated

@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: f54b8d0af1

ℹ️ 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 packages/every-astro/src/runtime.ts Outdated

@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: 8a6710107a

ℹ️ 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 packages/every-astro/src/runtime.ts Outdated
Comment thread packages/every-astro/src/runtime.ts Outdated

@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: 2ce4b05a78

ℹ️ 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 packages/every-astro/src/runtime.ts Outdated
Comment thread packages/every-astro/src/workflow.ts

@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: 611b64b83a

ℹ️ 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 packages/every-astro/src/runtime.ts Outdated

@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: 058c82ca48

ℹ️ 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 packages/every-astro/src/runtime.ts Outdated

@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: dae22df93a

ℹ️ 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 packages/every-astro/src/runtime.ts
Comment thread packages/every-astro/src/runtime.ts Outdated

@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: 7725a10ea4

ℹ️ 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 packages/every-astro/src/runtime.ts

@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: ff8abe6103

ℹ️ 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 packages/every-astro/src/runtime.ts

@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: 740a5e80a6

ℹ️ 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 packages/every-astro/src/windows-job-supervisor.ps1
@Fryuni
Fryuni merged commit a9df2db into main Jul 22, 2026
24 checks passed
@Fryuni
Fryuni deleted the every-astro branch July 22, 2026 12:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant