Skip to content

[no-mistakes#547] fix(git): copy effective git identity into worktrees #1585

Description

@github-actions

Decision needed - no-mistakes#547

PR review by rudingma · merge-ready

fix(git): copy effective git identity into worktrees

Situation

  • Compliance: pass
  • Tests: green
  • Configured checks: PR must be raised via no-mistakes (compliance: pass), Generated files must not be hand-edited (informational: pass), check (informational: pass), e2e (test: pass), test (macos-latest) (test: pass), test (ubuntu-latest) (test: pass), test (windows-latest) (test: pass)
  • Freshness: complete target observation as of 2026-08-02T19:47:27Z
  • Notes: compliance=pass tests=green

Related work

Note

Related-work context is truncated (comparison_incomplete): comparison across open pull requests is incomplete, so a relation may be missed; this says nothing about the target itself. The candidate list, shared paths, and references are advisory display only and never an overlap or action gate.

  • kunchenguid/no-mistakes#521 - Feature request: per-repository GitHub and Git execution context - explicit dependency/reference
  • kunchenguid/no-mistakes#302 - fix(git): headless-friendly signing + fail-fast on hung hooks/SSH - exact shared paths: internal/git/git.go, internal/git/git_test.go
  • kunchenguid/no-mistakes#333 - fix(git): FindMainRepoRoot returns submodule root, not superproject .git/modules path - exact shared paths: internal/git/git.go, internal/git/git_test.go
  • kunchenguid/no-mistakes#335 - fix(daemon): HandleRerun recovers when gate ref exists but no run was recorded - exact shared paths: internal/daemon/manager.go, internal/daemon/manager_test.go
  • kunchenguid/no-mistakes#364 - fix(windows): codex prompt on stdin, suppress console pop-ups, surface codex failure reasons - exact shared path: internal/git/git.go
  • kunchenguid/no-mistakes#471 - fix: recursively checkout git submodules in worktree - exact shared paths: internal/daemon/manager.go, internal/git/git.go
  • kunchenguid/no-mistakes#484 - feat: add compact trusted gate instructions - exact shared path: internal/daemon/manager.go
  • kunchenguid/no-mistakes#588 - fix(branchsync): recover moved gate custody - exact shared path: internal/git/git.go

Advisory context only. Shared paths and references are not an auto-merge overlap gate.

Auto-merge criteria

Note

Read-only preflight from the authoritative auto-merge evaluator. A displayed MET result never authorizes a merge: Wheelhouse re-evaluates every gate and performs G7 immediately before acting.

Scope

  • MET Scope - merge-ready PR review - kind=pr-review bucket=merge-ready

Safety

  • MET Safety - complete healthy scan - repo scan is ok, complete, and mergeability settled
  • MET Safety - target PR is open - target PR is open and unmerged
  • MET Safety - no per-PR auto-merge opt-out - wheelhouse:no-auto-merge is absent
  • MET Safety - head SHA unchanged - scan and live head e5f7c002

G0 (repo)

  • MET G0 - repository auto-merge enabled - enabled by effective repository policy
  • MET G0 - default-branch VISION.md present - default-branch VISION.md 08077197

G1 (card)

G2 (files)

  • MET G2 - complete immutable file list - 5 immutable changed path entries read
  • MET G2 - workflow and security exclusions clear - no unconditional workflow/security/governance exclusions

G3 (author)

  • MET G3 - non-maintainer human contributor - rudingma is a non-maintainer human
  • MET G3 - prior merged contribution in this repo - rudingma has at least one prior merged PR in no-mistakes

G4 (checks)

  • MET G4 - configured checks green - comp=pass tests=green (merge-ready)
  • MET G4 - PR mergeable - live mergeable is MERGEABLE
  • MET G4 - merge state clean - live merge state is CLEAN

G5 (size)

  • MET G5 - changed-file limit - 5 changed files <= 20
  • MET G5 - changed-line limit - 148 changed lines <= 1000

G6 (triage + behavior)

  • MET G6 - automatic triage credential configured - model credential is configured; card triage eligibility is evaluated separately
  • MET G6 - successful triage for current head - successful triage for head e5f7c002
  • MET G6 - top-level recommendation is merge - explicit merge recommendation
  • UNAVAILABLE G6 - eligible behavior class - class B restoration evidence unavailable
  • MET G6 - existing/default behavior unchanged - no existing/default behavior change
  • MET G6 - class C is opt-in and default-off - not applicable to class B
  • VISION.md-dependent checks - needs VISION.md
    • UNAVAILABLE G6 - behavior aligns with VISION.md - not evaluated because a trusted default-branch VISION.md is required
    • UNAVAILABLE G6 - behavior verdict recommends merge - not evaluated because a trusted default-branch VISION.md is required
    • UNAVAILABLE G6 - verdict uses current VISION.md revision - not evaluated because no vision-bound behavior verdict exists
    • UNAVAILABLE G6 - verdict uses current base revision - not evaluated because no vision-bound behavior verdict exists

G7 (final gate)

  • UNAVAILABLE G7 - immediate live recheck and manual merge gate - runs only immediately before merge: card claim, VISION, head/base, mergeability, checks, opt-out label, and unchanged manual workflow gate

Triage

  • Summary: Rename CopyLocalUserIdentity to CopyEffectiveUserIdentity, switching the source lookup from git config --local to effective precedence so includeIf-based identities are correctly copied into daemon-created worktrees.
  • Product implications: Routine corrective fix; only affects users with no repo-local user config who rely on includeIf-conditional global identity. For users with repo-local config the behavior is unchanged. No UI surface, no API change.

Recommended action

  • Agent recommendation: merge
  • Reason: Narrow Class B fix with two new regression tests covering the includeIf case and preserved concurrency behavior, all three platform CI jobs green, and no behavior change for the common repo-local-config case.

From the current admitted automatic triage assessment for this exact revision. Tick Accept recommendation to apply it - it is advisory and never an auto-merge authorization.

Your decision

Tick one box for a quick call, or reply with a slash-command (/merge, /close, /decline <reason>, /hold, /comment <text>, /request-changes <text>):

  • Accept recommendation
  • Merge it
  • Close / decline
  • Investigate - deep code-grounded review (leaves this card open)
  • Hold - I'll handle this manually

Only the repository owner can drive this decision - everyone else's edits and comments are ignored.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions