From 65a39af236d96f9b9553914414d6b95ddcc1640e Mon Sep 17 00:00:00 2001 From: jawwad-ali Date: Wed, 22 Jul 2026 21:03:52 +0500 Subject: [PATCH 1/2] fix(integrations): declare OmpIntegration multi_install_safe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OmpIntegration is a plain MarkdownIntegration whose files live only under its isolated, static root .omp/commands/, disjoint from every other integration. But it never declared multi_install_safe, so it inherited the IntegrationBase default False — leaving `specify integration status` in a permanent unsafe-multi-install ERROR state whenever omp is co-installed alongside another agent, with no acknowledgment path. Add `multi_install_safe = True`, mirroring the isolated MarkdownIntegration cohort (qwen, shai, qodercli, junie, kilocode) and the kiro-cli #3471 fix. The parametrized registry isolation contracts auto-include omp once the flag is set and pass (.omp/commands is isolated and its manifest disjoint). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.8 (1M context) --- src/specify_cli/integrations/omp/__init__.py | 1 + tests/integrations/test_integration_omp.py | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/specify_cli/integrations/omp/__init__.py b/src/specify_cli/integrations/omp/__init__.py index 1565832989..0a93237d4f 100644 --- a/src/specify_cli/integrations/omp/__init__.py +++ b/src/specify_cli/integrations/omp/__init__.py @@ -20,6 +20,7 @@ class OmpIntegration(MarkdownIntegration): "args": "$ARGUMENTS", "extension": ".md", } + multi_install_safe = True def build_exec_args( self, diff --git a/tests/integrations/test_integration_omp.py b/tests/integrations/test_integration_omp.py index 5b30b76075..07dd57336b 100644 --- a/tests/integrations/test_integration_omp.py +++ b/tests/integrations/test_integration_omp.py @@ -11,6 +11,12 @@ class TestOmpIntegration(MarkdownIntegrationTests): COMMANDS_SUBDIR = "commands" REGISTRAR_DIR = ".omp/commands" + def test_multi_install_safe(self): + # Omp writes only to its isolated, static root .omp/commands, disjoint + # from every other integration, so it must be co-install safe (mirrors + # qwen/shai/qodercli and the kiro-cli #3471 precedent). + assert get_integration(self.KEY).multi_install_safe is True + def test_build_exec_args_uses_omp_json_mode(self): i = get_integration(self.KEY) From a388787913f8d9007b181ad0315c8f2345abba3d Mon Sep 17 00:00:00 2001 From: jawwad-ali Date: Thu, 23 Jul 2026 00:26:32 +0500 Subject: [PATCH 2/2] docs(integrations): list omp in the multi-install-safe reference table MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Declaring OmpIntegration multi_install_safe means the reference table in docs/reference/integrations.md (which states it lists all currently declared multi-install-safe integrations) should include it. Add the alphabetized omp row with its .omp/commands isolation path. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/reference/integrations.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/reference/integrations.md b/docs/reference/integrations.md index 662c0b5e5c..559cbb3248 100644 --- a/docs/reference/integrations.md +++ b/docs/reference/integrations.md @@ -276,6 +276,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` | +| `omp` | `.omp/commands` | | `qodercli` | `.qoder/commands`, `QODER.md` | | `qwen` | `.qwen/commands`, `QWEN.md` | | `shai` | `.shai/commands`, `SHAI.md` |