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.
Bug
amplifier bundle add "git+https://…/repo@main#subdirectory=behaviors/x.yaml" --appregisters two entries — the requested behavior and the repo's root bundle (statusapp). 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)
Observed while validating an adopter report against
amplifier-bundle-converge(that bundle's session-widespawn: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 correspondingaddcreated — one add, one remove, symmetric. If the root registration is intentional (e.g. fornamespace:resolution), it should not be composed as anappentry, andbundle list+ removal messaging should make the pairing explicit.