Skip to content

๐Ÿงน [์ฝ”๋“œ ๊ฑด๊ฐ•๋„ ๊ฐœ์„ ] perform_rebase ํ•จ์ˆ˜ ๋ฆฌํŒฉํ† ๋ง ๋ฐ stale ๋ผ๋ฒจ ์ œ๊ฑฐ ๋กœ์ง ๋ถ„๋ฆฌ - #884

Closed
seonghobae wants to merge 5 commits into
mainfrom
jules-9416573734776559992-995b003b

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

๐ŸŽฏ ๋ฌด์—‡์„: scripts/ci/pr_auto_rebase.py ํŒŒ์ผ ๋‚ด์˜ perform_rebase ํ•จ์ˆ˜์—์„œ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ณต์žกํ–ˆ๋˜ stale "manual-rebase" ๋ผ๋ฒจ ์ œ๊ฑฐ ๋กœ์ง์„ clear_stale_manual_rebase_label์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ํ—ฌํผ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
๐Ÿ’ก ์™œ: perform_rebase ํ•จ์ˆ˜์˜ ๋ณต์žก๋„์™€ ๊ธธ์ด๋ฅผ ์ค„์—ฌ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.
โœ… ๊ฒ€์ฆ: git diff, ์ „์ฒด ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ, interrogate (docstring ์ปค๋ฒ„๋ฆฌ์ง€ ํ™•์ธ), ๊ทธ๋ฆฌ๊ณ  ์ž๋™ํ™”๋œ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฒ€์ฆํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ๋™์ž‘์„ 100% ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
โœจ ๊ฒฐ๊ณผ: ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ์ „๋ฐ˜์ ์ธ ํ’ˆ์งˆ๊ณผ ๊ฑด๊ฐ•๋„๊ฐ€ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


PR created automatically by Jules for task 9416573734776559992 started by @seonghobae

Summary by CodeRabbit

  • ๋ฒ„๊ทธ ์ˆ˜์ •
    • ์˜ค๋ž˜๋œ ์ˆ˜๋™ ๋ฆฌ๋ฒ ์ด์Šค ํ•„์š” ๋ผ๋ฒจ์ด ๋” ์ด์ƒ ๋ฆฌ๋ฒ ์ด์Šค ๋Œ€์ƒ์ด ์•„๋‹Œ PR์— ๋‚จ์•„ ์žˆ๋˜ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ํ•ด๋‹น ๋ผ๋ฒจ์„ ์ž๋™์œผ๋กœ ์ •๋ฆฌํ•œ ํ›„ ๋ฆฌ๋ฒ ์ด์Šค ์ž‘์—…์„ ๊ณ„์†ํ•˜๋„๋ก ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ๋ผ๋ฒจ ์ •๋ฆฌ ๋‚ด์—ญ์ด ๊ธฐ๋ก๋˜์–ด ์ž๋™ํ™” ์ž‘์—… ๊ฒฐ๊ณผ๋ฅผ ๋” ์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@google-labs-jules

Copy link
Copy Markdown

๐Ÿ‘‹ Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a ๐Ÿ‘€ emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@seonghobae, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 110 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
โš™๏ธ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 61dc2581-dd5c-4706-93f8-cf6589038df0

๐Ÿ“ฅ Commits

Reviewing files that changed from the base of the PR and between 7cccfed and af574c9.

๐Ÿ“’ Files selected for processing (7)
  • AGENTS.md
  • ARCHITECTURE.md
  • CHANGELOG.md
  • CLAUDE.md
  • docs/doctoring/stale-manual-rebase-label-extract.md
  • scripts/ci/materialize_base_python_requirements.py
  • tests/test_materialize_base_python_requirements.py
๐Ÿ“ Walkthrough

Walkthrough

