rowboat/apps/x/packages/shared
Arjun 781b16d881 feat(x): browser screen-share picker, web notifications, Chrome extensions
Three capability upgrades to the embedded browser pane:

- Screen share: getDisplayMedia() in the browser partition now shows a
  Chrome-style source picker (screens/windows with thumbnails, optional
  system audio for screens) instead of silently capturing the primary
  screen. Requests are denied when the pane is hidden. The app's own
  session keeps its auto-loopback handler for meeting transcription.

- Notifications: the browser partition grants the notifications
  permission so sites (WhatsApp Web, Gmail, ...) can post native OS
  notifications while loaded. Background Web Push remains unavailable.

- Extensions: electron-chrome-extensions wired to the browser session.
  Unpacked extensions load from ~/.rowboat/extensions/<name>/; tab
  lifecycle is mirrored into chrome.tabs, and a <browser-action-list>
  toolbar hosts action icons/popups next to the address bar. NOTE: the
  library is GPL-3.0/Patron dual-licensed — licensing decision required
  before shipping in a release build.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 09:18:40 +05:30
..
src feat(x): browser screen-share picker, web notifications, Chrome extensions 2026-07-16 09:18:40 +05:30
.gitignore bootstrap new electron app 2026-01-16 12:05:33 +05:30
package.json ci(x): typecheck test files — the gap vitest and the build tsconfigs both miss 2026-07-10 16:30:26 +05:30
tsconfig.build.json feat(x/shared): turn + session event schemas and pure reducers (stage 1) 2026-07-02 14:20:44 +05:30
tsconfig.json bootstrap new electron app 2026-01-16 12:05:33 +05:30
vitest.config.ts feat(x/shared): turn + session event schemas and pure reducers (stage 1) 2026-07-02 14:20:44 +05:30