Repository navigation
Conversation
Code Review Could Not Complete
|
| Options | Enabled |
|---|---|
| Bug | ✅ |
| Performance | ✅ |
| Security | ✅ |
| Business Logic | ✅ |
WalkthroughThis PR adds Oh My Pi as a supported runtime, including public identifiers, registry metadata, environment and installation resolution, ACP session configuration, CLI setup and execution flows, skill preflight handling, and persisted-session coverage. ChangesOh My Pi runtime integration
Estimated code review effort: 5 (Critical) | ~120 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
| Filename | Overview |
|---|---|
| internal/core/agent/registry_specs.go | Registers OMP as a separate native ACP runtime with its own command and capability settings. |
| internal/core/agent/session_config.go | Adds OMP model and reasoning configuration for new and resumed sessions. |
| internal/setup/agents.go | Adds project and active-profile skill roots for OMP while keeping Pi destinations separate. |
| internal/cli/skills_preflight.go | Keeps skill verification, refresh, and re-verification on the same resolved destination. |
| internal/cli/setup.go | Adds environment-aware OMP setup resolution and supported-agent listing output. |
Reviews (2): Last reviewed commit: "docs: document Oh My Pi support" | Re-trigger Greptile
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
internal/setup/agents_test.go (1)
179-181: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winSubtest names should use the
Should...pattern. The new table/loop subtests label cases as"Traversal","Absolute path", the profile string, andtt.name(e.g."Default profile uses native root"). Renaming to the mandatedt.Run("Should ...")form keeps these enforced-standard-compliant.As per path instructions: "MUST use t.Run("Should...") pattern for ALL test cases".
Also applies to: 282-283, 356-358
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@internal/setup/agents_test.go` around lines 179 - 181, Rename every subtest case name in the affected tests to use the mandated “Should...” pattern, including the loop labels “Traversal” and “Absolute path,” the profile-string cases, and tt.name-based cases. Update the corresponding t.Run calls near the referenced test sections while preserving each case’s existing behavior.Source: Path instructions
internal/core/agent/session_config_test.go (1)
44-44: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueSubtest names don't follow the mandated
Should…pattern.The subtest cases here (
"empty model","explicit auto") use free-form names. As per path instructions, test cases must use thet.Run("Should...")pattern for all test cases. This applies to the new OMP tests across this cohort.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@internal/core/agent/session_config_test.go` at line 44, Update the subtest names in the t.Run calls within the affected OMP tests to follow the mandated “Should…” naming pattern, including the cases currently named “empty model” and “explicit auto”; preserve each test’s existing behavior and assertions.Source: Path instructions
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@internal/core/agent/registry_test.go`:
- Around line 193-219: Enforce the required Should... test naming across all
affected sites: wrap the top-level test logic in t.Run subtests named with the
Should prefix in internal/core/agent/registry_test.go ranges 193-219, 1199-1230,
and 1616-1669, internal/cli/form_test.go ranges 56-91 and 794-821, and
test/public_api_test.go range 16-31; rename table-driven name fields in
internal/core/agent/registry_test.go range 411-427 and
internal/core/agent/tool_call_name_test.go range 77-83 to start with Should; and
prefix the dynamic t.Run name in internal/core/agent/registry_test.go range
449-460 with Should.
---
Nitpick comments:
In `@internal/core/agent/session_config_test.go`:
- Line 44: Update the subtest names in the t.Run calls within the affected OMP
tests to follow the mandated “Should…” naming pattern, including the cases
currently named “empty model” and “explicit auto”; preserve each test’s existing
behavior and assertions.
In `@internal/setup/agents_test.go`:
- Around line 179-181: Rename every subtest case name in the affected tests to
use the mandated “Should...” pattern, including the loop labels “Traversal” and
“Absolute path,” the profile-string cases, and tt.name-based cases. Update the
corresponding t.Run calls near the referenced test sections while preserving
each case’s existing behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: e0ab0955-1d22-434a-8b51-6882aa8070b1
⛔ Files ignored due to path filters (4)
README.mdis excluded by!**/*.mdskills/compozy/SKILL.mdis excluded by!**/*.mdskills/compozy/references/cli-reference.mdis excluded by!**/*.mdskills/compozy/references/config-reference.mdis excluded by!**/*.md
📒 Files selected for processing (30)
compozy.gointernal/cli/extension/doctor.gointernal/cli/extension/doctor_test.gointernal/cli/form.gointernal/cli/form_test.gointernal/cli/root_command_execution_test.gointernal/cli/setup.gointernal/cli/setup_test.gointernal/cli/skills_preflight.gointernal/cli/skills_preflight_test.gointernal/core/agent/client_test.gointernal/core/agent/omp_live_test.gointernal/core/agent/registry_specs.gointernal/core/agent/registry_test.gointernal/core/agent/session_config.gointernal/core/agent/session_config_test.gointernal/core/agent/tool_call_name.gointernal/core/agent/tool_call_name_test.gointernal/core/api.gointernal/core/model/constants.gointernal/core/run/exec/exec_integration_test.gointernal/core/run/exec/test_helpers_test.gointernal/core/run/executor/execution_acp_integration_test.gointernal/setup/agents.gointernal/setup/agents_test.gointernal/setup/install_test.gointernal/setup/runtime_agents.gointernal/setup/types.gointernal/setup/verify_test.gotest/public_api_test.go
Code Review Could Not Complete
|
| Options | Enabled |
|---|---|
| Bug | ✅ |
| Performance | ✅ |
| Security | ✅ |
| Business Logic | ✅ |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
internal/cli/root_command_execution_test.go (1)
1-1: 📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick winWrap new OMP tests in
t.Run("Should...")subtests.All five new OMP test functions run their assertions directly in the top-level
Test...function body instead of at.Run("Should...", ...)subtest, which the path instructions for**/*_test.gorequire for every test case.
internal/cli/root_command_execution_test.go#L140-202: wrapTestExecCommandOMPCompletesThroughPublicDaemonPath's body int.Run("Should complete exec through the public daemon path", func(t *testing.T) {...}).internal/cli/root_command_execution_test.go#L204-227: wrapTestExecCommandOMPMissingRuntimeReportsNativeInstallGuidance's body in at.Run("Should report native install guidance when omp is missing", ...)subtest.internal/cli/root_command_execution_test.go#L229-266: wrapTestExecCommandOMPUnsupportedReasoningReportsAdvertisedChoices's body in at.Run("Should report advertised reasoning choices when unsupported", ...)subtest.internal/cli/root_command_execution_test.go#L268-310: wrapTestSetupCommandOMPProjectCopyJourney's body in at.Run("Should install project skills via copy journey", ...)subtest.internal/cli/root_command_execution_test.go#L312-381: wrapTestSetupCommandOMPNamedProfileGlobalCopyJourney's body in at.Run("Should install global named-profile skills via copy journey", ...)subtest.As per path instructions, "MUST use t.Run("Should...") pattern for ALL test cases."
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@internal/cli/root_command_execution_test.go` at line 1, Wrap the assertion bodies of TestExecCommandOMPCompletesThroughPublicDaemonPath, TestExecCommandOMPMissingRuntimeReportsNativeInstallGuidance, TestExecCommandOMPUnsupportedReasoningReportsAdvertisedChoices, TestSetupCommandOMPProjectCopyJourney, and TestSetupCommandOMPNamedProfileGlobalCopyJourney in t.Run subtests using the specified “Should...” descriptions, passing the subtest *testing.T to each body. Preserve the existing test setup, assertions, and behavior.Source: Path instructions
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@internal/cli/root_command_execution_test.go`:
- Line 1: Wrap the assertion bodies of
TestExecCommandOMPCompletesThroughPublicDaemonPath,
TestExecCommandOMPMissingRuntimeReportsNativeInstallGuidance,
TestExecCommandOMPUnsupportedReasoningReportsAdvertisedChoices,
TestSetupCommandOMPProjectCopyJourney, and
TestSetupCommandOMPNamedProfileGlobalCopyJourney in t.Run subtests using the
specified “Should...” descriptions, passing the subtest *testing.T to each body.
Preserve the existing test setup, assertions, and behavior.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 9f2a1b0c-bc86-4954-bb55-f5c2a332ef6e
⛔ Files ignored due to path filters (4)
README.mdis excluded by!**/*.mdskills/compozy/SKILL.mdis excluded by!**/*.mdskills/compozy/references/cli-reference.mdis excluded by!**/*.mdskills/compozy/references/config-reference.mdis excluded by!**/*.md
📒 Files selected for processing (33)
compozy.gointernal/cli/extension/doctor.gointernal/cli/extension/doctor_test.gointernal/cli/form.gointernal/cli/form_test.gointernal/cli/root_command_execution_test.gointernal/cli/setup.gointernal/cli/setup_test.gointernal/cli/skills_preflight.gointernal/cli/skills_preflight_test.gointernal/core/agent/client.gointernal/core/agent/client_test.gointernal/core/agent/omp_live_test.gointernal/core/agent/registry_specs.gointernal/core/agent/registry_test.gointernal/core/agent/session_config.gointernal/core/agent/session_config_test.gointernal/core/agent/terminal_lifecycle_test.gointernal/core/agent/tool_call_name.gointernal/core/agent/tool_call_name_test.gointernal/core/api.gointernal/core/model/constants.gointernal/core/run/exec/exec_integration_test.gointernal/core/run/exec/test_helpers_test.gointernal/core/run/executor/execution_acp_integration_test.gointernal/setup/agents.gointernal/setup/agents_test.gointernal/setup/install_test.gointernal/setup/legacy_cleanup.gointernal/setup/runtime_agents.gointernal/setup/types.gointernal/setup/verify_test.gotest/public_api_test.go
🚧 Files skipped from review as they are similar to previous changes (26)
- internal/setup/runtime_agents.go
- compozy.go
- internal/core/agent/tool_call_name.go
- internal/core/api.go
- internal/core/model/constants.go
- internal/core/agent/registry_specs.go
- internal/cli/form.go
- internal/cli/form_test.go
- internal/core/agent/tool_call_name_test.go
- internal/cli/skills_preflight_test.go
- internal/core/run/exec/exec_integration_test.go
- internal/core/agent/omp_live_test.go
- internal/setup/agents.go
- internal/setup/types.go
- internal/setup/verify_test.go
- internal/cli/skills_preflight.go
- internal/core/agent/client_test.go
- internal/cli/setup.go
- test/public_api_test.go
- internal/core/run/executor/execution_acp_integration_test.go
- internal/cli/extension/doctor_test.go
- internal/cli/extension/doctor.go
- internal/core/run/exec/test_helpers_test.go
- internal/cli/setup_test.go
- internal/core/agent/registry_test.go
- internal/core/agent/session_config.go
|
Closing as part of the CompozyOS v0.3 reset. Compozy was rebuilt from the ground up as CompozyOS — an agent operating system. If you would like this capability in CompozyOS, please reopen it against the new architecture — happy to help route it. |
Summary
omp) as a distinct native ACP runtime without changing PiWhy
Oh My Pi exposes a native ACP server and profile-aware skill roots that differ from the existing Pi adapter. First-class support lets users run Compozy workflows through
omp acpwhile preserving OMP's active model selection and leaving all existing Pi behavior unchanged.Testing
make verify--ide omp --model auto --reasoning-effort mediumSummary by CodeRabbit