needs-manual-rebase ๋ผ๋ฒจ ์ฒ˜๋ฆฌ๋ฅผ ๋ณ„๋„ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํ›„๋ณด PR์˜ stale ๋ผ๋ฒจ์„ ์ œ๊ฑฐํ•˜๊ณ  ๊ฐ์‚ฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•œ ๋’ค ๋ฆฌ๋ฒ ์ด์Šค๋ฅผ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ฆฌ ๊ฒฐ๊ณผ๋Š” ์ตœ์ข… Decision ๋ฉ”๋ชจ๋ฆฌ์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

Changes

๋ฆฌ๋ฒ ์ด์Šค ๋ผ๋ฒจ ์ฒ˜๋ฆฌ

Layer / File(s) Summary
stale ๋ผ๋ฒจ ์ •๋ฆฌ ๋ฐ ๋ฆฌ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ
scripts/ci/pr_auto_rebase.py
clear_stale_manual_rebase_label์ด needs-manual-rebase ๋ผ๋ฒจ ์ œ๊ฑฐ์™€ ๊ฐ์‚ฌ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์„ฑ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. perform_rebase๋Š” DIRTY ์ƒํƒœ๊ฐ€ ์•„๋‹Œ ํ›„๋ณด PR์— ์ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์ตœ์ข… Decision ๋ฉ”๋ชจ๋ฆฌ์— ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

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

๐Ÿšฅ Pre-merge checks | โœ… 5
โœ… Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage โœ… Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
Description Check โœ… Passed Check skipped - CodeRabbitโ€™s high-level summary is enabled.
Title check โœ… Passed ์ œ๋ชฉ์€ perform_rebase ๋ฆฌํŒฉํ„ฐ๋ง๊ณผ stale ๋ผ๋ฒจ ์ œ๊ฑฐ ๋กœ์ง ๋ถ„๋ฆฌ๋ผ๋Š” ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์š”์•ฝํ•ฉ๋‹ˆ๋‹ค.
โœจ Finishing Touches
๐Ÿ“ Generate docstrings
  • Create stacked PR
  • Commit on current branch
๐Ÿงช Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jules-9416573734776559992-995b003b

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.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@cwl-noema-review @opencode-agent Review only exact current head 7cccfed672cbc2a5bd7001f836d5e411bc70cd61. Verify the stale manual-rebase label helper is a behavior-preserving extraction: labeled-but-clean candidates still remove the label before fetch/rebase, unlabeled candidates perform no label mutation, dry-run semantics remain unchanged, failure notes compose identically, and the refactor does not alter force-with-lease or conflict handling. Review only; do not modify, merge, retarget, or alter scheduler credentials.

@seonghobae
seonghobae enabled auto-merge (squash) August 9, 2026 12:51
@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
๐Ÿงฉ Analysis chain

๐Ÿ Script executed:

#!/bin/bash
set -euo pipefail

expected='7cccfed672cbc2a5bd7001f836d5e411bc70cd61'
actual="$(git rev-parse HEAD)"
printf 'HEAD=%s\nEXPECTED=%s\n' "$actual" "$expected"
git status --short
git show -s --format='commit=%H%nparents=%P%nsubject=%s' HEAD

fd -a '^pr_auto_rebase\.py$' .
ast-grep outline scripts/ci/pr_auto_rebase.py --items all --view expanded
git diff --unified=80 HEAD^ HEAD -- scripts/ci/pr_auto_rebase.py

printf '\n--- HEAD: relevant definitions and call sites ---\n'
rg -n -A55 -B12 \
  '^(def (clear_stale_manual_rebase_label|perform_rebase)\b)|\bclear_stale_manual_rebase_label\s*\(|force-with-lease|needs-manual-rebase|manual-rebase|DIRTY|conflict' \
  scripts/ci/pr_auto_rebase.py

printf '\n--- PARENT: prior perform_rebase ---\n'
git show HEAD^:scripts/ci/pr_auto_rebase.py |
  rg -n -A110 -B12 \
  '^(def perform_rebase\b)|force-with-lease|needs-manual-rebase|manual-rebase|DIRTY|conflict'

Length of output: 68072


