Skip to content

2.1.2 (#1347)#9

Merged
FarisZR merged 1 commit into
FarisZR:agentic-clifrom
moghtech:main
Apr 21, 2026
Merged

2.1.2 (#1347)#9
FarisZR merged 1 commit into
FarisZR:agentic-clifrom
moghtech:main

Conversation

@FarisZR
Copy link
Copy Markdown
Owner

@FarisZR FarisZR commented Apr 21, 2026

  • 2.1.2 fix multi file service override UI crash

  • deploy 2.1.2-dev-1

  • 2.1.2

Summary by CodeRabbit

  • Chores
    • Released version 2.1.2 for workspace and client packages.
    • Improved service extraction and diagnostic logging for stack operations.

* 2.1.2 fix multi file service override UI crash

* deploy 2.1.2-dev-1

* 2.1.2
Copilot AI review requested due to automatic review settings April 21, 2026 15:23
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 21, 2026

📝 Walkthrough

Walkthrough

Version updates for workspace and npm packages from 2.1.1 to 2.1.2. Service extraction logic refactored to merge in-place with conditional field overwrites. Stack service extraction error logging converted to structured format with stack identifiers.

Changes

Cohort / File(s) Summary
Version Updates
Cargo.toml, client/core/ts/package.json
Bumped workspace and npm package version from 2.1.1 to 2.1.2.
Service Extraction and Logging
bin/core/src/stack/services.rs, bin/core/src/api/write/stack.rs
Refactored extract_services_into_res to perform in-place merging of parsed compose services with conditional field overwrites instead of building temporary vectors. Updated stack service extraction error logging in RefreshStackCache::resolve to use structured logging format with stack ID and name fields.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title '2.1.2 (#1347)' is a version bump that directly corresponds to the primary change in the changeset: updating package versions from 2.1.1 to 2.1.2 across multiple files (Cargo.toml, package.json), along with related bug fixes for the UI crash.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
✨ Simplify code
  • Create PR with simplified code

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Bumps the project to release 2.1.2 and adjusts stack service extraction so multi-compose-file stacks don’t produce duplicated services (addressing the reported UI crash when overrides are used).

Changes:

  • Version bump to 2.1.2 across Rust workspace + client TS package.
  • Update stack service parsing to merge/override service fields across multiple compose files instead of appending duplicates.
  • Improve one warning log to include structured stack identifiers.

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
client/core/ts/package.json Bumps TS client package version to 2.1.2.
bin/core/src/stack/services.rs Merges services by name and applies overrides when parsing multiple compose files.
bin/core/src/api/write/stack.rs Updates warning log to include structured stack and stack_name fields.
Cargo.toml Bumps Rust workspace package version to 2.1.2.
Cargo.lock Updates crate versions to 2.1.2 in lockfile.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

if let Some(container_name) = container_name {
existing.container_name = container_name;
}
if let Some(image) = image {
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@bin/core/src/stack/services.rs`:
- Around line 57-58: When updating the service image in services.rs, ensure the
cached digest is cleared if the image actually changes: before assigning
existing.image = image in the update path, compare the previous existing.image
to the new image value and, if they differ, set existing.image_digest (or the
field holding the cached digest) to None/empty to invalidate it so
latest_services cannot retain a stale digest. Use the existing.image and
existing.image_digest field names to locate the code and perform the conditional
clearing immediately prior to updating the image.
🪄 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: ASSERTIVE

Plan: Pro

Run ID: c29d94db-a0bf-4149-a475-237de6a078de

📥 Commits

Reviewing files that changed from the base of the PR and between 8b308c2 and 20b9d16.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • Cargo.toml
  • bin/core/src/api/write/stack.rs
  • bin/core/src/stack/services.rs
  • client/core/ts/package.json

Comment on lines +57 to +58
if let Some(image) = image {
existing.image = image;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Clear the cached digest when an override changes the image.

Line 58 can attach the previous image_digest to a different image after a multi-file override. Invalidate it when the image value changes so latest_services does not persist stale digest metadata.

🐛 Proposed fix
       if let Some(image) = image {
+        if existing.image != image {
+          existing.image_digest = None;
+        }
         existing.image = image;
       }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if let Some(image) = image {
existing.image = image;
if let Some(image) = image {
if existing.image != image {
existing.image_digest = None;
}
existing.image = image;
}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@bin/core/src/stack/services.rs` around lines 57 - 58, When updating the
service image in services.rs, ensure the cached digest is cleared if the image
actually changes: before assigning existing.image = image in the update path,
compare the previous existing.image to the new image value and, if they differ,
set existing.image_digest (or the field holding the cached digest) to None/empty
to invalidate it so latest_services cannot retain a stale digest. Use the
existing.image and existing.image_digest field names to locate the code and
perform the conditional clearing immediately prior to updating the image.

@FarisZR FarisZR merged commit 65c44a5 into FarisZR:agentic-cli Apr 21, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants