mirror of
https://github.com/garrytan/gstack.git
synced 2026-09-19 11:22:21 +02:00
fix: codex adversarial fixes — JSON trust, fail-open visibility, user-state safety
Codex outside-model adversarial pass (inline-diff workaround for the sandbox), P1/P2 findings triaged cross-model: - Parent validates the dispatch JSON's field types and treats documentation_section as untrusted markdown (Step 19's redaction scan covers the final body; instruction-shaped text inside it is never followed). The error branch now explicitly skips items 2-6. - Remote-ahead divergence is named, not silent: the parent lists foreign commits before creating a PR over a moved branch. - Recovery cleanup never discards content: stray staged doc edits are unstaged but never checked out or cleaned away. - Greptile UNAVAILABLE gets a concrete PR-body line, not a vague 'wherever results are reported'. Pre-existing-class P1s (self-asserted spawned trust chain, unenforceable foreground timeout) are cross-model confirmed and tracked: PreToolUse hook TODO at P1, harness-residue hazard documented. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
6c63ac2ae4
commit
67c6eec8dc
@@ -23,7 +23,7 @@ Parse the LAST line as JSON.
|
||||
|
||||
If `total` is 0, skip this step silently. Continue to Step 12.
|
||||
|
||||
**If the subagent fails, returns invalid JSON, or never completes (backgrounded despite the flag, or no final output after ~10 minutes — stop waiting; if a backgrounded task is still running, stop it first so a late result never lands mid-ship):** print `Greptile triage did not complete — review the PR comments manually` and continue to Step 12, recording the triage as UNAVAILABLE — not as zero comments — in the PR body wherever review results are reported (an unavailable triage must not read as a clean one; Step 20's metrics schema carries no triage field, so the PR body is the record). Do not block /ship on the triage subagent.
|
||||
**If the subagent fails, returns invalid JSON, or never completes (backgrounded despite the flag, or no final output after ~10 minutes — stop waiting; if a backgrounded task is still running, stop it first so a late result never lands mid-ship):** print `Greptile triage did not complete — review the PR comments manually` and continue to Step 12, recording the triage as UNAVAILABLE — not as zero comments — in the PR body: add the literal line `Greptile triage: UNAVAILABLE (dispatch failed)` to the review-results section Step 19 assembles (an unavailable triage must not read as a clean one; Step 20's metrics schema carries no triage field, so the PR body is the record). Do not block /ship on the triage subagent.
|
||||
|
||||
Otherwise, print: `+ {total} Greptile comments ({valid_actionable} valid, {already_fixed} already fixed, {false_positive} FP)`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user