@astralyn/pi 1.4.8 → 1.4.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +68 -0
- package/dist/bundle/chunks/{chunk-I2COK45I.js → chunk-6GTUUUCJ.js} +128 -128
- package/dist/bundle/chunks/{chunk-PU2IWWXV.js → chunk-DLVLAQEG.js} +1 -1
- package/dist/bundle/chunks/{chunk-MG5XDTXV.js → chunk-LPF7HQ3S.js} +1 -1
- package/dist/bundle/chunks/{chunk-FODCTZXW.js → chunk-MF3T3ETJ.js} +4 -4
- package/dist/bundle/chunks/{chunk-RO2VH6UZ.js → chunk-R267VV5T.js} +1 -1
- package/dist/bundle/chunks/{chunk-RLNMABLM.js → chunk-RVKT7OUB.js} +1 -1
- package/dist/bundle/chunks/{chunk-5VIOGR76.js → chunk-UCH27AVQ.js} +1 -1
- package/dist/bundle/chunks/{cli-MEL7SGJD.js → cli-MBFCFGI2.js} +1 -1
- package/dist/bundle/chunks/{execute-4CWRNHPO.js → execute-FQKRO4XJ.js} +1 -1
- package/dist/bundle/chunks/{runtime-R3X67XMR.js → runtime-3RPOJS5T.js} +1 -1
- package/dist/bundle/chunks/{virtual-modules-BBLD7YLS.js → virtual-modules-6IJ6V2CG.js} +1 -1
- package/dist/bundle/cli.js +1 -1
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/rpc-entry.js +1 -1
- package/dist/core/agent-session.d.ts +34 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +99 -2
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/isolated-session.d.ts +7 -2
- package/dist/core/isolated-session.d.ts.map +1 -1
- package/dist/core/isolated-session.js +7 -3
- package/dist/core/isolated-session.js.map +1 -1
- package/dist/core/session-manager.d.ts +17 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +29 -0
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/tasks/delivery.d.ts +42 -7
- package/dist/core/tasks/delivery.d.ts.map +1 -1
- package/dist/core/tasks/delivery.js +129 -15
- package/dist/core/tasks/delivery.js.map +1 -1
- package/dist/core/tasks/execution.d.ts +27 -14
- package/dist/core/tasks/execution.d.ts.map +1 -1
- package/dist/core/tasks/execution.js +90 -86
- package/dist/core/tasks/execution.js.map +1 -1
- package/dist/core/tasks/limits.d.ts +13 -1
- package/dist/core/tasks/limits.d.ts.map +1 -1
- package/dist/core/tasks/limits.js +14 -1
- package/dist/core/tasks/limits.js.map +1 -1
- package/dist/core/tasks/output.d.ts +9 -1
- package/dist/core/tasks/output.d.ts.map +1 -1
- package/dist/core/tasks/output.js +23 -10
- package/dist/core/tasks/output.js.map +1 -1
- package/dist/core/tasks/presentation.d.ts +1 -1
- package/dist/core/tasks/presentation.d.ts.map +1 -1
- package/dist/core/tasks/presentation.js +6 -4
- package/dist/core/tasks/presentation.js.map +1 -1
- package/dist/core/tasks/record.d.ts +41 -29
- package/dist/core/tasks/record.d.ts.map +1 -1
- package/dist/core/tasks/record.js +82 -37
- package/dist/core/tasks/record.js.map +1 -1
- package/dist/core/tasks/reminder.js +2 -2
- package/dist/core/tasks/reminder.js.map +1 -1
- package/dist/core/tasks/runtime.d.ts +17 -14
- package/dist/core/tasks/runtime.d.ts.map +1 -1
- package/dist/core/tasks/runtime.js +68 -116
- package/dist/core/tasks/runtime.js.map +1 -1
- package/dist/core/tasks/scheduler.d.ts +3 -1
- package/dist/core/tasks/scheduler.d.ts.map +1 -1
- package/dist/core/tasks/scheduler.js +16 -12
- package/dist/core/tasks/scheduler.js.map +1 -1
- package/dist/core/tasks/session.d.ts +24 -3
- package/dist/core/tasks/session.d.ts.map +1 -1
- package/dist/core/tasks/session.js +73 -9
- package/dist/core/tasks/session.js.map +1 -1
- package/dist/core/tasks/store.d.ts +17 -4
- package/dist/core/tasks/store.d.ts.map +1 -1
- package/dist/core/tasks/store.js +45 -48
- package/dist/core/tasks/store.js.map +1 -1
- package/dist/core/tasks/types.d.ts +72 -29
- package/dist/core/tasks/types.d.ts.map +1 -1
- package/dist/core/tasks/types.js +7 -0
- package/dist/core/tasks/types.js.map +1 -1
- package/dist/core/tasks/wait.d.ts +19 -0
- package/dist/core/tasks/wait.d.ts.map +1 -0
- package/dist/core/tasks/wait.js +45 -0
- package/dist/core/tasks/wait.js.map +1 -0
- package/dist/core/tools/shell-execution.d.ts.map +1 -1
- package/dist/core/tools/shell-execution.js +2 -1
- package/dist/core/tools/shell-execution.js.map +1 -1
- package/dist/core/tools/shell-tool.d.ts.map +1 -1
- package/dist/core/tools/shell-tool.js +20 -13
- package/dist/core/tools/shell-tool.js.map +1 -1
- package/dist/extensions/agent/activity-lines.d.ts +10 -0
- package/dist/extensions/agent/activity-lines.d.ts.map +1 -0
- package/dist/extensions/agent/activity-lines.js +76 -0
- package/dist/extensions/agent/activity-lines.js.map +1 -0
- package/dist/extensions/agent/activity.d.ts +25 -4
- package/dist/extensions/agent/activity.d.ts.map +1 -1
- package/dist/extensions/agent/activity.js +76 -21
- package/dist/extensions/agent/activity.js.map +1 -1
- package/dist/extensions/agent/artifacts.d.ts +15 -0
- package/dist/extensions/agent/artifacts.d.ts.map +1 -0
- package/dist/extensions/agent/artifacts.js +44 -0
- package/dist/extensions/agent/artifacts.js.map +1 -0
- package/dist/extensions/agent/progress.d.ts +30 -4
- package/dist/extensions/agent/progress.d.ts.map +1 -1
- package/dist/extensions/agent/progress.js +84 -11
- package/dist/extensions/agent/progress.js.map +1 -1
- package/dist/extensions/agent/render.d.ts.map +1 -1
- package/dist/extensions/agent/render.js +8 -24
- package/dist/extensions/agent/render.js.map +1 -1
- package/dist/extensions/agent/report.d.ts +11 -3
- package/dist/extensions/agent/report.d.ts.map +1 -1
- package/dist/extensions/agent/report.js +32 -7
- package/dist/extensions/agent/report.js.map +1 -1
- package/dist/extensions/agent/tool.d.ts.map +1 -1
- package/dist/extensions/agent/tool.js +20 -5
- package/dist/extensions/agent/tool.js.map +1 -1
- package/dist/extensions/agent/types.d.ts +2 -0
- package/dist/extensions/agent/types.d.ts.map +1 -1
- package/dist/extensions/agent/types.js.map +1 -1
- package/dist/extensions/agent/worker.d.ts +7 -0
- package/dist/extensions/agent/worker.d.ts.map +1 -1
- package/dist/extensions/agent/worker.js +9 -3
- package/dist/extensions/agent/worker.js.map +1 -1
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js +2 -0
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/search/index.d.ts.map +1 -1
- package/dist/extensions/search/index.js +6 -7
- package/dist/extensions/search/index.js.map +1 -1
- package/dist/extensions/shell-paths/index.d.ts +8 -0
- package/dist/extensions/shell-paths/index.d.ts.map +1 -0
- package/dist/extensions/shell-paths/index.js +74 -0
- package/dist/extensions/shell-paths/index.js.map +1 -0
- package/dist/extensions/tasks/tool/actions.d.ts.map +1 -1
- package/dist/extensions/tasks/tool/actions.js +15 -11
- package/dist/extensions/tasks/tool/actions.js.map +1 -1
- package/dist/extensions/tasks/tool/schema.d.ts +1 -1
- package/dist/extensions/tasks/tool/schema.d.ts.map +1 -1
- package/dist/extensions/tasks/tool/schema.js +5 -5
- package/dist/extensions/tasks/tool/schema.js.map +1 -1
- package/dist/extensions/tasks/tool/types.d.ts +2 -0
- package/dist/extensions/tasks/tool/types.d.ts.map +1 -1
- package/dist/extensions/tasks/tool/types.js.map +1 -1
- package/dist/extensions/tasks/tool.d.ts.map +1 -1
- package/dist/extensions/tasks/tool.js +3 -2
- package/dist/extensions/tasks/tool.js.map +1 -1
- package/dist/extensions/tasks/ui/completion-render.d.ts.map +1 -1
- package/dist/extensions/tasks/ui/completion-render.js +2 -2
- package/dist/extensions/tasks/ui/completion-render.js.map +1 -1
- package/dist/extensions/tasks/ui/footer.d.ts +37 -0
- package/dist/extensions/tasks/ui/footer.d.ts.map +1 -0
- package/dist/extensions/tasks/ui/footer.js +129 -0
- package/dist/extensions/tasks/ui/footer.js.map +1 -0
- package/dist/extensions/tasks/ui/frame.d.ts +36 -0
- package/dist/extensions/tasks/ui/frame.d.ts.map +1 -0
- package/dist/extensions/tasks/ui/frame.js +33 -0
- package/dist/extensions/tasks/ui/frame.js.map +1 -0
- package/dist/extensions/tasks/ui/help.d.ts +6 -0
- package/dist/extensions/tasks/ui/help.d.ts.map +1 -0
- package/dist/extensions/tasks/ui/help.js +53 -0
- package/dist/extensions/tasks/ui/help.js.map +1 -0
- package/dist/extensions/tasks/ui/inspector.d.ts +4 -3
- package/dist/extensions/tasks/ui/inspector.d.ts.map +1 -1
- package/dist/extensions/tasks/ui/inspector.js +25 -6
- package/dist/extensions/tasks/ui/inspector.js.map +1 -1
- package/dist/extensions/tasks/ui/layout.d.ts +15 -18
- package/dist/extensions/tasks/ui/layout.d.ts.map +1 -1
- package/dist/extensions/tasks/ui/layout.js +162 -255
- package/dist/extensions/tasks/ui/layout.js.map +1 -1
- package/dist/extensions/tasks/ui/list.d.ts +3 -1
- package/dist/extensions/tasks/ui/list.d.ts.map +1 -1
- package/dist/extensions/tasks/ui/list.js +19 -14
- package/dist/extensions/tasks/ui/list.js.map +1 -1
- package/dist/extensions/tasks/ui/manager.d.ts +17 -5
- package/dist/extensions/tasks/ui/manager.d.ts.map +1 -1
- package/dist/extensions/tasks/ui/manager.js +147 -90
- package/dist/extensions/tasks/ui/manager.js.map +1 -1
- package/dist/extensions/tasks/ui/model.d.ts +32 -5
- package/dist/extensions/tasks/ui/model.d.ts.map +1 -1
- package/dist/extensions/tasks/ui/model.js +7 -7
- package/dist/extensions/tasks/ui/model.js.map +1 -1
- package/dist/extensions/tasks/ui/panes.d.ts +40 -0
- package/dist/extensions/tasks/ui/panes.d.ts.map +1 -0
- package/dist/extensions/tasks/ui/panes.js +144 -0
- package/dist/extensions/tasks/ui/panes.js.map +1 -0
- package/dist/extensions/tasks/ui/render.d.ts.map +1 -1
- package/dist/extensions/tasks/ui/render.js +11 -7
- package/dist/extensions/tasks/ui/render.js.map +1 -1
- package/dist/extensions/tasks/ui/viewport.d.ts +12 -4
- package/dist/extensions/tasks/ui/viewport.d.ts.map +1 -1
- package/dist/extensions/tasks/ui/viewport.js +23 -7
- package/dist/extensions/tasks/ui/viewport.js.map +1 -1
- package/dist/extensions/tasks/ui/views.d.ts +12 -6
- package/dist/extensions/tasks/ui/views.d.ts.map +1 -1
- package/dist/extensions/tasks/ui/views.js +39 -32
- package/dist/extensions/tasks/ui/views.js.map +1 -1
- package/dist/modes/interactive/chat-viewport.d.ts +5 -2
- package/dist/modes/interactive/chat-viewport.d.ts.map +1 -1
- package/dist/modes/interactive/chat-viewport.js +72 -12
- package/dist/modes/interactive/chat-viewport.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts +11 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +43 -17
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/sticky-user-message.d.ts +23 -0
- package/dist/modes/interactive/components/sticky-user-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/sticky-user-message.js +58 -0
- package/dist/modes/interactive/components/sticky-user-message.js.map +1 -0
- package/dist/modes/interactive/components/user-message.d.ts +9 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +51 -10
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +4 -1
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/tool-view/chat.d.ts +3 -2
- package/dist/modes/interactive/tool-view/chat.d.ts.map +1 -1
- package/dist/modes/interactive/tool-view/chat.js +3 -3
- package/dist/modes/interactive/tool-view/chat.js.map +1 -1
- package/dist/modes/interactive/transcript-layout.d.ts +23 -0
- package/dist/modes/interactive/transcript-layout.d.ts.map +1 -0
- package/dist/modes/interactive/transcript-layout.js +29 -0
- package/dist/modes/interactive/transcript-layout.js.map +1 -0
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +37 -2
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +11 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +48 -0
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +1 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +2 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/docs/bundled/README.md +1 -0
- package/docs/bundled/extensions/agent.md +39 -7
- package/docs/bundled/extensions/shell-paths.md +17 -0
- package/docs/bundled/tasks.md +25 -21
- package/docs/docs.json +4 -0
- package/docs/extensions.md +14 -10
- package/docs/json.md +3 -0
- package/docs/rpc.md +14 -0
- package/docs/sdk.md +11 -1
- package/docs/session-format.md +10 -4
- package/docs/sessions.md +1 -1
- package/docs/usage.md +3 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,74 @@ This file records `@astralyn/pi` releases beginning with the first Fork-owned re
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [1.4.10] - 2026-11-01
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- `AgentSession.waitForQuiescence(signal?)`, `AgentSession.isQuiescent` and a `session_quiescent` session event report when no run, compaction, retry, unsettled background task or pending completion turn remains. Failed deliveries do not count, so the wait cannot deadlock on them.
|
|
12
|
+
- RPC: `get_state` reports `isQuiescent`, and `RpcClient.waitForQuiescence()` and `collectEventsUntilQuiescent()` wait for background completion turns that `waitForIdle()` and `collectEvents()` miss.
|
|
13
|
+
- `AgentSession.acknowledgeTaskDelivery(id)` tells the session that a direct SDK waiter consumed a background result, so the model is not notified about it again.
|
|
14
|
+
- Background outcomes of `TasksContext.execute()` carry `reason: "submitted" | "detached"`, so executors no longer re-derive how their caller was released.
|
|
15
|
+
- `TaskExecution.present` and `ctx.tasks.presentOutput(id, width, theme)` let an executor render its running task's Output in `/tasks` with its own styling. The presenter lives in memory with the running execution: it is never persisted, absent from snapshots and dropped at settlement, and a throwing presenter falls back to the default view.
|
|
16
|
+
- A saved session owns an artifacts directory beside its file (`<name>/` for `<name>.jsonl`). `SessionManager.getArtifactDir()`, also on `ctx.sessionManager`, returns it, or `undefined` for a session that is not persisted. `SessionManager.createAt(path, cwd, options?)` creates a persisted session at an exact path.
|
|
17
|
+
- In a saved session, each Agent keeps its complete report (`report.md`) and its child transcript (`transcript.jsonl`, a Pi session file linked to the main session through `parentSession`) in `<session>/agents/<task-id>/`. The `Full output:` path of an oversized report now stays valid after `pi -c` and Tasks retention. Details of a settled Agent show `Tool calls`, `Edited` (files changed through `edit` and `write`), `Report` and `Transcript`, and the report returned to the model ends with `Edited (edit/write): …` when the Agent changed files.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Print mode and `--mode json` wait for background tasks and the turns that deliver their results before printing the final response and exiting, instead of ending the process (and killing the work) after the prompt's own turn. A stderr line names the tasks being waited for. Ctrl+C (`SIGINT`) now cleans up like `SIGTERM` and exits 130; a second signal exits immediately.
|
|
22
|
+
- `/tasks` panel:
|
|
23
|
+
- On wide terminals the list takes 40% of the width (34–60 columns). Pane titles and the reading or scroll state live in the borders.
|
|
24
|
+
- The inspector opens with the selected task's full title in bold and a `Label · Status · Mode · runtime` line, separated from the content by a rule.
|
|
25
|
+
- Details starts at the task ID instead of repeating source and status, and long values wrap within their column.
|
|
26
|
+
- Output shows an executor's human-readable display in place of its model-facing result when it has one.
|
|
27
|
+
- A settled report opens at its first line instead of its end, keeps the position you scroll to, and shows its scroll range in the bottom border when it overflows.
|
|
28
|
+
- Only a log streams from its file. A report always shows what its executor published, so an oversized Agent report renders as Markdown from its beginning instead of as a tail preview, and Details labels its saved file `Full report`.
|
|
29
|
+
- `/tasks` in a narrow terminal: Escape returns from the inspector to the list and closes the panel only from the list. The footer names the action (`Esc back` or `Esc close`) and drops its lowest-priority hints first.
|
|
30
|
+
- `/tasks` notices appear only when an action did not do what was asked, as a toned warning (`!`) or error (`×`) that clears on the next input or after about four seconds. Successful stop and background requests no longer show a message, and a pending stop confirmation marks its target row with `stop?`.
|
|
31
|
+
- Agent in `/tasks` and the Transcript:
|
|
32
|
+
- A finished Agent's Output shows only its final report, whatever its outcome; its tool calls no longer follow the report.
|
|
33
|
+
- While an Agent runs, Output is a compact list of its tool calls with no heading: one `glyph tool target · duration` row per call with the tool names aligned (up to 8 characters), a `… N earlier tool calls` line for calls no longer retained, and one line holding the first line of a failed call's error. The expanded Transcript row uses the same columns.
|
|
34
|
+
- Paths inside the Agent's working directory appear relative, with forward slashes; paths outside it stay absolute.
|
|
35
|
+
- Tool-call durations read `42ms`, `6.2s`, then `1m 5s`.
|
|
36
|
+
- A running Agent's tool calls are styled in `/tasks` Output as in the Transcript's expanded row (status-colored glyph, tool name, muted target, dim duration, error line), fitted to the pane width, with the running call's elapsed time. Both views share one renderer, so the Transcript's expanded row now also shows a failed call's error line.
|
|
37
|
+
- Tool-call glyphs are the task status markers used elsewhere in `/tasks`: `×` for a failed call and `○` for a cancelled one instead of `✗` and `⊘`, and a running call shows the animated running-task spinner in the accent color instead of a dim `…`, which was also easy to confuse with the earlier-calls line. The plain fallback shows `›` for a running call.
|
|
38
|
+
- Styled rows right-align durations in one column that ends at the longest row, so short and clipped targets no longer leave their durations at different positions.
|
|
39
|
+
- Background-task guidance tells the model to end its turn instead of waiting, because a finished task starts a new turn for it automatically. Agent guidance reserves `background: true` for when there is independent work to do meanwhile and points to the foreground otherwise. Agent and shell handoffs, the post-compaction reminder and the `tasks` prompt snippet no longer suggest `tasks wait`, `tasks` reserves `wait` for when the user asks to block on a task, and an expired wait, including one on a single task, says not to wait again. The default `tasks wait` window grows from 20 seconds to 4 minutes, the longest that keeps the next request inside a five-minute prompt cache; a wait still returns as soon as its task finishes.
|
|
40
|
+
- Background completion cards no longer end with "Preview of the saved result.", and a failed shell task's card and model notification state its error once instead of repeating it at the end of the output.
|
|
41
|
+
- Deleting a session from `/resume` also removes its artifacts directory and its `.tasks-late.jsonl` sidecar, which were previously left behind. The `trash` CLI receives every path in one call. Files that could not be removed are reported.
|
|
42
|
+
- `/tasks` Details no longer repeats a path when a Details row already names the saved output file.
|
|
43
|
+
- Concurrency lanes are namespaced by executor kind, so two executors can no longer share a lane by choosing the same key.
|
|
44
|
+
- **Breaking:** background work, submitted or detached, is admitted only while the `tasks` tool is active, because the model could otherwise start work it cannot read, wait for or stop. When `builtin:tasks` is disabled or the tool is deactivated, `background: true` and every detach path are rejected without starting anything; work admitted earlier keeps running and delivering.
|
|
45
|
+
- **Breaking (extension and SDK API):** a task's `mode` is `background` only once its caller has been released with a background outcome. A detach requested while the executor is still preparing waits for its acceptance, and a task answered inline stays `foreground` everywhere: `tasks list`, the statusline count, the `waitAny` cohort and saved records.
|
|
46
|
+
- **Breaking (extension and SDK API):** a terminal task snapshot's `display` comes only from its completion; the last progress display no longer survives settlement. In `/tasks`, `display` replaces the result as the human view instead of being appended to it.
|
|
47
|
+
- **Breaking (extension and SDK API):** `ctx.tasks.read()`, `tasks read`, and settled `tasks wait` and `waitAny` calls without `mode` read a report (`output: "report"`, such as an Agent's) from its start instead of its end, as its foreground result and completion notification already do. Logs, such as a shell command's output, still read from their end. An explicit `mode` selects the direction; `sinceBytes` anchors it, with `head` continuing forward from the offset and `tail` keeping the newest unread window.
|
|
48
|
+
|
|
49
|
+
### Removed
|
|
50
|
+
|
|
51
|
+
- **Breaking (SDK):** `session.tasks.markDelivered()` and the other delivery-ledger methods of `TaskRuntime` (`pendingNotifications()`, `claimNotification()`, `releaseNotification()`, `holdDelivery()`) are removed, along with `TaskDeliveryLedger`. Completion delivery is owned by the session; use `session.acknowledgeTaskDelivery(id)` after consuming a result directly.
|
|
52
|
+
|
|
53
|
+
### Fixed
|
|
54
|
+
|
|
55
|
+
- A standalone `TaskRuntime` with background enabled no longer keeps every settled background record forever and then rejects all background work once its retention limit is reached.
|
|
56
|
+
- A task moved to the background while its executor was still preparing, and then answered inline, is no longer reported and saved as a background task.
|
|
57
|
+
- Following a report's returned `next sinceBytes` now reads the next forward window instead of skipping to its tail. Continuation offsets use raw source bytes even when output is not valid UTF-8, and expanded `tasks read`/`wait` Transcript rows preserve the same end of the result that was read.
|
|
58
|
+
- Timed-out, interrupted and closed task waits release their runtime subscriptions instead of retaining one Promise reaction per observation until settlement.
|
|
59
|
+
- `/tasks` no longer polls a log that has no attached output file only to discard the published result it reads; the retention-limit error now names task pins and delivery leases instead of removed runtime claims.
|
|
60
|
+
|
|
61
|
+
## [1.4.9] - 2026-10-31
|
|
62
|
+
|
|
63
|
+
### Added
|
|
64
|
+
|
|
65
|
+
- Fullscreen mode now pins a one-line summary of the nearest user message above the viewport at the top of the transcript, on the user message background. Click the summary to scroll back to the original message; regular mode is unchanged.
|
|
66
|
+
|
|
67
|
+
### Changed
|
|
68
|
+
|
|
69
|
+
- User messages no longer have a blank background row above and below the text, and start with a `❯` marker; wrapped lines align under the first text column. In fullscreen mode the pinned summary takes over the message's first row in place as it scrolls out of view, with `↑` in the marker's column.
|
|
70
|
+
|
|
71
|
+
### Fixed
|
|
72
|
+
|
|
73
|
+
- On Windows, `read`, `write`, `edit`, `ls`, `grep`, and `find` now resolve paths under the bash mount table, such as `/tmp/...` and `/usr/...`, to the directories bash uses instead of the current drive root. The bundled [Shell paths](docs/bundled/extensions/shell-paths.md) extension reads the mounts from the configured shell.
|
|
74
|
+
|
|
7
75
|
## [1.4.8] - 2026-10-31
|
|
8
76
|
|
|
9
77
|
### Removed
|