Synced provider keys
Enter a cloud provider's API key once and every Mac you sign Luke into has it. A Sync section in Settings governs it: while on, your account's vault holds what this Mac's encrypted store holds, and turning it off deletes every synced copy while the local keys stay. A key your shell configured is never synced — only one you typed into Luke. (#574, #580)
A conversation that outlives the app
The History tab now survives a quit. The thread, and the facts you asked Luke to remember, live in his own application data under a real retention policy — the 200 most recent lines, nothing older than a fortnight — and Clear still empties the file along with the screen. Lines draw as they are being said, each carries its local timestamp, and every chat a line named draws a chip that opens it, even after the chat is archived. (#589, #614, #606, #618, #613)
Improvements
- Luke opens at login, a switch under Appearance backed by macOS's own login items (#585)
- Spoken exchanges run on the OpenAI Agents realtime SDK, which owns the connection, the session configuration, and the tool round-trips (#635, #630)
- Several sessions changing at once arrive as one announcement instead of a run of them (#623, #628, #625)
- Luke observes local OMP sessions, reading their title, status, recap, current tool, and conversation (#584)
- A keyboard shortcut can be removed outright: the row says None, and Reset restores the default (#587)
- A session's parting words are shown whole on its row and its own screen (#633)
- Luke words his own announcements from the observed fields rather than reading a composed sentence (#588)
- Ask about "that chat" right after an announcement and Luke resolves it to the one he just told you about, naming the candidates when nothing settles it (#599)
- Spoken time is no longer metered: the hosted voice quota and the settings it needed are gone (#634)
- Every provider API key hint reads the same way and links to the page that issues the key (#591)
Fixes
- Fixed the Updates row moving under your cursor while an update downloaded (#581)
- Fixed Luke silently losing the ability to lower and restore Music and Spotify, leaving an unkillable helper at full CPU (#582)
- Fixed the landing page drawing its footer hairline across the hero art on phones (#583)
- Fixed the landing page's hero mock spilling outside the phone's screen (#590)
Misc
- Added Sentry crash reporting: unhandled exceptions from every Electron process and native minidumps, carrying no account identity (#632)
- Added the hosted
/api/observeendpoint, which runs each cloud adapter once under the caller's vault keys and answers a bounded roster (#573) - Added hosted act endpoints for messaging a session and creating a workspace (#571, #611, #620)
- Updated how Luke's persona instructions describe his voice (#639)