Skip to content

Commit 0acb5c6

Browse files
fix(integrations): declare kiro-cli multi-install safe (#3471) (#3485)
kiro-cli confines all of its managed files to an isolated agent root (`.kiro/`, with commands in `.kiro/prompts`) that no other integration writes to, so it meets every documented criterion for multi-install safety — but `KiroCliIntegration` never set `multi_install_safe = True`. As a result, co-installing kiro-cli alongside any other integration left `specify integration status` permanently in ERROR: error unsafe-multi-install: Installed integrations are not all declared multi-install safe: kiro-cli `--force` bypasses the install-time gate but does not clear the status error, and there is no flag or config to acknowledge it, so the error is permanent while both integrations remain installed. Set `multi_install_safe = True`. The registry's parametrized multi-install-safe contract tests (static isolated root, distinct agent roots / command dirs, disjoint manifests) now cover kiro-cli automatically, and a focused regression test pins the declaration so a future edit cannot silently drop it and reintroduce the error. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent a965413 commit 0acb5c6

2 files changed

Lines changed: 21 additions & 0 deletions

File tree

src/specify_cli/integrations/kiro_cli/__init__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,10 @@ class KiroCliIntegration(MarkdownIntegration):
2727
"args": _KIRO_ARG_FALLBACK,
2828
"extension": ".md",
2929
}
30+
31+
# Kiro CLI keeps everything under a static, isolated agent root
32+
# (``.kiro/`` with commands in ``.kiro/prompts``) that no other
33+
# integration writes to, so it is safe to install alongside others
34+
# (issue #3471). The registry's multi-install-safe contract tests
35+
# enforce that isolation for every integration setting this flag.
36+
multi_install_safe = True

tests/integrations/test_registry.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,20 @@ def test_safe_integrations_have_disjoint_manifests(
272272
f"these files: {sorted(overlap)}"
273273
)
274274

275+
def test_kiro_cli_is_declared_multi_install_safe(self):
276+
"""kiro-cli confines itself to an isolated ``.kiro/`` root that no
277+
other integration touches, so it must be declared multi-install safe
278+
(issue #3471).
279+
280+
Before the fix, co-installing kiro-cli alongside another integration
281+
left ``specify integration status`` permanently in ERROR
282+
(``unsafe-multi-install``) with no way to acknowledge it. The
283+
parametrized isolation/manifest contracts above already exercise
284+
kiro-cli once the flag is set; this pins the declaration itself so a
285+
future edit cannot silently drop it and reintroduce the error.
286+
"""
287+
assert INTEGRATION_REGISTRY["kiro-cli"].multi_install_safe is True
288+
275289

276290
class TestCatalogParity:
277291
"""The discovery catalog must list every registered integration."""

0 commit comments

Comments
 (0)