Repository navigation
What's Changed
- refactor(ui): extract EmptyState by @charleslpan in #3227
- feat(desktop): an Inbox item reads as a comment thread under its title by @dastratakos in #3230
- fix(desktop): every tab's own bar under a tab strip stands one height by @dastratakos in #3320
- refactor(web): migrate invitation acceptance onto AuthPage by @charleslpan in #3319
- feat(ui): add FormSection by @charleslpan in #3218
- feat(ui): add CollectionPage by @charleslpan in #3225
- feat(service): hand coding agents the Linear issue their plan started from by @dastratakos in #3283
- feat(desktop): personal sidebar sections that tasks are dragged into by @dastratakos in #3251
- refactor(web): migrate the desktop-session page onto AuthPage by @charleslpan in #3321
- docs(changelog): add what landed before the v0.17.0 tag moved by @charleslpan in #3326
- feat(desktop): answer an Inbox item in the agent composer's box by @dastratakos in #3279
- fix(desktop): an agent's live to-do list in the transcript runs its working mark by @dastratakos in #3329
- fix(desktop,ui,brand): the window keeps the rules DESIGN.md states by @dastratakos in #3323
- refactor(web): migrate the GitHub connection page onto AuthPage by @charleslpan in #3322
- feat(hosted,web): a coding agent asks in chat by @charleslpan in #2630
- feat(ui): add DetailPage by @charleslpan in #3243
- refactor(web): migrate the GitHub installation result page onto AuthPage by @charleslpan in #3324
- feat(ui): add PublicPage by @charleslpan in #3246
- feat(web): the coding agent is told about chat by @charleslpan in #2662
- feat(service): start a coding agent from another with a transcript replay by @dastratakos in #3312
- refactor(web): migrate the integration connection result page onto AuthPage by @charleslpan in #3325
- feat(desktop,host,features,gateway,ui): open an Inbox item's files, pages, and pull requests in the side panel beside it by @dastratakos in #3331
- refactor(ui): extract Menu by @charleslpan in #3219
- fix(database): settle the calls an interrupted step abandoned when eve runs it again by @dastratakos in #3327
- feat(web): Luke posts, reads, and asks in the plan's chat by @charleslpan in #2647
- feat(desktop): draw the Continued from / Forked from card in a new agent's transcript by @dastratakos in #3333
- feat(ui): add Select using the shared menu behavior by @charleslpan in #3226
- refactor(ui): extract ErrorState by @charleslpan in #3242
- feat(service): copy the source agent's work to a branch for a continued or forked agent by @dastratakos in #3332
- feat(service): let an Inbox answer carry files by @dastratakos in #3337
- feat(desktop): let a custom sidebar section wear no icon by @dastratakos in #3344
- feat(desktop): fork a coding agent at one of its messages into a new agent by @dastratakos in #3330
- fix(desktop): lay a task item's checkbox beside its words in the plan editor by @dastratakos in #3350
- refactor(ui): extract HoverCard by @charleslpan in #3214
- fix(desktop): name pull request tabs by their number and title by @dastratakos in #3334
- refactor(ui): migrate FoldingButton onto shared controls by @charleslpan in #3222
- refactor(desktop): draw the replay card's steps with the transcript's own rows by @dastratakos in #3352
- fix(service): replay the newest rows of a long transcript, not its oldest by @dastratakos in #3341
- fix(desktop,ui): a failed read reads as a quiet line or an empty place's state, not a red sentence by @dastratakos in #3345
- feat(desktop): continue a failed or ended coding agent in a new agent by @dastratakos in #3328
- feat(desktop): attach files to an Inbox answer, and show the files an answer carried by @dastratakos in #3340
- refactor(desktop): migrate window chrome onto the design system by @charleslpan in #3360
- refactor(desktop): adopt shared schema-driven settings rows and sections by @charleslpan in #3357
- refactor(host): drop direct Node imports from the composition path by @dastratakos in #3362
- refactor(desktop): migrate tab strip onto the design system by @charleslpan in #3363
- fix(service): mark a first message's note and count its files by @dastratakos in #3359
- refactor(desktop): migrate side panel onto the design system by @charleslpan in #3364
- feat(desktop): drag tasks between Pinned, Tasks, and sections by @dastratakos in #3347
- feat(desktop,ui): open a pull request's chip in its agent's Pull request tab by @dastratakos in #3348
- feat(web): a coding agent's turn opens with the chat it has not read by @charleslpan in #2673
- fix(web): keep a joined invitation from reading as spent by @charleslpan in #3335
- Share the agent-page response policy from a package by @dastratakos in #3356
- feat(web,hosted): the window reads a workspace's chat by @charleslpan in #2617
- refactor(desktop): migrate sidebar navigation onto the design system by @charleslpan in #3366
- fix(desktop): keep the new-workspace dialog open after a refused name by @charleslpan in #3374
- refactor(host): move Node-only modules behind @luke/host/node by @dastratakos in #3368
- refactor(desktop): migrate workspace switcher onto the design system by @charleslpan in #3367
- feat(service): replay another agent whole within the new agent's window, summarizing what does not fit by @dastratakos in #3370
- fix(desktop): keep a section dialog open after a refused name by @charleslpan in #3377
- feat(web,hosted): the window posts, answers, and resolves in chat by @charleslpan in #2626
- refactor(desktop): one injectable bridge instead of window.luke by @dastratakos in #3354
- refactor(desktop): migrate create-workspace dialog onto the design system by @charleslpan in #3369
- feat(desktop): chat reaches the window through the Gateway by @charleslpan in #2632
- refactor(host): put sign-in behind a seam by @dastratakos in #3384
- refactor(desktop): migrate command palette onto the design system by @charleslpan in #3371
- feat(desktop): draw Luke's summary of earlier steps on the replay card, and read each step from its marker by @dastratakos in #3385
- refactor(host): require HttpClient in the composers by @dastratakos in #3361
- refactor(desktop): migrate find-in-tab onto the design system by @charleslpan in #3373
- refactor(renderer): one entry per window role by @dastratakos in #3353
- refactor(desktop): migrate sign-in gate onto the design system by @charleslpan in #3375
- test(web): run accept-invitation on the test's own clock by @dastratakos in #3388
- refactor(desktop): migrate feedback dialog onto the design system by @charleslpan in #3378
- feat(desktop,features,ui): pick a sidebar section's icon from every Lucide glyph and emoji, in a color by @dastratakos in #3372
- refactor(host): make platform concerns optional in the assembly by @dastratakos in #3383
- refactor(desktop): put renderer platform capabilities behind a seam by @dastratakos in #3396
- refactor(desktop): migrate inline notices onto the design system by @charleslpan in #3379
- refactor(desktop): migrate toast presentation onto the design system by @charleslpan in #3380
- refactor(desktop): put navigation history behind an adapter by @dastratakos in #3395
- refactor(desktop): migrate settings navigation and page frame onto the design system by @charleslpan in #3382
- refactor(desktop): migrate bespoke settings-row adapters onto the design system by @charleslpan in #3386
- fix(service): count only the steps a replay summary read by @dastratakos in #3397
- refactor(desktop): migrate account settings onto the design system by @charleslpan in #3387
- refactor(web): migrate the public site chrome onto the design system by @charleslpan in #3336
- refactor(desktop): load the renderer's side bundles without fixed relative filenames by @dastratakos in #3376
- refactor(desktop): migrate api-key settings onto the design system by @charleslpan in #3392
- refactor(web): migrate the landing page onto PublicPage by @charleslpan in #3338
- refactor(desktop): migrate workspace identity form onto the design system by @charleslpan in #3393
- refactor(web): migrate the demo-video frame onto the design system by @charleslpan in #3339
- refactor(desktop): migrate workspace member list onto the design system by @charleslpan in #3394
- refactor: move the bridge contract and shortcuts into a package by @dastratakos in #3358
- refactor(web): migrate the Open in Luke page onto the design system by @charleslpan in #3343
- refactor(desktop): migrate workspace invitations onto the design system by @charleslpan in #3398
- feat(ui): add a toolbar-framed variant to CollectionPage and DetailPage by @charleslpan in #3415
- refactor(web): migrate the About page onto PublicPage by @charleslpan in #3346
- refactor(desktop): migrate workspace github connections onto the design system by @charleslpan in #3399
- feat(ui): let keyboard-driven lists drive ListRow by @charleslpan in #3417
- refactor(web): migrate the Privacy page onto PublicPage by @charleslpan in #3349
- refactor(desktop): migrate workspace linear connections onto the design system by @charleslpan in #3400
- fix(ui): give a folding button its hint on the button itself by @charleslpan in #3424
- refactor(desktop): migrate workspace leave and ownership transfer onto the design system by @charleslpan in #3401
- refactor(host): move the act router and its platform-free rows into the host package by @dastratakos in #3421
- refactor(web): migrate the changelog pages onto PublicPage by @charleslpan in #3351
- refactor(desktop): migrate coding-agent defaults onto the design system by @charleslpan in #3402
- feat(desktop,service): Chat reads and posts through the service, each channel on its own cursor by @charleslpan in #3389
- refactor(desktop): migrate integration directory onto the design system by @charleslpan in #3403
- feat(desktop): the task column's Chat tab, and chat rows open it by @charleslpan in #3390
- refactor(desktop): migrate integration tool details onto the design system by @charleslpan in #3404
- refactor(desktop): migrate integration connection controls onto the design system by @charleslpan in #3405
- refactor(desktop): migrate voice settings onto the design system by @charleslpan in #3406
- refactor(desktop): migrate voice key-binding editor onto the design system by @charleslpan in #3407
- feat(web,desktop): a DM, a mention, or an ask for you is announced by @charleslpan in #3391
- refactor(desktop): migrate notification settings onto the design system by @charleslpan in #3408
- refactor(desktop): migrate plan-template editor onto the design system by @charleslpan in #3409
- refactor(desktop): migrate experimental settings onto the design system by @charleslpan in #3410
- refactor(desktop): migrate about/update page onto the design system by @charleslpan in #3411
- refactor(desktop): migrate keyboard-shortcut reference onto the design system by @charleslpan in #3412
- refactor(desktop): migrate settings reset flow onto the design system by @charleslpan in #3413
- refactor(desktop): migrate home onto the design system by @charleslpan in #3414
- refactor(desktop): migrate plans collection onto the design system by @charleslpan in #3416
- refactor(desktop): migrate plan action menu and inline rename onto the design system by @charleslpan in #3418
- refactor(desktop): migrate move-plan dialog onto the design system by @charleslpan in #3419
- refactor(desktop): migrate plan board onto the design system by @charleslpan in #3420
- fix(desktop): draw the space a chosen mention is followed by in the message box by @dastratakos in #3448
- refactor(desktop): migrate inbox onto the design system by @charleslpan in #3422
- Plan checkboxes in the app's blue, with no sideways shift between reading and editing by @dastratakos in #3450
- fix(ui,desktop): a failure among rows stands as a row, Retry at its end by @dastratakos in #3451
- feat(host): tell the renderer which platform capabilities it has by @dastratakos in #3430
- feat(desktop): the window's words are selectable, its controls' are not by @dastratakos in #3455
- refactor(desktop): migrate factory onto the design system by @charleslpan in #3423
- fix(desktop): keep an empty task item a checkbox when a plan is edited by @dastratakos in #3452
- start_agent takes an optional title by @dastratakos in #3299
- refactor(desktop): migrate actor references onto the design system by @charleslpan in #3425
- Let open_pull_request take a base branch by @dastratakos in #3301
- refactor(desktop): migrate person page onto the design system by @charleslpan in #3426
- feat(desktop): tick a plan's checkbox without opening the editor by @dastratakos in #3453
- refactor(desktop): migrate agent profile onto the design system by @charleslpan in #3427
- feat(desktop): drag an Issues card onto another column to move its status by @dastratakos in #3462
- refactor(desktop): migrate automations collection onto the design system by @charleslpan in #3428
- refactor(desktop): migrate automation editor frame onto the design system by @charleslpan in #3429
- feat(service): start_agent can start an agent on a branch by @dastratakos in #3307
- refactor(host): move the app-state store and its subscriptions into the host package by @dastratakos in #3464
- refactor(desktop): migrate automation prompt field onto the design system by @charleslpan in #3431
- feat(desktop): replay card shows when it was sent, and pages its steps newest first by @dastratakos in #3472
- fix(host): send an inbox answer's files to the service by @dastratakos in #3475
- fix(service,database): a line no turn takes reads its agent failed past its grace by @dastratakos in #3470
- refactor(desktop): migrate schedule-trigger form onto the design system by @charleslpan in #3432
- fix(service): an inbox post with a picture marks the sandbox opened by @dastratakos in #3484
- fix(service): stop a Continue's woken sandbox in the background, sent as JSON by @dastratakos in #3478
- feat(desktop): Continue opens a draft, keeps the refused line, and shows a loading state by @dastratakos in #3481
- refactor(desktop): migrate code-review options onto the design system by @charleslpan in #3433
- fix(desktop,service,database): an agent's mention, its card, and its message to another wear its harness's mark by @dastratakos in #3125
- feat(database,features,service): an Inbox item holds a thread of messages by @dastratakos in #3469
- refactor(desktop): migrate webhook-trigger form onto the design system by @charleslpan in #3434
- feat(agents): list_models lists the models and efforts an agent may be started on by @dastratakos in #3310
- refactor(host): declare the app-state snapshot as a Schema and drop the window's role by @dastratakos in #3488
- feat(desktop,host,features): an Inbox thread draws its messages, and every item keeps its box by @dastratakos in #3486
- feat(service): stop a continued agent, name its continue, and report continuations by @dastratakos in #3490
- refactor(desktop): draw the automation editor's groups as shared settings sections by @charleslpan in #3435
- fix(service): fit a continued agent's replay to its window by @dastratakos in #3476
- feat(features,service,dev): the agent reads and replies on its Inbox threads by @dastratakos in #3482
- refactor(desktop): migrate automation server-selection form onto the design system by @charleslpan in #3436
- feat(service,desktop): start_agent can start an agent on a new task by @dastratakos in #3458
- feat(desktop): polish the failed and continued end states, and name continuations once by @dastratakos in #3477
- refactor(desktop): migrate automation run-destination form onto the design system by @charleslpan in #3437
- refactor(desktop): migrate automation run history onto the design system by @charleslpan in #3438
- feat(service,desktop): continue and fork include partial work up to the exact point by @dastratakos in #3495
- fix(ui): let a settings-row text field report itself invalid by @charleslpan in #3505
- refactor(desktop): migrate plan header onto the design system by @charleslpan in #3439
- refactor(desktop): migrate document-editor frame onto the design system by @charleslpan in #3440
- feat(service): agents can stop an agent with stop_agent by @dastratakos in #3460
- refactor(desktop): migrate new-plan dialog onto the design system by @charleslpan in #3441
- docs(skills): orchestrate on Luke's new agent tools by @dastratakos in #3511
- refactor(desktop): migrate shared composer field onto the design system by @charleslpan in #3442
- refactor(desktop): migrate agent composer onto the design system by @charleslpan in #3443
- feat(service): let start_agent continue or fork another agent by @dastratakos in #3501
- feat(ui): add a compact density for the web profile by @charleslpan in #3503
- docs(skills): orchestrate restacks from main and hands a continued worker its PR by @dastratakos in #3513
- refactor(desktop): migrate model picker onto the design system by @charleslpan in #3444
- refactor(web): migrate the admin shell onto the design system by @charleslpan in #3504
- refactor(desktop): migrate repository picker onto the design system by @charleslpan in #3445
- refactor(desktop): migrate skill picker onto the design system by @charleslpan in #3446
- refactor(web): migrate the admin chart frame onto the design system by @charleslpan in #3506
- refactor(desktop): migrate mention picker onto the design system by @charleslpan in #3447
- refactor(web): migrate the usage chart onto the design system by @charleslpan in #3507
- refactor(desktop): migrate issue picker onto the design system by @charleslpan in #3449
- refactor(web): migrate the signups chart onto the design system by @charleslpan in #3508
- fix(service): an agent whose session ended for good reads as failed by @dastratakos in #3520
- refactor(web): migrate the retention grid onto the design system by @charleslpan in #3509
- refactor(desktop): migrate attachment chips onto the design system by @charleslpan in #3454
- fix(service): a continue keeps its source's start branch and pull request by @dastratakos in #3519
- fix(service): settle unconfirmed stops and stop stranding sandbox leases by @dastratakos in #3521
- refactor(web): migrate the activity calendar onto the design system by @charleslpan in #3510
- refactor(desktop): migrate transcript frame onto the design system by @charleslpan in #3456
- refactor(desktop): migrate rendered markdown and code-block presentation onto the design system by @charleslpan in #3457
- refactor(web): migrate the admin dashboard onto the design system by @charleslpan in #3512
- refactor(desktop): migrate reasoning blocks onto the design system by @charleslpan in #3459
- refactor(web): migrate the admin day screen onto the design system by @charleslpan in #3514
- docs(skills): the orchestrate skill continues a dead worker itself by @dastratakos in #3522
- refactor(desktop): migrate tool-result blocks onto the design system by @charleslpan in #3463
- refactor(web): migrate the admin accounts table onto the design system by @charleslpan in #3515
- refactor(desktop): migrate checkpoint blocks onto the design system by @charleslpan in #3465
- refactor(web): migrate the admin users screen onto the design system by @charleslpan in #3516
- refactor(desktop): migrate agent work frame onto the design system by @charleslpan in #3467
- refactor(desktop): migrate agent delegation rows onto the design system by @charleslpan in #3468
- refactor(web): migrate the admin account screen onto the design system by @charleslpan in #3517
- refactor(desktop): migrate agent todo dock onto the design system by @charleslpan in #3471
- refactor(desktop): migrate agent origin references onto the design system by @charleslpan in #3473
- refactor(web): migrate the admin animations screen onto the design system by @charleslpan in #3518
- refactor(desktop): migrate agent changes view onto the design system by @charleslpan in #3474
- refactor(desktop): migrate agent server picker onto the design system by @charleslpan in #3480
- refactor(desktop): migrate published-agent references onto the design system by @charleslpan in #3483
- refactor(desktop): migrate draft-agent view onto the design system by @charleslpan in #3485
- refactor(desktop): migrate version history onto the design system by @charleslpan in #3487
- refactor(desktop): migrate file tree onto the design system by @charleslpan in #3489
- refactor(desktop): migrate file-view chrome onto the design system by @charleslpan in #3491
- refactor(desktop): migrate code/diff theme adapter onto the design system by @charleslpan in #3492
- refactor(desktop): migrate terminal chrome onto the design system by @charleslpan in #3493
- refactor(desktop): migrate whiteboard theme adapter onto the design system by @charleslpan in #3494
- refactor(desktop): migrate media viewer onto the design system by @charleslpan in #3496
- refactor(desktop): migrate call controls onto the design system by @charleslpan in #3497
- refactor(desktop): migrate video tiles onto the design system by @charleslpan in #3498
- refactor(desktop): migrate avatar frame onto the design system by @charleslpan in #3499
- refactor(desktop): migrate captions onto the design system by @charleslpan in #3500
- refactor(desktop): migrate dictation strip onto the design system by @charleslpan in #3502
- refactor(desktop): remove the desktop's compatibility token aliases by @charleslpan in #3524
- refactor(web): remove the web's compatibility token aliases by @charleslpan in #3525
- refactor(ui): remove the remaining shared compatibility exports by @charleslpan in #3526
- docs(ui): write the @luke/ui README by @charleslpan in #3527
- feat(features): add the Factory world snapshot contract by @dastratakos in #3528
- feat(ui): add the Factory world view model by @dastratakos in #3529
- feat(database,service): keep a pull request's merge instant and per-directory line counts by @dastratakos in #3530
- feat(service,web,host): read a workspace's Factory world by @dastratakos in #3531
- feat(desktop): add the Factory world picker and scene host by @dastratakos in #3532
- feat(desktop): add the Orbital Station Factory world by @dastratakos in #3533
- fix(desktop): keep the Orbital Station in step with its state by @dastratakos in #3536
- fix(ui): spread the Factory world layout across the whole ring by @dastratakos in #3535
- feat(desktop): the Citadel Factory world by @dastratakos in #3538
- feat(desktop): the Model Railway Factory world by @dastratakos in #3541
- feat(desktop): add the Sky Archipelago Factory world by @dastratakos in #3537
- feat(desktop): add the Neon Megacity Factory world by @dastratakos in #3534
- feat(desktop): add the Factory world by @dastratakos in #3545
- fix(desktop): keep the Citadel's blast roads, heart, and rings true across rebuilds by @dastratakos in #3542
- feat(desktop): add the Ant Colony Factory world by @dastratakos in #3540
- feat(desktop): the Atlantis Factory world by @dastratakos in #3544
- test(desktop): hold the selected agent's sonar apart from Atlantis's landings by @dastratakos in #3546
- feat(desktop): add the World Tree Factory world by @dastratakos in #3543
- fix(desktop): make the Ant Colony world's layer-switch test fast enough to stay stable by @dastratakos in #3547
- feat(desktop): add the Planet Factory world by @dastratakos in #3539
- perf(desktop): paint the Ant Colony's soil once per process and cut its holes only when the burrows change by @dastratakos in #3548
- refactor(desktop): draw the find-in-tab and Settings searches with the shared SearchField by @charleslpan in #3549
- docs(agents): require the shared design system for UI by @charleslpan in #3551
- feat(ui): add a retry row label and use it where a list foot can fail by @charleslpan in #3552
- ci: warm the pnpm store cache on main and drop the per-commit turbo cache by @charleslpan in #3563
- feat(ui): add InlineEdit and use it for task rename by @charleslpan in #3557
- refactor(desktop): frame Issues, the issue board and Factory with the toolbar page frame by @charleslpan in #3559
- refactor(desktop): read the shared tokens in tasks.css by @charleslpan in #3561
- build(luke,dev): typecheck on TypeScript 7 by @charleslpan in #3564
- refactor(desktop): draw the Issues list and Home rows with the shared ListRow by @charleslpan in #3556
- refactor(desktop): read the shared tokens in the remaining desktop stylesheets by @charleslpan in #3560
- ci(web): deploy no GitHub merge-queue branch to Vercel by @charleslpan in #3565
- refactor(desktop): draw the automations list and run history rows with the shared ListRow by @charleslpan in #3555
- feat(ui): give Text a mono face and truncation by @charleslpan in #3567
- feat(ui): add SplitButton and use it for the Start agent button by @charleslpan in #3554
- refactor(desktop,ui): build the searchable pickers on the shared Combobox by @charleslpan in #3558
- feat(ui): add Card and frame the admin surfaces with it by @charleslpan in #3572
- fix(copy): say task for the unit of work in prompts, refusals, and the chat's empty state by @charleslpan in #3577
- refactor(desktop): read the shared tokens in desktop.css by @charleslpan in #3581
- refactor(desktop): move the transcript Tailwind onto shared pieces and classes by @charleslpan in #3591
- build(web): scope CHANGELOG.md and PRIVACY.md to web's tasks by @charleslpan in #3590
- fix(service): end a coding sandbox's session after three hours by @charleslpan in #3597
- feat(ui): add PopoverPanel by @charleslpan in #3573
- refactor(desktop): rename workspaces, integration accounts and shells with InlineEdit by @charleslpan in #3596
- refactor(desktop): put the window shell controls on the shared components by @charleslpan in #3574
- refactor(desktop,ui): draw Inbox rows with the shared ListRow by @charleslpan in #3571
- build: tag turbo's cache key with the platform by @charleslpan in #3600
- build(database): refuse an in-place table or column rename in a new migration by @charleslpan in #3593
- feat(ui): add DataTable and Pagination by @charleslpan in #3566
- refactor(desktop): put the task column controls on the shared components by @charleslpan in #3582
- refactor(packages): name the unit of work a task in the identifiers added since the rename by @charleslpan in #3603
- feat(ui): lift the window-level roles into the shared tokens by @charleslpan in #3569
- feat(ui): give Dialog title and actions slots by @charleslpan in #3599
- feat(ui): add Disclosure by @charleslpan in #3578
- refactor(desktop): build the mention picker on the shared Combobox by @charleslpan in #3553
- feat(ui): add Breadcrumbs and use it in the file view and issue detail by @charleslpan in #3562
- feat(ui): add Tabs by @charleslpan in #3570
- perf(database): open each migrated test PGlite from a dump of the first by @charleslpan in #3588
- Choose the video avatar from large faces rather than a pop-up by @dastratakos in #3257
- feat(ui): give Chip tones, an icon-only form, widths and a removable form by @charleslpan in #3604
- feat(ui): add TextLink and use it for the web quiet links by @charleslpan in #3602
- feat(desktop): say when the Mac is offline by @dastratakos in #3523
- refactor(apps): name the unit of work a task in the apps' identifiers, files, and classes by @charleslpan in #3605
- fix(desktop): show placeholder rows while the Inbox is first read by @dastratakos in #3608
- feat(ui): add a compact row-mark IconButton and a submit state by @charleslpan in #3598
- feat(ui): add InlineRef by @charleslpan in #3586
- feat(ui): give the settings patterns the slots the window reaches into by @charleslpan in #3594
- Remove the Changes chip from an agent's composer by @dastratakos in #3607
- refactor(web): put the admin screens on the shared components by @charleslpan in #3592
- refactor(packages): name task-holding locals and params task, taskId, and tasks by @charleslpan in #3609
- fix(desktop): open a list mixing bullets and task items editable in the plan editor by @dastratakos in #3610
- fix(desktop): keep a dragged sidebar row under the pointer outside its list by @dastratakos in #3611
- feat(desktop,service,features): labels, compact reviewers, and stack navigation in the Pull request tab's header by @dastratakos in #3268
- test(web): unmount the admin shell's root so nothing runs after teardown by @charleslpan in #3614
- feat(ui,desktop): an Inbox row reads as two lines, the last word in its thread under its title by @dastratakos in #3612
- feat(ui): add NavItem and draw the sidebars with it by @charleslpan in #3579
- refactor(apps): name task-holding locals and params task, taskId, and tasks by @charleslpan in #3613
- feat(desktop): scroll the sidebar while a row is dragged at its edge by @dastratakos in #3616
- feat(desktop): edit an issue's description in the plan's own editor by @dastratakos in #3615
- fix(coder): keep a finished coding agent run under Vercel's retention by @dastratakos in #3617
- feat(service,features,database): keep each member's read state on Inbox items by @dastratakos in #3618
- feat(desktop): draw review threads on their lines in Files changed by @dastratakos in #3245
- feat(ui): share one ProviderButton between web sign-in and the desktop sign-in gate by @charleslpan in #3580
- feat(ui): give Avatar a square app shape, a glyph face and larger sizes by @charleslpan in #3585
- feat(ui): add ChoiceList by @charleslpan in #3575
- feat(desktop): pin an agent's pull request row over its composer by @dastratakos in #3624
- fix(desktop): stand Factory's line in placeholder blocks while tasks are read by @dastratakos in #3628
- fix(service): settle a coding agent's turn the moment eve says its session ended by @dastratakos in #3620
- fix(desktop): centre the full-page spinners by @dastratakos in #3629
- fix(service): draw a bot co-author by its App's logo by @dastratakos in #3623
- fix(desktop): show the Inbox's skeleton while it first loads by @dastratakos in #3627
- fix(desktop): draw the Issues board and an issue's page in blocks while they read by @dastratakos in #3632
- feat(ui): give the public pages their missing slots by @charleslpan in #3584
- fix(desktop): draw the person page's waits as skeletons, never a false Someone or empty line by @dastratakos in #3626
- feat(desktop): say who created a task and who last edited it under the plan's title by @dastratakos in #3622
- feat(service,features,desktop): a merge box on the Pull request tab, merging as the member who presses by @dastratakos in #3294
- Service: default private, no-store on hosted JSON answers by @dastratakos in #3355
- feat(service): origin guard for cookie-authenticated requests by @dastratakos in #3365
- feat(ui): give TextField and TextArea the options callers lack by @charleslpan in #3587
- fix(desktop): read the --luke-* roles where CSS still named retired tokens by @dastratakos in #3631
- fix(desktop): draw Home in its own shape while the task list loads by @dastratakos in #3634
- feat(desktop): list every file in Files changed, with a filter, collapse all, and stage-cli's keys by @dastratakos in #3304
- refactor(packages,apps): name the in-process task properties taskId, task, and tasks by @charleslpan in #3621
- fix(desktop): draw the Automations pages as skeletons while they read by @dastratakos in #3636
- fix(desktop,host): say small panels are reading, or refused, rather than empty by @dastratakos in #3640
- feat(desktop,service,features): show reactions in the Pull request tab's Conversation by @dastratakos in #3286
- feat(ui): add a link-look button for inline text actions by @charleslpan in #3583
- fix(desktop): show settings pages' skeletons while they read by @dastratakos in #3639
- feat(ui): add the small shared bits callers hand-roll by @charleslpan in #3589
- feat(ui,host,desktop): mark Inbox items read and unread by @dastratakos in #3633
- feat(desktop,service,features): draw changed images before and after in Files changed by @dastratakos in #3638
- chore(lint): refuse names that call the unit of work a plan by @charleslpan in #3630
- fix(desktop): say a refused members read on the Person page, with Retry by @dastratakos in #3644
- feat(service): accept the cookie session on hosted routes by @dastratakos in #3479
- feat(service,features,desktop): close, reopen, and retitle an agent's pull request as the member who presses by @dastratakos in #3305
- feat(service): keep one snapshot per agent sandbox by @charleslpan in #3595
- feat(ui,desktop): swipe an Inbox row right to mark it read or unread by @dastratakos in #3641
- feat(desktop,service,features): reviewer and label pickers in the Pull request tab's header by @dastratakos in #3309
- fix(tasks): say when the workspaces or a task's work could not be read by @dastratakos in #3647
- refactor(desktop): draw the issue page on @luke/ui's DetailPage by @dastratakos in #3642
- style(ui): drop the focus ring from text fields by @charleslpan in #3606
- feat(ui): let ListRow carry hints, a dense density and keep-focus presses by @charleslpan in #3576
- fix(desktop): draw the folded title bar's offline mark as its buttons draw their glyphs by @dastratakos in #3650
- revert(service): a coding sandbox's session lives the platform's 24 hours again by @charleslpan in #3651
- feat(ui): give ErrorState actions beside Retry by @charleslpan in #3568
- fix(desktop): keep a row carried out of its list within the sidebar by @dastratakos in #3649
- docs: rewrite the README for Luke as it ships in 0.17 by @charleslpan in #3550
- feat(ui): tune a row's swipe: a trackpad scroll never swipes, lifted fingers let go at once, a flick carries, and the row follows with no render by @dastratakos in #3653
- perf(service): the sandbox image keeps Chromium's headless shell alone by @charleslpan in #3601
- fix(desktop): archived agents' chips and Inbox rows wear their harness's mark by @dastratakos in #3637
- docs(changelog): add screenshots to 0.15.0, 0.16.0, and 0.17.0 by @dastratakos in #3466
- docs(skills): changelog screenshots never picture an experimental feature by @dastratakos in #3625
- feat(desktop): open the plan's and an issue's text from a press on their empty room by @dastratakos in #3658
- feat(desktop): show the empty state on an empty workspace's Issues board by @dastratakos in #3659
- feat(desktop): show a toast's dismiss as a corner badge by @dastratakos in #3652
- fix(desktop): drop the per-turn price from a failed or stopped agent's end line by @dastratakos in #3654
- feat(desktop): answer an Inbox choice from a radio or checkbox list, with one rule for Enter by @dastratakos in #3662
- build(database): refuse a new migration that renames or drops what old code reads by @dastratakos in #3663
- feat(desktop,service,features): add and remove a reaction in the Pull request tab's Conversation by @dastratakos in #3619
- feat(desktop): mark an Inbox row whose box holds a draft with the Draft pencil by @dastratakos in #3661
- feat(desktop,service,features): open pull requests in their agent's Pull request tab across the window by @dastratakos in #3643
- refactor(desktop): put the last small hand-made controls on the shared components by @charleslpan in #3669
- style(desktop): snap the last literal sizes and colours to the shared tokens by @charleslpan in #3671
- feat(desktop): answer an Inbox approval, to-do, and note in the message by @dastratakos in #3665
- feat(desktop): reply to an Inbox thread by quoting the agent's words by @dastratakos in #3657
- fix(desktop): list a teammate's items of agents with no task in the window's Inbox by @dastratakos in #3668
- fix(desktop): draw the window in sRGB so an empty, loading column has no box by @dastratakos in #3461
- feat(desktop,service,database): start a task from an issue and list it on the issue's page by @dastratakos in #3648
- refactor(web): draw the admin sidebar with NavItem and size ProviderMark by option by @charleslpan in #3670
- fix(ui): own the motion tokens the components read by @charleslpan in #3673
- feat(desktop): stack an Inbox form's fields, its text fields composer fields by @dastratakos in #3672
- feat(desktop): continue on the failed line's row, and continue an agent more than once by @dastratakos in #3635
- feat(service,features,desktop): comment on an agent's pull request from the foot of its Conversation by @dastratakos in #3313
- fix(desktop,ui): stop vertical scrollers from scrolling sideways by @dastratakos in #3677
- refactor(panel): add @luke/panel with the bridge and platform doors by @dastratakos in #3655
- feat(service): agents keep the developer's sidebar sections with create_section, delete_section, and move_task by @dastratakos in #3680
- refactor(desktop): draw the searchable menus with the shared Menu and Combobox by @charleslpan in #3679
- test(ui): drive the list row swipe tests on fake time by @charleslpan in #3683
- feat(desktop): filter the Issues page by priority and creator, and hide settled issues gone quiet by @dastratakos in #3667
- docs(changelog): leave experimental features out of the changelog by @dastratakos in #3685
- refactor(desktop): put the remaining raw buttons on the shared buttons by @charleslpan in #3678
- feat(service,features,desktop): comment on lines in Files changed, and count and discard the pending review by @dastratakos in #3646
- feat(desktop): the Factory's pipeline bar picks out one layer: a rest previews it, a press keeps it by @dastratakos in #3675
- fix(desktop): draw an issue in the plan's own document column by @dastratakos in #3691
- refactor(desktop): stop app CSS restyling the shared components' insides by @charleslpan in #3674
- refactor(panel): move the renderer runtime and app state into @luke/panel by @dastratakos in #3694
- feat(desktop,service,features,host): sync Files changed's Viewed boxes with GitHub as the member by @dastratakos in #3645
- feat(desktop): group the Issues List by status or by priority by @dastratakos in #3696
- refactor(desktop): draw the last hand-made rows, folds and crumbs with the shared components by @charleslpan in #3676
- feat(desktop): carry a dragged row as a floating copy, the sidebar and the board alike by @dastratakos in #3688
- feat(desktop): filter the Inbox by tabs, group by None, and name a row's task in a chip by @dastratakos in #3682
- feat(service,host,features): start a task and its first coding agent in one request by @dastratakos in #3698
- fix(desktop): answer an Inbox item optimistically, and let no stale read bring it back by @dastratakos in #3681
- feat(desktop): draw the Factory as a campus of task buildings in SVG by @dastratakos in #3687
- feat(desktop): peek an issue beside the Issues board instead of leaving it by @dastratakos in #3664
- refactor(desktop): draw the palette, terminal picker, and MCP popover rows with the shared components by @charleslpan in #3695
- chore(release): bump the workspace to 0.18.0 and write its changelog by @charleslpan in #3703
- refactor(panel): move the panel's leaf modules into @luke/panel by @dastratakos in #3700
- feat(desktop,service,database): start an agent from an issue, and move its issue into progress as it starts by @dastratakos in #3693
- refactor(web): put the last type and size literals on the shared tokens by @charleslpan in #3711
- fix(ui): hover acts take their own room in a list row, and its title fades where they begin by @dastratakos in #3701
- refactor(ui): ship WingFace's own styles and motion by @charleslpan in #3710
- feat(desktop): choose whose Inbox items to list, group them by status, and sort by waiting longest by @dastratakos in #3692
- feat(agents): add update_task to rename, pin, archive, and unarchive a task by @dastratakos in #3686
- refactor: drop the people row from Files changed by @dastratakos in #3712
- feat(desktop): choose a New task's Linear issue from its own chip, not the name field by @dastratakos in #3697
- fix(host): Open on this Mac checks out a force-pushed branch instead of fast-forwarding by @charleslpan in #3278
- fix(desktop): keep an Inbox read mark over every read until one holds the item changed since by @dastratakos in #3684
- feat(desktop,ui): draw the sidebar Inbox count in the accent blue by @dastratakos in #3690
- refactor(ui): size each shared component's glyphs itself by @charleslpan in #3720
- refactor(desktop): finish the last hand-made controls and literals by @charleslpan in #3715
- feat(desktop): draw the pull requests of an issue's tasks on its page and its card by @dastratakos in #3727
- refactor(panel): ask the platform to apply session replay by @dastratakos in #3731
- feat(service): name an untitled task after its first agent's title by @dastratakos in #3689
- fix(service,desktop): only Settings changes the coding agents' default model by @charleslpan in #3718
- refactor(ui,desktop): draw the palette's and terminal picker's list box with the shared ComboboxListBox by @dastratakos in #3736
- refactor(desktop): move Home, a person's page, Automations, and the PR tab onto the page patterns by @dastratakos in #3732
- fix(ui): draw the chart with the shared tokens, not the app's theme by @charleslpan in #3713
- chore(desktop): take the time scrubber out of Factory by @dastratakos in #3735
- feat(service): take a brief on tasks.start and hand it to Luke by @dastratakos in #3699
- feat(ui,desktop): show an Inbox item's pictures and pages in its row by @dastratakos in #3660
- feat(service): count the core loop server-side in PostHog by @charleslpan in #3708
- refactor(desktop): draw the issue peek in the window's own side panel by @dastratakos in #3728
- fix(ui): measure a clipped line again when its words change by @dastratakos in #3719
- perf(desktop): draw only what changed in Files changed on a key or a scroll by @dastratakos in #3733
- fix(service): report uncaught errors from web functions to Sentry and flush per request by @dastratakos in #3744
- fix(coder): spare the agent's apply_patch and grep needless refusals by @charleslpan in #3706
- fix(service): say a command's outcome was lost, not that the sandbox is gone, when Vercel's API drops it by @charleslpan in #3714
- build(eve): upload the eve roots' source maps to Sentry by @dastratakos in #3742
- fix(desktop): identify session replay on a mid-run sign-in and resume it after a deletion by @dastratakos in #3747
- Fix the N+1 reads in the eve store hooks and the GitHub webhook by @charleslpan in #3704
- feat(ui): add ScrollArea and move the simple pane bodies onto it by @dastratakos in #3741
- fix(desktop): sample Sentry traces, pin the release, and fail a refused map upload by @dastratakos in #3734
- feat(service,host): name an untitled task from its first turns with Luke by @charleslpan in #3738
- Prefer starting helper agents on the agent's own task by @charleslpan in #3722
- fix(service): erase PostHog recordings and events on account deletion by @dastratakos in #3737
- Cut a Preview's database down to the team on its first build by @charleslpan in #3666
- fix(desktop): line up the Automations list's owner and next-run columns by @dastratakos in #3750
- fix(voice): hanging up keeps Luke working, and a call back rejoins his work by @charleslpan in #3196
- refactor(panel): move the panel's second band into @luke/panel by @dastratakos in #3725
- fix(web): strip auth params from every analytics address and pin off unasked capture by @dastratakos in #3746
- feat(desktop): call every pull request and GitHub issue chip by its number by @dastratakos in #3716
- perf(desktop): highlight Files changed off the main thread by @dastratakos in #3752
- fix(desktop): send launch failures and Effect defects to Sentry by @dastratakos in #3755
- fix(service): report swallowed startup failures and detached fibers to Sentry by @dastratakos in #3740
- feat(tasks): archiving a task stops and archives its agents by @charleslpan in #3270
- Keep agent tool errors answered to the model out of Sentry issues by @charleslpan in #3705
- feat(desktop): start a coding agent from New task's prompt-first composer, with Plan mode for a call with Luke by @dastratakos in #3717
- Revert "Cut a Preview's database down to the team on its first build" (#3666) by @charleslpan in #3765
- fix(desktop): line up every tab's bar with the side panel's top row by @dastratakos in #3764
- feat(luke): Luke writes the plan himself, in the background, and the notetaker is gone by @charleslpan in #3224
- fix(analytics): count app:day_active once per account per UTC day across launches by @dastratakos in #3748
- feat(inbox): put an archived task's items away in an Archived tab by @charleslpan in #3724
- refactor(desktop): draw the Chat page with the shared components by @dastratakos in #3753
- fix(desktop): hang a sidebar row's card beside the row, not its press by @dastratakos in #3760
- fix(service): scrub credentials from the URLs Sentry receives by @dastratakos in #3756
- feat(desktop): a Browser tab in the side panel, behind Settings › Experimental by @dastratakos in #3215
- fix(desktop): drop removed Inbox items' media from memory by @dastratakos in #3761
- fix(service): type server event categories by their wire vocabularies by @dastratakos in #3759
- feat(web): identify website visitors where sign-in completes by @dastratakos in #3763
- refactor(panel): hand the shell's bundles in, and move the side-bundle loader into @luke/panel by @dastratakos in #3768
- refactor(features): retire dead product events and cover
/api/eventsby @dastratakos in #3743 - feat(voice): one stop for Luke, the stop key and the Call tab's Stop, call or no call by @charleslpan in #3656
- refactor(ui,desktop): move the coupled desktop scrollers onto ScrollArea by @dastratakos in #3751
- feat(desktop): start New task's agent in the task's own start by @dastratakos in #3771
- refactor(panel): move the panel's fifth band into @luke/panel by @dastratakos in #3773
- feat(analytics): stamp environment, packaged, and app_version on every event by @dastratakos in #3745
- feat(desktop): hand Plan mode's words to Luke as the task's brief by @dastratakos in #3772
- refactor(panel): move the panel's sixth band into @luke/panel by @dastratakos in #3774
- feat(service,desktop): Send to a comment thread to Luke or a coding agent, and comment tools for both by @dastratakos in #3048
- feat(desktop): open Home on New task's composer by @dastratakos in #3729
- feat(desktop): comments answer the caret and the pointer, and read the same while editing by @dastratakos in #3197
- feat(desktop): the Comments tab's view menu, scrolling, and lighter rows by @dastratakos in #3199
- feat(desktop): @-mentions and Markdown in comments by @dastratakos in #3210
- feat(desktop): comments without rails, a single-layer composer with dictation, and steadier rows by @dastratakos in #3259
- feat(desktop): the Comments tab shows whole threads, with a quieter head and a Resolved toggle by @dastratakos in #3263
- feat(service,desktop): @-mention Luke or an agent in a comment to send them the thread by @dastratakos in #3280
- feat(desktop): comment gutter, borders, quote placement, event lines, empty states, and composer-style replies by @dastratakos in #3317
- refactor(panel,desktop): draw numbered code lines with one view that scrolls through ScrollArea by @dastratakos in #3767
- refactor(panel): move the panel's seventh band into @luke/panel by @dastratakos in #3775
- refactor(panel): move the panel's root into @luke/panel by @dastratakos in #3777
- feat(desktop): read what a start or a message sent another agent, whole, under its row by @dastratakos in #3730
- fix(ui): widen the composer dialog to 720px so New task's foot stands on one row by @dastratakos in #3779
- refactor(desktop,web,catalog): scroll only through @luke/ui, retire .scroll-fade, and allow scrolling CSS only in packages/ui by @dastratakos in #3778
- fix(service): keep only a tool's refusal out of Sentry issues, and report what fails beneath a tool by @dastratakos in #3781
- feat(service): agents change a coding agent with update_agent by @dastratakos in #3721
- refactor(panel): move the panel's stylesheets into @luke/panel by @dastratakos in #3780
- fix(host): show plan saves that land after the turn ends by @dastratakos in #3783
- fix(panel): close the caret's comment thread when focus leaves the editor by @dastratakos in #3784
- fix(voice): hand the brain a correction that joins an utterance already asked by @dastratakos in #3785
- refactor(panel): move the last desktop-bound test helpers into @luke/panel by @dastratakos in #3787
- fix(service,coder): cut the coding agent's eve build memory under Vercel's 8 GB machine by @dastratakos in https://github.com/ReviewStage/luke/pull/3786
- fix(desktop): offer no box in a direct message between two others by @dastratakos in https://github.com/ReviewStage/luke/pull/3782
- feat(desktop): name an agent's chat notice by its chip, and keep agent-only lines of notices and inbox lines off the screen by @dastratakos in https://github.com/ReviewStage/luke/pull/3749
- feat(service): agents read a task of their workspace with read_task by @dastratakos in https://github.com/ReviewStage/luke/pull/3702
- docs(panel): move the panel's half of the renderer's AGENTS.md into @luke/panel by @dastratakos in https://github.com/ReviewStage/luke/pull/3790
- feat(desktop): expand context lines in Files changed by @dastratakos in https://github.com/ReviewStage/luke/pull/3762
- fix(panel): keep the active comment thread highlighted where threads overlap by @dastratakos in https://github.com/ReviewStage/luke/pull/3791
- feat(desktop): write chat on the agent box's editor, with dictation and the # list by @dastratakos in https://github.com/ReviewStage/luke/pull/3788
- feat(panel): add a Markdown toolbar and suggestions to the comment field by @dastratakos in https://github.com/ReviewStage/luke/pull/3792
- feat(service,desktop): mention people and agents in chat as chips, as every box does by @dastratakos in https://github.com/ReviewStage/luke/pull/3793
- fix(release): pass the macOS release run's checks and build by @charleslpan in https://github.com/ReviewStage/luke/pull/3723
- feat(desktop): list Files changed's keys in a ? sheet and on the Keyboard shortcuts page by @dastratakos in https://github.com/ReviewStage/luke/pull/3795
- fix(desktop): minimize inline comments to one chip per line, as stage-cli does by @dastratakos in https://github.com/ReviewStage/luke/pull/3789
- fix(release): staple again on a wait when Apple's ticket lookup drops by @charleslpan in https://github.com/ReviewStage/luke/pull/3800
Full Changelog: v0.17.0...v0.18.0