Skip to content

fix: dedupe run progress replay-gap notices - #2753

Merged
webbrain-one merged 1 commit into
webbrain-one:mainfrom
alectimison-maker:fix/run-progress-replay-gap-dedupe
Aug 11, 2026
Merged

fix: dedupe run progress replay-gap notices#2753
webbrain-one merged 1 commit into
webbrain-one:mainfrom
alectimison-maker:fix/run-progress-replay-gap-dedupe

Conversation

@alectimison-maker

Copy link
Copy Markdown
Contributor

Summary

  • replace the replay-gap boundary high-water mark with a once-per-run UI marker
  • keep restored messages with the legacy numeric marker deduplicated
  • cover advancing acknowledgement boundaries in the Chrome/Firefox regression suite

Motivation

When another panel acknowledges events while a displayed run remains behind, ackedSeq can advance across state polls while lastRenderedSeq stays unchanged. The previous boundary-based marker treated every larger boundary as a new gap and appended the same notice repeatedly.

Closes #2750.

Design

The marker now records whether the run's assistant message has shown a replay-gap notice, instead of recording the largest unavailable sequence. The rendered-event cursor is intentionally unchanged so acknowledged terminal snapshots can still restore finalContent. Restored HTML carrying the previous data-replay-gap-before-seq marker is treated as already notified.

Chrome and Firefox use the same implementation.

Testing

  • npm test — pass
    • rich-text toolbar guard: 33 passed
    • core suite: 1623 passed, 0 failed
    • security corpus: 60/60 passed
  • npm run test:webmcp — both functional smoke phases pass locally; the process then times out in CDP cleanup. The identical cleanup timeout reproduces on an unmodified upstream/main@41941bf3 worktree.

Compatibility and risks

Low risk. This is UI-only state on the existing assistant message element. It does not change the run journal, acknowledgement behavior, protocol, model prompts, permissions, or persisted data schema.

Scope

Changed only the mirrored Chrome/Firefox sidepanel replay-gap branch and its existing regression tests.

@vercel

vercel Bot commented Aug 11, 2026

Copy link
Copy Markdown

@alectimison-maker is attempting to deploy a commit to the esokullu's projects Team on Vercel.

A member of the Team first needs to authorize it.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Prevents duplicate replay-gap notices as acknowledgement boundaries advance, while preserving legacy marker compatibility.

Changes:

  • Uses a once-per-run replay-gap marker in both sidepanels.
  • Preserves deduplication for restored legacy markers.
  • Adds cross-browser regression coverage for advancing boundaries.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
test/run.js Updates and extends replay-gap regression tests.
src/firefox/src/ui/sidepanel.js Implements Firefox notice deduplication.
src/chrome/src/ui/sidepanel.js Implements Chrome notice deduplication.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@webbrain-one
webbrain-one merged commit ab844ac into webbrain-one:main Aug 11, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Run progress replay-gap notice can render repeatedly as the acknowledged boundary advances

3 participants