Repository navigation
Vespin 0.29.0
What's Changed
- refactor(database): delete the unsaved description picture sweep by @charleslpan in #7362
- feat(ui): restyle the landing in a near-black, Linear-like direction by @charleslpan in #7398
- feat(panel): connect the Terminal and Browser panes as the agent's sandbox opens by @charleslpan in #7369
- fix(panel): draw the + menu's terminal rows with the still terminal glyph by @charleslpan in #7429
- feat(panel): open an archived agent in a tab of its task's column by @dastratakos in #7340
- refactor(features): move the task client's GitHub reads onto hostedCall by @charleslpan in #7417
- refactor(panel): read side bundles and the markdown parser through TanStack Query, off atoms by @charleslpan in #7431
- refactor(features): ask the agent client's messages, queue, transcript pages and inbox through hostedCall by @charleslpan in #7442
- feat(service): fire scheduled automations from Vercel Schedules by @charleslpan in #7379
- test(database): hold the open sandboxes read to the conversations asked for by @charleslpan in #7443
- fix(host): keep a held Inbox close with the account that held it by @charleslpan in #7444
- refactor(host): reopen the local-agent and Mac-command gates on change by @charleslpan in #7381
- fix(sync): send a waiting write again only as the account that asked it by @charleslpan in #7450
- fix(features): keep an inbox write taken already under its key as taken by @charleslpan in #7452
- refactor(panel): open every link as a tab of its own, dropping preview tabs by @dastratakos in #7441
- docs(changelog): date 0.28.0 Nov 6 by @dastratakos in #7454
- fix(host): wait on the task list for a terminal's sandbox to open by @charleslpan in #7448
- refactor(service,database): let sandbox snapshots expire instead of sweeping deletes by @charleslpan in #7437
- refactor(live): declare the automation and chapters live reads once by @charleslpan in #7456
- fix(host): send an early-released held close only under the account that asked it by @charleslpan in #7453
- fix(service): stop installing dependencies when an agent starts by @charleslpan in #7447
- feat(panel): say whose Mac run_on_mac runs on in the Runs on card by @dastratakos in #7347
- feat(panel,host,ui): add the workspace Environment settings page by @charleslpan in #7427
- refactor(panel): hold the composer's drafts, held lines, and undo in TanStack stores, off atoms by @charleslpan in #7411
- fix(service): answer a member's sandbox open at once while its image is prepared by @charleslpan in #7449
- feat(panel): remove the task summary and list a task's pages in its Overview by @dastratakos in #7445
- feat(panel,host,features,service): carry a send's Sentry trace to the service by @charleslpan in #7459
- refactor(panel): move an agent's own page onto the router's routes by @charleslpan in #7346
- feat(database): drop the session sandbox cleanup table by @charleslpan in #7460
- fix(panel): hide the agents tab bar's History while it has nothing to list by @dastratakos in #7463
- fix(panel): keep terminals, browser tabs, and toasts to the account that opened them by @charleslpan in #7434
- refactor(features): move the task client's last non-live calls onto hostedCall by @charleslpan in #7465
- fix(panel): focus the MCP menu's search when it reopens mid-fade by @dastratakos in #7466
- perf(ui): measure a list's rows only where a motion can play by @charleslpan in #7467
- feat(service): keep an agent's launch in one Sentry trace and span its costly steps by @charleslpan in #7458
- perf(panel): follow the window's state from before its first read by @charleslpan in #7455
- feat(features,service): sample agent start and send traces at 100% by @charleslpan in #7464
- feat(service): settle lost agent turns on a lease read lazily by @charleslpan in #7370
- feat(agent-runner): trace a cloud launch's startup in Sentry and record time to first token by @charleslpan in #7471
- feat(service,features): share a cloud agent's port by public link by @charleslpan in #7473
- refactor(features): ask the agent client's last calls through hostedCall by @charleslpan in #7469
- refactor(host): declare each host-followed live read once, proven on hosts, memories, origins and chapters by @charleslpan in #7433
- fix(service): hand on an agent's queue from every turn settle by @charleslpan in #7475
- feat: make Task descriptions, Pilot, and Memory workspace experiments by @dastratakos in #7326
- fix(panel,host): keep a terminal on its latest shell connection by @charleslpan in #7477
- refactor(panel): route the unknown-workspace page through the router by @charleslpan in #7476
- refactor(host): move the account asks into their own composer by @charleslpan in #7480
- refactor(panel,desktop,web): delete the atom registry and @effect/atom-react by @charleslpan in #7478
- refactor(host): move workspaces, GitHub and admin into their own composer by @charleslpan in #7440
- perf(host): watch the device record instead of re-reading it every minute by @charleslpan in #7376
- feat(service): trace the Mac mirror's tunnel and log why it closes by @charleslpan in #7483
- refactor(service): stop a woken snapshot sandbox through one bounded check by @charleslpan in #7392
- feat(database): delete a deleted task's or agent's conversations at once by @charleslpan in #7468
- feat(service,runner): trace every agent start and find it by who and what by @charleslpan in #7486
- fix(service): hand on a queue whose cut-off hand-off claim lapsed at an agent open by @charleslpan in #7481
- test(service): assert the woken sandbox's keep-up check saw it held by @charleslpan in #7489
- refactor(service): retire warm device runners without a sweep by @charleslpan in #7351
- refactor(live): declare the delta, cursor and held live reads once, and delete the old machinery by @charleslpan in #7470
- docs(host): describe the composer split, declared acts, and shared state by @charleslpan in #7491
- fix(service): name the watch step when a mirror folder watcher errors by @charleslpan in #7492
- chore(database): drop the conversation's deleted_at by @charleslpan in #7493
- fix(service): annotate a retried start's spans with its agent by @charleslpan in #7494
- feat(host,desktop,panel): trace a cloud agent's mirror and say its step on the Local tab by @charleslpan in #7495
- refactor(host): move the task window follows onto the generic live follow by @charleslpan in #7497
- fix(panel): keep a window's held lines and draft files across an App remount by @charleslpan in #7496
- fix(host): refuse an act two composers claim by @charleslpan in #7499
- refactor(host,gateway): move the account, workspace, automation, skill and integration follows onto the live follow by @charleslpan in #7498
- test(host): assert the standing host answers the client's bootstrap by @charleslpan in #7501
- fix(service): hide an uncollected host once its pairing lapses by @charleslpan in #7422
- feat(service,agent-runner): keep a cloud agent's sandbox and runner warm while it's on screen by @charleslpan in #7479
- refactor(host,gateway): move the agent window follows onto the live follow by @charleslpan in #7502
- refactor(features): declare every remaining procedure's refusals and delete hostedProcedure by @charleslpan in #7500
- refactor(agents): hold a native agent's wakeup wait instead of releasing it by @charleslpan in #7363
- refactor(panel): route Home through the router and follow the host's binding from the place module by @charleslpan in #7503
- feat(service): profile the service's kept traces with Sentry's Node profiler by @charleslpan in #7487
- feat(panel,host,features): keep a cloud agent warm while it's on screen by @charleslpan in #7484
- refactor(panel): declare the task's own place in the place module and fix #7503's review findings by @charleslpan in #7504
- fix(panel): stop saying the inbox could not be read under a thread that was read by @charleslpan in #7412
- refactor(panel): bind the task through its route in the place module by @charleslpan in #7505
- fix(service): skip a mirror folder gone before its watch by @charleslpan in #7507
- fix(panel): let any later navigation supersede a link's pending read, and fix #7505's narrow-room review finding by @charleslpan in #7506
- feat(panel): route a task's section, comment, and page links through their routes by @charleslpan in #7508
- feat(panel): route an agent's link places through their routes by @charleslpan in #7509
- feat(panel): route every remaining link through its route and delete openPlace's switch by @charleslpan in #7510
- fix(service): list a mirror again after skipping a folder gone before its watch by @charleslpan in #7511
- fix(service): resend a mirror file the open could not read by @charleslpan in #7512
- fix(service): retry a mirror file a listing could not read by @charleslpan in #7513
- fix(service): restart no session when its workspace's experiments cannot be read by @dastratakos in #7516
- fix(panel): let a Settings page an account experiment holds stand on its own read by @dastratakos in #7517
- refactor(panel): classify a pressed link by its route by @charleslpan in #7514
- fix(panel): point the offline hint at the network connection by @dastratakos in #7518
- fix(panel): say an unreached call as the connection, not the service by @dastratakos in #7519
- feat(web): upload the function bundles' source maps to Sentry by @charleslpan in #7521
- feat(panel,host): share a forwarded port's link from the Forward menu by @charleslpan in #7474
- fix(panel): keep connection words for calls that got no answer by @dastratakos in #7522
- feat(runner): profile the cloud runner's startup and upload its source map by @charleslpan in #7523
- feat(panel): give each agent of a task its own side-panel tabs by @dastratakos in #7446
- fix(panel): say a pull request's failed reads once, under its title by @dastratakos in #7520
- docs(changelog): add 0.28.0's screenshots by @dastratakos in #7461
- fix(web): give the dispatched function bundles a Sentry debug ID by @charleslpan in #7526
- feat(ui): lead the Mac command ask with Always allow, picked and recommended by @dastratakos in #7527
- fix(panel): stand a review thread's chevron at a file header's inset by @dastratakos in #7525
- fix(panel): draw a message's words before the markdown parser lands by @dastratakos in #7529
- fix(panel): keep blank lines left in a description when its editor closes by @dastratakos in #7485
- feat(panel): stand an Inbox item's panel on its agent's own tabs by @dastratakos in #7451
- feat(panel): stand an agent's side-panel tabs inside its sheet, under a row of agents across the page by @dastratakos in #7472
- feat(service,web): run Docker and sudo in cloud agent sandboxes by @dastratakos in #7488
- feat(desktop): profile the windows on the traces Sentry keeps by @charleslpan in #7524
- feat(panel): draw GitHub's comments in the transcript as GitHub renders them by @dastratakos in #7532
- fix(panel): drop the answer line from an Inbox item's hover card by @dastratakos in #7534
- fix(desktop): profile no window for a page load its trace sampled out by @charleslpan in #7536
- chore(database): drop the agent_wakeup table by @charleslpan in #7533
- fix(service): resend a failed launch's lost prompt on Try again by @dastratakos in #7439
- refactor(panel): load the pull request and chapters tabs through React.lazy by @charleslpan in #7531
- feat(panel): say a downloaded release in a toast that stands until dismissed by @dastratakos in #7482
- feat(ui): synthesized completion sounds and player by @dastratakos in #7537
- fix(service): key base snapshots on the image without its runner by @charleslpan in #7490
- feat(settings,service): synced completion sound preferences by @dastratakos in #7539
- refactor(panel): guard leaving unsaved work with the router's blocker by @charleslpan in #7545
- fix(agent-runner): exit when line reads are refused or the config never arrives by @charleslpan in #7547
- fix(service): push a turn's lease on its progress, not every heartbeat by @charleslpan in #7548
- fix(database,service): claim a session by when it was minted, not its prefix by @charleslpan in #7546
- fix(agent-runner): trace a launch without a profile where the profiler cannot load by @charleslpan in #7550
- fix(service,web): ship and install the runner as one unit by @charleslpan in #7552
- fix(features): read an unknown failure word as other and an unknown turn status as running by @charleslpan in #7553
- feat(service,database): make the turn row the one record of a turn's state by @charleslpan in #7549
- fix(service): read a stopped sandbox session's command as gone by @vespin-agent[bot] in #7544
- refactor(features,service,database): read an agent's status from its turn row alone by @charleslpan in #7551
- feat(features,service): carry the newest turn's record on an agent's summary by @charleslpan in #7557
- refactor(panel): task doors navigate first, their state following the arrival by @charleslpan in #7559
- feat(service,database): deliver each queued turn through Vercel Queues by @charleslpan in #7556
- fix(panel): run a held move's landing only where that move lands by @charleslpan in #7560
- feat(panel): read whether an agent works and how its turn ended from its turn record by @charleslpan in #7561
- fix(service,host): stop the Mac mirror from waking a stopped sandbox by @charleslpan in #7562
- fix(service,database): resume only a session the store holds from its first entry by @charleslpan in #7563
- perf(service): read an agent's instruction lookups together by @charleslpan in #7564
- refactor(sandbox,service): move the Vercel sandbox client into @repo/sandbox by @charleslpan in #7565
- refactor(panel): tab doors navigate first, their tab following the arrival by @charleslpan in #7566
- test(panel): a section's mention asks its section into view once Leave is pressed by @charleslpan in #7567
- fix(service,database): never resume a session whose transcript mirror dropped a batch by @charleslpan in #7571
- fix(service): keep missing automation schedules from the minute sweep by @charleslpan in #7570
- chore(service): remove the automation schedules backfill by @charleslpan in #7572
- perf(service): queue a warm runner's message without reading its exit by @charleslpan in #7568
- refactor(panel): routed places' doors navigate first, their state following the arrival by @charleslpan in #7573
- fix(service): record the Claude Code failures the service dropped by @charleslpan in #7574
- fix(service): drop stale tags when sharing a port by @charleslpan in #7577
- feat(service,database): open a Start through the turn queue by @charleslpan in #7569
- refactor(sandbox,service): serve sandboxes through one Sandbox Effect service by @charleslpan in #7575
- refactor(panel): route hooks read their exits from the place module by @charleslpan in #7581
- fix(sandbox,service): stop an idle sandbox five minutes after its last touch by @charleslpan in #7576
- fix(panel): keep a page's leave ask after Leave on a move that stays by @charleslpan in #7582
- refactor(sandbox,service): delete the sandbox warm window, holds and leases by @charleslpan in #7578
- refactor(panel): take the Board and a person's page off TasksControl by @charleslpan in #7584
- style(service): cut slop comments in github by @vespin-agent[bot] in #7585
- chore(database): drop agent.seen_at and sandbox_terminal_lease.held_until by @charleslpan in #7586
- refactor(service,sandbox): find an agent's sandbox by its session's name by @charleslpan in #7583
- fix(service): judge a runner by whether it takes its line, not its exit code by @charleslpan in #7587
- refactor(panel): take Admin and the Automations pages off TasksControl by @charleslpan in #7588
- fix(service): record no turn for a launch that fails with none waiting on it by @charleslpan in #7589
- fix(service): fence a runner's posts by its launch number, not its bearer by @charleslpan in #7590
- refactor(panel): take the Inbox off TasksControl by @charleslpan in #7591
- refactor(panel): take the version history's doors off TasksControl by @charleslpan in #7592
- refactor(panel): move the Settings and Admin doors in app.tsx onto the router's blocker by @charleslpan in #7593
- refactor(database): undeclare the task's pinned_at column by @charleslpan in #7594
- refactor(database): undeclare the integration connection's connect_verifier by @charleslpan in #7595
- refactor(panel): move the app link doors onto the router's blocker by @charleslpan in #7596
- style(service): cut slop comments in automations, inbox, and integrations by @charleslpan in #7598
- refactor(service): look up a procedure's workspace through workspace-access by @charleslpan in #7599
- chore: remove exported code nothing calls by @charleslpan in #7600
- style(service): cut slop comments in agents, admin, and auth by @charleslpan in #7606
- refactor(database): derive row types from the schemas that decode them by @charleslpan in #7605
- style(desktop): drop comments about the removed call card, talk key, and IPC channels by @charleslpan in #7614
- refactor(web): derive the rewrite types from the schema that reads the table by @charleslpan in #7610
- style(scripts): correct comments naming removed packages, services, and calls by @charleslpan in #7616
- refactor(service): derive types from their schemas and reuse shared ones by @charleslpan in #7615
- style(database): correct stale names in schema and model comments by @charleslpan in #7608
- refactor(service): drop defenses over values that are never absent by @charleslpan in #7620
- refactor(panel): draw every settings read failure through one ReadFailed row by @charleslpan in #7597
- refactor(service): reuse three helpers the service already declares by @charleslpan in #7627
- refactor(panel): stop reading Inbox scopes kept before the scopes by @charleslpan in #7619
- refactor(features): declare the message refusals once for messages and threads by @charleslpan in #7602
- refactor(host): read a corrupt settings file as none without naming why by @charleslpan in #7603
- refactor(credentials): derive the account snapshot from the schema it crosses as by @charleslpan in #7621
- refactor(ui,panel): name fixed values by the constants that declare them by @charleslpan in #7631
- refactor(wire): build the capped doubling backoff through one cappedExponential by @charleslpan in #7617
- refactor(service): reach the sandbox PTY through a plain function, not a tag by @charleslpan in #7639
- refactor(service,sandbox): inline three single-caller pass-throughs by @charleslpan in #7640
- chore: remove unused face glyphs and a stale runtime-edge row by @charleslpan in #7637
- refactor(host,desktop): pick the window's material in the host's appearance by @charleslpan in #7642
- style(service): say which repository change holds an automation run back by @charleslpan in #7644
- refactor(panel): stop reading side panel records kept before the rename by @charleslpan in #7646
- refactor(features): drop the retired notice and turnUsage answer keys by @charleslpan in #7601
- refactor(host,agent-runner,credentials): drop defenses that cannot fire by @charleslpan in #7634
- refactor(database): read a write's transaction id through one txid module by @charleslpan in #7609
- refactor(panel): drop catches over promises that never reject by @charleslpan in #7625
- refactor(ui): name the composer's skill option as the wire's task skill by @charleslpan in #7626
- refactor(anti-slop): read an ESTree node's parent off oxlint's own types by @charleslpan in #7653
- refactor(service): keep file-local symbols out of the export list by @charleslpan in #7636
- refactor(desktop): call a helper's and a timer's methods without optional calls by @charleslpan in #7645
- refactor(database): declare queue and pick writes by their column types by @charleslpan in #7655
- test(service): read the tunnel's start frame without a non-null assertion by @charleslpan in #7656
- refactor(database): keep the withdrawn line's age with the writer that deletes it by @charleslpan in #7623
- refactor(service): read StoreFailure from the database instead of redeclaring it by @charleslpan in #7629
- refactor(panel): name the task's tabs in a model the fixtures can read by @charleslpan in #7635
- refactor(ui,panel): type CSS custom properties on React's CSSProperties by @charleslpan in #7651
- fix(host): follow a state folder made again before its removal is heard by @charleslpan in #7650
- test(desktop): keep the desktop tests from downloading Electron on import by @charleslpan in #7660
- refactor(features,sandbox,service): declare the commit SHA and PTY exit schemas once by @charleslpan in #7624
- test(panel): wait on the pairing's ask rather than its reading spinner by @charleslpan in #7648
- style(host): cut slop comments in contract, act-port, and follows by @charleslpan in #7613
- chore: remove exported types nothing names by @charleslpan in #7604
- refactor(panel,ui): keep file-local symbols out of the export list by @charleslpan in #7607
- refactor(features): compare two repositories through one sameRepository by @charleslpan in #7622
- refactor(panel,ui): drop optional chains the condition beside them rules out by @charleslpan in #7632
- refactor(panel): stop reading main tabs kept before the rename by @charleslpan in #7633
- refactor(host,database,desktop): keep file-local symbols out of the export list by @charleslpan in #7611
- refactor(host): build the client's setting side effects in the act port by @charleslpan in #7638
- refactor(features): keep file-local symbols out of the export list by @charleslpan in #7661
- refactor(panel): move the workspace doors onto the router's blocker by @charleslpan in #7649
- refactor(features,service,ui): read a vocabulary word through a Schema guard by @charleslpan in #7652
- refactor(panel): list a task's agents from a module History can import by @charleslpan in #7643
- refactor(database,wire,features): drop guards a narrowing already holds by @charleslpan in #7647
- refactor(panel): inline two single-caller modules by @charleslpan in #7641
- refactor(panel,ui): read an element's textContent without a fallback by @charleslpan in #7630
- refactor(ui): untangle the menu's import cycle by @charleslpan in #7612
- refactor(panel,ui): stop reading Tasks displays and groupings kept before the rename by @charleslpan in #7628
- refactor(panel): declare each place's narrow way back in the place module by @charleslpan in #7663
- refactor(ui): untangle the breadcrumbs' import cycle by @charleslpan in #7618
- refactor: drop casts that restate the type their expression already has by @charleslpan in #7654
- refactor(panel): move the sidebar's New task and the tab switcher onto arrive by @charleslpan in #7664
- refactor(panel): delete route.ts, each press decision living with its surface by @charleslpan in #7665
- refactor: spell the panel's path once, in link-home by @charleslpan in #7666
- refactor(panel): close routed places and bring the Tasks tab forward by a router navigation by @charleslpan in #7667
- feat(host,desktop,web): chime when your agent finishes or needs you by @dastratakos in #7541
- feat(panel): show the sidebar's Restart pill only while the ready toast does not stand by @dastratakos in #7515
- fix(panel): report a turn failed on a refused own API key as a refusal by @vespin-agent[bot] in #7662
- refactor(panel): move the window's steps into places/window-steps.ts by @charleslpan in #7671
- feat(sandbox,service): boot new agents on forks of a repository's base drive by @charleslpan in #7580
- refactor(service,database,sandbox): keep shared ports in the database instead of a sandbox tag by @charleslpan in #7677
- fix(service): remount a drive agent's own drive when its lapsed sandbox is recreated by @charleslpan in #7675
- fix(features): title a shown failure's issue by its surface and code by @dastratakos in #7554
- fix(ui,panel): never draw a stale Inbox row over a live one by @dastratakos in #7555
- feat(panel): drop the sidebar's "N more in …" line by @dastratakos in #7679
- fix(panel): return Back from a started task to where New task was pressed by @dastratakos in #7540
- fix(panel,ui): rename in place with no box, the task's title bar included by @dastratakos in #7673
- fix(panel): offer Stop on an agent still starting or awaiting its turn by @dastratakos in #7543
- fix(panel): open a task pressed on the Board or a person's page by @dastratakos in #7685
- fix(panel): open an agent from an Inbox item in its own tab, never beside the item by @dastratakos in #7681
- fix(panel): keep "Drag tasks here" on a section whose tasks are all settled by @dastratakos in #7686
- feat(panel): offer one task menu from the topbar and the sidebar row by @dastratakos in #7538
- feat(host,desktop,web): notify when your agent finishes or needs you by @dastratakos in #7542
- refactor(database): stop writing the attachment's saved_at stamp by @charleslpan in #7684
- fix(panel): stand the Board or a person's page again when a task pressed there is refused by @dastratakos in #7687
- feat(panel): stand the panel's toggle and full screen on the agent tabs' row by @dastratakos in #7688
- refactor(panel): open a pressed tab through one door by @dastratakos in #7430
- feat(panel): draw the Environment settings page with a key by @dastratakos in #7692
- fix(features,panel): say a malformed credential paste is invalid, not "Try again" by @dastratakos in #7683
- fix(panel): draw an automation agent's trail alike and name it in the ⌃Tab switcher by @dastratakos in #7678
- refactor(panel): stop forwarding cloud agents' ports on their own by @charleslpan in #7676
- fix(panel): say a refused start from Home on Home's own composer by @dastratakos in #7689
- fix(panel): ask before ⇧⌘T leaves, and pass over a closed tab open again by @dastratakos in #7416
- fix(panel): let a terminal tab's status bar wrap its words by @dastratakos in #7693
- feat(ui,panel): keep the chosen pull request view's name in a narrow panel by @dastratakos in #7694
- perf(service): drop the CI read check before an agent starts by @charleslpan in #7695
- feat(agent-runner): let the first turn go without waiting on background MCP servers by @charleslpan in #7696
- fix(panel): go Home when the open task is deleted by @dastratakos in #7691
- fix(panel): rest the task page's panel buttons on the frame by @dastratakos in #7698
- feat(service): refresh a repository's base drive once it falls an hour behind by @charleslpan in #7700
- perf(service): prepare an agent's launch while its sandbox opens by @charleslpan in #7702
- refactor(database): drop the attachment's saved_at column and its index by @charleslpan in #7701
- fix(panel): draw a selected divider and the gap caret in the description editor by @dastratakos in #7528
- fix(panel): open a related task's pull request in its own agent's tab by @dastratakos in #7408
- fix(ui): remove the copper glow behind the landing's hero Inbox by @dastratakos in #7535
- fix(panel,ui): line up the topbar's tabs, titles, hovers, and glyphs by @dastratakos in #7690
- fix(panel): keep the forward ports menu open while its switch flips by @charleslpan in #7704
- perf(service): carry the agent's GitHub credential from its sandbox's first write by @charleslpan in #7706
- fix(panel,ui): stop opening a pull request on GitHub from a ⌘-click on its title by @vespin-agent[bot] in #7657
- fix(panel,ui): ask for a follow-up, hyphenated as the noun it is by @vespin-agent[bot] in #7658
- fix(ui,panel): draw a GitHub comment's themed picture in the window's theme by @dastratakos in #7682
- feat(ui): stand the landing's whole screens on the page with a shadow by @dastratakos in #7680
- feat(panel,ui): open an automation run's agent on its task, the run's path leading the task's bar by @dastratakos in #7703
- feat(panel,settings,service): ask a new account three questions in setup by @dastratakos in #7674
- feat(ui): draw every note's blocks in the transcript's rhythm by @dastratakos in #7697
- perf(agent-runner,service): start the harness while the launch finishes by @charleslpan in #7705
- feat(panel): give each forwarded port its own submenu by @charleslpan in #7715
- fix(panel): name an expired server's toast by its provider alone by @dastratakos in #7716
- refactor(service,database): share a port by routing straight to it by @charleslpan in #7717
- feat(ui): flow a transcript's blocks as a note's by @dastratakos in #7708
- fix(panel): offer Share on no other port while one is shared by @charleslpan in #7720
- feat(service): refresh every base drive once a day on a Vercel schedule by @charleslpan in #7713
- fix(panel): show the invite role to every manager, Admin stepped back with why by @dastratakos in #7714
- fix(panel): hide a settled parent's sub-tasks with it in the sidebar by @dastratakos in #7718
- feat(panel,service): say only Starting… until a runner opens the turn by @charleslpan in #7721
- fix(features): read an unknown section icon color as no color by @dastratakos in #7719
- feat(panel): draw every fence and table as a transcript's by @dastratakos in #7711
- fix(panel): keep the Forward menu open on every row by @charleslpan in #7726
- feat(panel,ui): ask a section icon's color under its glyph, and offer Change icon on a section's menu by @dastratakos in #7672
- feat(database,service,panel): keep a workspace's cloud setup scripts in Settings by @dastratakos in #7710
- fix(host): close the public link when forwarding turns off by @charleslpan in #7727
- feat(service): run a workspace's cloud setup scripts as a new agent sandbox is created by @dastratakos in #7725
- fix(ui): draw the title bar's panel and sidebar glyphs as Lucide's own by @dastratakos in #7728
- fix(panel): start a new task's card on Agent while the Pilot experiment is on by @dastratakos in #7731
- refactor(panel): keep the window's steps on the router's history and move along it through place-leave by @charleslpan in #7699
- fix(sandbox): read Vercel's "Snapshot expired or deleted" answer as a gone snapshot by @dastratakos in #7712
- fix(sandbox): close a sandbox's public ports when a resume wakes it by @charleslpan in #7732
- fix(panel): keep Reply over a selection as it scrolls, cut at the pane's edge by @dastratakos in #7730
- fix(panel,ui): say Drag tasks here in every empty section, and stand every section in the List by @dastratakos in #7733
- fix(ui): keep the highlighted row of a keyed list in view by @dastratakos in #7737
- fix(service): delete an account and its solo workspaces through Better Auth by @charleslpan in #6960
- fix(panel): select a divider anywhere in its gap, and draw no toolbar or second caret over it by @dastratakos in #7738
- fix(settings,panel): comment with ⇧⌘M, off macOS's Minimize All, and on the block under the pointer by @dastratakos in #7735
- feat(panel): name the workspaces deleted with the account by @charleslpan in #6963
- fix(panel): put task block and parent removal on the undo stack by @charleslpan in #7745
- refactor(panel): move the account's GitHub connection to useAccountGitHub by @charleslpan in #7746
- fix(service): delete the onboarding contact Resend keeps when an account is deleted by @dastratakos in #7457
- fix(panel): take an Inbox thread to its end when Reply quotes into its box by @dastratakos in #7739
- refactor(panel): read failed runs, taskless items and agents from app state by @charleslpan in #7747
- fix(service): run each look of a held read under a span of its own by @dastratakos in #7668
- fix(service): read no agent again on a delivery about the default branch by @dastratakos in #7669
- fix(database): keep a show_image call's pictures in batched statements by @dastratakos in #7670
- fix(credentials): look for the account before the Mac calls a 401 delete done by @dastratakos in #7748
- feat(service,panel)!: remove the Pilot experiment by @charleslpan in #7734
- refactor(panel): take delete, rename, and the description's doors off TasksControl by @charleslpan in #7749
- fix(service,panel): name who resolved a thread once its agent posts again by @dastratakos in #7743
- feat(panel): connect a ChatGPT plan without a notice to acknowledge by @dastratakos in #7744
- fix(panel): put closed drafts and removed review comments on the undo stack by @charleslpan in #7752
- refactor(panel): put section delete and move on the undo stack by @charleslpan in #7753
- refactor(panel): move New workspace, Workspace settings, and the workspaces' read off TasksControl by @charleslpan in #7751
- feat(database,features,service): register iPhones and send pushes through APNs by @dastratakos in #7760
- refactor(panel): read waiting tasks and the listed inbox from app state by @charleslpan in #7763
- fix(panel): put settings reset on the undo stack by @charleslpan in #7754
- fix(panel): put inbox reminders and read marks on the undo stack by @charleslpan in #7756
- fix(ui): draw every glyph Lucide draws as Lucide's own by @dastratakos in #7736
- feat(service,web): let the iOS app sign in as the ios OAuth client by @dastratakos in #7758
- fix(credentials): renew through the shared flight and hold the account while a refused delete looks for it by @dastratakos in #7764
- fix(panel): put description picture adds on the undo stack and declare restore's words by @charleslpan in #7757
- refactor(panel): take the pin and section writes and their views off TasksControl by @charleslpan in #7770
- feat(service,host): push Inbox asks, posts, and failed runs to the phone by @dastratakos in #7771
- fix(panel): put inbox resolve on the undo stack by @charleslpan in #7755
- fix(service): trace a held read's first look alone by @dastratakos in #7773
- feat(service): let a team workspace's owner delete it from Settings by @dastratakos in #7438
- fix(panel): keep a log at its end when a line lands above its reply box by @dastratakos in #7750
- refactor(panel): move task relation and repository writes off TasksControl by @charleslpan in #7762
- fix(credentials): hold a refused delete's account check to the generation it began in by @dastratakos in #7780
- fix(service): run a delta hold's last look untraced too by @dastratakos in #7778
- fix(credentials): stop a delete whose account changed before it asks a session or a delete by @dastratakos in #7783
- fix(panel): draw a pull request's words at GitHub's picture sizes, task gutter, and smallest heading by @dastratakos in #7759
- refactor(panel): take the standing and settle writes off TasksControl by @charleslpan in #7779
- fix(service): hand a workspace to an heir when its last owner deletes their account by @dastratakos in #7785
- fix(service): delete a deleted workspace's base drives by @dastratakos in #7786
- fix(ui): center every mark in a pill on its name by @dastratakos in #7761
- refactor(panel): move New task's flow off TasksControl into useNewTask by @charleslpan in #7787
- feat(panel): delete setup's team workspace on Just me while nobody joined it by @dastratakos in #7789
- test(database): hold a sole member's claim to workspaces nobody else is in by @dastratakos in #7790
- fix(service): discard a deleted workspace's local agents on their devices by @dastratakos in #7788
- fix(panel): let only the undo stack build an Undo toast by @charleslpan in #7781
- feat(host,panel): start a cloud agent's mirror from its warm call, one attempt each by @charleslpan in #7768
- feat(panel,ui): show a page pin's whole comment on hover and open its card under the pin by @dastratakos in #7774
- feat(service): take a relay's bearer whatever Origin the upgrade names by @dastratakos in #7775
- fix(panel,ui): nest sub-tasks through hidden parents and offer finished sub-tasks in View options by @dastratakos in #7777
- feat(panel,ui): pin a page comment's draft where it was started by @dastratakos in #7791
- feat(ui,panel): draw every task row in one anatomy by @dastratakos in #7782
- feat(panel): peek the folded sidebar from its toggle on hover by @dastratakos in #7795
- fix(panel): one group header across the sidebar by @dastratakos in #7796
- feat(panel): the Inbox head in one row by @dastratakos in #7799
- feat(panel): compact sidebar top by @dastratakos in #7797
- fix(panel): keep New task at the sidebar's head before a workspace is read by @dastratakos in #7801
- fix(service,database): keep a running turn's sandbox up from the minute sweep by @dastratakos in #7792
- fix(service,features): name a turn the sweep failed, and log a runner silent past the idle window by @dastratakos in #7769
- feat(panel,ui): one mark plus the time on sidebar rows by @dastratakos in #7798
- feat(ui,panel): make the PR header's two rows one consistent set of controls by @dastratakos in #7740
- feat(panel): delete setup's team workspace at Finish, asking first where someone joined by @dastratakos in #7803
- fix(service): keep a deleted account's tasks in shared workspaces by @dastratakos in #7802
- feat(database,service,panel): count a question as its agent's turn once you follow up by @dastratakos in #7794
- feat(panel): My tasks as a scope switcher by @dastratakos in #7804
- fix(panel): hold setup's Finish until the team workspace's members are read by @dastratakos in #7805
- feat(panel,ui): automatic repository grouping and a By progress view by @dastratakos in #7806
- feat(database,service): keep a former member assigned to their tasks by @dastratakos in #7807
- fix(panel): line up a wrapped + Reviewer or + Label with the PR header's edge by @dastratakos in #7811
- style(panel): cut slop comments in the Settings Workspace page by @vespin-agent[bot] in #7812
- feat(ui,panel): show a deleted account as a grayed-out "Deleted account" by @dastratakos in #7810
- fix(panel): draw the PR tab's section headings on the page's ground by @dastratakos in #7814
- feat(mobile): scaffold the Expo app and its CI by @dastratakos in #7766
- fix(service): keep a task open while any pull request an agent opened is open by @dastratakos in #7767
- fix(panel): open the repository menu from the task path and a row's menu by @dastratakos in #7815
- feat(panel,ui): draw an agent's row in a task row's anatomy and line up a person's page by @dastratakos in #7816
- fix(panel,ui): keep every task under a hidden settled parent out of the sidebar by @dastratakos in #7818
- feat(ui,panel): split the composer's pull request bar when an agent opened several by @dastratakos in #7813
- fix(panel): draw a tab's other task as a breadcrumb crumb, whole where it fits by @dastratakos in #7808
- feat(ui): wrap a chip in running words, and fade one on one line, never an ellipsis by @dastratakos in #7817
- fix(ui): show a hover card's name whole rather than clamped to two lines by @dastratakos in #7809
- refactor(ui): simplify the sidebar's homing walk by @dastratakos in #7819
- chore(release): bump the desktop to 0.29.0 and write its changelog by @dastratakos in #7820
- refactor(database,service): read every agent pull request from agent_pull_request by @dastratakos in #7821
- docs(changelog): add the changes merged since to 0.29.0 by @dastratakos in #7823
Full Changelog: v0.28.0...v0.29.0