Skip to content

[gnhf#189] fix(cli): preserve committed worktrees on forced shutdown #2321

Description

@github-actions

Decision needed - gnhf#189

PR review by jasonqlwilliams-alt · merge-ready

fix(cli): preserve committed worktrees on forced shutdown

Situation

  • Compliance: pass
  • Tests: green
  • Merge state: mergeable (informational)
  • Configured checks: PR must be raised via no-mistakes (compliance: pass), Generated files must not be hand-edited (informational: pass), build-and-test (macos-latest) (test: pass), build-and-test (ubuntu-latest) (test: pass), build-and-test (windows-latest) (test: pass)
  • Freshness: complete target observation as of 2026-08-12T23:55:49Z
  • 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/gnhf#164 - fix(agents): recover pi JSON output that follows prose - exact shared path: AGENTS.md
  • kunchenguid/gnhf#168 - fix: preserve worktree with commits on force-shutdown - exact shared paths: src/cli.test.ts, src/cli.ts
  • kunchenguid/gnhf#169 - feat: add --sign-commits flag for optional git commit signing - exact shared path: src/cli.ts
  • kunchenguid/gnhf#170 - fix: preserve worktree on force-shutdown timeout - exact shared path: src/cli.ts
  • kunchenguid/gnhf#173 - feat: add gemini-cli support - exact shared path: AGENTS.md
  • kunchenguid/gnhf#179 - feat(agents): wait for the usage window to reset instead of aborting on rate limits - exact shared path: AGENTS.md
  • kunchenguid/gnhf#186 - feat: add --score-command metric gate with keep/discard and non-improving stop - exact shared paths: src/cli.test.ts, src/cli.ts
  • kunchenguid/gnhf#191 - fix(cli): preserve worktrees across Linux sleep re-exec - exact shared paths: AGENTS.md, src/cli.ts

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 and complete
  • MET Safety - target PR is open - target PR is open and unmerged
  • UNAVAILABLE Safety - no per-PR auto-merge opt-out - target labels could not be read
  • MET Safety - head SHA unchanged - scan and live head 3c6782dc

G0 (repo)

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

G1 (card)

G2 (files)

  • MET G2 - complete immutable file list - 3 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 - jasonqlwilliams-alt is a non-maintainer human
  • MET G3 - prior merged contribution in this repo - jasonqlwilliams-alt has at least one prior merged PR in gnhf

G4 (checks)

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

G5 (size)

  • MET G5 - changed-file limit - 3 changed files <= 20
  • MET G5 - changed-line limit - 124 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 3c6782dc
  • MET G6 - top-level recommendation is merge - explicit merge recommendation
  • MET G6 - eligible behavior class - class B with bounded corrected-defect and restored-behavior evidence
  • 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
    • 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

Recommended action

  • Agent recommendation: merge
  • Reason: Clean Class B restoration with all CI passing, manual double-SIGINT reproduction evidence attached, and a behavior-oriented regression test that was hardened to fail on unfixed code. Scope is tightly limited to the commit-bearing preservation guard and path-report on the two affected exit paths; zero-commit cleanup is explicitly preserved and confirmed by a passing e2e control. No sibling-task conflicts detected.

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