Skip to content

feat(install): same-version replace path for every emitted installer (#400) - #420

Merged
ScriptedAlchemy merged 22 commits into
mainfrom
fix/400-install-replace
Sep 3, 2026
Merged

feat(install): same-version replace path for every emitted installer (#400)#420
ScriptedAlchemy merged 22 commits into
mainfrom
fix/400-install-replace

Conversation

@ScriptedAlchemy

@ScriptedAlchemy ScriptedAlchemy commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Summary

Closes #400. Rebuilding a plugin without bumping version and re-running the emitted installers used to fail (Refusing content collision at ~/.cursor/plugins/local/<name>) or silently leave a stale copy (Claude's plugin update is version-gated). Every installer now shares one host-agnostic replace policy in the install core:

  • --replace (alias --force) on agent-bundle install <host>, the package-relative installer bin, and the emitted standalone install.mjs.
  • Automatic same-version replace: an agent-bundle install of the same plugin at the same version whose artifact content hash differs (a stale copy) is replaced without a flag. Identical reruns are a already-installed no-op that says so, even with --replace.
  • Install receipt (.agent-bundle-install.json: plugin, version, host, content hash, installedAt, owned file list) written beside the plugin manifest for Cursor copies. Cursor replacement is in place and touches owned files only — stale owned files removed, staged files renamed over predecessors, receipt written last — so unowned entries such as workspace-durable state/ stores survive.
  • Claude: same-version drift is replaced via claude plugin uninstall <id> --scope <scope> --keep-data before marketplace add + install (verified against a real claude 2.1.x: re-install and marketplace update + update both leave the cache stale; uninstall + install refreshes it). Codex: codex plugin remove before add so removed files do not linger. Both are located through the host's own plugin list --json; an unusable inventory keeps plain install behaviour and fails --replace closed rather than guessing.
  • Foreign installs are still refused (AB7005), now with an installed-versus-artifact content-hash comparison (installed <name>@<v> content <hash> vs artifact <name>@<v> content <hash> (same version, different content)), even with --replace. A pre-receipt legacy copy (emitted INSTALL.md + install.mjs, matching manifest name) needs --replace once to be adopted.
  • agent-bundle doctor --from reports per host the installed version + content hash vs the built artifact as current, stale (same version, different content) (AB7308), version-mismatch (AB7309), foreign (new AB7321), not-installed (AB7307), or unknown; Claude and Codex comparisons use the same plugin list --json inventory.
  • Emitted INSTALL.md documents the reinstall recipe per host, including Claude's version-gated plugin update.

Concurrency note (#407): the change lives in the host-agnostic core (install/receipt.ts new, install/install.ts, install/doctor.ts, install-entry.ts, install/surface.ts, cli.ts); Cursor-specific code is touched only where the collision guard already lived. No overlap with the four commits that landed on main during this lane (rebased cleanly).

Evidence

Real-CLI experiment (isolated CLAUDE_CONFIG_DIR / CODEX_HOME) reproducing the issue and confirming the recipe:

  • Claude: marketplace add ./ → "already on disk"; plugin install → "already installed (scope: user)"; marketplace update + plugin update → "already at the latest version (1.0.0)" with the cache still at v1. plugin uninstall … --keep-data + plugin install → cache at v2.
  • Codex: plugin add re-copies on re-add (does not delete removed files); plugin remove + add yields a clean copy. codex plugin list --json returns { installed: [{ pluginId, version, installed, … }] } (0.147.0).

Gates (worktree, logs under /tmp/lane-400/):

  • pnpm typecheck ✅, pnpm lint ✅ (0 errors, 1047 files)
  • pnpm test:unit ✅ 2738 passed / 5 skipped (a second run hit two Event runtime endpoint already has a live server collisions in event-ipc / inspect-state from concurrent lanes sharing /tmp; both pass in isolation)
  • pnpm test:route-unit ✅ (one 5 s timeout in lifecycle-replay on the loaded machine; passes in isolation, unrelated to install)
  • pnpm test:projection ✅ 66/66
  • pnpm build && pnpm test:integration:run ✅ 946 passed / 32 skipped after updating the cli.test.ts install-dispatch expectation (replace: false)
  • pnpm build && pnpm test:host-install ✅ 19 passed / 2 pre-existing opt-in skips — includes the new same-version rebuild round trip against real claude, codex, Cursor home, and portable install.mjs (replaced → cache carries the new file → already-installed)
  • pnpm test:host-install:packed:build ✅ 3/3 (same round trip through the packed tarball installer)

Test plan

  • tests/install.test.ts: receipt written on install; identical rerun no-op; receipt-managed same-version drift replaced in place leaving only owned files (+ state/ and operator files preserved, stale owned file removed, empty dir pruned); legacy pre-receipt copy refused with hash comparison then adopted by --replace; foreign directory refused even with --replace (hand-made dir and another plugin's receipt); version collision gated behind --replace; Claude auto-replace sequence (listuninstall --keep-datamarketplace addinstall) and identical no-op; Codex plain vs --replace (remove + add) and fail-closed on unusable inventory; CLI --force parsed to replace: true.
  • tests/doctor.test.ts: Cursor not-installed / current / stale (receipt and legacy, with recovery text) / foreign (AB7321) with both hashes; Claude not-installed / current / stale / version-mismatch from plugin list --json rows; Codex unknown (AB7313) when inventory unusable, missing / installed + stale when usable; pinned command lists updated (read-only plugin list --json only).
  • tests/install-surface.test.ts: INSTALL.md recipes per host; emitted install.mjs executed against a fake home: --help, unknown arg, install, no-op, forced no-op, owned-only replace preserving state/, legacy gate + --force adoption, foreign refusal; receipt byte-compatible with the core reader.
  • tests/installer-entry.test.ts: usage string, --replace and --force parsed, auto-replace through the packaged bin, unknown flag rejected.
  • tests/support/host-install.ts + proof tests: same-version rebuild round trip for Claude, Codex, Cursor, portable (source and packed).
  • Docs: packages/agent-bundle/README.md (install/doctor, "Reinstall after a same-version rebuild"), docs/framework-mode.md, docs/diagnostics.md (receipt format, policy matrix, AB7005, new AB7321), changeset .changeset/400-install-replace.md (minor).

@changeset-bot

changeset-bot Bot commented Sep 3, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 05a826b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
agent-bundle Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 3, 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-09-03T14:03:17.298043Z 05a826b 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.

@ScriptedAlchemy

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: e034b02f93

ℹ️ 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/agent-bundle/src/install/receipt.ts Outdated
Comment thread packages/agent-bundle/src/install/receipt.ts Outdated
Comment thread packages/agent-bundle/src/install/install.ts Outdated
Comment thread packages/agent-bundle/src/install/install.ts
@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

@codex review

@pkg-pr-new

pkg-pr-new Bot commented Sep 3, 2026

Copy link
Copy Markdown
npm i https://pkg.pr.new/ScriptedAlchemy/agent-bundle@420
npm i https://pkg.pr.new/ScriptedAlchemy/agent-bundle/create-agent-bundle@420
npm i https://pkg.pr.new/ScriptedAlchemy/agent-bundle/@agent-bundle/runtime@420

commit: 05a826b

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

ℹ️ 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/agent-bundle/src/install/receipt.ts Outdated
Comment thread .changeset/400-install-replace.md Outdated
Comment thread .changeset/400-install-replace.md Outdated
Comment thread packages/agent-bundle/src/install/surface.ts Outdated
Comment thread packages/agent-bundle/src/install/receipt.ts Outdated
ScriptedAlchemy added a commit that referenced this pull request Sep 3, 2026
…eset (#400)

- Refuse any owned or incoming path whose ancestor directory is a symlink
  before hashing or writing (development installs re-point top-level dirs).
- Decide unowned-file collisions by inode identity so a case-only rename of an
  owned path is not a collision on case-insensitive filesystems.
- Standalone install.mjs validates the full receipt shape like the core reader.
- Changeset: patch (pre-1.0 features are patch), summary ends with (#420).
@ScriptedAlchemy

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: 6101a31658

ℹ️ 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/agent-bundle/src/install/receipt.ts Outdated
Comment thread packages/agent-bundle/src/install/receipt.ts Outdated
Comment thread packages/agent-bundle/src/install/install.ts Outdated
@ScriptedAlchemy

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: c1b6c3faa0

ℹ️ 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/agent-bundle/src/install/receipt.ts Outdated
Comment thread packages/agent-bundle/src/install/install.ts Outdated
@ScriptedAlchemy

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: 0f5ea07d79

ℹ️ 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/agent-bundle/src/install/receipt.ts Outdated
Comment thread packages/agent-bundle/src/install/receipt.ts Outdated
@ScriptedAlchemy

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: a3fda8c1fd

ℹ️ 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/agent-bundle/src/install/receipt.ts Outdated
Comment thread packages/agent-bundle/src/install/receipt.ts Outdated
Comment thread packages/agent-bundle/src/install/receipt.ts Outdated
@ScriptedAlchemy

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: a398f5174d

ℹ️ 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/agent-bundle/src/install/receipt.ts Outdated
Comment thread packages/agent-bundle/src/install/receipt.ts Outdated
Comment thread packages/agent-bundle/src/install/receipt.ts Outdated
@ScriptedAlchemy

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: 41e9096635

ℹ️ 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/agent-bundle/src/install/install.ts
Comment thread packages/agent-bundle/src/install/receipt.ts Outdated
@ScriptedAlchemy

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: abf888aa64

ℹ️ 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/agent-bundle/src/install/install.ts Outdated
Comment thread packages/agent-bundle/src/install/receipt.ts Outdated
Comment thread packages/agent-bundle/src/install/doctor.ts Outdated
@ScriptedAlchemy

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: a3dd5f3845

ℹ️ 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/agent-bundle/src/install/install.ts Outdated
Comment thread packages/agent-bundle/src/install/install.ts
@ScriptedAlchemy

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: ab2f91f9ed

ℹ️ 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/agent-bundle/src/install/receipt.ts Outdated
Comment thread packages/agent-bundle/src/install/receipt.ts Outdated
@ScriptedAlchemy

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: abfdcba1f9

ℹ️ 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/agent-bundle/src/install/receipt.ts
@ScriptedAlchemy

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: c49a42678c

ℹ️ 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/agent-bundle/src/install/receipt.ts Outdated
Comment thread packages/agent-bundle/src/install/doctor.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: 650830e506

ℹ️ 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/agent-bundle/src/install/receipt.ts Outdated
Comment thread .changeset/400-install-replace.md
…O receipts, state-claiming receipts, doctor scope rows (#400)
@ScriptedAlchemy

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: a07303293c

ℹ️ 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/agent-bundle/src/install/receipt.ts
@ScriptedAlchemy

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: 9bf12701a7

ℹ️ 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/agent-bundle/src/install/receipt.ts
@ScriptedAlchemy

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: 92736f707d

ℹ️ 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/agent-bundle/src/install/receipt.ts Outdated
@ScriptedAlchemy

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: fa611bbf8f

ℹ️ 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/agent-bundle/src/install/receipt.ts Outdated
@ScriptedAlchemy

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: ec29c9780f

ℹ️ 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/agent-bundle/src/install/receipt.ts
@ScriptedAlchemy

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: a56791eecd

ℹ️ 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/agent-bundle/src/install/receipt.ts
@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. You're on a roll.

Reviewed commit: 05a826b072

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

@ScriptedAlchemy
ScriptedAlchemy merged commit 826dea2 into main Sep 3, 2026
11 checks passed
@ScriptedAlchemy
ScriptedAlchemy deleted the fix/400-install-replace branch September 3, 2026 14:17
ScriptedAlchemy added a commit that referenced this pull request Sep 3, 2026
main (#420) adds --replace/--force to every emitted installer, automatic
same-version replacement, Cursor install receipts, and Doctor's current /
stale / version-mismatch / foreign / not-installed verdicts. main (#425)
reports every canonical component kind from inspect and exports
AgentComponentKind and componentKindCapability from agent-bundle/api. The
CLI reference, installation guide, and API overview cover both, in both
locales.
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.

Emitted installers have no same-version replace path; local dev loop needs manual uninstall + rm

1 participant