feat: <LinnetWidget /> isolation and embeddable build output #14

Open
opened 2026-04-06 13:11:42 -07:00 by pyr0ball · 0 comments
Owner

Package Linnet as an embeddable Vue 3 component for use in Peregrine, Osprey, Falcon, Ibis, Harrier.

Requirements:

  • <LinnetWidget /> accepts props: sessionId, elcor_unlocked (boolean, host app controls this), tier, compact (mobile/embedded size mode)
  • Widget must not inject global styles or conflict with host app layout (use scoped styles + CSS custom properties only)
  • Widget must not assume global state (no Vuex/Pinia store access from host)
  • Separate Vite entry point: src/widget.tsdist/linnet-widget.js + dist/linnet-widget.css
  • Widget exposes events: tone-event, session-start, session-end, compose-send
  • Test embed in Peregrine Interview Prep view as acceptance criterion
Package Linnet as an embeddable Vue 3 component for use in Peregrine, Osprey, Falcon, Ibis, Harrier. Requirements: - `<LinnetWidget />` accepts props: `sessionId`, `elcor_unlocked` (boolean, host app controls this), `tier`, `compact` (mobile/embedded size mode) - Widget must not inject global styles or conflict with host app layout (use scoped styles + CSS custom properties only) - Widget must not assume global state (no Vuex/Pinia store access from host) - Separate Vite entry point: `src/widget.ts` → `dist/linnet-widget.js` + `dist/linnet-widget.css` - Widget exposes events: `tone-event`, `session-start`, `session-end`, `compose-send` - Test embed in Peregrine Interview Prep view as acceptance criterion
pyr0ball added this to the Interaction — v1.0 milestone 2026-04-06 13:11:42 -07:00
pyr0ball added the
enhancement
design
backlog
labels 2026-04-06 13:11:42 -07:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Circuit-Forge/linnet#14
No description provided.