Skip to content

fix(ui): replace repeated live hints#1624

Merged
esengine merged 1 commit into
esengine:mainfrom
GTC2080:GTC/fix-1573-live-card-replace
May 23, 2026
Merged

fix(ui): replace repeated live hints#1624
esengine merged 1 commit into
esengine:mainfrom
GTC2080:GTC/fix-1573-live-card-replace

Conversation

@GTC2080

@GTC2080 GTC2080 commented May 23, 2026

Copy link
Copy Markdown
Contributor

What

Make live.show replace an existing live card when the same id is reused, and route Alt+S stash/recall notices through a stable hint id so repeated presses update the same card instead of adding stale scrollback entries.

Why

Fixes #1573. Repeated transient hints such as stash/recall confirmations were accumulating because every pushInfo call generated a fresh card id.

How to verify

  • npm test -- tests/ui-reducer.test.ts
  • npm run typecheck
  • npm run verify

Checklist

  • npm run verify passes locally (lint + typecheck + tests + comment-policy gate)
  • No Co-Authored-By: Claude trailer in commits
  • Comments follow CONTRIBUTING.md (no module-essay headers, no incident history)
  • No edits to CHANGELOG.md — release notes are maintainer-written at release time

@esengine

Copy link
Copy Markdown
Owner

Thanks — fix itself is tight and the reducer behavior test is exactly the right shape. One blocker though: the branch is behind main and would silently revert four merges that landed today.

Drift

git diff origin/main..HEAD --stat against current main: 19 files, +49 / −152 lines. The bulk of those deletions aren't yours.

Merged into main What this PR would silently revert
#1618 Search-engine switcher — dashboard/src/{App,protocol,ui/settings,lib/tauri-bridge}.tsx,ts + desktop/src/{App,protocol,ui/settings,i18n/{en,zh-CN}}.tsx,ts + src/cli/commands/desktop.ts
#1620 JobRegistry.maybeCleanup (src/tools/jobs.ts −18 lines)
#1621 npm i / npm un aliases in lifecycle-policy.ts + the two new test cases
#1623 Light-theme composer bg (PromptInput.tsx / UserCard.tsx theme-token swap)

GH shows mergeStateStatus: CLEAN because git's 3-way merge sees absence-of-lines as deletion against main's additions — no textual conflicts to flag. Semantically it'd undo ~150 lines of recent work in a single click.

What to do

git fetch origin main && git rebase origin/main — your diff should narrow back to the 4 files of the actual fix:

src/cli/ui/App.tsx                |  4 +++-
src/cli/ui/hooks/useScrollback.ts |  4 ++--
src/cli/ui/state/reducer.ts       |  9 ++++++---
tests/ui-reducer.test.ts          | 32 ++++++++++++++++++++++++++++++++

Main's been moving fast this week — if the rebase takes a while, you may need a second one. Push when ready and I'll merge.

@esengine esengine mentioned this pull request May 23, 2026
4 tasks
@GTC2080 GTC2080 force-pushed the GTC/fix-1573-live-card-replace branch from a97d3f7 to f763454 Compare May 23, 2026 14:52
@esengine esengine merged commit f38100e into esengine:main May 23, 2026
4 checks passed
@dacec354

Copy link
Copy Markdown

let more message apply to this mode? like edit mode change or else?

@GTC2080

GTC2080 commented May 24, 2026

Copy link
Copy Markdown
Contributor Author

@dacec354 Thanks for the suggestion. Since this PR is already merged and was intentionally scoped to repeated live hints, could you open a separate issue for this request?

It would be helpful to include the exact mode(s), the messages you want covered, and the expected behavior, so we can discuss the scope clearly there.

@GTC2080 GTC2080 deleted the GTC/fix-1573-live-card-replace branch May 31, 2026 10:43
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.

pushInfo cards pile up — no way to replace a live hint in-place

3 participants