microsoft / microsoft/amplifier

bundle add with #subdirectory --app registers the root bundle too; removing the added entry doesn't undo the add

Open
#389 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
3.1k
Forks
261
Avg merge
3h 28m
Merged PRs (30d)
13

Description

Bug

amplifier bundle add "git+https://…/repo@main#subdirectory=behaviors/x.yaml" --app registers two entries — the requested behavior and the repo's root bundle (status app). Removing the behavior entry alone does not undo the add: the root bundle's config stays active. Adopters reasonably conclude removal is broken.

Repro (DTU, 2026-09-02)

amplifier bundle add "git+https://github.com/microsoft/amplifier-bundle-converge@main#subdirectory=behaviors/converge.yaml" --app
amplifier bundle list        # shows BOTH: converge-behavior (app) AND converge (app)
amplifier bundle remove converge-behavior
# effects of the add persist — the root bundle's top-level config (at the time,
# a spawn: block in bundle.md) kept applying to every session
amplifier bundle remove converge
# only now does behavior return to baseline (verified byte-identical tool lists)

Observed while validating an adopter report against amplifier-bundle-converge (that bundle's session-wide spawn: block is itself now removed — this issue is about the registration/removal asymmetry, which reproduces independent of what the root config contains).

Expected

Either (a) a #subdirectory= add registers only the requested bundle, or (b) bundle remove <name> removes everything the corresponding add created — one add, one remove, symmetric. If the root registration is intentional (e.g. for namespace: resolution), it should not be composed as an app entry, and bundle list + removal messaging should make the pairing explicit.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the behavior with amplifier bundle add, amplifier bundle list, and amplifier bundle remove using the subdirectory URL in the issue. Trace the registration and removal paths to determine how the requested bundle and root bundle are paired. Done means one add has symmetric removal, with bundle list and removal behavior making any intentional pairing explicit.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.