Skip to content

feat: add pear logo in sidebar header#1

Merged
willwashburn merged 1 commit into
mainfrom
feat/sidebar-logo
Mar 17, 2026
Merged

feat: add pear logo in sidebar header#1
willwashburn merged 1 commit into
mainfrom
feat/sidebar-logo

Conversation

@barryonthecape

Copy link
Copy Markdown

Summary\n- add pear logo SVG asset\n- render logo at the top-left of the sidebar header next to Workspaces\n\n## Testing\n- npm run build\n- npm run dev\n

@willwashburn willwashburn merged commit 59ce862 into main Mar 17, 2026
miyaontherelay added a commit that referenced this pull request Jun 8, 2026
…lush

Fix #1/#13: initIfReady schedules a requestAnimationFrame retry when the
container has no layout (hidden tab, split page mounted at display:none).
mount() now always invokes initIfReady regardless of prior parentage so
the retry actually fires once the container becomes visible.

Fix #6: dispose() cancels the init rAF and calls clearPtyBuffer(key)
before flipping the disposed flag, so a queued rAF flush can't write
into a torn-down xterm. writeFromBuffer also early-returns when disposed
as belt-and-braces.
miyaontherelay added a commit that referenced this pull request Jun 8, 2026
…lush

Fix #1/#13: initIfReady schedules a requestAnimationFrame retry when the
container has no layout (hidden tab, split page mounted at display:none).
mount() now always invokes initIfReady regardless of prior parentage so
the retry actually fires once the container becomes visible.

Fix #6: dispose() cancels the init rAF and calls clearPtyBuffer(key)
before flipping the disposed flag, so a queued rAF flush can't write
into a torn-down xterm. writeFromBuffer also early-returns when disposed
as belt-and-braces.
miyaontherelay added a commit that referenced this pull request Jun 8, 2026
…stic on reconcile; drop window-focus auto-focus

Three fixes from reviewer-indep's NO-GO cold-eyes pass:

1. terminal-runtime-registry: detach(token) now calls cancelPendingInit().
   The recursive initIfReady rAF retry loop (Fix #1 for hidden split-page
   init) was not being cancelled when a runtime was parked. In split mode,
   any non-visible display:none split page would spin a permanent rAF
   against a disconnected container. Now matched-token detach drains it.

2. agent-store: reconcileChatMessages detects the optimistic-vs-canonical
   human-echo case by (channel, body, project, time-window) and replaces
   the optimistic local-UUID record with the canonical broker-event-id
   record instead of appending both. This closes the duplicate-chat path
   left open after the view-layer dedupe removal — the store-level
   isDuplicateHumanEcho only guarded the optimistic-side append; the
   reconcile path appended unconditionally on id miss.

3. use-terminal: removed the window-focus handler's auto-focus on alt-tab
   back to pear. Same DECSET ?1004 emission class as the visibility-effect
   focus removed in 701e2a7. Alt-tabbing is less frequent than
   tab-switching but in the same bug class. User-initiated clicks still
   focus via the pointerdown handler.

Gates: tsc clean on all three files; npm run build clean.

Note: the diagnostic instrumentation pushed in 5707dc7 is kept in this
commit pending the user's capture data for the per-/mcp-invocation
double-render (which neither the focus fix nor these three address —
that's still unaccounted-for and the instrumentation is how we find it).
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.

2 participants