Skip to content

fix(workspace): preserve active conversation indicators - #2145

Draft
roxi3906 wants to merge 1 commit into
aipoch:mainfrom
roxi3906:fix/user/restore-agent-indicators
Draft

fix(workspace): preserve active conversation indicators#2145
roxi3906 wants to merge 1 commit into
aipoch:mainfrom
roxi3906:fix/user/restore-agent-indicators

Conversation

@roxi3906

@roxi3906 roxi3906 commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Problem

Two workspace indicators can become inconsistent with the underlying runtime state:

  • Answering an ask-user prompt can clear the thinking/tool indicator when a provider stop and the continuation tool arrive together, or when a delayed command response races a newer terminal snapshot.
  • The scroll-to-bottom button can remain visible at the native scroll limit because Chromium reports fractional layout geometry beyond integer scroll metrics.

Change

  • Keep Main-owned prompt authority projected after incremental event processing without restarting the first-output waiting edge.
  • Guard post-drain restoration with an ownership generation and reject stale snapshot authority while still delivering its unseen events.
  • Route elicitation snapshot synchronization through the public runtime facade and apply the shared revision gate to ordinary and revised responses.
  • Use a 0.5px scroll-edge tolerance, small enough to preserve deliberate scrollbar release while ignoring subpixel residue.
  • Add regression coverage for same-batch stop/continuation events, stale live and elicitation snapshots, asynchronous ownership release, architecture boundaries, and fractional bottom geometry.

Testing

  • Rebased onto upstream/main at 8a2f032a5; git range-diff confirms the feature patch is unchanged.
  • 10 focused Vitest files: 516 passed.
  • npm run typecheck:web: passed.
  • Touched-file ESLint: passed with zero errors (one file is ignored by the repository configuration); git diff --check: passed.
  • npm run build:e2e: passed.
  • Scroll Electron E2E before the rebase: 4 passed; 2 existing anchor assertions failed with the same values reproduced on an untouched main baseline (266.6875 and 36). No related scroll implementation or spec changed between that baseline and the current upstream base.
  • Full Vitest suite was not run locally: the affected-test planner expands to full because message-scroller.test.tsx has no module owner; local validation remains scoped to the requested indirect related set.
  • Post-rebase upstream CI is running for 0e7175201. The upstream fix for the previously observed Notebook admission-test timeout is included in the new base.

@github-actions github-actions Bot added the bug Something isn't working label Sep 4, 2026
@roxi3906
roxi3906 force-pushed the fix/user/restore-agent-indicators branch from 82b440e to 05c83e9 Compare September 4, 2026 08:55
@roxi3906
roxi3906 force-pushed the fix/user/restore-agent-indicators branch from 05c83e9 to 0e71752 Compare September 5, 2026 05:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant