Skip to content

System 1, screen journal, meeting transcripts, Loose Notch (0.4.0 + 0.4.1) - #157

Merged
sameeeeeeep merged 4 commits into
mainfrom
system1-journal-loose-notch
Sep 29, 2026
Merged

sameeeeeeep merged 4 commits into
mainfrom
system1-journal-loose-notch

Conversation

@sameeeeeeep

Copy link
Copy Markdown
Owner

Brings the already-released v0.4.0 and v0.4.1 onto main.

What's in it

  • System 1 — switchboard_decide: typed yes/no, choice and score judgments through TypeSafe Jev (hosted via OpenRouter, key checked before any data is sent) or any /v1/systemone server; /system1 skill.
  • Screen journal — opt-in local journal of what's on screen (Accessibility, OCR fallback for Chrome), block list, secret masking, 30-day retention, last look on app switch, 20 s reads of call windows.
  • Recall — switchboard_recall (jevgrep over the journal) and switchboard_journal controls.
  • Screen watch — live notch cards only when a real person asks something of the user; memory.md and board tasks; watch-replay.mjs for tuning triggers.
  • Meeting transcripts — background meeting detection, asks at the notch first, Me (mic) / Them (call audio) on-device via whisper, named speakers from captions; text only.
  • Journal tab in the OS panel — day strip with a calls lane, one session per meeting, search, forget.
  • Senses — screen / meeting audio / camera each switched on its own (notch hover, loose pill, Journal tab).
  • Notch — lamp eyes that follow the pointer (lime / amber / coral); the Loose Notch pill (pull it off the notch, snap, dock).
  • Camera presence + people tagging — shipped parked behind "cameraLab": true.

Notes

  • Only this thread's work: other threads' uncommitted edits in RelayMenuBar.swift / build.sh (e.g. DictationAudio.swift) are not included.
  • 3cc96cd fixes a staging slip in c14301b (misplaced declarations); the 0.4.1 release was built from 3cc96cd.
  • The plugin connector bundle was not rebuilt here (it would bake in another thread's uncommitted presence.mjs); rebuild it once that lands.
  • Verified: switchboard-mcp tests pass; clean-checkout compiles; both DMGs notarized and downloaded back from releases/latest.

🤖 Generated with Claude Code

sameeeeeeep and others added 4 commits September 29, 2026 14:22
- switchboard_decide: typed decisions (noul/choice/score) through a System One model.
  Hosted TypeSafe Jev via OpenRouter (key checked before any data is sent),
  or any /v1/systemone server via SYSTEM1_URL. /system1 skill documents when
  to use it. packages/system1 holds the key saver and an opt-in local engine.
- Screen journal (ScreenJournal.swift): opt-in via ~/.relay/journal-on, reads
  the focused window's text through Accessibility, OCR fallback when that is
  thin (Chrome), block list, secret masking, 30-day retention, files 0600.
- switchboard_recall / switchboard_journal: recall screen history by meaning
  (local prefilter, then System 1 per line, redacted) and control recording.
- Screen watch (watch.mjs, LaunchAgent via install-watch.mjs): one System 1 call
  per settled window; cards only when a real person asks something of the user
  (v2 gate), memory.md and board tasks in the vault, answers logged as labels.
  watch-replay.mjs replays journal windows plus probes to tune triggers.
- Notch: lamp eyes inside the dot field while journaling, STOP WATCHING on hover.
- Loose Notch phase 1 (LooseNotch.swift): pull the notch down into a free pill,
  snap to eight anchors, dock back; the notch hides while it is loose.
- docs/AUDIO-JOURNAL-SPEC.md: spec for an always-on audio layer (not built).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Journal tab in the OS panel (Knowledge): a day strip with a calls lane, sessions
  (one session per meeting), calls as Me/Them conversations, local search, app
  filters, forget a session or the last hour.
- Meeting audio (CallAudio.swift): a background watch spots Meet/Zoom/Teams/FaceTime
  and asks at the notch before transcribing. Mic = Me, the call app's audio = Them,
  transcribed on-device by whisper; text only, audio never kept; stops when the
  meeting closes. Mic falls back if echo cancellation returns silence; echoed
  "Me" lines are dropped.
- Named speakers from the meeting's own captions (CallCaptions.swift).
- Screen journal: a last look at the window being left, 20 s reads of call windows.
- Senses (Senses.swift): screen, meeting audio and camera each switched on their
  own, on notch hover, on the loose pill and in the Journal tab.
- Eyes follow the pointer; lime = screen, amber = listening, coral = camera.
- Camera presence + people tagging (CameraPresence/CameraPanel.swift), parked:
  hidden unless "cameraLab": true.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… not inside eyeLamp

Staging hunks without context placed them 30 lines low; the release build caught it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sameeeeeeep
sameeeeeeep merged commit 26fa818 into main Sep 29, 2026
2 checks passed
@sameeeeeeep
sameeeeeeep deleted the system1-journal-loose-notch branch September 29, 2026 14:08
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