@seonghobae Reviewed exact HEAD 7cccfed672cbc2a5bd7001f836d5e411bc70cd61.

No findings.

The extraction preserves the prior behavior:

  • A labeled, non-dirty candidate calls clear_stale_manual_rebase_label before fetch_pr_refs.
  • An unlabeled candidate returns an empty note tuple and performs no label mutation.
  • process_queue still exits before perform_rebase in dry-run mode. No git or GitHub mutation occurs.
  • Success and conflict decisions compose stale_label_notes with the same suffix notes as before.
  • try_rebase still aborts on conflict. The conflict path still labels the PR and posts the hand-off comment.
  • push_force_with_lease and its expected-head SHA remain unchanged.
โš ๏ธ Action not completed

Already reviewed.

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.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review
@opencode-agent review
@cwl-noema-review review

Review-only on exact current head 6c673c9bde9ad48d5411c35fca984d08c8f0b809 against protected base 6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba. Verify that extracting clear_stale_manual_rebase_label preserves labeled-clean and unlabeled behavior, dry-run semantics, failure-note composition, fetch/rebase order, and force-with-lease/conflict handling. Exact local evidence is 47 focused rebase tests passing. Treat predecessor-head reviews as non-authoritative. Review only; do not mutate the branch, approve from the author identity, merge, or release.

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
๐Ÿงฉ Analysis chain

๐Ÿ Script executed:

#!/bin/bash
set -euo pipefail

head='6c673c9bde9ad48d5411c35fca984d08c8f0b809'
base='6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba'

actual="$(git rev-parse HEAD)"
printf 'checked_out_head=%s\nrequested_head=%s\nprotected_base=%s\n' "$actual" "$head" "$base"
git cat-file -e "${head}^{commit}"
git cat-file -e "${base}^{commit}"
git merge-base --is-ancestor "$base" "$head"
printf 'base_is_ancestor=yes\n'
git status --short
git show -s --format='head_commit=%H%nhead_parents=%P%nhead_subject=%s%n%nbase_commit=%H%nbase_subject=%s' "$head"
git show -s --format='base_commit=%H%nbase_parents=%P%nbase_subject=%s' "$base"

printf '\n--- changed files ---\n'
git diff --name-status "$base" "$head"

printf '\n--- implementation diff ---\n'
git diff --unified=100 "$base" "$head" -- scripts/ci/pr_auto_rebase.py

printf '\n--- current file outline ---\n'
ast-grep outline scripts/ci/pr_auto_rebase.py --items all --view expanded

printf '\n--- current relevant definitions and call sites ---\n'
rg -n -A85 -B18 \
  '^(def (clear_stale_manual_rebase_label|perform_rebase|process_queue|try_rebase|push_force_with_lease)\b)|\b(clear_stale_manual_rebase_label|perform_rebase|fetch_pr_refs|push_force_with_lease|needs-manual-rebase|manual-rebase|DIRTY|dry_run|conflict)\b' \
  scripts/ci/pr_auto_rebase.py

printf '\n--- base implementation context ---\n'
git show "${base}:scripts/ci/pr_auto_rebase.py" | rg -n -A120 -B18 \
  '^(def (perform_rebase|process_queue|try_rebase|push_force_with_lease)\b)|\b(fetch_pr_refs|push_force_with_lease|needs-manual-rebase|manual-rebase|DIRTY|dry_run|conflict)\b'

printf '\n--- focused test candidates ---\n'
fd -a -t f . | rg -i '(rebase|pr_auto_rebase|auto_rebase|queue).*(test|spec)|(test|spec).*(rebase|pr_auto_rebase|auto_rebase|queue)' || true

printf '\n--- test assertions and helper usages ---\n'
rg -n -A18 -B8 \
  '\b(clear_stale_manual_rebase_label|perform_rebase|fetch_pr_refs|push_force_with_lease|needs-manual-rebase|manual-rebase|dry_run|conflict)\b' \
  -g '*test*' -g '*spec*' .

