Repository navigation
Luke 0.24.0
What's Changed
- fix(service): agents write every pull request they name as a mention by @dastratakos in #5857
- fix(database,service): read agents and Inbox items under one visibility rule each by @dastratakos in #5812
- fix(ui): a menu row not checked keeps no check room, so its end marks reach the edge by @dastratakos in #5856
- docs(changelog): link #5838 from 0.23.0's "didn't hear back" fix by @charleslpan in #5859
- refactor(panel,features): draw the Inbox from the account's feed alone by @dastratakos in #5860
- fix(panel): the Inbox's rows sort anew once the pointer leaves the list by @dastratakos in #5753
- fix(panel): one wording for hover card notes by @dastratakos in #5861
- feat(panel): every hover card wears its subject's glyph by @dastratakos in #5864
- refactor(ui,panel): one hover card skeleton in the loaded card's slot by @dastratakos in #5866
- refactor(ui,panel): list rows hang their cards beside the row by @dastratakos in #5868
- refactor(features,database): "coding agent" becomes "agent" in their TypeScript names by @dastratakos in #5820
- refactor(panel): the corner holds only age or state by @dastratakos in #5863
- feat(panel): task card leads with its name and board marks by @dastratakos in #5870
- refactor(service,host,gateway): "coding agent" becomes "agent" in their TypeScript names by @dastratakos in #5877
- refactor(panel): server, +N faces and Inbox item cards on the shared parts by @dastratakos in #5871
- fix(ui,panel): keyboard reaches a server card's tool descriptions by @dastratakos in #5878
- feat(panel): an agent's own page has its Inbox tab by @dastratakos in #5874
- feat(service,host,panel): keep an agent with no task holding its Inbox items, settled ones included by @dastratakos in #5872
- feat(ui,panel): compact figures on the turn card by @dastratakos in #5865
- refactor(panel): one provenance row and one time format by @dastratakos in #5869
- feat: pin every agent through agent_pin, and key tab pins by holder by @dastratakos in #5875
- feat(panel): show Luke's built-in tools and run_on_mac's standing in the MCP popover by @dastratakos in #5846
- feat(panel): one pull request card wherever a PR hangs by @dastratakos in #5876
- refactor(panel,ui,settings): "coding agent" becomes "agent" in names and words by @dastratakos in #5879
- feat(panel,service): mentions and pull request links work for an agent with no task by @dastratakos in #5873
- fix(copy): cut the slop copy that landed since the eleventh sweep by @luke-agent[bot] in #5881
- refactor(service,features): the words every model reads say "agent" where they said "coding agent" by @dastratakos in #5884
- refactor: "coding agent" wire values become "agent", and automations read both action kinds by @dastratakos in #5882
- feat(host,panel,service): the open task's agents drawn from the live task list, their writes in the host by @charleslpan in #5885
- refactor(database): drop the operator notice's task column by @dastratakos in #5862
- fix(host): queue an app-state write made while another is announced by @luke-agent[bot] in #5883
- fix(service): read public skill sources on a token, not anonymously by @charleslpan in #5837
- fix(panel): the channels keep one shared filter when the reader switches away by @dastratakos in #5699
- chore: remove the LUKE_SYNC flag by @charleslpan in #5887
- feat(database,service,panel): the task list's agents carry their harness, Mac, and continues, so the tabs read nothing else by @charleslpan in #5888
- fix(ui): show a control's hover card over the pills inside it by @dastratakos in #5777
- feat(service): read a skill source from one archive of its commit by @charleslpan in #5886
- refactor: automations store their action kind as "agent", still reading "coding-agent" by @dastratakos in #5889
- docs(panel): hover card comments and data attributes match the code by @dastratakos in #5880
- fix(panel,host): starting a task leaves no draft behind and never turns the window back by @dastratakos in #5714
- refactor(database): name the agent's tables "agent", leaving a view under each old name by @dastratakos in #5890
- refactor(ui,panel,settings): drop Show details and the ⌥↓ hover card entry by @dastratakos in #5893
- revert: name the agent's tables "agent" (#5890), whose migration deadlocks in production by @dastratakos in #5898
- refactor(database): name the agent's tables "agent", taking their locks with retries by @dastratakos in #5902
- fix(host): remake a stopped agent VM made from an earlier sandbox image by @dastratakos in #5899
- fix(host): close four small cleanup leaks by @dastratakos in #5901
- refactor(database): the coding_agent* columns become agent_*, mirrored for the deploy's overlap by @dastratakos in #5897
- refactor(host,panel): the Inbox feed reaches the panel on app state through useHostRead by @dastratakos in #5894
- feat(service): a device reads which of its agents should still stand by @dastratakos in #5900
- refactor: automations read their action kind as "agent" alone by @dastratakos in #5895
- refactor(database): agents' conversations are stored as kind "agent" by @dastratakos in #5905
- refactor(database): drop the "coding agent" overlap: views, mirrored columns, and the old kind by @dastratakos in #5906
- refactor(database): the foreign keys other tables hold to agent drop "coding_agent" from their names by @dastratakos in #5907
- feat(panel): ⌘K lists the workspace's automations under Automations by @dastratakos in #5912
- fix(features): the Add hosts agent prompt installs wherever the install command does by @charleslpan in #5892
- feat(panel,features): Add hosts shows only the install command, run on each host by @charleslpan in #5914
- feat(host): a Mac's install command runs beside the app's This Mac by @charleslpan in #5915
- fix(panel): an unanswered Inbox reply says to try again by @luke-agent[bot] in #5908
- fix(ui): a choice list's row keys say nothing to a finger by @luke-agent[bot] in #5909
- fix(panel): the Inbox pager's arrows keep the keyboard at the list's ends by @luke-agent[bot] in #5910
- fix(panel): agent composers ask for changes and follow ups again by @dastratakos in #5911
- feat(host): a Mac's uninstall removes exactly its own agents by @charleslpan in #5921
- fix(panel): an Inbox row's hover shows only its ⋯, its mark and resolve in the menu by @dastratakos in #5920
- feat(panel): a host's Remove shows the command that takes Luke off it by @charleslpan in #5923
- fix(service,panel): read a pull request's chapters from the store by @dastratakos in #5858
- fix(host): a VM mounts a runner folder whose path holds a space where smolvm finds it by @charleslpan in #5927
- chore(host): version 0.2.1 by @charleslpan in #5928
- feat(agent-runner): per-agent switched-off tools by @charleslpan in #5930
- feat(settings): the Pilot experiment by @charleslpan in #5929
- feat(database): tasks gain a parent task by @charleslpan in #5931
- feat(features): the pilot agent kind by @charleslpan in #5932
- feat(host): serve install.sh for host 0.2.1 by @charleslpan in #5935
- feat(database): tasks gain a mode by @charleslpan in #5933
- feat(service): the pilot can't open PRs or apply patches by @charleslpan in #5942
- feat(service): the pilot runs without Edit and Write by @charleslpan in #5943
- feat(service): agents under a pilot post no threads by @charleslpan in #5946
- feat(service): the pilot's GitHub credential is read-only by @charleslpan in #5936
- feat(panel): no New agent, Fork, or Continue under a pilot by @charleslpan in #5950
- feat(database): tasks gain a merge policy by @charleslpan in #5938
- fix(host): a Mac's upgrade waits for its luke-host to stop before it swaps the release by @charleslpan in #5956
- feat(panel): New task offers Pilot by @charleslpan in #5953
- feat(panel): child tasks nest under their parent in the sidebar by @charleslpan in #5944
- feat(database): tasks can block other tasks by @charleslpan in #5934
- feat(panel): only the top pilot has a composer by @charleslpan in #5954
- feat(panel): Approve a pilot's breakdown by @charleslpan in #5940
- feat(service): the pilot's instructions by @charleslpan in #5949
- fix(panel): the Inbox's empty item pane says how to choose an item by @dastratakos in #5922
- feat(panel): a parent's sidebar row counts its done child tasks by @charleslpan in #5951
- feat(service): a task can be created with a parent by @charleslpan in #5937
- feat(panel): a blocked task's sidebar row is marked by @charleslpan in #5945
- feat(database): a task can't block its own blocker by @charleslpan in #5939
- feat(service): Continue on a pilot takes over its agents by @charleslpan in #5947
- feat(panel): a pilot task's merge-policy switch by @charleslpan in #5961
- feat(service): a pilot task starts with a pilot by @charleslpan in #5962
- feat(panel): New child task in the task menu by @charleslpan in #5952
- feat(service): agents set blocks and blocked-by by @charleslpan in #5941
- feat(service): a message to a taken-over pilot reaches the pilot that took it over by @charleslpan in #5965
- feat(panel): a task shows and edits what blocks it by @charleslpan in #5957
- feat(service): a continued sub-pilot keeps its starter by @charleslpan in #5955
- feat(service): an agent can't continue the pilot that started it by @charleslpan in #5964
- fix(panel): no Start in the terminal picker, nor Continue on an agent's page, under a pilot by @charleslpan in #5958
- feat(service): a pilot can make a child task a pilot task by @charleslpan in #5960
- fix(panel): the Inbox says each idea one way by @dastratakos in #5918
- feat(service): a child task's repository can't change by @charleslpan in #5948
- chore(service): one skills warning per session, store failures name their code by @charleslpan in #5966
- fix(service): a Claude Code or Codex error keeps its words by @charleslpan in #5969
- feat(service): a task's merge policy is its top task's by @charleslpan in #5963
- test(service): split agents-app.test.ts under CI's per-file cap by @charleslpan in #5970
- feat(ui): a streaming reply's words fade in as they land by @charleslpan in #5891
- fix(service): Effect log annotations and report ids reach Sentry by @charleslpan in #5968
- fix(service): an eve agent's failure keeps its cause by @charleslpan in #5971
- fix(service): a coding agent's failed start or launch keeps why by @charleslpan in #5972
- feat(panel): every unexpected error the app shows is reported by @charleslpan in #5973
- feat(panel): the merge-policy switch is one Auto-merge toggle by @charleslpan in #5974
- fix(service): a lost runner's turn keeps why it stopped by @charleslpan in #5967
- feat(service): a hosted call continues its caller's trace by @charleslpan in #5975
- feat: Sentry reports name the Luke account by @charleslpan in #5976
- feat(panel): an error toast copies its details by @charleslpan in #5977
- fix(panel): child tasks stand only under their parent in the sidebar by @charleslpan in #5980
- fix(host): cap smolvm's seed folder so an earlier pin's seed goes by @charleslpan in #5981
- feat(host): chat failures keep their cause up to the panel by @charleslpan in #5979
- fix(panel): a pinned child task stands once, and a hidden one is not chosen by @charleslpan in #5982
- feat(database): tasks gain a running switch by @charleslpan in #5985
- feat(host): a device agent's VM lives for one turn by @charleslpan in #5984
- feat(service): a top pilot task's running switch is set through the task route by @charleslpan in #5987
- feat(ui): inline failure states report what they show by @charleslpan in #5986
- feat(agent-runner): pack, verify and restore an agent's state by @charleslpan in #5988
- feat(database): keep a device agent's saved state by @charleslpan in #5983
- feat(service): the pilot follows Running instead of Approve by @charleslpan in #5989
- feat(panel): the Running toggle replaces Approve and Request changes by @charleslpan in #5991
- feat(service): Running off stops a pilot tree's agents, and on resumes them by @charleslpan in #5990
- fix(ui): centre a list row's fold chevron on its leading mark by @charleslpan in #5993
- feat(service): keep device agents' saved state in a private blob store by @charleslpan in #5994
- feat(panel): a pilot task's Start and Stop button replaces the Running toggle by @charleslpan in #5995
- feat(service): nothing wakes an agent in a stopped pilot tree by @charleslpan in #5992
- feat(service): Stop halts a pilot tree's top pilot too by @charleslpan in #5997
- feat(host): save an agent's state at its turn's end by @charleslpan in #5996
- feat(host): restore an agent's saved state at a cold launch by @charleslpan in #5999
- refactor(service): the words agents read say Start and Stop, not Running by @charleslpan in #6001
- feat(panel): remove the Inbox's media previews by @dastratakos in #6000
- feat(panel): inbox rows read task line, title, then preview by @dastratakos in #6003
- feat(ui,panel): one failed mark, said beside what failed by @dastratakos in #6008
- refactor(service): Start's words read as the developer's instruction by @charleslpan in #6009
- fix(ui,panel): a chat opened mid-turn fades only the words that arrive after by @charleslpan in #5998
- feat(host): keep nothing of an agent's past its warm window by @charleslpan in #6002
- fix(panel): an unpicked model chip runs on the account default by @charleslpan in #6017
- feat(ui,panel): code blocks headed by their language's name and file icon by @dastratakos in #6007
- feat: graduate Local agents out of Experimental by @charleslpan in #6014
- feat(panel): lines from others stand left under their sender by @dastratakos in #6011
- fix(panel,service): Fast never picks a model nothing pays for by @charleslpan in #6018
- fix(ui,panel): one dock surface, a neutral dark code ground, a failure's own words by @dastratakos in #6006
- feat(service,wire): GitHub check lines carry each check's name, result and link by @dastratakos in #6012
- fix(panel): words sent to another agent read as a quote by @dastratakos in #6005
- feat(panel): tool calls read as words, not JSON by @dastratakos in #6010
- feat(panel): pull request chips name their number alone by @dastratakos in #6016
- feat(panel): file and website chips in tool rows and prose by @dastratakos in #6013
- fix(service,panel): a Codex-only account defaults to GPT-6.1 Sol by @charleslpan in #6020
- feat(ui): searchable menus rise as a sheet on a phone by @charleslpan in #6022
- fix(ui): settings row drops its controls wherever they would squeeze its words by @charleslpan in #6023
- feat(panel): GitHub lines as folding cards by @dastratakos in #6021
- chore: drop an unused workspace config and trim the orchestrate skill by @charleslpan in #6024
- feat(host): save agents' folders from before saves, one a pass by @charleslpan in #6004
- refactor(service): the pilot runs with Edit and Write by @charleslpan in #6026
- feat(service): a pilot can open PRs and apply patches by @charleslpan in #6027
- refactor(service): the pilot's GitHub credential writes as any agent's does by @charleslpan in #6025
- feat(service): a pilot does a task too small to split itself by @charleslpan in #6029
- feat(panel): opening calls fold and name what they made by its chip by @dastratakos in #6015
- fix(ui,panel): a reopened chat's catch-up stands, fading only text that streams live by @charleslpan in #6028
- refactor(ui,panel): quiet notes on NoteLine, glyphs through GlyphSlot by @dastratakos in #6030
- fix(copy): cut the slop copy that landed since the twelfth sweep by @luke-agent[bot] in #6031
- fix(service): hold the account inbox's poll for released desktops by @charleslpan in #6033
- feat(panel): time the Inbox's open, its items, and its answer box in Sentry by @charleslpan in #6032
- perf(panel,ui): draw a long Inbox's rows again only where they changed by @charleslpan in #6034
- revert: the streaming reply word fade (#5891, #5998, #6028) by @charleslpan in #6035
- fix(host): adopt the agents an install already ran as its own by @charleslpan in #6037
- refactor(host,panel): a chosen holder's inbox reaches the panel on app state through useHostRead by @charleslpan in #6036
- perf(panel): draw the Inbox page again only for what it draws by @charleslpan in #6038
- perf(panel): keep the Inbox drawn, hidden, between visits by @charleslpan in #6040
- fix(panel): the Inbox's empty and done words say each thing one way by @luke-agent[bot] in #6041
- fix(panel): an Inbox answer box that could not load offers Retry by @luke-agent[bot] in #6042
- feat(panel): count which surface people open by @dastratakos in #6048
- fix(ui): name the Mac command prompt's allow-all answer and where it is undone by @dastratakos in #6043
- fix(ui): draw the muted robot for an agent whose harness is not known by @dastratakos in #6045
- fix(panel): an empty Inbox says "Nothing needs you" once beside the pane by @dastratakos in #6044
- feat(ui,panel): draw no ⋯ on Inbox rows under a coarse pointer by @dastratakos in #6047
- fix(panel): the format toolbar stands by the words the editor shows by @dastratakos in #5978
- feat(service): count the agent loop past its start by @dastratakos in #6049
- feat(panel,host): record session replay only while signed in, and name the person by @dastratakos in #6050
- fix(ui,panel): make the Inbox list read well to a screen reader by @dastratakos in #6052
- feat: put Skills behind its experiment by @charleslpan in #6053
- refactor(ui,panel): remove the Inbox rows' swipe, and ListRow's with it by @dastratakos in #5903
- feat(analytics): label every product event with its platform by @dastratakos in #6046
- feat(service): count collaboration and setup on the server by @dastratakos in #6051
- feat(ui): inbox rows lead with a Mail-style first line by @dastratakos in #6019
- fix(ui,panel): a finished turn's line stands flush with the agent's words by @dastratakos in #6055
- refactor(panel,features,ui): remove the plan's live typing by @charleslpan in #6056
- feat: put hosts behind the Bring your own host experiment by @charleslpan in #6058
- perf(host): inbox writes stand as an overlay that neither queues nor holds back arrivals by @charleslpan in #6061
- feat(ui,panel): say a member resolved an Inbox thread in a line of the thread by @dastratakos in #6064
- feat: remove the pilot task's Auto-merge switch and Start/Stop button by @charleslpan in #6054
- perf(panel): draw a chosen Inbox item first, and start what it asks for after the paint by @charleslpan in #6068
- perf(ui,panel): draw only the Inbox rows in view, and play no motion on a channel switch by @charleslpan in #6067
- refactor(database): drop the pilot tree's switch columns by @charleslpan in #6071
- refactor(service,host,panel): the Inbox's channels reach the panel on app state through useHostRead by @charleslpan in #6070
- perf(host): patch the Inbox feed by the holders a change moved by @charleslpan in #6073
- refactor(host,panel): a chosen Inbox item's side reads come from held reads by @charleslpan in #6069
- feat(features): leave Drizzle's migration snapshots out of chapters by default by @dastratakos in #6075
- feat(service): drop the chapters input cap by @dastratakos in #6079
- fix(database): keep notices open when their task or agent settles by @dastratakos in #6082
- feat(ui,panel): fill the Inbox's open row with the accent's tint by @dastratakos in #6083
- fix(panel): keep a parent task in the sidebar while a child task is open by @dastratakos in #6084
- feat(panel): cut the Inbox's view options to Show and Addressed to by @dastratakos in #6086
- feat(service): a child task takes its parent's assignee by default by @dastratakos in #6085
- fix(ui): submenus stay open while the pointer heads for them by @dastratakos in #6087
- feat(service,panel): let any agent edit any task's plan by its id by @charleslpan in #6088
- feat(panel,service,features): every host row shows its setup states by @charleslpan in #6091
- feat(agents): queue messages behind an agent's running turn by @dastratakos in #5854
- fix(ui): pictures walked through keep their size instead of flashing large by @dastratakos in #6098
- fix(service,features,panel): an inbox reply that landed unanswered lets go of its error by @dastratakos in #6062
- feat(ui,panel,features): chapter rail rows that read at a glance by @dastratakos in #6102
- feat(panel): simplify the sidebar's Tasks view options by @dastratakos in #6089
- fix(web): serve install.sh with the origin it was fetched from by @charleslpan in #6092
- feat(panel): move Mark all as read to the right-click menus and drop channel and task scopes by @dastratakos in #6093
- feat(host): every host keeps its own pinned Claude Code, Codex, and gh by @charleslpan in #6097
- feat(service,panel): let any agent see pictures and answer comments on any task by @charleslpan in #6099
- fix(panel): no drag handle on a lone queued message by @dastratakos in #6107
- feat(ui,panel): share the Tasks List row with a standalone related-tasks list by @dastratakos in #6106
- feat(service,database,features): pair a host with a code by @charleslpan in #6103
- feat(panel): remove the Inbox's Next bar and its J/K hint by @dastratakos in #6105
- feat(service,host,panel): set a task's parent after creation, and move a relation's kind in one call by @dastratakos in #6110
- feat(panel): the new-thread checkbox's chips open what they name by @dastratakos in #6115
- feat(features,service,ui): Stripe as an integration, every tool offered by @charleslpan in #6112
- feat(ui,panel): show sub-tasks and blocked state in the task card and the Tasks list by @dastratakos in #6116
- feat(panel): queue Inbox thread replies like the agent composer by @dastratakos in #6095
- feat(panel,ui): fold the Inbox's channels and move Add channel into its ⋯ by @dastratakos in #6109
- feat(ui,panel): step chapters from a pager in the chapter header by @dastratakos in #6101
- fix(ui): a task's row icon shows a queued pull request as queued by @dastratakos in #6111
- feat(panel): approve a host's code from its link by @charleslpan in #6117
- feat(panel,settings): remove the send-options menu beside an agent's Send by @dastratakos in #6121
- feat(panel): split the task head into identity, properties, and work by @dastratakos in #6104
- feat(panel): queue plan comment replies like the agent composer by @dastratakos in #6100
- feat(panel): hold a chapter's brief to the reading width and let it fold by @dastratakos in #6096
- feat(host): connect with a code, and uninstall from the account by @charleslpan in #6114
- feat(panel): a New section button on the Tasks head in place of its ⋯ by @dastratakos in #6123
- feat(panel): leave GitHub cards in the transcript collapsed by @dastratakos in #6128
- feat(ui,panel,settings): hold Send on a touch screen to send the other way by @dastratakos in #6124
- feat(panel): one chapter header over a chapter's list by @dastratakos in #6108
- fix(panel): no menu row ends in "…" by @dastratakos in #6126
- fix(panel): draw a sent line's time, count, and place at the press by @dastratakos in #6127
- fix(ui,panel): line up the sidebar's trailing controls on shared columns by @dastratakos in #6129
- chore(host): version 0.3.0 by @charleslpan in #6133
- feat(panel): move a pull request's Run into the tab's ⋯ menu by @dastratakos in #6130
- fix(agent-runner): a result naming no prompt answers nothing by @charleslpan in #6132
- ci: run the database package's real-Postgres store tests by @dastratakos in #6119
- fix(panel): draw Generate chapters without the sparkle icon by @dastratakos in #6137
- feat(panel): add relations from the task menu, right-click, and ⌘K by @dastratakos in #6118
- fix(panel): say Queued in the pull request pill while its read is out by @dastratakos in #6134
- feat(panel,ui): show sub-tasks and relations as groups on the task head by @dastratakos in #6141
- fix(service): an agent's Done waits on its task's open asks by @dastratakos in #6138
- fix(panel,ui): draw the chapters rail, its loading, and its brief as the app does by @dastratakos in #6144
- feat(host): run every host's agents straight on the box by @charleslpan in #6120
- feat(host): clear an idle agent's folder after 7 days unused by @charleslpan in #6125
- feat(service): marking a task Done archives its agents by @charleslpan in #6145
- refactor(host,agent-runner): remove the host's state save and the runner's state command by @charleslpan in #6146
- feat(host): install the host into the account that runs the script by @charleslpan in #6136
- fix(panel,ui): stand pane toggles at the bar's edges and line the brief up with the chapter's bar by @dastratakos in #6148
- refactor(service,features,database): remove device agents' state saves and undeclare their tables by @charleslpan in #6151
- fix(panel,ui): inset file headers' chevrons as their ends are, and name key change files by their type's icon by @dastratakos in #6153
- refactor(host,agent-runner): remove smolvm and the host's VM code by @charleslpan in #6157
- feat(panel,features,service): Add hosts shows the public command and waits for the host by @charleslpan in #6113
- feat(panel,ui): name sections in place and pick their icon from a popover by @dastratakos in #6155
- feat(database): drop the agent-state tables by @charleslpan in #6156
- refactor(service): remove the sandbox image's build chain by @charleslpan in #6158
- fix(service): only an explicit Done archives a task's agents by @charleslpan in #6154
- refactor(features,service,host,database): remove the lkh_ install token and its enroll by @charleslpan in #6160
- refactor(panel): remove redundant Open on GitHub doors by @dastratakos in #6152
- feat(ui,panel): show sub-task progress as a ring everywhere by @dastratakos in #6163
- feat(panel,ui): collapse relation items and show a task row's ⋯ on hover by @dastratakos in #6164
- feat(features,service,panel,ui): start a task related to another in one transaction by @dastratakos in #6165
- fix(copy): cut the slop copy that landed since the thirteenth sweep by @luke-agent[bot] in #6166
- feat(database): drop host_install_token and the install token's AGENTS.md carve-out by @charleslpan in #6161
- feat(features,service,database,panel): tell hosts of a newer release and show their update on the row by @charleslpan in #6167
- feat(host): switch an account install's host to a newer release once idle by @charleslpan in #6168
- chore(host): version 0.4.0 by @charleslpan in #6169
- feat(host): serve install.sh for host 0.4.0 by @charleslpan in #6170
- fix(features,panel): a fold of tool calls no longer says how many failed by @charleslpan in #6173
- fix(copy): cut the slop copy that landed since the fourteenth sweep by @luke-agent[bot] in #6174
- chore(release): bump the workspace to 0.24.0 and write its changelog by @charleslpan in #6175
Full Changelog: v0.23.0...v0.24.0