Releases: ReviewStage/luke
Releases · ReviewStage/luke
Release list
Luke 0.5.0
What's Changed
- feat(panel): draw the Radius mark from the logomark Radius now publishes by @dastratakos in #642
- feat(conductor): have Luke name the workspaces he creates by @dastratakos in #636
- feat(desktop): put the Ask Luke composer at the foot of the History tab by @dastratakos in #643
- feat(hosted): mobile voice session — mint + pre-serialized roster context by @dastratakos in #616
- fix(desktop): keep the practice reply free of follow-up questions by @dastratakos in #644
- feat(desktop): add a calendar step to onboarding by @dastratakos in #561
- refactor: trim providers to Conductor, Superset, Claude Code, Codex, and OMP by @charleslpan in #645
- fix(history): keep History lines whole and bound only the model render by @dastratakos in #629
- feat(hosted): read a Conductor session's conversation through its documented endpoint by @dastratakos in #647
- feat(ios): draw session messages as Markdown by @dastratakos in #640
- feat(ios): read a Conductor session's conversation in the detail view by @dastratakos in #637
- feat(ios): add LukeWatch watchOS app target by @dastratakos in #652
- feat(ios): realtime session in LukeKit + push-to-talk UI by @dastratakos in #617
- feat(desktop): add a Pause announcements switch by @charleslpan in #651
- feat(ios): add session details menu by @dastratakos in #654
- fix(ios): keep API capitalized in the key editor placeholder by @dastratakos in #655
- fix(hosted): list only the providers the vault still accepts by @dastratakos in #656
- feat(ios): add the Luke icon to the Apple Watch app by @dastratakos in #657
- feat(attention): derive a local session's subject and name it in announcements by @charleslpan in #649
- chore(docs): remove committed iOS screenshots by @dastratakos in #661
- docs(agents): forbid committing screenshot evidence on every platform by @dastratakos in #662
- feat(ios): add voice settings sheet to the voice screen by @dastratakos in #658
- chore(release): v0.5.0 by @charleslpan in #669
Full Changelog: v0.4.0...v0.5.0
Luke 0.4.0
What's Changed
- refactor(hosted): drop the vault hint column by @dastratakos in #580
- fix(desktop): keep Updates in place while downloading by @charleslpan in #581
- feat(desktop): open Luke at login by @charleslpan in #585
- feat(analytics): name who opened a counted voice exchange by @charleslpan in #586
- feat(desktop): let a keyboard shortcut be deleted outright by @dastratakos in #587
- fix(web): keep the footer hairline off the hero mock on phones by @dastratakos in #583
- feat(desktop): add hosted vault client methods and a Synced keys settings section by @dastratakos in #574
- fix(duck): read automation consent about the player's process, on a deadline by @dastratakos in #582
- feat(ios): manage provider keys in the hosted vault by @dastratakos in #570
- fix(ios): sign development builds ad hoc so keychain persists sign-in by @dastratakos in #592
- Remove standing session notice requests by @charleslpan in #593
- fix(desktop): unify the API key hints, linked on their destinations by @dastratakos in #591
- fix(web): keep the hero mock's wings inside the phone's screen by @dastratakos in #590
- fix(ios): cut the app icon full-bleed so iOS masks it once by @dastratakos in #595
- feat(providers): observe local OMP sessions by @aaronjmars in #584
- chore(ios): set marketing version to 0.1.1 by @dastratakos in #597
- feat(hosted): add observe-on-demand endpoint by @dastratakos in #573
- feat(ios): support light and dark mode by @dastratakos in #596
- feat(ios): move sign out into the header avatar menu by @dastratakos in #594
- fix(realtime): resolve "that chat" after announcements instead of guessing by @dastratakos in #599
- feat(ios): show the signed-in user's cloud sessions by @dastratakos in #576
- feat(ios): add session search to the main page header by @dastratakos in #601
- fix(ios): abbreviate session row timestamps the way desktop does by @dastratakos in #604
- fix(ios): title the main page Sessions instead of the account name by @dastratakos in #605
- refactor(voice): let the voice word Luke's announcements by @charleslpan in #588
- feat(ios): draw the provider key editor with the system sheet vocabulary by @dastratakos in #603
- feat(history): show local timestamps on conversation entries by @charleslpan in #606
- fix(ios): redact the real session row for the skeleton loader by @dastratakos in #607
- feat(ios): add session filtering and sorting beside search by @dastratakos in #602
- feat(hosted): mobile act endpoints — message a session, create a workspace by @dastratakos in #571
- feat(ios): stand Luke's loading screen over the app's first load by @dastratakos in #598
- feat(ios): write-path act UI — session composer and workspace creator by @dastratakos in #575
- feat(hosted): widen mobile acts to every provider and act the adapters carry by @dastratakos in #611
- feat(history): stream the bubbles while their words arrive by @dastratakos in #614
- fix(desktop): mirror conversation history across every display's panel by @dastratakos in #613
- Remove mobile sessions title by @dastratakos in #615
- Persist conversation history and remembered preferences by @charleslpan in #589
- fix(ios): let the sessions list stand in for the launch loading screen by @dastratakos in #619
- feat(desktop): open a history line's chats from pressable chips by @dastratakos in #618
- feat(voice): batch nearby session notifications by @charleslpan in #623
- test: remove prompt wording assertions by @charleslpan in #624
- fix(voice): keep current batched notices by @charleslpan in #628
- fix(voice): keep sparse announcements fact-closed by @charleslpan in #625
- feat(ios): add PostHog analytics to the mobile app by @dastratakos in #627
- fix(ios): scroll session rows behind the bar instead of clipping them by @dastratakos in #626
- Add Sentry crash reporting by @charleslpan in #632
- Improve realtime voice reliability by @charleslpan in #630
- fix(ios): drop sort details and filter counts from the options sheet by @dastratakos in #631
- feat: remove hosted voice quota enforcement by @charleslpan in #634
- feat(voice): adopt the OpenAI Agents realtime SDK for voice transport by @charleslpan in #635
- feat(session): retain recaps whole and excerpt them only at the model edges by @dastratakos in #633
- feat(hosted): carry the workspace agent table to mobile and take a selection back by @dastratakos in #620
- feat(ios): session chat screen, roster acts, and a native New Workspace flow by @dastratakos in #612
- feat(ios): long-press a chat bubble to copy its words by @dastratakos in #638
- refactor(persona): state Luke's voice as decided axes rather than a bullet list by @charleslpan in #639
- chore: prepare Luke 0.4.0 by @charleslpan in #641
New Contributors
- @aaronjmars made their first contribution in #584
Full Changelog: v0.3.13...v0.4.0
Luke 0.3.13
What's Changed
- fix(web): keep the roster's Last seen from trailing Last active by @dastratakos in #548
- fix(desktop): record session replays from first paint by @charleslpan in #535
- chore: register entire CLI hooks for codex, cursor, and opencode by @dastratakos in #549
- feat(desktop): raise media players' consent dialogs at the last possible moment by @dastratakos in #550
- feat(providers): never read a session's folder for its branch by @dastratakos in #552
- Fix Luke's agent announcements and natural voice by @charleslpan in #553
- feat(ios): scaffold Hello World iPhone app by @dastratakos in #554
- fix(providers): let a slow cloud write outlive the shared request deadline by @dastratakos in #557
- feat(providers): annotate sessions running inside Herdr by @dastratakos in #560
- feat(desktop): add Luke conversation history by @charleslpan in #513
- feat(web): register luke-mobile OAuth client by @dastratakos in #559
- feat(hosted): carry the websocket realtime endpoint in the voice mint by @dastratakos in #562
- feat(desktop): remove the Usage data settings section by @charleslpan in #563
- fix(voice): stop showing a trim refusal the developer cannot act on by @charleslpan in #564
- refactor(attention): group the evaluator instructions into headed sections by @charleslpan in #566
- feat(ios): sign in with LukeKit by @dastratakos in #565
- feat(hosted): add the provider-key vault by @dastratakos in #568
- refactor(voice): raise the altitude of the shared prompt rules by @charleslpan in #567
- feat(desktop): add a copy control to History messages by @dastratakos in #569
- refactor(acts): name the cause in an act handler's refusal by @charleslpan in #572
- refactor(voice): give Luke a character instead of a ban list by @charleslpan in #578
- feat(notch): replace the session count with the provider marks by @charleslpan in #577
- v0.3.13 chore: prepare Luke release by @charleslpan in #579
Full Changelog: v0.3.12...v0.3.13
Luke 0.3.12
What's Changed
- docs: make the hosted tag release the documented path by @charleslpan in #519
- feat(voice): change the default voice from cedar to echo by @dastratakos in #520
- fix(release): publish releases only after assets finish uploading by @dastratakos in #521
- fix(desktop): keep provider marks visible while Luke speaks by @dastratakos in #517
- fix(desktop): retry updates whose release is still publishing by @dastratakos in #523
- fix(voice): keep roster context text stable across clock ticks by @dastratakos in #527
- fix(voice): seed conversation history once per call by @dastratakos in #526
- feat(voice): carry the app guide in session instructions by @dastratakos in #528
- docs(replicas): correct the accidental-wake billing rationale by @dastratakos in #529
- feat(replicas): create workspaces with the sleep-when-done lifecycle by @dastratakos in #530
- feat(replicas): surface an accidental workspace wake as a diagnostic by @dastratakos in #531
- docs(replicas): rewrap the refreshDetails doc comment by @dastratakos in #532
- feat(desktop): minimize Luke while macOS asks for the microphone during onboarding by @dastratakos in #524
- feat(desktop): sign the wordmark onto the introduction's wake by @dastratakos in #533
- feat(devtrace): record a local development trace of Luke's agent traffic by @dastratakos in #534
- fix(conductor): drop listed-archived workspaces before any per-workspace read by @dastratakos in #525
- feat(analytics): count observation diagnostics through the allowlisted pipeline by @dastratakos in #536
- fix(conductor): read open workspaces from the filtered workspace listing by @dastratakos in #537
- feat(desktop): narrow Luke's app guide to conversation needs and act bounds by @dastratakos in #538
- feat(voice): keep the tracker's issue roster out of the conversation by @dastratakos in #539
- feat(devtrace): export the attention review as the model received it by @dastratakos in #540
- feat(desktop): speak the post-sign-in arrival beat by @dastratakos in #541
- docs(readme): reword the tagline around the voice agent by @charleslpan in #544
- docs: offer a contact address on the site and in the README by @charleslpan in #543
- docs(readme): show the panel in place on a Mac desktop by @charleslpan in #545
- docs: credit the maintainers in the README by @charleslpan in #546
- feat(web): add an About page by @charleslpan in #542
- v0.3.12 chore: prepare Luke release by @charleslpan in #547
Full Changelog: v0.3.11...v0.3.12
Luke 0.3.11
What's Changed
- docs(changelog): add onboarding image to v0.3.10 changelog by @dastratakos in #510
- fix(voice): harden remote-audio playback against silent failure by @dastratakos in #477
- fix(desktop): backfill introduction completion on signed-in launch by @dastratakos in #512
- fix(voice): keep agent updates concise and work-specific by @charleslpan in #514
- fix(admin): improve dashboard usability and hierarchy by @dastratakos in #511
- fix(web): log the admin API's swallowed 503 causes by @dastratakos in #492
- fix(voice): preserve useful updates through meeting quiet by @charleslpan in #515
- feat(desktop): open Replicas sessions in the Replicas desktop app by @dastratakos in #516
- v0.3.11 chore: prepare Luke release by @charleslpan in #518
Full Changelog: v0.3.10...v0.3.11
Luke 0.3.10
What's Changed
- refactor(desktop): split the app guide into targeted facts by @dastratakos in #472
- docs: simplify the README product overview by @charleslpan in #474
- docs: tighten the privacy policy's wording by @charleslpan in #476
- fix(realtime): carry the default workspace provider into creation asks by @dastratakos in #475
- feat(sessions): keep a provider-asserted ask waiting until it is answered by @dastratakos in #444
- refactor(superset): import the workspace provider id from its own vocabulary by @dastratakos in #479
- refactor(session): share one agent identity table across hosting providers by @dastratakos in #480
- refactor(session): house the workspace provider vocabulary with the session vocabulary by @dastratakos in #481
- refactor(settings): fold the Superset agent default into the workspace agent defaults by @dastratakos in #483
- refactor(providers): register workspace hosts behind one snapshot contract by @dastratakos in #484
- fix(web): sign in on a Preview deployment by @replicas-connector[bot] in #408
- refactor(ipc): consolidate the desktop bridge by @charleslpan in #486
- refactor(settings): derive app settings from the schema by @charleslpan in #485
- refactor(packages): import shared vocabulary from its defining packages by @dastratakos in #487
- refactor: unify the act pipeline by @charleslpan in #490
- refactor(session): separate attention from provider sessions by @charleslpan in #491
- feat(web): add an animations reference page to the admin dashboard by @dastratakos in #488
- refactor(providers): consolidate shared vocabulary by @charleslpan in #493
- fix(web): give @sidecar/acts its door in server/core.ts by @dastratakos in #495
- refactor: deepen shared package boundaries by @charleslpan in #494
- revert(oauth): leave the connection tabs open by @dastratakos in #496
- feat(desktop): draw loading rows while the roster is unread by @dastratakos in #498
- Make Luke more conversational and proactive by @charleslpan in #500
- feat(web): paint the notch mock's display with a live mesh gradient by @dastratakos in #499
- feat(web): mint the onboarding introduction's voice without an account by @dastratakos in #497
- Restyle OAuth connection pages by @dastratakos in #501
- fix(web): let the mock's display end borderless on the page by @dastratakos in #503
- feat(web): walk the hero mock open once and let it rest by @dastratakos in #502
- feat(web): loop the hero mock through its presentations by @dastratakos in #504
- fix(voice): diagnose a signed-out live run as missing credentials by @dastratakos in #505
- Fix Superset workspace launches by @charleslpan in #507
- Remove dead production code by @dastratakos in #506
- feat(desktop): give Luke a spoken onboarding introduction by @dastratakos in #508
- v0.3.10 chore: prepare Luke release by @charleslpan in #509
Full Changelog: v0.3.9...v0.3.10
Luke 0.3.9
What's Changed
- fix(desktop): move the app marks below the timestamp on session rows by @dastratakos in #384
- fix(providers): drop archived Cursor chats from the roster by @dastratakos in #385
- feat(cursor): name the tool call an open local turn is running by @dastratakos in #382
- feat(cursor): recap a settled local turn by its parting words by @dastratakos in #383
- feat(web): add maintainer-only admin metrics dashboard by @dastratakos in #372
- feat: give Luke the Updates row's button as a spoken tool by @dastratakos in #388
- feat(cursor): merge the observation hook into Cursor's hooks.json by @dastratakos in #386
- feat(cursor): message a settled local chat through the agents CLI resume by @dastratakos in #387
- feat(web): add a hide-admins toggle to the admin dashboard by @dastratakos in #389
- feat(web): add favicon and Open Graph card to the admin page by @dastratakos in #394
- feat(web): ask the admin dashboard's first visit to sign in explicitly by @dastratakos in #391
- refactor(providers): table the hook registry and share hook status refinement by @dastratakos in #393
- feat(conductor): create local workspaces, distinguished from cloud by @dastratakos in #392
- feat(gemini-cli): merge the observation hook into Gemini's settings.json by @dastratakos in #396
- feat(opencode): install a managed observation plugin in OpenCode's plugin directory by @dastratakos in #397
- feat: clear session filters from an X on the options button by @dastratakos in #399
- feat(devin): merge the observation hook into Devin's hook configuration by @dastratakos in #398
- feat(cursor): draw local chats by Cursor's own names, branches, and changes by @dastratakos in #390
- fix(superset): match OpenCode chats by worktree when Superset records no session id by @dastratakos in #395
- fix: seat the filter clear X as a hairline-split segment of the options pill by @dastratakos in #403
- fix(settings): open the provider's key page on the Connect press by @dastratakos in #405
- fix(cursor): observe the CLI's chat store beside the transcripts by @dastratakos in #400
- feat(admin): draw the signed-in account as an avatar menu by @replicas-connector[bot] in #406
- feat(admin): keep the dashboard readable while it refetches, and say which way it is going by @replicas-connector[bot] in #404
- fix(admin): put Google above GitHub on the sign-in card by @dastratakos in #411
- feat(oauth): close the successful connection tabs on their own after 5 seconds by @dastratakos in #413
- feat(oauth): count down on the connection pages that close themselves by @dastratakos in #414
- feat(admin): rank accounts by days present and give each its own page by @dastratakos in #412
- feat(panel): keep the session search standing like the filter chips by @dastratakos in #415
- feat(admin): hang the views on a collapsible sidebar and add a Users roster by @dastratakos in #416
- feat(admin): let the Users roster sort by any column by @dastratakos in #418
- fix(voice): open recent chats across providers by @dastratakos in #420
- fix(conductor): keep a walked-away cloud chat stale across a VM wake by @dastratakos in #419
- fix(panel): sign filter errands on the split options pill, and clears on its X by @dastratakos in #421
- feat(admin): add a last-seen column to the Users roster by @dastratakos in #417
- feat(admin): redraw the dashboard's charts on shadcn/ui and recharts by @dastratakos in #422
- feat(panel): say a workspace's shared pull request once on its tray header by @dastratakos in #423
- feat(panel): lead the wing's marks with the app holding each chat by @dastratakos in #424
- feat(admin): remember the Users roster's sort across a refresh by @dastratakos in #425
- test(analytics): lock the erasure request the account delete sends by @dastratakos in #410
- feat(analytics): full PostHog coverage — event widening and unmasked session replay by @charleslpan in #409
- feat(admin): draw profile photos beside names in the Users roster by @dastratakos in #428
- fix(admin): scope the account page's usage chart heading to the account by @dastratakos in #429
- feat(admin): let an admin star accounts on the Users roster by @dastratakos in #426
- fix(admin): remember the hide-admins choice across reloads by @dastratakos in #430
- fix(admin): mark every admin response no-store by @dastratakos in #431
- fix(admin): count accounts, not linked rows, in the sign-in methods chart by @dastratakos in #433
- fix(admin): fall back to the email when an account has no name by @dastratakos in #432
- feat(admin): pin favorited accounts to the top of the Users roster by @dastratakos in #436
- fix(admin): keep the shown answer up when a refresh fails by @dastratakos in #434
- fix(admin): treat a whitespace-only account name as no name by @dastratakos in #438
- fix(admin): let the roster tables scroll instead of crushing on narrow viewports by @dastratakos in #435
- feat(admin): link the reliability caption to the analytics project when configured by @dastratakos in #439
- feat(admin): show weekly signup cohorts and whether they come back by @dastratakos in #442
- feat(admin): let the window be 7, 30, or 90 days by @dastratakos in #441
- fix(providers): draw no row for work the user filed away in cloud adapters by @dastratakos in #427
- feat(admin): say when a chart has nothing yet, and mark today's partial bar by @dastratakos in #443
- feat(replicas): observe Replicas cloud workspaces behind a user-supplied key by @dastratakos in #402
- refactor(admin): draw both account tables through one component by @dastratakos in #437
- feat(admin): say what a trend moved from, not just which way by @dastratakos in #445
- fix(admin): validate chart config before it reaches the injected style block by @dastratakos in #446
- fix(admin): fold the sidebar without flickering its labels by @dastratakos in #440
- chore(admin): drop the cards and rows that cannot inform a decision by @dastratakos in #447
- style(admin): lift card surfaces above the page ground by @dastratakos in #448
- feat(providers): observe local Grok Build sessions by @dastratakos in #407
- chore: adopt pnpm 10 and let packageManager name the version by @dastratakos in #449
- fix(superset): open and message a chat's live terminal, not the binding its restart ended by @dastratakos in #450
- fix(realtime): stop Luke narrating tool calls by @dastratakos in #451
- fix(admin): give the sidebar hover a pill the fold cannot slice by @dastratakos in #452
- feat(admin): sketch the page's own shape while it loads by @dastratakos in #454
- feat(admin): make the admin surface work on a phone by @dastratakos in #453
- feat(admin): search the whole roster, not the newest 200 by @dastratakos in #456
- fix(admin): tick the clock only where time is drawn by @dastratakos in #457
- feat(admin): give the account page the same window switcher by @dastratakos in #458
- feat: filter sessions by app or provider on wing mark click by @dastratakos in #455
- chore(admin): drop the window label the swi...
Luke 0.3.8
What's Changed
- fix(conductor): title local chats by the names Conductor gave them by @dastratakos in #362
- chore(release): remove legacy macOS packager path by @dastratakos in #367
- fix(desktop): space every band under the strip by one inset by @dastratakos in #377
- docs: clean up the README and policies for launch by @charleslpan in #379
- fix(release): give the DMG builder the packaged app path by @charleslpan in #380
- chore(release): prepare 0.3.8 by @charleslpan in #381
Full Changelog: v0.3.7...v0.3.8
Luke 0.3.4
What's Changed
- feat(voice): trail notice chips with their session's app marks by @dastratakos in #340
- feat(desktop): read this Mac's own Calendar into the meeting quiet by @dastratakos in #311
- fix(voice): keep the turn open when a reply's audio resumes after a drain by @dastratakos in #342
- fix(web): restore the .js extensions the function sources need to load by @dastratakos in #343
- feat(release): name the DMG volume Luke Installer by @dastratakos in #339
- fix(sessions): report an unanswered cloud write as indeterminate by @dastratakos in #345
- feat(desktop): add electron-builder release path by @dastratakos in #324
- docs(providers): restructure around agents and apps with a read/write surface by @dastratakos in #341
- fix(voice): pace unbidden speech around the developer's conversation by @dastratakos in #344
- feat(providers): observe local Gemini CLI sessions by @dastratakos in #347
- fix(voice): reteach show_panel the session-list filter and sort vocabulary by @dastratakos in #346
- fix(voice): name the session in status-edge announcements by @dastratakos in #350
- feat(voice): let a spoken ask combine session filters like the chips do by @dastratakos in #348
- fix(realtime): route session-list asks to the panel filter by @dastratakos in #351
- feat(sessions): open Conductor's local chats where its notifications point by @dastratakos in #349
- fix(voice): name a session's app associations in the roster by @dastratakos in #352
- fix(duck): ignore quit signals so the helper lives to restore by @dastratakos in #353
- fix(providers): drop Conductor chats the user filed away locally by @dastratakos in #360
- chore(release): prepare 0.3.4 by @charleslpan in #359
Full Changelog: v0.3.3...v0.3.4
Luke 0.3.3
What's Changed
- fix(duck): recognize where Spotify actually landed so restore is never skipped by @dastratakos in #329
- fix(voice): stop trimming a stopped reply past its audio's end by @dastratakos in #335
- feat(orca): group local agent rows under their Orca worktrees by @dastratakos in #333
- feat(sessions): persist the filter chips across closings and restarts by @dastratakos in #336
- feat(sessions): mark the rows cmux holds and open their exact pane by @dastratakos in #332
- chore(release): prepare 0.3.3 by @charleslpan in #338
Full Changelog: v0.3.2...v0.3.3