Skip to content

Host STM park-button in VoiceNotesBanner - #24

Merged
JLarky merged 4 commits into
mainfrom
feat/stm-park-button
Aug 1, 2026
Merged

JLarky merged 4 commits into
mainfrom
feat/stm-park-button

Conversation

@JLarky

@JLarky JLarky commented Aug 1, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Replace only the VoiceNotesBanner Park control with a thin same-origin host for STM <say-to-me-park-button>, loading /api/say-to-me/embed/park-button.js.
  • Validate bubbling/composed say-to-me-park-session (source: say-to-me-park-button, version: 1, type: park-session, matching sessionId) before navigating.
  • Preserve exact legacy /park navigation: environmentId, threadId, optional title/project/cwd/branch, then window.location.assign.
  • Keep one Park implementation only: no T3 fallback control or availability mode/state machine.

Dependency

Depends on Say To Me pingdotgg#608 (feat/liftsolid-park-button-stacked, commit e4571e7735f144bf035644f240bb1329b9ddef60), which itself depends on pingdotgg#605. Do not merge/enable this host until STM serves GET /embed/park-button.js.

Test plan

  • cd apps/web && vp test run src/say-to-me/parkButton.test.ts src/say-to-me/components/chat/VoiceNotesBanner.test.tsx --passWithNoTests --project unit
  • cd apps/server && vp test run src/say-to-me/parkButtonProxy.test.ts
  • vp check apps/server/src/say-to-me/parkButtonProxy.test.ts apps/server/src/say-to-me/parkButtonProxy.ts apps/server/src/server.ts apps/web/src/say-to-me/SayToMeParkButtonHost.tsx apps/web/src/say-to-me/components/chat/VoiceNotesBanner.test.tsx apps/web/src/say-to-me/components/chat/VoiceNotesBanner.tsx apps/web/src/say-to-me/parkButton.test.ts apps/web/src/say-to-me/parkButton.ts
  • cd apps/web && pnpm exec tsgo --noEmit
  • Manual on isolated review stack: proxied script 200, one registered custom element, zero fallback nodes, and Park navigates to the legacy ordered /park query.

Made with Cursor

Yaroslav Lapin and others added 4 commits August 1, 2026 14:19
Replace only the legacy Park control with a thin same-origin host for
<say-to-me-park-button>, validate say-to-me-park-session, and keep the
exact /park navigation shape while depending on STM pingdotgg#608/pingdotgg#605.

Co-authored-by: Cursor <cursoragent@cursor.com>
Show the compact legacy Park control until the custom element registers,
and keep it as a functional fallback with explicit unavailable state when
the proxied park-button script cannot load or define.

Co-authored-by: Cursor <cursoragent@cursor.com>
Persist failed script state, share in-flight loads, and replace stale
tags on remount so a prior script error cannot leave Park stuck pending.

Co-authored-by: Cursor <cursoragent@cursor.com>
@JLarky
JLarky marked this pull request as ready for review August 1, 2026 21:22
@JLarky
JLarky merged commit 84e7f77 into main Aug 1, 2026
@JLarky
JLarky deleted the feat/stm-park-button branch August 1, 2026 22:19
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.

1 participant