Strengthen Beta Release Validation - #91
Conversation
📝 WalkthroughWalkthroughThe project version and package metadata are updated from Sequence Diagram(s)sequenceDiagram
participant User
participant LaunchPlanner
participant LaunchRunner
participant Runtime
User->>LaunchPlanner: request runtime start
LaunchPlanner-->>LaunchRunner: return recommendation-only plan
LaunchRunner->>User: show setup guidance
LaunchRunner-->>Runtime: stop with exit code 64
sequenceDiagram
participant CodingAgent
participant ConfirmationFlow
participant Project
participant QualificationVerifier
CodingAgent->>ConfirmationFlow: submit approved action set
ConfirmationFlow-->>Project: execute approved action
CodingAgent->>ConfirmationFlow: submit denied action set
ConfirmationFlow-->>Project: reject without modification
QualificationVerifier->>Project: verify exact and rejected outputs
QualificationVerifier->>ConfirmationFlow: verify replay and audit evidence
Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
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 |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
packages/cli/tests/test_launch.py (1)
464-499: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winExercise the real plan builder in this regression test.
Because
build_launch_planis monkeypatched to returnmodel_selected=False, this test only covers the downstream guard. It does not verify the new selection-to-plan wiring or directly assert that the download method was not called. Add a companion test using the real builder for an unselected project and assert that both download and allocation remain untouched.As per coding guidelines, CLI behavior changes should include corresponding test coverage.
🤖 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 `@packages/cli/tests/test_launch.py` around lines 464 - 499, Update test_recommended_model_cannot_download_or_allocate_before_setup to use the real build_launch_plan instead of monkeypatching it, and configure the unselected project through the existing test helpers. Add assertions or spies verifying that neither the download nor allocation operation is invoked, while preserving the existing exit-code, output, runner, and model-root checks; add a companion test only if needed to keep the downstream guard coverage separate.Source: Coding guidelines
images/generic/scripts/coding_agent_e2e.sh (1)
48-49: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winPrompt strings duplicate the artifact filenames instead of using the variables.
exact_path/rejected_pathare defined at Lines 48-49, but the prompts at Lines 144 and 156 hardcodeheartwood-exact-output.txt/heartwood-rejected-output.txtas separate literals. A rename of one would silently desync from the other.♻️ Use the variables' basenames in the prompts
- --prompt "Call the terminal tool to execute this exact command: ${heartwood_python} ${runtime_root}/skills/verified/omop-cohort-summary/scripts/run.py --data-root input --target-condition-concept-id 201826 --minimum-age 18 --aggregate-count-floor 20 --output cohort-summary.json && printf 'heartwood-agent-exact-ok\n' > heartwood-exact-output.txt && cat cohort-summary.json. Do not describe the command as text and do not call another tool after it completes. Wait for the terminal result, then report the aggregate cohort result." \ + --prompt "Call the terminal tool to execute this exact command: ${heartwood_python} ${runtime_root}/skills/verified/omop-cohort-summary/scripts/run.py --data-root input --target-condition-concept-id 201826 --minimum-age 18 --aggregate-count-floor 20 --output cohort-summary.json && printf 'heartwood-agent-exact-ok\n' > $(basename "${exact_path}") && cat cohort-summary.json. Do not describe the command as text and do not call another tool after it completes. Wait for the terminal result, then report the aggregate cohort result." \Also applies to: 144-144, 156-156
🤖 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 `@images/generic/scripts/coding_agent_e2e.sh` around lines 48 - 49, Update the prompts near the relevant output-validation steps to derive artifact basenames from the existing exact_path and rejected_path variables instead of hardcoding filenames. Keep the prompt paths consistent with those variables so future renames cannot desynchronize them.
🤖 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 `@packages/cli/src/heartwood/cli/__init__.py`:
- Around line 102-107: Update the CLI tests covering the model preparation
status to assert the new label “Preparing and verifying the model,” waiting
label “Still preparing and verifying the model,” and guidance text about
downloads and verification taking several minutes. Use the existing test symbols
for this CLI output and preserve all unrelated assertions.
---
Nitpick comments:
In `@images/generic/scripts/coding_agent_e2e.sh`:
- Around line 48-49: Update the prompts near the relevant output-validation
steps to derive artifact basenames from the existing exact_path and
rejected_path variables instead of hardcoding filenames. Keep the prompt paths
consistent with those variables so future renames cannot desynchronize them.
In `@packages/cli/tests/test_launch.py`:
- Around line 464-499: Update
test_recommended_model_cannot_download_or_allocate_before_setup to use the real
build_launch_plan instead of monkeypatching it, and configure the unselected
project through the existing test helpers. Add assertions or spies verifying
that neither the download nor allocation operation is invoked, while preserving
the existing exit-code, output, runner, and model-root checks; add a companion
test only if needed to keep the downstream guard coverage separate.
🪄 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: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 5ef8a46c-9856-4569-9850-b8b437f959fc
⛔ Files ignored due to path filters (2)
packages/webui/package-lock.jsonis excluded by!**/package-lock.jsonuv.lockis excluded by!**/*.lock
📒 Files selected for processing (57)
README.mdVERSION.tomldeploy/install.shdocker-bake.hcldocumentation/architecture/testing.mddocumentation/contribute/releases.mddocumentation/models/offline.mddocumentation/models/run-with-heartwood.mddocumentation/platforms/carina.mddocumentation/platforms/containers.mddocumentation/platforms/native-linux.mddocumentation/platforms/terra.mddocumentation/reference/gpu-compatibility.mdfixtures/synthetic/skills/omop-cohort-summary/SKILL.mdfixtures/synthetic/skills/omop-cohort-summary/metadata.jsonimages/generic/scripts/coding_agent_e2e.shimages/generic/scripts/verify_coding_agent_e2e.pypackages/adapters/pyproject.tomlpackages/adapters/src/heartwood/adapters/__init__.pypackages/adapters/src/heartwood/adapters/conformance.pypackages/adapters/tests/test_conformance.pypackages/audit/pyproject.tomlpackages/audit/src/heartwood/audit/__init__.pypackages/cli/pyproject.tomlpackages/cli/src/heartwood/cli/__init__.pypackages/cli/src/heartwood/cli/_launch.pypackages/cli/tests/test_cli.pypackages/cli/tests/test_launch.pypackages/compliance/pyproject.tomlpackages/compliance/src/heartwood/compliance/__init__.pypackages/compliance/tests/test_coding_agent_qualification.pypackages/compliance/tests/test_container_assets.pypackages/compliance/tests/test_release_governance.pypackages/core-adapter/pyproject.tomlpackages/core-adapter/src/heartwood/core_adapter/__init__.pypackages/detector/pyproject.tomlpackages/detector/src/heartwood/detector/__init__.pypackages/fixtures/pyproject.tomlpackages/fixtures/src/heartwood/fixtures/__init__.pypackages/gateway/pyproject.tomlpackages/model-policy/pyproject.tomlpackages/model-policy/src/heartwood/model_policy/__init__.pypackages/notebook/pyproject.tomlpackages/notebook/src/heartwood/notebook/__init__.pypackages/schemas/pyproject.tomlpackages/schemas/src/heartwood/schemas/__init__.pypackages/schemas/tests/test_schema_records.pypackages/session/pyproject.tomlpackages/session/src/heartwood/session/__init__.pypackages/skills/pyproject.tomlpackages/webui/package.jsonskills/verified/aggregate-export/SKILL.mdskills/verified/aggregate-export/metadata.jsonskills/verified/baseline-model/SKILL.mdskills/verified/baseline-model/metadata.jsonskills/verified/omop-cohort-summary/SKILL.mdskills/verified/omop-cohort-summary/metadata.json
♻️ Current Situation & Problem
Beta 9 validation exposed an unconfigured Carina allocation path, ambiguous model-verification progress, and gaps in exact-output and rejection qualification.
⚙️ Release Notes
📚 Documentation
Clarify Carina setup and verification, Terra compute ordering, persistent-disk recovery, and qualification evidence.
✅ Testing
Code of Conduct & Contributing Guidelines