- Rebased App.tsx on the last clean Task-4 parent (5aa8129) and re-applied
only Task-5's SSE plumbing: streamAbortRef, isStreamingActive,
buildNetworkErrorInfo, runStreamAttempt, handleErrorAction,
handleStopStreaming, and the InputArea/MessageStream wiring.
- Removed the unscoped WIP that had been folded into b2cf863 (NeuroPulse
demo data/session-privacy/docgov-lease/cardActionPolicy imports that do
not exist in git, causing b2cf863 to fail to build in isolation).
- Real-backend path now appends the pending placeholder and calls
runStreamAttempt immediately; the artificial setTimeout(600) is only
used for the mock keyword-shortcut demo branches (unchanged from 5aa8129),
gated by precomputed predicates so it never wraps the SSE call.
- Preserved 5aa8129's mock keyword shortcuts (生成文档/驳回/修改/通过等) verbatim.
- No silent success-template fallback re-introduced.
- P1 error actions remain filtered to retry-only; auto-retry transient
attempts stay capped at 2 with 1s/2s backoff via AbortController.
- Bloated WIP App.tsx backed up to .superpowers/sdd/App.tsx.wip-backup
for later use by whichever task owns NeuroPulse/session-privacy/docgov
lease work.
Co-authored-by: Cursor <cursoragent@cursor.com>