Skip to content

Preserve ambiguous merge-base warnings in artifacts - #71

Merged
nia-sg-bot merged 1 commit into
mainfrom
nia/issue-21-preserve-ambiguous-merge-base
Sep 26, 2026
Merged

nia-sg-bot merged 1 commit into
mainfrom
nia/issue-21-preserve-ambiguous-merge-base

Conversation

@nia-sg-bot

@nia-sg-bot nia-sg-bot commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • preserve ambiguous_merge_base as a machine-readable canonical artifact warning
  • extend the v2 JSON schema and structural warning allowlist
  • add a regression test proving the warning remains schema-valid and actionable

Part of #21.

Remaining work: cover the other requested comparison modes and resolver edge cases from the parent issue.

Summary by CodeRabbit

  • Bug Fixes
    • Preserved ambiguous merge-base warnings in generated artifacts, including their warning code and details.

@coderabbitai

coderabbitai Bot commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: f2b99176-7ebf-4bc2-ae18-73905a7a9462

📥 Commits

Reviewing files that changed from the base of the PR and between 5fdaebb and 3e427be.

📒 Files selected for processing (3)
  • diffgraph/schema/diffgraph-v2.schema.json
  • diffgraph/structural.py
  • tests/test_structural.py

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


Walkthrough

The ambiguous_merge_base warning code is now accepted by the schema and warning conversion. A structural test checks that three-dot commit-range resolution preserves the warning code and detail in the artifact.

Changes

Warning preservation

Layer / File(s) Summary
Accept and preserve resolver warnings
diffgraph/schema/diffgraph-v2.schema.json, diffgraph/structural.py, tests/test_structural.py
The schema accepts ambiguous_merge_base, and _resolution_warning no longer maps it to UNKNOWN. The test checks that the artifact retains the warning code and prefixed detail.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to 3e427

The artifact now retains ambiguous merge-base warnings as intended, with no remaining merge-blocking issue identified.

Security Architecture Review

Security architecture risk: 🔵 Low · up to 3e427

The change exposes a more specific warning code to JSON consumers without changing comparison execution. Risk appears low, although compatibility with consumers outside this repository has not been verified.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — Within the inspected flow, caller-supplied comparison refs can affect which resolver warning is returned, but this PR does not add a route from an ambiguous result to file analysis or a new sensitive operation.

Trust Boundaries and Controls

  • observed — The packaged validator still checks warning codes against the schema; the PR adds this specific code to that allowlist rather than removing validation.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 2 files. (1 skipped: 1… 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 clearly and concisely describes the main change: preserving ambiguous merge-base warnings in artifacts.
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.
Full details: Docstring Coverage

Explanation

Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 2 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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.

@nia-sg-bot nia-sg-bot added roadmap Tracked on the public WildestAI roadmap priority:P0 Critical path / blocks a usable product direction:aligned Aligned with the current WildestAI product direction labels Sep 26, 2026
@nia-sg-bot

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@nia-sg-bot
nia-sg-bot merged commit aea6eee into main Sep 26, 2026
4 checks passed
@nia-sg-bot
nia-sg-bot deleted the nia/issue-21-preserve-ambiguous-merge-base branch September 26, 2026 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

direction:aligned Aligned with the current WildestAI product direction priority:P0 Critical path / blocks a usable product roadmap Tracked on the public WildestAI roadmap

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant