From 2f9ffd5bbf2f18fd7e2166bc2d6b84ab07394754 Mon Sep 17 00:00:00 2001 From: Quratulain-bilal Date: Sun, 12 Jul 2026 03:19:52 +0500 Subject: [PATCH] tidy kiro-cli multi-install-safe declaration + add docs row and test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit kiro-cli is declared multi_install_safe (it uses a fully isolated .kiro/ root, .kiro/prompts command dir, a stable '.' separator, and a dedicated manifest — #3471). main ended up with the flag assigned twice in the class body; this drops the bare duplicate and keeps a single declaration with the comment explaining why it's safe. also adds the missing kiro-cli row to the multi-install-safe table in docs/reference/integrations.md, and a test asserting the flag is set (the registry contract tests already enforce the actual path isolation against every other safe integration). --- docs/reference/integrations.md | 1 + src/specify_cli/integrations/kiro_cli/__init__.py | 1 - tests/integrations/test_integration_kiro_cli.py | 10 ++++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/reference/integrations.md b/docs/reference/integrations.md index 72044ec684..50236c74f0 100644 --- a/docs/reference/integrations.md +++ b/docs/reference/integrations.md @@ -271,6 +271,7 @@ The currently declared multi-install safe integrations are: | `grok` | `.grok/skills` | | `junie` | `.junie/commands`, `.junie/AGENTS.md` | | `kilocode` | `.kilocode/workflows`, `.kilocode/rules/specify-rules.md` | +| `kiro-cli` | `.kiro/prompts` | | `qodercli` | `.qoder/commands`, `QODER.md` | | `qwen` | `.qwen/commands`, `QWEN.md` | | `shai` | `.shai/commands`, `SHAI.md` | diff --git a/src/specify_cli/integrations/kiro_cli/__init__.py b/src/specify_cli/integrations/kiro_cli/__init__.py index 37f743d5c2..868e4e64f0 100644 --- a/src/specify_cli/integrations/kiro_cli/__init__.py +++ b/src/specify_cli/integrations/kiro_cli/__init__.py @@ -13,7 +13,6 @@ class KiroCliIntegration(MarkdownIntegration): key = "kiro-cli" - multi_install_safe = True config = { "name": "Kiro CLI", "folder": ".kiro/", diff --git a/tests/integrations/test_integration_kiro_cli.py b/tests/integrations/test_integration_kiro_cli.py index a871e79a46..dc056d0c36 100644 --- a/tests/integrations/test_integration_kiro_cli.py +++ b/tests/integrations/test_integration_kiro_cli.py @@ -56,6 +56,16 @@ def test_registrar_config(self): assert i.registrar_config["format"] == "markdown" assert i.registrar_config["extension"] == ".md" + def test_declared_multi_install_safe(self): + """kiro-cli uses a fully isolated .kiro/ root, a stable "." separator, + and a dedicated manifest, so it must be declared multi-install safe — + otherwise co-installing it (e.g. alongside claude) leaves + `integration status` permanently in ERROR with no way to resolve it + (#3471). The registry contract tests enforce the actual path isolation + against every other safe integration.""" + i = get_integration(self.KEY) + assert i.multi_install_safe is True + def test_registrar_config_args_is_exact_prose_fallback(self): """Layer 1 — pin the exact fallback so wording drift requires a deliberate paired commit (production constant + test update)."""