You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: integration: mapping without an id makes a bundle silently integration-agnostic #5091
BundleManifest.from_dict rejects a non-mapping integration value because otherwise the bundle would be left "wrongly integration-agnostic" (comment at src/specify_cli/bundles/manifest.py:127-130). A mapping with a missing, empty or misspelt id (for example {name: claude} or {}) still falls through to integration = None (manifest.py:132), and specify bundle validate reports the manifest as valid.
Steps to Reproduce
From the root of a fresh clone after uv sync, save the script below as repro.py and run uv run python -I repro.py.
integration: {name: claude} and integration: {} should be reported as invalid, in the same way as integration: claude. The guard at manifest.py:127-130 was written to stop a declared integration from being dropped silently.
Actual Behavior
integration: claude -> exit 1: Error: 'integration' must be a mapping when present.
integration: {name: claude} -> exit 0: ✓ demo is well-formed and valid.
integration: {} -> exit 0: ✓ demo is well-formed and valid.
Also reproduced on macOS (Darwin 25.6, arm64) with Python 3.14.4 and uv run python -I repro.py against 27d14e2; the output matches the above.
AI Disclosure
Found and reproduced with Claude Code (model: Claude Opus 4.8), run autonomously under human supervision. The human reporter re-ran every reproduction above before filing.
Activity