From a7ddd69f3bb2b9a33cf217638f8f5f130f2c2cb8 Mon Sep 17 00:00:00 2001 From: Danyang Chen Date: Fri, 6 Nov 2026 08:04:26 +0800 Subject: [PATCH] Release v0.2.24 Changelog fragments consumed (45): - changelog.d/1605.fixed.md - changelog.d/1668-reroute-source-log.fixed.md - changelog.d/2305-projects-readonly-writes.fixed.md - changelog.d/2306-project-board-readonly.fixed.md - changelog.d/2307-create-bot-readonly.fixed.md - changelog.d/2422-approval-reason-visible.fixed.md - changelog.d/2428-linked-state-unreadable.fixed.md - changelog.d/2430-tree-retired.fixed.md - changelog.d/2431-wire-hit-targets.fixed.md - changelog.d/2434-state-backups.added.md - changelog.d/2446-sharing-read-access.fixed.md - changelog.d/2447-room-share-braces.fixed.md - changelog.d/2450-archived-retired-refresh.fixed.md - changelog.d/2452-workflow-stopped-run-deadline.fixed.md - changelog.d/2461-project-state-unreadable.fixed.md - changelog.d/2468.added.md - changelog.d/2474-settings-pages-readonly.fixed.md - changelog.d/2475-brief-cache.fixed.md - changelog.d/2480-reroute-bot-source-log.fixed.md - changelog.d/2482-face-room-hide-persist.fixed.md - changelog.d/2485-bot-assign-source-log.fixed.md - changelog.d/2486-ingest-brief-authority.fixed.md - changelog.d/2489-settings-projects-empty-copy.fixed.md - changelog.d/2492-face-room-readonly-facts.fixed.md - changelog.d/2495-workflow-panel-assign-brief.fixed.md - changelog.d/2496-group-create-readonly.fixed.md - changelog.d/2499-composer-send-readonly.fixed.md - changelog.d/2502-readonly-reload.added.md - changelog.d/2503-composer-group-admin-locked.fixed.md - changelog.d/2506-newchat-add-agent-locked.fixed.md - changelog.d/2507-run-now.added.md - changelog.d/2512-face-lead-readonly.fixed.md - changelog.d/2515-inbox-workflow-open-page.fixed.md - changelog.d/2521-overlay-readonly-reload.fixed.md - changelog.d/2524-workflows-duplicate-sentence.fixed.md - changelog.d/2528-plain-group-readonly-facts.fixed.md - changelog.d/2534-inbox-stale-failed-card.fixed.md - changelog.d/2539-otel-tool-span-key.fixed.md - changelog.d/2541-inbox-back-to-queue.fixed.md - changelog.d/2543-timeline-busy-window.fixed.md - changelog.d/2546-steward-shorten-chars.fixed.md - changelog.d/p556-linked-state-save-notice.fixed.md - changelog.d/p560-saved-graph-keeps-stop-deadline.fixed.md - changelog.d/workflow-paused-run-label.fixed.md - changelog.d/workflow-prompt-codepoint-cut.fixed.md --- CHANGELOG.md | 56 ++++++++++++++++++- changelog.d/1605.fixed.md | 1 - changelog.d/1668-reroute-source-log.fixed.md | 1 - .../2305-projects-readonly-writes.fixed.md | 1 - .../2306-project-board-readonly.fixed.md | 1 - changelog.d/2307-create-bot-readonly.fixed.md | 1 - .../2422-approval-reason-visible.fixed.md | 1 - .../2428-linked-state-unreadable.fixed.md | 1 - changelog.d/2430-tree-retired.fixed.md | 1 - changelog.d/2431-wire-hit-targets.fixed.md | 1 - changelog.d/2434-state-backups.added.md | 1 - changelog.d/2446-sharing-read-access.fixed.md | 1 - changelog.d/2447-room-share-braces.fixed.md | 1 - .../2450-archived-retired-refresh.fixed.md | 1 - ...452-workflow-stopped-run-deadline.fixed.md | 1 - .../2461-project-state-unreadable.fixed.md | 1 - changelog.d/2468.added.md | 1 - .../2474-settings-pages-readonly.fixed.md | 1 - changelog.d/2475-brief-cache.fixed.md | 1 - .../2480-reroute-bot-source-log.fixed.md | 1 - .../2482-face-room-hide-persist.fixed.md | 1 - .../2485-bot-assign-source-log.fixed.md | 1 - .../2486-ingest-brief-authority.fixed.md | 1 - ...2489-settings-projects-empty-copy.fixed.md | 1 - .../2492-face-room-readonly-facts.fixed.md | 1 - .../2495-workflow-panel-assign-brief.fixed.md | 1 - .../2496-group-create-readonly.fixed.md | 1 - .../2499-composer-send-readonly.fixed.md | 1 - changelog.d/2502-readonly-reload.added.md | 1 - .../2503-composer-group-admin-locked.fixed.md | 1 - .../2506-newchat-add-agent-locked.fixed.md | 1 - changelog.d/2507-run-now.added.md | 1 - changelog.d/2512-face-lead-readonly.fixed.md | 1 - .../2515-inbox-workflow-open-page.fixed.md | 1 - .../2521-overlay-readonly-reload.fixed.md | 1 - ...2524-workflows-duplicate-sentence.fixed.md | 1 - .../2528-plain-group-readonly-facts.fixed.md | 1 - .../2534-inbox-stale-failed-card.fixed.md | 1 - changelog.d/2539-otel-tool-span-key.fixed.md | 1 - changelog.d/2541-inbox-back-to-queue.fixed.md | 1 - .../2543-timeline-busy-window.fixed.md | 1 - .../2546-steward-shorten-chars.fixed.md | 1 - .../p556-linked-state-save-notice.fixed.md | 1 - ...0-saved-graph-keeps-stop-deadline.fixed.md | 1 - .../workflow-paused-run-label.fixed.md | 1 - .../workflow-prompt-codepoint-cut.fixed.md | 1 - core/package-lock.json | 4 +- core/package.json | 2 +- patches/ds-bot/0007-version-and-tooling.patch | 6 +- 49 files changed, 61 insertions(+), 52 deletions(-) delete mode 100644 changelog.d/1605.fixed.md delete mode 100644 changelog.d/1668-reroute-source-log.fixed.md delete mode 100644 changelog.d/2305-projects-readonly-writes.fixed.md delete mode 100644 changelog.d/2306-project-board-readonly.fixed.md delete mode 100644 changelog.d/2307-create-bot-readonly.fixed.md delete mode 100644 changelog.d/2422-approval-reason-visible.fixed.md delete mode 100644 changelog.d/2428-linked-state-unreadable.fixed.md delete mode 100644 changelog.d/2430-tree-retired.fixed.md delete mode 100644 changelog.d/2431-wire-hit-targets.fixed.md delete mode 100644 changelog.d/2434-state-backups.added.md delete mode 100644 changelog.d/2446-sharing-read-access.fixed.md delete mode 100644 changelog.d/2447-room-share-braces.fixed.md delete mode 100644 changelog.d/2450-archived-retired-refresh.fixed.md delete mode 100644 changelog.d/2452-workflow-stopped-run-deadline.fixed.md delete mode 100644 changelog.d/2461-project-state-unreadable.fixed.md delete mode 100644 changelog.d/2468.added.md delete mode 100644 changelog.d/2474-settings-pages-readonly.fixed.md delete mode 100644 changelog.d/2475-brief-cache.fixed.md delete mode 100644 changelog.d/2480-reroute-bot-source-log.fixed.md delete mode 100644 changelog.d/2482-face-room-hide-persist.fixed.md delete mode 100644 changelog.d/2485-bot-assign-source-log.fixed.md delete mode 100644 changelog.d/2486-ingest-brief-authority.fixed.md delete mode 100644 changelog.d/2489-settings-projects-empty-copy.fixed.md delete mode 100644 changelog.d/2492-face-room-readonly-facts.fixed.md delete mode 100644 changelog.d/2495-workflow-panel-assign-brief.fixed.md delete mode 100644 changelog.d/2496-group-create-readonly.fixed.md delete mode 100644 changelog.d/2499-composer-send-readonly.fixed.md delete mode 100644 changelog.d/2502-readonly-reload.added.md delete mode 100644 changelog.d/2503-composer-group-admin-locked.fixed.md delete mode 100644 changelog.d/2506-newchat-add-agent-locked.fixed.md delete mode 100644 changelog.d/2507-run-now.added.md delete mode 100644 changelog.d/2512-face-lead-readonly.fixed.md delete mode 100644 changelog.d/2515-inbox-workflow-open-page.fixed.md delete mode 100644 changelog.d/2521-overlay-readonly-reload.fixed.md delete mode 100644 changelog.d/2524-workflows-duplicate-sentence.fixed.md delete mode 100644 changelog.d/2528-plain-group-readonly-facts.fixed.md delete mode 100644 changelog.d/2534-inbox-stale-failed-card.fixed.md delete mode 100644 changelog.d/2539-otel-tool-span-key.fixed.md delete mode 100644 changelog.d/2541-inbox-back-to-queue.fixed.md delete mode 100644 changelog.d/2543-timeline-busy-window.fixed.md delete mode 100644 changelog.d/2546-steward-shorten-chars.fixed.md delete mode 100644 changelog.d/p556-linked-state-save-notice.fixed.md delete mode 100644 changelog.d/p560-saved-graph-keeps-stop-deadline.fixed.md delete mode 100644 changelog.d/workflow-paused-run-label.fixed.md delete mode 100644 changelog.d/workflow-prompt-codepoint-cut.fixed.md diff --git a/CHANGELOG.md b/CHANGELOG.md index e816a6600..4c2a9a9d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,59 @@ New entries are written as one fragment file per change in [changelog.d/](change ## [Unreleased] +## [0.2.24] - 2026-11-06 + +### Added + +- The diagnostics report now lists the backups the store leaves beside the team file — `state.json.v1` and the `state.json.broken-` copies — with their size and age, newest three broken copies plus a count of the rest, or `state backups: none`; a backup this host cannot read is named with its reason, and no backup is ever opened ([#2434](https://github.com/ThinkFlowLab/FlyBot/issues/2434)). +- A workflow assignment resolves its brief from the task card, so re-dispatching the same card to another lane keeps the same facts and records one handoff line. +- The Settings header, the details drawer, the Inbox and the Memory panel now draw a **Reload** beside the host's read-only sentence, so a window that was told to reload can do it where it stands instead of closing the panel and reaching for the sidebar ([#2502](https://github.com/ThinkFlowLab/FlyBot/issues/2502)). +- A scheduled task can be run once from its own row even when its last run went fine: **Run now** joins **Retry**, a run in flight or a paused task offers neither, and running a task now leaves its next DSH run where it was ([#2507](https://github.com/ThinkFlowLab/FlyBot/issues/2507)). + +### Fixed + +- An open face-to-face room a home is a member of no longer disappears from that home's sidebar row list: a stored `hidden` flag is cleared by the room's open snapshot, and the sidebar's past-room and hidden-row filters never drop an open face room. +- A workflow card re-matched into another workflow now leaves one `Task re-matched · → ` line on the source graph's own log, so the graph that lost the card says where it went instead of the card silently vanishing ([#1668](https://github.com/ThinkFlowLab/FlyBot/issues/1668)). +- A read-only window's Settings → **Projects** page now draws no write the host would refuse: no name field, no **New Project**, no **Bind to {name}** choice on a Project row and no **Unbind** on a Project or on a binding, because `project-create` and `project-bind` are writes a reading window is refused. **Open board**, the Project rows with their names, working folders and members stay readable, and a writable window draws exactly the tree it drew before. ([#2305](https://github.com/ThinkFlowLab/FlyBot/issues/2305)) +- A read-only window's Project board now draws no settings write the host would refuse: opening **Project settings** shows the host's own read-only sentence and **Back to board** instead of **Bind**, **Unbind**, the digest **Save** and **Save memory**, because `project-bind`, `project-assistant-owner` and `project-memory-write` are writes a reading window is refused. The board, its rows, the **Members** panel and the record stay readable, and a writable window draws the panel exactly as before. ([#2306](https://github.com/ThinkFlowLab/FlyBot/issues/2306)) +- In a read-only window the New-Bot form now draws the host's own read-only sentence where **Create** was, instead of a form whose only answer from the host was `bot/read-only`; a writable window is unchanged ([#2307](https://github.com/ThinkFlowLab/FlyBot/issues/2307)). +- A held message now says why it is waiting: the host's reason is drawn under the sender line on the session dock's approval card and on a held reply's own bubble in a chat, instead of living only in a hover title on the card and nowhere at all on the bubble. The visible line stops at 200 code points with an ellipsis and the whole sentence stays in the title, so a long reason is readable without hiding its end, and a reason that is empty or only whitespace draws no line at all ([#2422](https://github.com/ThinkFlowLab/FlyBot/issues/2422)). +- The diagnostics report's state line no longer promises a read it could not make: a `state.json` that is a link to a plain file this host cannot read now keeps the same sentence as a link to a folder (`not a plain file (nothing is read or written)`), instead of saying the store reads the team file through the link directly above a `Read-only` row that reports that read failing with `EACCES`. The target's read permission is asked with `access()`, which opens nothing and reads no byte ([#2428](https://github.com/ThinkFlowLab/FlyBot/issues/2428)). +- The tree model now treats a Bot retired with `archive_bot` as out of the tree everywhere: it no longer occupies its parent's `maxChildren` slot, and its children move up to its own parent instead of being stranded under a Bot that cannot be messaged ([#2430](https://github.com/ThinkFlowLab/FlyBot/issues/2430)). +- A workflow's read-only run flowchart now names each wire for a reader and gives every route a 10px hit target of its own: pointing at one wire marks it and dims the rest, and the plane still writes nothing ([#2431](https://github.com/ThinkFlowLab/FlyBot/issues/2431)). +- A Bot's Sharing card in a read-only window keeps **People with access** (who has this Bot, and its Auto-send state) and drops only its writes — no Revoke, no invite, no Share with a friend ([#2446](https://github.com/ThinkFlowLab/FlyBot/issues/2446)). +- Fixed a room-share envelope being dropped when a chat line's own text carried one unbalanced brace, which lost the sent line and the join history copied into a `join` envelope ([#2447](https://github.com/ThinkFlowLab/FlyBot/issues/2447)). +- A Bot retired with `archive_bot` now appears in the sidebar's Archived section at once, instead of up to one 10 s roster poll later ([#2450](https://github.com/ThinkFlowLab/FlyBot/issues/2450)). +- A Workflow run frozen by a **Stop** whose Bot could not be released no longer holds its lane slot forever: the step deadline it was already counting now retries the release and ends the run as `paused-expired`, freeing the slot, and re-arms itself while the Bot still will not go. Before this, the deadline was consumed by the paused run and nothing ran again, so the workflow stayed at its `maxConcurrent` limit until the owner pressed Stop a second time ([#2428](https://github.com/ThinkFlowLab/FlyBot/issues/2452)). +- `project_state` no longer reports a Project State file it cannot read as if the folder held none: a `PROJECT.md` that is a folder, or a file the process may not read, now answers `unreadable: PROJECT.md ()` beside the rows that could be read instead of the listing answering `no Project State files in this folder`, which said there was nothing to read while something was ([#2461](https://github.com/ThinkFlowLab/FlyBot/issues/2461)). +- A read-only window no longer draws the write controls on the seven Settings pages that still had them: **General** (theme, accent and the notification switches), **Bots** (both Main Bot choices and the animation picker), a Bot's own settings, a group chat's settings, **Connectors**, **Capabilities** and **Secrets**. Each page now states its facts as plain text — the theme and accent in use, who holds the Main Bot role, the animation setting, a Bot's role, model, folder and instructions, a group's members and notice, each connector's state, each capability and each stored key with who may use it — because the host refuses every one of those writes with `bot/read-only`. **New Bot** stays as an entry, since the form behind it already explains the lock, and a writable window is unchanged. ([#2474](https://github.com/ThinkFlowLab/FlyBot/issues/2474)) +- A workflow assignment's brief is now the caller's to clear. An explicit `brief` replaces the facts cached on the lane, and `brief: ''` clears them instead of falling back to the old text; deleting a workflow drops the facts it cached, so a later assignment carries nothing from it and records no handoff naming a lane that no longer exists ([#2475](https://github.com/ThinkFlowLab/FlyBot/issues/2475)). +- A workflow card handed to a Bot now leaves the same `Task re-matched · → ` line on the source graph's own log that a hand-over to another workflow already wrote, and a hand-over into a workflow that is already running the card writes it too — the graph that lost the card says where it went instead of the card silently vanishing ([#2480](https://github.com/ThinkFlowLab/FlyBot/issues/2480)). +- A face-to-face room's **Hide from sidebar** switch now holds: the hide a person chose survives the poll that re-reads the room every few seconds (and turning it back off survives too), while a `hidden` an older state left behind is still cleared by the room's open snapshot, as #1605 asked ([#2482](https://github.com/ThinkFlowLab/FlyBot/issues/2482)). +- A workflow card a lane is holding can now be handed straight to a Bot from the panel, and the lane that lost it writes the same `Task re-matched · → ` line a hand-over to another lane already wrote — the source graph no longer drops the card silently when the destination is a Bot ([#2485](https://github.com/ThinkFlowLab/FlyBot/issues/2485)). +- A workflow card whose facts were cleared no longer brings them back when it is re-matched into another lane: the re-match path now passes the card's current brief — its text when it holds facts, an explicit empty one when it does not — so the lane cache can no longer resurrect instructions the author removed ([#2486](https://github.com/ThinkFlowLab/FlyBot/issues/2486)). +- In a window that holds the team read-only, Settings → Projects no longer tells the reader to create a Project: with no Project the empty state reads `No Project yet.` instead of `No Project yet — create one.`, which pointed at the **New Project** section the same page had already hidden ([#2489](https://github.com/ThinkFlowLab/FlyBot/issues/2489)). A writable window and the Project board's own empty state keep the shared sentence. +- In a read-only window a face-to-face group's Settings page names each person's Bots under them, and states who answers and the room's working folder, instead of drawing every person as **Human** while its own header counted the Bots. +- Handing a card to a Workflow from the panel now carries the card's own facts into the run instead of dropping them: the assign body sends the card's `brief` verbatim, and an explicit empty one when the card holds none, so a brief cached by an earlier call cannot come back ([#2495](https://github.com/ThinkFlowLab/FlyBot/issues/2495)). +- In a read-only window neither group-creation form now draws a **Create** control the host would refuse: **Settings → Group chats** and the `New…` menu's **New group chat** keep their pickers as a preview and show the host's own read-only sentence where **Create group chat** was, so no press reaches the host for an answer that could only be `bot/read-only`; a writable window draws both forms exactly as before ([#2496](https://github.com/ThinkFlowLab/FlyBot/issues/2496)). +- In a read-only window the new-chat composer no longer writes: pressing **Send** or Enter sends nothing, several picks create no room, and a picker row pressed with a line typed opens the session without sending that line; the host's own read-only sentence stands where the **Send** button was. A writable window is unchanged ([#2499](https://github.com/ThinkFlowLab/FlyBot/issues/2499)). +- In a read-only window a new group chat that already picked its admin no longer draws a **Send** arrow that does nothing: the composer draws no send control at all, and the host's own read-only sentence stays once, on the To: line where **Create group chat** would be. A writable window is unchanged ([#2503](https://github.com/ThinkFlowLab/FlyBot/issues/2503)). +- A read-only window's New… menu no longer offers **Add coding agent**: `addAgent` is a write the host answers `bot/read-only`, so the row is not drawn at all while the other rows stay as a preview, and a writable window keeps the row ([#2506](https://github.com/ThinkFlowLab/FlyBot/issues/2506)). +- A read-only window's face-to-face room lead card no longer offers **Change**: `social/face-lead` is a write the host answers `bot/read-only`, so the card draws the lead's name and its own sentence only — no picker, no **Use the default lead**, and not the "Only the person who created this room can change it." hint — while a writable window keeps all of them. +- A failed workflow run's Open in the Inbox now lands on Settings → Workflows: the row asked for a page named `workflow`, which is not a Settings key, so the dialog quietly fell back to General. The test renders the Settings dialog and reads the page it shows instead of trusting the name the call carried. +- In a read-only window the Board, the New chat pane and the Project settings panel now draw the host's sentence with a **Reload** beside it: each is a full-screen overlay that covers the sidebar's own entry, so the reader had to close it to answer the sentence at all. The entry runs the client's own team read (never a page reload), one per overlay, and a writable window is unchanged. +- In a read-only window, **Settings → Workflows** no longer prints the host's read-only sentence twice: with a workflow graph open, the graph's edit bar drew a second copy of the sentence the Settings header already carries, under its own `role="status"`, so the same words sat on one screen twice and a screen reader announced them twice. The edit bar now shows **Back** only, the header's **Reload** stays the way out, and a writable window keeps **Edit** exactly as it was ([#2524](https://github.com/ThinkFlowLab/FlyBot/issues/2524)). +- A read-only window's plain-group Settings page states who answers and the group's working folder as text, the way a face-to-face room's page already did ([#2528](https://github.com/ThinkFlowLab/FlyBot/issues/2528)). +- A workflow task that failed and was then run again to a green finish no longer keeps its **Failed** card in the Inbox, or its place in the sidebar's *Needs you* count, for the whole seven-day window: the success retires the card ([#2534](https://github.com/ThinkFlowLab/FlyBot/issues/2534)). +- A workflow's tool calls are exported one span each even when two turns number a call the same way: the OTLP export pairs a call with its own turn, so no tool span goes missing and none hangs under another turn. +- Closing the Workflow graphs page that an Inbox card opened now brings the Inbox back, instead of leaving you in the chat under it; a Settings page opened anywhere else still closes to the view beneath it ([#2541](https://github.com/ThinkFlowLab/FlyBot/issues/2541)). +- A Bot that was busy across the whole window is no longer left out of the team report as if it had done nothing: a turn that began before the window now reports the share of the window it worked, instead of reading as a Bot with no turns. +- The long-message view the context steward reads is now measured and cut in characters, not UTF-16 units: an emoji or any other character outside the BMP at either cut stays whole instead of reaching the model as half of a surrogate pair, and a message that fits in 1,500 characters is no longer shortened with a marker claiming characters were left out ([#2546](https://github.com/ThinkFlowLab/FlyBot/issues/2546)). +- A save over a team file that is a link no longer writes through it: the name becomes a regular file of this home's own, the file the link pointed at keeps every byte and its last write time, and the window says so once (`Saved as a separate file; the file the link pointed at was not changed.`) — the count carries the host process's generation, so a restart cannot swallow the first notice, and a signed-in deployment receives it too. +- A Workflow run frozen by a **Stop** whose Bot could not be released keeps the step deadline that retries it when the graph is saved, so an unchanged save from Settings → Workflow graphs no longer takes away the only path out of the lane: the deadline releases again, ends the run as `paused-expired` and starts the task queued behind it. Before this, the save cleared that timer and the run held its `maxConcurrent` slot with nothing left to free it until the owner pressed Stop again ([#2459](https://github.com/ThinkFlowLab/FlyBot/issues/2459)). +- A run frozen by a Stop that could not release its Bot is now named **Paused** wherever it is read: the stage strip says `Paused` instead of the `Pause` action's name, and the Runs tab keeps the run's `paused` flag instead of drawing the frozen run as `Running` while it hands nothing on. +- A workflow node prompt, the task brief handed to a run, and the reply a step hands on now stop on their character bound without splitting the character there: the cut counts code points like a task title already did, so a prompt or reply that ends in an emoji or another character outside the BMP no longer carries half of it as a replacement character. + ## [0.2.23] - 2026-11-05 ### Added @@ -1187,7 +1240,8 @@ If you used the legacy `dsh-bot` package, remove it before you install `ds-bot`. - Only one DSH can change a team at a time; a second DSH on the same DSH home opens it read-only ([Data and backups](ds-bot/README.md#data-and-backups)). - Group chats use many tokens: each member reads the group and answers in turn. -[Unreleased]: https://github.com/ThinkFlowLab/FlyBot/compare/v0.2.23...HEAD +[Unreleased]: https://github.com/ThinkFlowLab/FlyBot/compare/v0.2.24...HEAD +[0.2.24]: https://github.com/ThinkFlowLab/FlyBot/compare/v0.2.23...v0.2.24 [0.2.23]: https://github.com/ThinkFlowLab/FlyBot/compare/v0.2.22...v0.2.23 [0.2.22]: https://github.com/ThinkFlowLab/FlyBot/compare/v0.2.21...v0.2.22 [0.2.21]: https://github.com/ThinkFlowLab/FlyBot/compare/v0.2.20...v0.2.21 diff --git a/changelog.d/1605.fixed.md b/changelog.d/1605.fixed.md deleted file mode 100644 index 71e620d24..000000000 --- a/changelog.d/1605.fixed.md +++ /dev/null @@ -1 +0,0 @@ -An open face-to-face room a home is a member of no longer disappears from that home's sidebar row list: a stored `hidden` flag is cleared by the room's open snapshot, and the sidebar's past-room and hidden-row filters never drop an open face room. diff --git a/changelog.d/1668-reroute-source-log.fixed.md b/changelog.d/1668-reroute-source-log.fixed.md deleted file mode 100644 index 4066f5360..000000000 --- a/changelog.d/1668-reroute-source-log.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A workflow card re-matched into another workflow now leaves one `Task re-matched · → ` line on the source graph's own log, so the graph that lost the card says where it went instead of the card silently vanishing ([#1668](https://github.com/ThinkFlowLab/FlyBot/issues/1668)). diff --git a/changelog.d/2305-projects-readonly-writes.fixed.md b/changelog.d/2305-projects-readonly-writes.fixed.md deleted file mode 100644 index 33eef2433..000000000 --- a/changelog.d/2305-projects-readonly-writes.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A read-only window's Settings → **Projects** page now draws no write the host would refuse: no name field, no **New Project**, no **Bind to {name}** choice on a Project row and no **Unbind** on a Project or on a binding, because `project-create` and `project-bind` are writes a reading window is refused. **Open board**, the Project rows with their names, working folders and members stay readable, and a writable window draws exactly the tree it drew before. ([#2305](https://github.com/ThinkFlowLab/FlyBot/issues/2305)) diff --git a/changelog.d/2306-project-board-readonly.fixed.md b/changelog.d/2306-project-board-readonly.fixed.md deleted file mode 100644 index 5d5166a14..000000000 --- a/changelog.d/2306-project-board-readonly.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A read-only window's Project board now draws no settings write the host would refuse: opening **Project settings** shows the host's own read-only sentence and **Back to board** instead of **Bind**, **Unbind**, the digest **Save** and **Save memory**, because `project-bind`, `project-assistant-owner` and `project-memory-write` are writes a reading window is refused. The board, its rows, the **Members** panel and the record stay readable, and a writable window draws the panel exactly as before. ([#2306](https://github.com/ThinkFlowLab/FlyBot/issues/2306)) diff --git a/changelog.d/2307-create-bot-readonly.fixed.md b/changelog.d/2307-create-bot-readonly.fixed.md deleted file mode 100644 index 86d6dea91..000000000 --- a/changelog.d/2307-create-bot-readonly.fixed.md +++ /dev/null @@ -1 +0,0 @@ -In a read-only window the New-Bot form now draws the host's own read-only sentence where **Create** was, instead of a form whose only answer from the host was `bot/read-only`; a writable window is unchanged ([#2307](https://github.com/ThinkFlowLab/FlyBot/issues/2307)). diff --git a/changelog.d/2422-approval-reason-visible.fixed.md b/changelog.d/2422-approval-reason-visible.fixed.md deleted file mode 100644 index 5a3c8b0a4..000000000 --- a/changelog.d/2422-approval-reason-visible.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A held message now says why it is waiting: the host's reason is drawn under the sender line on the session dock's approval card and on a held reply's own bubble in a chat, instead of living only in a hover title on the card and nowhere at all on the bubble. The visible line stops at 200 code points with an ellipsis and the whole sentence stays in the title, so a long reason is readable without hiding its end, and a reason that is empty or only whitespace draws no line at all ([#2422](https://github.com/ThinkFlowLab/FlyBot/issues/2422)). diff --git a/changelog.d/2428-linked-state-unreadable.fixed.md b/changelog.d/2428-linked-state-unreadable.fixed.md deleted file mode 100644 index 241f57e5d..000000000 --- a/changelog.d/2428-linked-state-unreadable.fixed.md +++ /dev/null @@ -1 +0,0 @@ -The diagnostics report's state line no longer promises a read it could not make: a `state.json` that is a link to a plain file this host cannot read now keeps the same sentence as a link to a folder (`not a plain file (nothing is read or written)`), instead of saying the store reads the team file through the link directly above a `Read-only` row that reports that read failing with `EACCES`. The target's read permission is asked with `access()`, which opens nothing and reads no byte ([#2428](https://github.com/ThinkFlowLab/FlyBot/issues/2428)). diff --git a/changelog.d/2430-tree-retired.fixed.md b/changelog.d/2430-tree-retired.fixed.md deleted file mode 100644 index e06a3d4c5..000000000 --- a/changelog.d/2430-tree-retired.fixed.md +++ /dev/null @@ -1 +0,0 @@ -The tree model now treats a Bot retired with `archive_bot` as out of the tree everywhere: it no longer occupies its parent's `maxChildren` slot, and its children move up to its own parent instead of being stranded under a Bot that cannot be messaged ([#2430](https://github.com/ThinkFlowLab/FlyBot/issues/2430)). diff --git a/changelog.d/2431-wire-hit-targets.fixed.md b/changelog.d/2431-wire-hit-targets.fixed.md deleted file mode 100644 index a623c5376..000000000 --- a/changelog.d/2431-wire-hit-targets.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A workflow's read-only run flowchart now names each wire for a reader and gives every route a 10px hit target of its own: pointing at one wire marks it and dims the rest, and the plane still writes nothing ([#2431](https://github.com/ThinkFlowLab/FlyBot/issues/2431)). diff --git a/changelog.d/2434-state-backups.added.md b/changelog.d/2434-state-backups.added.md deleted file mode 100644 index b208ee664..000000000 --- a/changelog.d/2434-state-backups.added.md +++ /dev/null @@ -1 +0,0 @@ -The diagnostics report now lists the backups the store leaves beside the team file — `state.json.v1` and the `state.json.broken-` copies — with their size and age, newest three broken copies plus a count of the rest, or `state backups: none`; a backup this host cannot read is named with its reason, and no backup is ever opened ([#2434](https://github.com/ThinkFlowLab/FlyBot/issues/2434)). diff --git a/changelog.d/2446-sharing-read-access.fixed.md b/changelog.d/2446-sharing-read-access.fixed.md deleted file mode 100644 index d1ee02db3..000000000 --- a/changelog.d/2446-sharing-read-access.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A Bot's Sharing card in a read-only window keeps **People with access** (who has this Bot, and its Auto-send state) and drops only its writes — no Revoke, no invite, no Share with a friend ([#2446](https://github.com/ThinkFlowLab/FlyBot/issues/2446)). diff --git a/changelog.d/2447-room-share-braces.fixed.md b/changelog.d/2447-room-share-braces.fixed.md deleted file mode 100644 index 323fb306c..000000000 --- a/changelog.d/2447-room-share-braces.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fixed a room-share envelope being dropped when a chat line's own text carried one unbalanced brace, which lost the sent line and the join history copied into a `join` envelope ([#2447](https://github.com/ThinkFlowLab/FlyBot/issues/2447)). diff --git a/changelog.d/2450-archived-retired-refresh.fixed.md b/changelog.d/2450-archived-retired-refresh.fixed.md deleted file mode 100644 index 2683c9b4c..000000000 --- a/changelog.d/2450-archived-retired-refresh.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A Bot retired with `archive_bot` now appears in the sidebar's Archived section at once, instead of up to one 10 s roster poll later ([#2450](https://github.com/ThinkFlowLab/FlyBot/issues/2450)). diff --git a/changelog.d/2452-workflow-stopped-run-deadline.fixed.md b/changelog.d/2452-workflow-stopped-run-deadline.fixed.md deleted file mode 100644 index 147749ecf..000000000 --- a/changelog.d/2452-workflow-stopped-run-deadline.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A Workflow run frozen by a **Stop** whose Bot could not be released no longer holds its lane slot forever: the step deadline it was already counting now retries the release and ends the run as `paused-expired`, freeing the slot, and re-arms itself while the Bot still will not go. Before this, the deadline was consumed by the paused run and nothing ran again, so the workflow stayed at its `maxConcurrent` limit until the owner pressed Stop a second time ([#2428](https://github.com/ThinkFlowLab/FlyBot/issues/2452)). diff --git a/changelog.d/2461-project-state-unreadable.fixed.md b/changelog.d/2461-project-state-unreadable.fixed.md deleted file mode 100644 index 67cdf739a..000000000 --- a/changelog.d/2461-project-state-unreadable.fixed.md +++ /dev/null @@ -1 +0,0 @@ -`project_state` no longer reports a Project State file it cannot read as if the folder held none: a `PROJECT.md` that is a folder, or a file the process may not read, now answers `unreadable: PROJECT.md ()` beside the rows that could be read instead of the listing answering `no Project State files in this folder`, which said there was nothing to read while something was ([#2461](https://github.com/ThinkFlowLab/FlyBot/issues/2461)). diff --git a/changelog.d/2468.added.md b/changelog.d/2468.added.md deleted file mode 100644 index ada80ee86..000000000 --- a/changelog.d/2468.added.md +++ /dev/null @@ -1 +0,0 @@ -A workflow assignment resolves its brief from the task card, so re-dispatching the same card to another lane keeps the same facts and records one handoff line. diff --git a/changelog.d/2474-settings-pages-readonly.fixed.md b/changelog.d/2474-settings-pages-readonly.fixed.md deleted file mode 100644 index 7b68655fc..000000000 --- a/changelog.d/2474-settings-pages-readonly.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A read-only window no longer draws the write controls on the seven Settings pages that still had them: **General** (theme, accent and the notification switches), **Bots** (both Main Bot choices and the animation picker), a Bot's own settings, a group chat's settings, **Connectors**, **Capabilities** and **Secrets**. Each page now states its facts as plain text — the theme and accent in use, who holds the Main Bot role, the animation setting, a Bot's role, model, folder and instructions, a group's members and notice, each connector's state, each capability and each stored key with who may use it — because the host refuses every one of those writes with `bot/read-only`. **New Bot** stays as an entry, since the form behind it already explains the lock, and a writable window is unchanged. ([#2474](https://github.com/ThinkFlowLab/FlyBot/issues/2474)) diff --git a/changelog.d/2475-brief-cache.fixed.md b/changelog.d/2475-brief-cache.fixed.md deleted file mode 100644 index bd83a743b..000000000 --- a/changelog.d/2475-brief-cache.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A workflow assignment's brief is now the caller's to clear. An explicit `brief` replaces the facts cached on the lane, and `brief: ''` clears them instead of falling back to the old text; deleting a workflow drops the facts it cached, so a later assignment carries nothing from it and records no handoff naming a lane that no longer exists ([#2475](https://github.com/ThinkFlowLab/FlyBot/issues/2475)). diff --git a/changelog.d/2480-reroute-bot-source-log.fixed.md b/changelog.d/2480-reroute-bot-source-log.fixed.md deleted file mode 100644 index 531d69d8b..000000000 --- a/changelog.d/2480-reroute-bot-source-log.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A workflow card handed to a Bot now leaves the same `Task re-matched · → ` line on the source graph's own log that a hand-over to another workflow already wrote, and a hand-over into a workflow that is already running the card writes it too — the graph that lost the card says where it went instead of the card silently vanishing ([#2480](https://github.com/ThinkFlowLab/FlyBot/issues/2480)). diff --git a/changelog.d/2482-face-room-hide-persist.fixed.md b/changelog.d/2482-face-room-hide-persist.fixed.md deleted file mode 100644 index fddd4f762..000000000 --- a/changelog.d/2482-face-room-hide-persist.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A face-to-face room's **Hide from sidebar** switch now holds: the hide a person chose survives the poll that re-reads the room every few seconds (and turning it back off survives too), while a `hidden` an older state left behind is still cleared by the room's open snapshot, as #1605 asked ([#2482](https://github.com/ThinkFlowLab/FlyBot/issues/2482)). diff --git a/changelog.d/2485-bot-assign-source-log.fixed.md b/changelog.d/2485-bot-assign-source-log.fixed.md deleted file mode 100644 index 4d7e88410..000000000 --- a/changelog.d/2485-bot-assign-source-log.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A workflow card a lane is holding can now be handed straight to a Bot from the panel, and the lane that lost it writes the same `Task re-matched · → ` line a hand-over to another lane already wrote — the source graph no longer drops the card silently when the destination is a Bot ([#2485](https://github.com/ThinkFlowLab/FlyBot/issues/2485)). diff --git a/changelog.d/2486-ingest-brief-authority.fixed.md b/changelog.d/2486-ingest-brief-authority.fixed.md deleted file mode 100644 index a256c0665..000000000 --- a/changelog.d/2486-ingest-brief-authority.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A workflow card whose facts were cleared no longer brings them back when it is re-matched into another lane: the re-match path now passes the card's current brief — its text when it holds facts, an explicit empty one when it does not — so the lane cache can no longer resurrect instructions the author removed ([#2486](https://github.com/ThinkFlowLab/FlyBot/issues/2486)). diff --git a/changelog.d/2489-settings-projects-empty-copy.fixed.md b/changelog.d/2489-settings-projects-empty-copy.fixed.md deleted file mode 100644 index 6e1e9cf1f..000000000 --- a/changelog.d/2489-settings-projects-empty-copy.fixed.md +++ /dev/null @@ -1 +0,0 @@ -In a window that holds the team read-only, Settings → Projects no longer tells the reader to create a Project: with no Project the empty state reads `No Project yet.` instead of `No Project yet — create one.`, which pointed at the **New Project** section the same page had already hidden ([#2489](https://github.com/ThinkFlowLab/FlyBot/issues/2489)). A writable window and the Project board's own empty state keep the shared sentence. diff --git a/changelog.d/2492-face-room-readonly-facts.fixed.md b/changelog.d/2492-face-room-readonly-facts.fixed.md deleted file mode 100644 index 24a232131..000000000 --- a/changelog.d/2492-face-room-readonly-facts.fixed.md +++ /dev/null @@ -1 +0,0 @@ -In a read-only window a face-to-face group's Settings page names each person's Bots under them, and states who answers and the room's working folder, instead of drawing every person as **Human** while its own header counted the Bots. diff --git a/changelog.d/2495-workflow-panel-assign-brief.fixed.md b/changelog.d/2495-workflow-panel-assign-brief.fixed.md deleted file mode 100644 index d0de56845..000000000 --- a/changelog.d/2495-workflow-panel-assign-brief.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Handing a card to a Workflow from the panel now carries the card's own facts into the run instead of dropping them: the assign body sends the card's `brief` verbatim, and an explicit empty one when the card holds none, so a brief cached by an earlier call cannot come back ([#2495](https://github.com/ThinkFlowLab/FlyBot/issues/2495)). diff --git a/changelog.d/2496-group-create-readonly.fixed.md b/changelog.d/2496-group-create-readonly.fixed.md deleted file mode 100644 index 96a28602a..000000000 --- a/changelog.d/2496-group-create-readonly.fixed.md +++ /dev/null @@ -1 +0,0 @@ -In a read-only window neither group-creation form now draws a **Create** control the host would refuse: **Settings → Group chats** and the `New…` menu's **New group chat** keep their pickers as a preview and show the host's own read-only sentence where **Create group chat** was, so no press reaches the host for an answer that could only be `bot/read-only`; a writable window draws both forms exactly as before ([#2496](https://github.com/ThinkFlowLab/FlyBot/issues/2496)). diff --git a/changelog.d/2499-composer-send-readonly.fixed.md b/changelog.d/2499-composer-send-readonly.fixed.md deleted file mode 100644 index 5f1c7de3b..000000000 --- a/changelog.d/2499-composer-send-readonly.fixed.md +++ /dev/null @@ -1 +0,0 @@ -In a read-only window the new-chat composer no longer writes: pressing **Send** or Enter sends nothing, several picks create no room, and a picker row pressed with a line typed opens the session without sending that line; the host's own read-only sentence stands where the **Send** button was. A writable window is unchanged ([#2499](https://github.com/ThinkFlowLab/FlyBot/issues/2499)). diff --git a/changelog.d/2502-readonly-reload.added.md b/changelog.d/2502-readonly-reload.added.md deleted file mode 100644 index 816404eb1..000000000 --- a/changelog.d/2502-readonly-reload.added.md +++ /dev/null @@ -1 +0,0 @@ -The Settings header, the details drawer, the Inbox and the Memory panel now draw a **Reload** beside the host's read-only sentence, so a window that was told to reload can do it where it stands instead of closing the panel and reaching for the sidebar ([#2502](https://github.com/ThinkFlowLab/FlyBot/issues/2502)). diff --git a/changelog.d/2503-composer-group-admin-locked.fixed.md b/changelog.d/2503-composer-group-admin-locked.fixed.md deleted file mode 100644 index c973c4fae..000000000 --- a/changelog.d/2503-composer-group-admin-locked.fixed.md +++ /dev/null @@ -1 +0,0 @@ -In a read-only window a new group chat that already picked its admin no longer draws a **Send** arrow that does nothing: the composer draws no send control at all, and the host's own read-only sentence stays once, on the To: line where **Create group chat** would be. A writable window is unchanged ([#2503](https://github.com/ThinkFlowLab/FlyBot/issues/2503)). diff --git a/changelog.d/2506-newchat-add-agent-locked.fixed.md b/changelog.d/2506-newchat-add-agent-locked.fixed.md deleted file mode 100644 index c222db9f7..000000000 --- a/changelog.d/2506-newchat-add-agent-locked.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A read-only window's New… menu no longer offers **Add coding agent**: `addAgent` is a write the host answers `bot/read-only`, so the row is not drawn at all while the other rows stay as a preview, and a writable window keeps the row ([#2506](https://github.com/ThinkFlowLab/FlyBot/issues/2506)). diff --git a/changelog.d/2507-run-now.added.md b/changelog.d/2507-run-now.added.md deleted file mode 100644 index f91c5f6d2..000000000 --- a/changelog.d/2507-run-now.added.md +++ /dev/null @@ -1 +0,0 @@ -A scheduled task can be run once from its own row even when its last run went fine: **Run now** joins **Retry**, a run in flight or a paused task offers neither, and running a task now leaves its next DSH run where it was ([#2507](https://github.com/ThinkFlowLab/FlyBot/issues/2507)). diff --git a/changelog.d/2512-face-lead-readonly.fixed.md b/changelog.d/2512-face-lead-readonly.fixed.md deleted file mode 100644 index c721a99cd..000000000 --- a/changelog.d/2512-face-lead-readonly.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A read-only window's face-to-face room lead card no longer offers **Change**: `social/face-lead` is a write the host answers `bot/read-only`, so the card draws the lead's name and its own sentence only — no picker, no **Use the default lead**, and not the "Only the person who created this room can change it." hint — while a writable window keeps all of them. diff --git a/changelog.d/2515-inbox-workflow-open-page.fixed.md b/changelog.d/2515-inbox-workflow-open-page.fixed.md deleted file mode 100644 index 38e39796d..000000000 --- a/changelog.d/2515-inbox-workflow-open-page.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A failed workflow run's Open in the Inbox now lands on Settings → Workflows: the row asked for a page named `workflow`, which is not a Settings key, so the dialog quietly fell back to General. The test renders the Settings dialog and reads the page it shows instead of trusting the name the call carried. diff --git a/changelog.d/2521-overlay-readonly-reload.fixed.md b/changelog.d/2521-overlay-readonly-reload.fixed.md deleted file mode 100644 index 1e8beb2d2..000000000 --- a/changelog.d/2521-overlay-readonly-reload.fixed.md +++ /dev/null @@ -1 +0,0 @@ -In a read-only window the Board, the New chat pane and the Project settings panel now draw the host's sentence with a **Reload** beside it: each is a full-screen overlay that covers the sidebar's own entry, so the reader had to close it to answer the sentence at all. The entry runs the client's own team read (never a page reload), one per overlay, and a writable window is unchanged. diff --git a/changelog.d/2524-workflows-duplicate-sentence.fixed.md b/changelog.d/2524-workflows-duplicate-sentence.fixed.md deleted file mode 100644 index 98e258849..000000000 --- a/changelog.d/2524-workflows-duplicate-sentence.fixed.md +++ /dev/null @@ -1 +0,0 @@ -In a read-only window, **Settings → Workflows** no longer prints the host's read-only sentence twice: with a workflow graph open, the graph's edit bar drew a second copy of the sentence the Settings header already carries, under its own `role="status"`, so the same words sat on one screen twice and a screen reader announced them twice. The edit bar now shows **Back** only, the header's **Reload** stays the way out, and a writable window keeps **Edit** exactly as it was ([#2524](https://github.com/ThinkFlowLab/FlyBot/issues/2524)). diff --git a/changelog.d/2528-plain-group-readonly-facts.fixed.md b/changelog.d/2528-plain-group-readonly-facts.fixed.md deleted file mode 100644 index eba6c938a..000000000 --- a/changelog.d/2528-plain-group-readonly-facts.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A read-only window's plain-group Settings page states who answers and the group's working folder as text, the way a face-to-face room's page already did ([#2528](https://github.com/ThinkFlowLab/FlyBot/issues/2528)). diff --git a/changelog.d/2534-inbox-stale-failed-card.fixed.md b/changelog.d/2534-inbox-stale-failed-card.fixed.md deleted file mode 100644 index 8184bbe76..000000000 --- a/changelog.d/2534-inbox-stale-failed-card.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A workflow task that failed and was then run again to a green finish no longer keeps its **Failed** card in the Inbox, or its place in the sidebar's *Needs you* count, for the whole seven-day window: the success retires the card ([#2534](https://github.com/ThinkFlowLab/FlyBot/issues/2534)). diff --git a/changelog.d/2539-otel-tool-span-key.fixed.md b/changelog.d/2539-otel-tool-span-key.fixed.md deleted file mode 100644 index 46ab91f29..000000000 --- a/changelog.d/2539-otel-tool-span-key.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A workflow's tool calls are exported one span each even when two turns number a call the same way: the OTLP export pairs a call with its own turn, so no tool span goes missing and none hangs under another turn. diff --git a/changelog.d/2541-inbox-back-to-queue.fixed.md b/changelog.d/2541-inbox-back-to-queue.fixed.md deleted file mode 100644 index 518821a47..000000000 --- a/changelog.d/2541-inbox-back-to-queue.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Closing the Workflow graphs page that an Inbox card opened now brings the Inbox back, instead of leaving you in the chat under it; a Settings page opened anywhere else still closes to the view beneath it ([#2541](https://github.com/ThinkFlowLab/FlyBot/issues/2541)). diff --git a/changelog.d/2543-timeline-busy-window.fixed.md b/changelog.d/2543-timeline-busy-window.fixed.md deleted file mode 100644 index 5eed6b36f..000000000 --- a/changelog.d/2543-timeline-busy-window.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A Bot that was busy across the whole window is no longer left out of the team report as if it had done nothing: a turn that began before the window now reports the share of the window it worked, instead of reading as a Bot with no turns. diff --git a/changelog.d/2546-steward-shorten-chars.fixed.md b/changelog.d/2546-steward-shorten-chars.fixed.md deleted file mode 100644 index f718ecf9d..000000000 --- a/changelog.d/2546-steward-shorten-chars.fixed.md +++ /dev/null @@ -1 +0,0 @@ -The long-message view the context steward reads is now measured and cut in characters, not UTF-16 units: an emoji or any other character outside the BMP at either cut stays whole instead of reaching the model as half of a surrogate pair, and a message that fits in 1,500 characters is no longer shortened with a marker claiming characters were left out ([#2546](https://github.com/ThinkFlowLab/FlyBot/issues/2546)). diff --git a/changelog.d/p556-linked-state-save-notice.fixed.md b/changelog.d/p556-linked-state-save-notice.fixed.md deleted file mode 100644 index 0cd87eba4..000000000 --- a/changelog.d/p556-linked-state-save-notice.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A save over a team file that is a link no longer writes through it: the name becomes a regular file of this home's own, the file the link pointed at keeps every byte and its last write time, and the window says so once (`Saved as a separate file; the file the link pointed at was not changed.`) — the count carries the host process's generation, so a restart cannot swallow the first notice, and a signed-in deployment receives it too. diff --git a/changelog.d/p560-saved-graph-keeps-stop-deadline.fixed.md b/changelog.d/p560-saved-graph-keeps-stop-deadline.fixed.md deleted file mode 100644 index beee7757b..000000000 --- a/changelog.d/p560-saved-graph-keeps-stop-deadline.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A Workflow run frozen by a **Stop** whose Bot could not be released keeps the step deadline that retries it when the graph is saved, so an unchanged save from Settings → Workflow graphs no longer takes away the only path out of the lane: the deadline releases again, ends the run as `paused-expired` and starts the task queued behind it. Before this, the save cleared that timer and the run held its `maxConcurrent` slot with nothing left to free it until the owner pressed Stop again ([#2459](https://github.com/ThinkFlowLab/FlyBot/issues/2459)). diff --git a/changelog.d/workflow-paused-run-label.fixed.md b/changelog.d/workflow-paused-run-label.fixed.md deleted file mode 100644 index ed9843f94..000000000 --- a/changelog.d/workflow-paused-run-label.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A run frozen by a Stop that could not release its Bot is now named **Paused** wherever it is read: the stage strip says `Paused` instead of the `Pause` action's name, and the Runs tab keeps the run's `paused` flag instead of drawing the frozen run as `Running` while it hands nothing on. diff --git a/changelog.d/workflow-prompt-codepoint-cut.fixed.md b/changelog.d/workflow-prompt-codepoint-cut.fixed.md deleted file mode 100644 index 93e4ab085..000000000 --- a/changelog.d/workflow-prompt-codepoint-cut.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A workflow node prompt, the task brief handed to a run, and the reply a step hands on now stop on their character bound without splitting the character there: the cut counts code points like a task title already did, so a prompt or reply that ends in an emoji or another character outside the BMP no longer carries half of it as a replacement character. diff --git a/core/package-lock.json b/core/package-lock.json index 4f373c505..add260fb5 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -1,12 +1,12 @@ { "name": "ds-bot", - "version": "0.2.23", + "version": "0.2.24", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ds-bot", - "version": "0.2.23", + "version": "0.2.24", "license": "Apache-2.0", "dependencies": { "@larksuiteoapi/node-sdk": "1.76.0" diff --git a/core/package.json b/core/package.json index 78d63b890..1338ebb45 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "ds-bot", - "version": "0.2.23", + "version": "0.2.24", "description": "DS Bot: a team of long-lived Bots for DeepSeek Harness, with Main Bots, Bot-to-Bot messages and group chats", "keywords": [ "dsh-plugin", diff --git a/patches/ds-bot/0007-version-and-tooling.patch b/patches/ds-bot/0007-version-and-tooling.patch index 585c13455..e762edc0e 100644 --- a/patches/ds-bot/0007-version-and-tooling.patch +++ b/patches/ds-bot/0007-version-and-tooling.patch @@ -68,14 +68,14 @@ diff --git a/package-lock.json b/package-lock.json { "name": "ds-bot", - "version": "0.1.5", -+ "version": "0.2.23", ++ "version": "0.2.24", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ds-bot", - "version": "0.1.5", -+ "version": "0.2.23", ++ "version": "0.2.24", "license": "Apache-2.0", + "dependencies": { + "@larksuiteoapi/node-sdk": "1.76.0" @@ -706,7 +706,7 @@ diff --git a/package.json b/package.json { "name": "ds-bot", - "version": "0.1.5", -+ "version": "0.2.23", ++ "version": "0.2.24", "description": "DS Bot: a team of long-lived Bots for DeepSeek Harness, with Main Bots, Bot-to-Bot messages and group chats", "keywords": [ "dsh-plugin",