Skip to content

Refuse a Repo-Owned Tree Overlapping Carried Content - #3545

Merged
ptr727 merged 1 commit into
developfrom
feature/3528-repo-owned-overlap
Oct 28, 2026
Merged

ptr727 merged 1 commit into
developfrom
feature/3528-repo-owned-overlap

Conversation

@ptr727

@ptr727 ptr727 commented Oct 28, 2026

Copy link
Copy Markdown
Owner

Summary

This is a promotion fix for review thread PRRT_kwDOQ5caqM6w8BW3 on #3544.

spec/validate.py now refuses a repoOwnedTrees source that overlaps carried content. The audit skips every hub file below a repo-owned source. An overlap would therefore hide hub-only findings while the manifest still claims the content is carried.

The check refuses three shapes:

  • a source equal to a trees[].source
  • a source that is an ancestor or a descendant of a trees[].source
  • a source with a baseline path at or below it

RepoOwnedTreeGateCase runs the real gate on a scratch tree for each refused shape, plus a control beside the carried content. The fixture paths are constructed. The shipped spec/files.json still passes.

Local review

The pass raised one finding, declined on evidence.

  • spec/validate.py, the new tree-source comparison, introduced, design. The reviewer asked for one paths_overlap helper shared with the tree-target loop. Declined: no such helper exists to reuse, and the repeated expression is correct rather than a defect class. Moving the tree-target site is outside this change's claim, which is the repoOwnedTrees check only.

Closes on promotion: #3528

🤖 Generated with Claude Code

A repoOwnedTrees source that equals, contains, or sits below a trees[].source,
or holds a baseline path, now fails the spec gate. The audit skips every hub
file below a repo-owned source, so such an overlap would hide hub-only findings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 28, 2026 00:37
@ptr727

ptr727 commented Oct 28, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head 230e2f9caae44494684ea802545697d3454630c2, the content this pull request carries at that commit against develop, and it recorded 1 finding.

@coderabbitai

coderabbitai Bot commented Oct 28, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

No active review issues are reported, and the change includes targeted overlap validation with regression coverage for the affected cases.

No open issues 🎉

What changed in this PR

This pull request prevents repoOwnedTrees declarations from overlapping content carried through tree or baseline entries, avoiding hidden audit findings.

Changes:

  • Reject overlapping repo-owned sources, including equal, ancestor, and descendant paths.
  • Reject repo-owned sources containing declared baseline paths.
  • Add gate-level regression tests for rejected overlaps, valid adjacent content, and the shipped manifest.
File Description
tests/​test_spec_validate.py Adds fixtures and gate tests covering overlap shapes, controls, and the shipped manifest.
spec/​validate.py Adds ownership-overlap validation for repo-owned trees against carried trees and baseline paths.

Review effort: Lite

@codecov

codecov Bot commented Oct 28, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.50%. Comparing base (b472126) to head (230e2f9).

Files with missing lines Patch % Lines
spec/validate.py 0.00% 13 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #3545      +/-   ##
===========================================
- Coverage    81.60%   81.50%   -0.11%     
===========================================
  Files           26       26              
  Lines         9053     9065      +12     
===========================================
  Hits          7388     7388              
- Misses        1665     1677      +12     
Flag Coverage Δ
python-3.13 81.50% <0.00%> (-0.11%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ptr727
ptr727 merged commit e1c3a01 into develop Oct 28, 2026
14 checks passed
@ptr727
ptr727 deleted the feature/3528-repo-owned-overlap branch October 28, 2026 00:49
ptr727 added a commit that referenced this pull request Oct 28, 2026
…y Tests, and Copilot Transient Fixes (#3544)

## Summary

Promotes `develop` to `main`, carrying round 1 of the resync-issue
burndown:

- #3538: `AGENTS.md` "Model Tiers" now states the no-model dispatch
result once, conditionally, in the `highest` bullet. The two bullets
that contradicted it lost their unconditional claims. The three skills
including the section are regenerated.
- #3539: `GOVERNANCE.md` "Durable Knowledge and Self-Improvement"
describes the standing-issue handoff lifecycle, matching `AGENTS.md`
"Session Scope". `agent-conduct` is regenerated.
- #3540: `spec/files.json` gains a `repoOwnedTrees` list declaring
`tests`, and `spec/audit.py` `hub_only_paths` leaves those paths out. A
carrier's own `tests/` file is no longer reported as hub-only.
`spec/validate.py` shape-checks the list, and `AUDIT.md`, `RESYNC.md`
and the project-types assertion state the exclusion.
- #3542: `pr_review.py wait` and `status` read the Copilot run log
before calling an error refusal quota. A `too many files changed` line
is transient and earns one re-request, as `COPILOT_ERROR_TRANSIENT` on
the existing exit 41.
- #3545: promotion fix for Copilot's finding on this pull request.
`spec/validate.py` refuses a `repoOwnedTrees` source that overlaps a
carried `trees[].source` or holds a `baseline` path.

Fixes #3529
Fixes #3504
Fixes #3528
Fixes #3510

🤖 Generated with [Claude Code](https://claude.com/claude-code)
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.

2 participants