Skip to content

Commit 3c78ae2

Browse files
committed
sdd: signal tactical The stdin attachment retention feature on sdd new ...
1 parent 9d941b1 commit 3c78ae2

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
type: signal
3+
layer: tactical
4+
kind: gap
5+
refs:
6+
- 20260413-091846-d-tac-q5p
7+
- 20260413-100503-s-tac-e21
8+
participants:
9+
- Christopher
10+
- Claude
11+
confidence: high
12+
summary: The stdin retention feature on `sdd new` saves attachment content only for rejection findings and dry-run paths, but fails to persist on pre-flight infrastructure errors like JSON parse failures, forcing full re-pipe on retry. This gap contradicts the retention contract in d-tac-q5p (s-tac-e21) which intended to save stdin on any pre-flight failure. The fix is a deferred `reportSavedStdin` call for infrastructure errors, idempotent with existing inline handlers.
13+
summary_hash: fc1a3f88499e3d9330904a7d009b78e8
14+
---
15+
16+
The stdin attachment retention feature on `sdd new` (`handler_new_entry.go:39-51`, established by d-tac-q5p / s-tac-e21) fires on two paths only: `--dry-run` (deferred at line 58) and high-severity pre-flight rejection findings (line 166). Pre-flight infrastructure errors — JSON parse failures, LLM timeouts, transient provider errors — return at line 155 before `reportSavedStdin` can run, so the agent must re-pipe the entire heredoc on retry.
17+
18+
Observed today on a comparative-findings.md attachment (~2,000 words) when the LLM emitted malformed JSON: `pre-flight error: parsing pre-flight result: parsing pre-flight JSON: invalid character 'G' after object key:value pair`. No saved-path message; full re-pipe required. Reported as the third or fourth occurrence in recent sessions.
19+
20+
The retention contract intended in d-tac-q5p was "save the stdin content on pre-flight failure so retries don't require re-transmission" — the current implementation honors this for *rejections* but not for *errors*, which from the agent's perspective are equally retry-worthy. The fix is mechanical: a deferred `reportSavedStdin("pre-flight error")` registered when `stdinAtt != nil` and pre-flight is enabled, idempotent with the existing inline calls.

0 commit comments

Comments
 (0)