Files
hapi/docs/guide
3affdd92c9 fix(cli): silence Cursor post-done harness Briefly inform turns (#2268)
* fix(cli): silence Cursor post-done harness "Briefly inform" turns

After AGENT_NOTIFY_SUMMARY status:done, drop notify_on_output resume
speech/tools/thinking until the next HAPI user prompt so the competing
finished-shell system ping cannot force a second user-visible reply.

Fixes #2267

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(cli): narrow post-done silence to speech; keep soft-steer active

Address cold review + Codex P2: suppress only text/reasoning after
status:done, treat outstanding soft-steer as an active turn, and add a
launcher regression for harness-resume drops.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(cli): discard suppressed harness buffers before next prompt

After a done close, idle-flushed harness speech stays buffered. Clear it
before reopening the silence gate so prompt()'s pre-swap drain cannot
resurrect the redundant reply (Codex P2 on #307).

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(cli): keep post-done silence through drain and handler swap

Address upstream bot Minors on #2268: suppress speech after done even
during promptInFlight drain windows, and reopen the gate only once when
promptGeneration advances after the handler swap (not before prompt()).

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(cli): seal done footer before quiet-drain harness coalescing

Address #2268 Minor: Cursor can append finished-shell speech during the
post-prompt quiet window onto the same buffer as AGENT_NOTIFY_SUMMARY
done, which hid the end-anchored footer. Seal the done segment when
flavor=cursor at native response return, and truncate buried harness
prose in the launcher as defense in depth.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(cli): harden post-done seal against queue race and false closes

Await sessionUpdateQueue before sealing a Cursor done footer; keep note()
end-anchored; fence-aware truncate with soft-steer exemption and same-line
glue handling so examples and steered speech are not cut (#2268 Minors).

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(cli): keep seal end-anchored; harden footer scan edges

Seal only flushes end-anchored done footers (soft-steer truncate stays in
the launcher). Footer scan skips inline-code examples and tracks JSON
string/escape state so braces inside summary values do not break glue
detection (#2268 Minors).

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(cli): ignore tilde-fenced done-footer documentation examples

Recognize ~~~ fences with matching opener length alongside ``` so
truncate/seal defense does not treat tilde-fenced footer examples as a
real post-close (#2268 Minor).

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-04 15:06:42 +08:00
..