Length of output: 202556


๐Ÿ Script executed:

#!/bin/bash
set -euo pipefail

head='6c673c9bde9ad48d5411c35fca984d08c8f0b809'
base='6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba'

printf '%s\n' '--- commit identity and repository state ---'
printf 'checked_out_head='
git rev-parse HEAD
printf 'requested_head=%s\nprotected_base=%s\n' "$head" "$base"
git merge-base --is-ancestor "$base" "$head" && printf 'base_is_ancestor=yes\n'
git status --short
git diff --name-status "$base" "$head"

printf '%s\n' '--- focused diff ---'
git diff --unified=35 "$base" "$head" -- scripts/ci/pr_auto_rebase.py tests/test_pr_auto_rebase.py

printf '%s\n' '--- requested-head helper and rebase flow ---'
git show "${head}:scripts/ci/pr_auto_rebase.py" |
awk '
  /^def clear_stale_manual_rebase_label\(/,
  /^def perform_rebase\(/ { print }
  /^def perform_rebase\(/ { in_block=1 }
  in_block && /^def [A-Za-z_][A-Za-z0-9_]*\(/ && !/^def perform_rebase\(/ { exit }
  in_block { print }
'

printf '%s\n' '--- base rebase flow ---'
git show "${base}:scripts/ci/pr_auto_rebase.py" |
awk '
  /^def perform_rebase\(/ { in_block=1 }
  in_block && /^def [A-Za-z_][A-Za-z0-9_]*\(/ && !/^def perform_rebase\(/ { exit }
  in_block { print }
'

printf '%s\n' '--- requested-head relevant tests ---'
awk '
  /^def test_perform_rebase_(clean_force_pushes|conflict_labels_without_push|removes_stale_label_then_rebases)/,
  /^def / { if (started && $0 ~ /^def /) exit; started=1; print }
' tests/test_pr_auto_rebase.py
awk '
  /^def test_process_queue_dry_run_plans_without_mutation\(/,
  /^def / { if (started && $0 ~ /^def /) exit; started=1; print }
' tests/test_pr_auto_rebase.py

Length of output: 11158


@seonghobae Reviewed exact head 6c673c9bde9ad48d5411c35fca984d08c8f0b809 against protected base 6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba.

No findings.

  • The base is an ancestor of the reviewed head.
  • clear_stale_manual_rebase_label preserves the prior predicate, label removal, dry_run argument, and audit note.
  • A labeled, clean candidate removes the stale label before fetch_pr_refs.
  • An unlabeled candidate returns () and does not mutate labels.
  • process_queue still prevents perform_rebase from running in dry-run mode.
  • Conflict and success notes use the same concatenation order as before.
  • Fetch, rebase, conflict handling, and push_force_with_lease inputs are unchanged.

The sandbox worktree had a local modification. I used commit-object comparisons for the requested head and base. I did not execute the tests. The reported 47 focused passing tests are consistent with the inspected paths.

โš ๏ธ Action not completed

No files to review.

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.

Copy link
Copy Markdown
Contributor Author

@opencode-agent review

Evaluate exact current head 3af07ff185ad4708fe7964d7caaaacd810c53440 against independently resolved live main 6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba. Every observed pull-request workflow on this exact head is terminal-success. Keep semantic judgment separate from qualifying independent human approval and merge authority.

Copy link
Copy Markdown
Contributor Author

Exact-head review request for 3af07ff185ad4708fe7964d7caaaacd810c53440 against main@6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba. The one-file diff extracts the existing stale manual-rebase-label cleanup into a documented helper; the existing clean, conflicting, labeled, and unlabeled perform_rebase tests continue to exercise both helper branches through the public flow. Eight observed exact-head workflows are successful and no review thread exists. Please review this unchanged head; do not update the branch or bypass repository policy.

Copy link
Copy Markdown
Contributor Author

Exact-current-head review request for 3af07ff185ad4708fe7964d7caaaacd810c53440 over protected main@6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba.

Review the single-file behavior-preserving refactor. clear_stale_manual_rebase_label must contain only the existing stale manual-rebase label removal and logging path, while perform_rebase retains every eligibility, conflict, branch-update, expected-head, error, and publication decision unchanged. CodeQL, Python Security, Security Scan, SAST Semgrep, Secret Scan, OSV, Scorecard, and SBOM are terminal-success on this exact head; no formal review or inline thread exists. No exact-head full-suite Strix run is currently present, so that evidence must be obtained before merge if the protected policy requires it.

Keep the exact head unchanged. Do not change rebase policy or label semantics, synthesize author approval, update the branch, merge, release, or bypass protection.

@coderabbitai review
@opencode-agent review
@cwl-noema-review review
@strix review

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Rate Limit Exceeded

@seonghobae have exceeded the limit for the number of chat messages per hour. Please wait 23 minutes and 9 seconds before sending another message.

Keep installer tests on the documented linux x86_64 path, record the
auto-rebase stale-label path, and cite Fowler plus ISO/IEC 25010 so a
resolved PR cannot stay permanently blocked.
Materialize a base Python lock only when every package line is an exact
SHA-256 pin or a two-token relative -r/--requirement include of a
candidate lock path. A lone --require-hashes directive, ./dotted paths,
and -r other-hashes.txt no longer enter the trusted build context.
@seonghobae

Copy link
Copy Markdown
Contributor Author

@opencode-agent review

Re-evaluate exact current head af574c9d6c2929c04413cc0945f5e788c30c7823. ๋ฆฌ๋ทฐ ํ™•์ธ for the bounded-include increment; do not treat Checks wait as a blocker.

@seonghobae
seonghobae marked this pull request as draft August 14, 2026 08:39
auto-merge was automatically disabled August 14, 2026 08:39

Pull request was converted to draft

Copy link
Copy Markdown
Contributor Author

Returned to Draft because the exact current diff no longer matches the stated bounded refactor.

The body describes only extraction of stale manual-rebase label cleanup from perform_rebase, but head af574c9d6c2929c04413cc0945f5e788c30c7823 changes eight files and also carries unrelated governance documents plus materialize_base_python_requirements.py and its test. Exact-head checks are green, but green checks do not make a contaminated multi-feature tree merge-safe.

Reconcile or rebuild from protected main so the effective diff retains only scripts/ci/pr_auto_rebase.py, focused behavior tests for stale-label cleanup, the corresponding doctoring record, and the bounded changelog entry. Preserve the materializer/governance changes in their authoritative PR. Then reacquire exact-head checks and independent review; do not reuse predecessor evidence.

Copy link
Copy Markdown
Contributor Author

Closing instead of merging. The intended pr_auto_rebase.py helper extraction is a low-risk refactor, but this branch also carries an unrelated 85-line trusted-uv materializer/security delta plus matching tests and central documentation changes. That trust-boundary work now has a dedicated, actively verified owner in #790. Merging this branch would duplicate/diverge that security surface and invalidate exact-head evidence without buyer-visible benefit. Re-open only as a fresh current-main, focused refactor with a direct behavioral regression for stale manual-rebase label cleanup and no unrelated materializer delta.

@seonghobae seonghobae closed this Aug 14, 2026
@google-labs-jules

Copy link
Copy Markdown

Closing instead of merging. The intended pr_auto_rebase.py helper extraction is a low-risk refactor, but this branch also carries an unrelated 85-line trusted-uv materializer/security delta plus matching tests and central documentation changes. That trust-boundary work now has a dedicated, actively verified owner in #790. Merging this branch would duplicate/diverge that security surface and invalidate exact-head evidence without buyer-visible benefit. Re-open only as a fresh current-main, focused refactor with a direct behavioral regression for stale manual-rebase label cleanup and no unrelated materializer delta.

Understood. Acknowledging that this work is now obsolete and stopping work on this task.

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.

1 participant