HERMES-GIELIE/static
nesquena-hermes 6baf501dce harden #5471: dual-signature suppression (Opus root fix) — covers stale prefix + attachment
Opus found the exact-match signature fails open in the COMMON case: the server's
last persisted draft is often a PREFIX of the submitted text (Enter-to-send within
400ms cancels the pending debounced save), so matching only the submitted text
misses it and the prefix restores (the literal 'tail of the already-submitted
message' symptom). Root fix (Opus-recommended): capture BOTH signatures at send —
the remembered SERVER-draft signature (_composerDraftPayloadSignatureForSid, read
before the reset) AND the submitted-payload signature — and suppress a restore
matching EITHER. The prefix IS the remembered server draft; the remembered files
went through the same lossy serialization so they self-match; a genuinely new
cross-tab draft matches neither and restores. Subsumes the file-canonicalization
fix (kept as belt-and-suspenders). Suppression stores signatures[] not signature.

Regression tests: stale-prefix suppressed (Opus Finding 1), file round-trip
self-matches (Codex Finding 2), cross-tab-different still restores. Test harness
updated to model send-time server draft vs later restore draft as distinct.

Co-authored-by: ruizanthony <ruizanthony@users.noreply.github.com>
2026-07-04 08:51:13 +00:00
..
vendor
apple-touch-icon.png
assistant_turn_anchors.js
boot.js fix(chat): widen composer re-pin observer to #composerWrap (Fable #5516 finding) 2026-07-04 05:52:14 +00:00
commands.js fix(#5439): hide read-only cron fork affordances 2026-07-03 00:58:30 +00:00
extension_settings.js
favicon-32.png
favicon-192.png
favicon-512.png
favicon-512.svg
favicon.ico
favicon.svg
i18n.js Merge PR #5438 from rodboev: add preset cron schedule builder (#5427) 2026-07-03 22:16:37 +00:00
icons.js
index.html fix(#5428): surface stale WebUI client recovery 2026-07-03 17:43:46 -04:00
login.js
manifest.json
messages.js fix(composer): scope draft restore suppression to payload 2026-07-04 08:06:33 +00:00
onboarding.js
outline.js
panels.js Merge PR #5460 from ruizanthony: replace cross-profile empty sessions on profile switch 2026-07-04 03:05:45 +00:00
pwa-startup.js
sessions.js harden #5471: dual-signature suppression (Opus root fix) — covers stale prefix + attachment 2026-07-04 08:51:13 +00:00
style.css Merge commit '6771fc2cdc34' into release/stage-5456 2026-07-04 07:45:19 +00:00
sw.js
terminal.js
ui.js Merge commit '6771fc2cdc34' into release/stage-5456 2026-07-04 07:45:19 +00:00
workspace.js