Skip to content

fix: bound Git worktree failure feedback - #199

Draft
seonghobae wants to merge 8 commits into
mainfrom
fix/git-worktree-error-privacy-v1
Draft

fix: bound Git worktree failure feedback#199
seonghobae wants to merge 8 commits into
mainfrom
fix/git-worktree-error-privacy-v1

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Purpose

Prevent arbitrary thrown frontend/backend exception text, immutable-record persistence detail, and native worktree stop/blocker codes from crossing the Git worktree cleanup desktop boundary while ensuring every blocked, failed, or partially verified state directs the next safe action, without changing Git retention, audit, approval, fingerprint/revalidation, removal, persistence, or filesystem-authority semantics.

Exact current state

  • Exact source head: 9d578770a9b538867d06e5bbd8c27cd1b184226a.
  • Live protected main: be418bac9bfbdc8aa41b1a698713833e3dbccfdc.
  • The PR is open, Ready for review, mergeable, and based directly on protected main.
  • Current semantic delta is exactly:
    • src/lib/GitWorktreeCleanup.svelte;
    • src/lib/gitWorktreeFeedback.ts;
    • src/lib/gitWorktreeErrorPrivacyContract.test.ts.
  • Current-head formal reviews and review threads are empty; no approval is claimed.

Test-first privacy and recovery repair

  • RED head f6e6d4c9488564388627987636fc4d336b90500a first proved the UI projected arbitrary String(e) values for repository selection, read-only audit, and removal execution.
  • Initial implementation 3f67363c78b2faa07f59895d2797ebeb48e62a86 bounded those three catch paths and retained the accessible role="alert" boundary plus unchanged planning/removal calls.
  • Review found three remaining customer-facing gaps: the messages described failure without a recovery action, raw result_record_error was still rendered after partial/complete execution, and native evidence-gap/stopped-reason codes were shown instead of bounded guidance.
  • Test-only commit 2b341f97faba129091edc1ca985b4fd92392304b requires operation-specific next actions, rejects unused catch (e) bindings and raw record-error rendering, covers every current evidence-gap and removal-stop code, and verifies unknown/empty values fail closed without reflection.
  • gitWorktreeFeedback.ts maps native codes to deduplicated customer actions and supplies stable path-free selection, audit, execution, and record-persistence messages.
  • Component implementation f981d0e44aa1df2c9dab1ae888d37064827b135a uses those mappings while preserving deliberately selected worktree paths needed for remediation and removing only raw implementation/error detail.
  • Test-only commit f20218f0d2602baca3dd2d37369ddd11e6aa8345 exposed an empty-string fallback defect; current fix 9d578770a9b538867d06e5bbd8c27cd1b184226a makes empty, null, and unknown removal stop reasons all produce the same bounded stop-and-recheck action.

Git ref retention, read-only planning, explicit approval phrase and rationale, removal-plan fingerprint/revalidation, per-candidate execution checks, branch/commit retention, immutable approval/result records, and filesystem mutation authority remain unchanged.

Exact-head validation

For exact head 9d578770a9b538867d06e5bbd8c27cd1b184226a:

  • Test 31884802040 — queued;
  • Release 31884802047 — pending;
  • Security Scan 31884802039 — queued;
  • SAST Semgrep 31884802049 — queued.

Queued or pending evidence is not passing, and predecessor-head success does not transfer. Conditional PR-inapplicable publication or attestation helpers are not represented as passing release or provenance evidence.

Scope / non-duplication

This line owns only Git worktree desktop feedback and its focused recovery/privacy contract. It does not import repository-wide coverage #156, generic cleanup #174, canonical documentation #149, or unrelated cloud/provider authority work.

Remaining integration blockers

  • The live organization ruleset requires one independent approving review, approval after the last push, and review-thread resolution; the current head has no approval.
  • Repository-wide exact 100% owned-production region/statement-equivalent, branch, function, and line coverage remains materially unsatisfied on canonical owner ci: require exact-head production coverage evidence #156.
  • Ready-for-review status is not merge authorization.

Required before merge

Do not merge unless the unchanged exact head satisfies every applicable live required workflow and current finding, every review thread is resolved, a qualifying independent approval covers the last push/current head, fresh protected-main ancestry remains current, the live review ruleset is satisfied, and repository-wide exact coverage is satisfied without exclusions or threshold weakening. Pending, queued, skipped-required, neutral-required, failed, stale, predecessor, synthetic, diagnostic-only, status-only, model-only, rate-limited, no-source scanner, or infrastructure-only evidence is not passing.


Open in Devin Review

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

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

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ba51f1f8-c288-47cf-9470-466b4e2e209d


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.

@seonghobae
seonghobae marked this pull request as ready for review August 15, 2026 09:03

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown

Rate Limit Exceeded

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

@opencode-agent opencode-agent Bot 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.

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head 9d578770a9b538867d06e5bbd8c27cd1b184226a.

  • Head SHA: 9d578770a9b538867d06e5bbd8c27cd1b184226a

  • Workflow run: 32132424129

  • Workflow attempt: 1

Coverage evidence

Coverage Decision

  • Result: FAIL
  • Test evidence: not proven passing
  • Docstring evidence: not proven passing when configured
  • Failure count: 1

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (3 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (3 files)"]
  R1 --> V1["required checks"]
Loading

@opencode-agent

opencode-agent Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: 9d578770a9b538867d06e5bbd8c27cd1b184226a
  • Workflow run: 32138793250
  • Workflow attempt: 1
  • Gate result: REQUEST_CHANGES (approval step)

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head 9d578770a9b538867d06e5bbd8c27cd1b184226a.

  • Head SHA: 9d578770a9b538867d06e5bbd8c27cd1b184226a

  • Workflow run: 32138793250

  • Workflow attempt: 1

Coverage evidence

Coverage Decision

  • Result: FAIL
  • Test evidence: not proven passing
  • Docstring evidence: not proven passing when configured
  • Failure count: 1

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (3 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (3 files)"]
  R1 --> V1["required checks"]
Loading

@opencode-agent opencode-agent Bot 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.

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head 9d578770a9b538867d06e5bbd8c27cd1b184226a.

  • Head SHA: 9d578770a9b538867d06e5bbd8c27cd1b184226a

  • Workflow run: 32138793250

  • Workflow attempt: 1

Coverage evidence

Coverage Decision

  • Result: FAIL
  • Test evidence: not proven passing
  • Docstring evidence: not proven passing when configured
  • Failure count: 1

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (3 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (3 files)"]
  R1 --> V1["required checks"]
Loading

@seonghobae
seonghobae dismissed opencode-agent[bot]’s stale review August 22, 2026 07:35

Dismissing: this REQUEST_CHANGES referenced workflow run 32138793250 where coverage-evidence failed at the same head SHA. coverage-evidence has since been re-run and now reports pass (verified via gh pr checks). No unresolved review threads remain. Re-request review to re-validate.

@opencode-agent opencode-agent Bot added priority: medium Normal-priority or P2 work status: blocked Blocked by conflict, dependency, or required prerequisite type: bug Defect or incorrect behavior labels Aug 22, 2026

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Devin Review found 1 potential issue.

Open in Devin Review

Comment thread src/lib/gitWorktreeFeedback.ts
@seonghobae
seonghobae enabled auto-merge (squash) August 24, 2026 01:03
@seonghobae
seonghobae marked this pull request as draft August 24, 2026 02:06
auto-merge was automatically disabled August 24, 2026 02:06

Pull request was converted to draft

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: medium Normal-priority or P2 work status: blocked Blocked by conflict, dependency, or required prerequisite type: bug Defect or incorrect behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant