Skip to content

test(cli): a real-binary scenario where the person already has the plugin - #847

Merged
blafourcade merged 1 commit into
nextfrom
test/real-binary-collision-with-a-person-install
Sep 11, 2026
Merged

blafourcade merged 1 commit into
nextfrom
test/real-binary-collision-with-a-person-install

Conversation

@blafourcade

Copy link
Copy Markdown
Contributor

🎯 What & why

No real-binary check could see #829. smoke-real.sh gives every run a unique marketplace name so that it never meets a real install. That same choice means it never covers a person who already holds a plugin under the key aidd uses, where a project's install and clean then overwrite or undo that install (#838).

🛠️ How it works

pnpm smoke:collision runs cli/scripts/smoke-collision.sh, with a throwaway HOME and CODEX_HOME and nothing under the real HOME read or written:

  1. It seeds the person's own install under aidd's keys:
    • a codex [plugins."aidd-vcs@aidd-framework"] section;
    • a copilot enabledPlugins key;
    • a cursor ~/.cursor/plugins/local/aidd-vcs/.cursor-plugin/plugin.json.
  2. It runs setup --plugins aidd-vcs and then clean --force with the real codex and copilot binaries.
  3. After each step, it checks that all three are exactly as seeded.

A host whose binary is absent is skipped; cursor needs none. AIDD_CLI points the script at another build, which is how the red run below was made. Like smoke:real, it is never run in CI or lefthook, since CI has no host binaries.

Also in this PR:

  • smoke-scripts-inline-node-quoting.test.js now guards this script as well as the two it already covered;
  • cli/aidd_docs/memory/testing.md has one line for the new command.

🧪 How to verify

Real codex and copilot from Homebrew, on macOS:

Build Result
next before #829's fix (8c5f820c) 4 failed: cursor plugin.json changed after setup and after clean; codex section gone after clean; copilot key false after clean. This is #829's own table, reproduced
this branch (next with #834) 8 passed, 0 failed

The real ~/.codex/config.toml and ~/.copilot/settings.json kept their modification times (Sep 10 14:00) across both runs.

Local checks: the smoke script tests pass (5), smoke-harness-isolation passes (6), architecture passes (128), lint and knip pass.

⚠️ Heads-up

  • No production change: a script, a package script, a guard list and one line of the memory bank.
  • The script exports CODEX_HOME as well as HOME, following smoke-tools.sh: its isolation test records that HOME alone does not move Codex.

🔗 Linked issue

Fixes #838

✅ I certify

  • I DO CERTIFY I READ EACH LINE OF THE PULL REQUEST BECAUSE I AM A SOFTWARE ENGINEER, NOT A AI PUPPY.

🤖 Generated with Claude Code

https://claude.ai/code/session_011x4ms5qcGuZgYhCxfdHMUb

…ugin

`smoke-real.sh` gives every run a unique marketplace name so it never meets
a real install, which is exactly why no real-binary check could see #829:
a person already holding a plugin under the key aidd uses, and a project's
install and clean overwriting or undoing it.

`pnpm smoke:collision` seeds a person's own install under those keys in a
throwaway HOME and CODEX_HOME (a codex `[plugins."aidd-vcs@aidd-framework"]`
section, a copilot `enabledPlugins` key, a cursor
`~/.cursor/plugins/local/aidd-vcs/.cursor-plugin/plugin.json`), then runs
`setup` and `clean` with the real `codex` and `copilot` binaries and checks
each is exactly as seeded. A host whose binary is absent is skipped; cursor
needs none. Nothing under the real HOME is read or written.

Fixes #838

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011x4ms5qcGuZgYhCxfdHMUb
AIDD-Session-Id: 4acc9a1c-19bc-4468-b8b6-e86644bcba60
@blafourcade
blafourcade requested a review from a team as a code owner September 11, 2026 04:10
@blafourcade
blafourcade merged commit 705193f into next Sep 11, 2026
36 checks passed
@blafourcade
blafourcade deleted the test/real-binary-collision-with-a-person-install branch September 11, 2026 07: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.

1 participant