@namzu/cli 23.0.0 → 25.0.0
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 +845 -0
- package/README.md +13 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +18 -10
- package/dist/cli.js.map +1 -1
- package/dist/commands/drain.d.ts +0 -23
- package/dist/commands/drain.d.ts.map +1 -1
- package/dist/commands/drain.js +23 -9
- package/dist/commands/drain.js.map +1 -1
- package/dist/commands/resident-flags.d.ts +24 -0
- package/dist/commands/resident-flags.d.ts.map +1 -0
- package/dist/commands/resident-flags.js +191 -0
- package/dist/commands/resident-flags.js.map +1 -0
- package/dist/commands/resident-learning.d.ts +6 -0
- package/dist/commands/resident-learning.d.ts.map +1 -0
- package/dist/commands/resident-learning.js +293 -0
- package/dist/commands/resident-learning.js.map +1 -0
- package/dist/commands/resident.d.ts +20 -0
- package/dist/commands/resident.d.ts.map +1 -0
- package/dist/commands/resident.js +418 -0
- package/dist/commands/resident.js.map +1 -0
- package/dist/commands/run-flags.d.ts +2 -2
- package/dist/commands/run-flags.d.ts.map +1 -1
- package/dist/commands/run-flags.js +6 -6
- package/dist/commands/run-flags.js.map +1 -1
- package/dist/commands/run-stream.d.ts.map +1 -1
- package/dist/commands/run-stream.js +9 -10
- package/dist/commands/run-stream.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +3 -2
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/upgrade.d.ts +1 -0
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +6 -3
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +27 -4
- package/dist/config/load.js.map +1 -1
- package/dist/config/run-limits.d.ts +11 -0
- package/dist/config/run-limits.d.ts.map +1 -0
- package/dist/config/run-limits.js +64 -0
- package/dist/config/run-limits.js.map +1 -0
- package/dist/config/schema.d.ts +12 -4
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/context/runtime-message.d.ts.map +1 -1
- package/dist/context/runtime-message.js +2 -0
- package/dist/context/runtime-message.js.map +1 -1
- package/dist/integrations/npm-invocation.d.ts +10 -0
- package/dist/integrations/npm-invocation.d.ts.map +1 -0
- package/dist/integrations/npm-invocation.js +23 -0
- package/dist/integrations/npm-invocation.js.map +1 -0
- package/dist/integrations/plugins/runtime.d.ts +19 -1
- package/dist/integrations/plugins/runtime.d.ts.map +1 -1
- package/dist/integrations/plugins/runtime.js +89 -1
- package/dist/integrations/plugins/runtime.js.map +1 -1
- package/dist/integrations/plugins/settings.d.ts +15 -0
- package/dist/integrations/plugins/settings.d.ts.map +1 -0
- package/dist/integrations/plugins/settings.js +106 -0
- package/dist/integrations/plugins/settings.js.map +1 -0
- package/dist/integrations/providers/credential-store.d.ts +8 -7
- package/dist/integrations/providers/credential-store.d.ts.map +1 -1
- package/dist/integrations/providers/credential-store.js +44 -17
- package/dist/integrations/providers/credential-store.js.map +1 -1
- package/dist/integrations/providers/discover.d.ts.map +1 -1
- package/dist/integrations/providers/discover.js +7 -2
- package/dist/integrations/providers/discover.js.map +1 -1
- package/dist/integrations/providers/harness-credentials.d.ts +2 -2
- package/dist/integrations/providers/harness-credentials.d.ts.map +1 -1
- package/dist/integrations/providers/harness-credentials.js +13 -8
- package/dist/integrations/providers/harness-credentials.js.map +1 -1
- package/dist/integrations/providers/setup.d.ts.map +1 -1
- package/dist/integrations/providers/setup.js +52 -5
- package/dist/integrations/providers/setup.js.map +1 -1
- package/dist/integrations/resident/foreground.d.ts +19 -0
- package/dist/integrations/resident/foreground.d.ts.map +1 -0
- package/dist/integrations/resident/foreground.js +95 -0
- package/dist/integrations/resident/foreground.js.map +1 -0
- package/dist/integrations/resident/inspection.d.ts +10 -0
- package/dist/integrations/resident/inspection.d.ts.map +1 -0
- package/dist/integrations/resident/inspection.js +263 -0
- package/dist/integrations/resident/inspection.js.map +1 -0
- package/dist/integrations/resident/learning-sources.d.ts +4 -0
- package/dist/integrations/resident/learning-sources.d.ts.map +1 -0
- package/dist/integrations/resident/learning-sources.js +79 -0
- package/dist/integrations/resident/learning-sources.js.map +1 -0
- package/dist/integrations/resident/learning-storage.d.ts +5 -0
- package/dist/integrations/resident/learning-storage.d.ts.map +1 -0
- package/dist/integrations/resident/learning-storage.js +51 -0
- package/dist/integrations/resident/learning-storage.js.map +1 -0
- package/dist/integrations/resident/lifecycle-errors.d.ts +9 -0
- package/dist/integrations/resident/lifecycle-errors.d.ts.map +1 -0
- package/dist/integrations/resident/lifecycle-errors.js +15 -0
- package/dist/integrations/resident/lifecycle-errors.js.map +1 -0
- package/dist/integrations/resident/owned-runner.d.ts +17 -0
- package/dist/integrations/resident/owned-runner.d.ts.map +1 -0
- package/dist/integrations/resident/owned-runner.js +91 -0
- package/dist/integrations/resident/owned-runner.js.map +1 -0
- package/dist/integrations/resident/runner-control.d.ts +47 -0
- package/dist/integrations/resident/runner-control.d.ts.map +1 -0
- package/dist/integrations/resident/runner-control.js +238 -0
- package/dist/integrations/resident/runner-control.js.map +1 -0
- package/dist/integrations/resident/runner-launch.d.ts +52 -0
- package/dist/integrations/resident/runner-launch.d.ts.map +1 -0
- package/dist/integrations/resident/runner-launch.js +142 -0
- package/dist/integrations/resident/runner-launch.js.map +1 -0
- package/dist/integrations/resident/runner-store.d.ts +44 -0
- package/dist/integrations/resident/runner-store.d.ts.map +1 -0
- package/dist/integrations/resident/runner-store.js +281 -0
- package/dist/integrations/resident/runner-store.js.map +1 -0
- package/dist/integrations/resident/runner-worker.d.ts +2 -0
- package/dist/integrations/resident/runner-worker.d.ts.map +1 -0
- package/dist/integrations/resident/runner-worker.js +146 -0
- package/dist/integrations/resident/runner-worker.js.map +1 -0
- package/dist/integrations/resident/session-step.d.ts +29 -0
- package/dist/integrations/resident/session-step.d.ts.map +1 -0
- package/dist/integrations/resident/session-step.js +462 -0
- package/dist/integrations/resident/session-step.js.map +1 -0
- package/dist/integrations/resident/storage.d.ts +17 -0
- package/dist/integrations/resident/storage.d.ts.map +1 -0
- package/dist/integrations/resident/storage.js +140 -0
- package/dist/integrations/resident/storage.js.map +1 -0
- package/dist/integrations/resident/tool-evidence.d.ts +6 -0
- package/dist/integrations/resident/tool-evidence.d.ts.map +1 -0
- package/dist/integrations/resident/tool-evidence.js +117 -0
- package/dist/integrations/resident/tool-evidence.js.map +1 -0
- package/dist/integrations/resident/verification.d.ts +11 -0
- package/dist/integrations/resident/verification.d.ts.map +1 -0
- package/dist/integrations/resident/verification.js +109 -0
- package/dist/integrations/resident/verification.js.map +1 -0
- package/dist/integrations/sessions/compaction-evidence.d.ts +5 -0
- package/dist/integrations/sessions/compaction-evidence.d.ts.map +1 -0
- package/dist/integrations/sessions/compaction-evidence.js +59 -0
- package/dist/integrations/sessions/compaction-evidence.js.map +1 -0
- package/dist/integrations/sessions/context-inventory.js +1 -1
- package/dist/integrations/sessions/context-inventory.js.map +1 -1
- package/dist/integrations/sessions/conversation-search.d.ts +56 -8
- package/dist/integrations/sessions/conversation-search.d.ts.map +1 -1
- package/dist/integrations/sessions/conversation-search.js +600 -63
- package/dist/integrations/sessions/conversation-search.js.map +1 -1
- package/dist/integrations/sessions/database.d.ts +5 -0
- package/dist/integrations/sessions/database.d.ts.map +1 -0
- package/dist/integrations/sessions/database.js +34 -0
- package/dist/integrations/sessions/database.js.map +1 -0
- package/dist/integrations/sessions/evidence-page-validation.d.ts +8 -0
- package/dist/integrations/sessions/evidence-page-validation.d.ts.map +1 -0
- package/dist/integrations/sessions/evidence-page-validation.js +74 -0
- package/dist/integrations/sessions/evidence-page-validation.js.map +1 -0
- package/dist/integrations/sessions/evidence-recall.d.ts +5 -0
- package/dist/integrations/sessions/evidence-recall.d.ts.map +1 -0
- package/dist/integrations/sessions/evidence-recall.js +173 -0
- package/dist/integrations/sessions/evidence-recall.js.map +1 -0
- package/dist/integrations/sessions/paths.d.ts +7 -0
- package/dist/integrations/sessions/paths.d.ts.map +1 -0
- package/dist/integrations/sessions/paths.js +14 -0
- package/dist/integrations/sessions/paths.js.map +1 -0
- package/dist/integrations/sessions/run-discovery.d.ts +24 -0
- package/dist/integrations/sessions/run-discovery.d.ts.map +1 -0
- package/dist/integrations/sessions/run-discovery.js +142 -0
- package/dist/integrations/sessions/run-discovery.js.map +1 -0
- package/dist/integrations/sessions/store.d.ts +8 -18
- package/dist/integrations/sessions/store.d.ts.map +1 -1
- package/dist/integrations/sessions/store.js +14 -39
- package/dist/integrations/sessions/store.js.map +1 -1
- package/dist/integrations/sessions/transcript-export.d.ts +0 -1
- package/dist/integrations/sessions/transcript-export.d.ts.map +1 -1
- package/dist/integrations/sessions/transcript-export.js +3 -2
- package/dist/integrations/sessions/transcript-export.js.map +1 -1
- package/dist/integrations/sessions/turn-evidence.d.ts +0 -9
- package/dist/integrations/sessions/turn-evidence.d.ts.map +1 -1
- package/dist/integrations/sessions/turn-evidence.js +5 -2
- package/dist/integrations/sessions/turn-evidence.js.map +1 -1
- package/dist/integrations/state/private-directory.d.ts +4 -2
- package/dist/integrations/state/private-directory.d.ts.map +1 -1
- package/dist/integrations/state/private-directory.js +6 -4
- package/dist/integrations/state/private-directory.js.map +1 -1
- package/dist/integrations/state/report.d.ts.map +1 -1
- package/dist/integrations/state/report.js +78 -21
- package/dist/integrations/state/report.js.map +1 -1
- package/dist/integrations/subagents/parent.d.ts +3 -2
- package/dist/integrations/subagents/parent.d.ts.map +1 -1
- package/dist/integrations/subagents/parent.js +11 -6
- package/dist/integrations/subagents/parent.js.map +1 -1
- package/dist/integrations/subagents/policy.d.ts +2 -5
- package/dist/integrations/subagents/policy.d.ts.map +1 -1
- package/dist/integrations/subagents/policy.js +2 -5
- package/dist/integrations/subagents/policy.js.map +1 -1
- package/dist/integrations/subagents/runtime.d.ts +7 -0
- package/dist/integrations/subagents/runtime.d.ts.map +1 -1
- package/dist/integrations/subagents/runtime.js +9 -7
- package/dist/integrations/subagents/runtime.js.map +1 -1
- package/dist/permissions/rules.d.ts +2 -8
- package/dist/permissions/rules.d.ts.map +1 -1
- package/dist/permissions/rules.js +19 -10
- package/dist/permissions/rules.js.map +1 -1
- package/dist/tui/App.d.ts +0 -12
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +235 -15
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/ChoicePicker.d.ts +2 -1
- package/dist/tui/ChoicePicker.d.ts.map +1 -1
- package/dist/tui/ChoicePicker.js +10 -8
- package/dist/tui/ChoicePicker.js.map +1 -1
- package/dist/tui/ToolOutputViewer.js +1 -1
- package/dist/tui/ToolOutputViewer.js.map +1 -1
- package/dist/tui/agent.d.ts +29 -3
- package/dist/tui/agent.d.ts.map +1 -1
- package/dist/tui/agent.js +233 -46
- package/dist/tui/agent.js.map +1 -1
- package/dist/tui/conversation-evidence-view.d.ts +6 -0
- package/dist/tui/conversation-evidence-view.d.ts.map +1 -0
- package/dist/tui/conversation-evidence-view.js +96 -0
- package/dist/tui/conversation-evidence-view.js.map +1 -0
- package/dist/tui/conversation-history.d.ts +3 -1
- package/dist/tui/conversation-history.d.ts.map +1 -1
- package/dist/tui/conversation-history.js +16 -1
- package/dist/tui/conversation-history.js.map +1 -1
- package/dist/tui/exit-summary.d.ts +1 -1
- package/dist/tui/exit-summary.d.ts.map +1 -1
- package/dist/tui/exit-summary.js +17 -5
- package/dist/tui/exit-summary.js.map +1 -1
- package/dist/tui/markdownParser.d.ts.map +1 -1
- package/dist/tui/markdownParser.js +2 -1
- package/dist/tui/markdownParser.js.map +1 -1
- package/dist/tui/plugin-view.d.ts +9 -0
- package/dist/tui/plugin-view.d.ts.map +1 -0
- package/dist/tui/plugin-view.js +59 -0
- package/dist/tui/plugin-view.js.map +1 -0
- package/dist/tui/run-interruption.d.ts +2 -2
- package/dist/tui/run-interruption.d.ts.map +1 -1
- package/dist/tui/run-interruption.js +5 -1
- package/dist/tui/run-interruption.js.map +1 -1
- package/dist/tui/run-limits-settings.d.ts +39 -0
- package/dist/tui/run-limits-settings.d.ts.map +1 -0
- package/dist/tui/run-limits-settings.js +88 -0
- package/dist/tui/run-limits-settings.js.map +1 -0
- package/dist/tui/slashCommands.d.ts +6 -1
- package/dist/tui/slashCommands.d.ts.map +1 -1
- package/dist/tui/slashCommands.js +40 -9
- package/dist/tui/slashCommands.js.map +1 -1
- package/dist/tui/types.d.ts +4 -2
- package/dist/tui/types.d.ts.map +1 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,850 @@
|
|
|
1
1
|
# @namzu/cli
|
|
2
2
|
|
|
3
|
+
## 25.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- 9463b6f: Background job `read` and `list` calls now count as read-only observations by default; starting commands and `job kill` retain their existing approval requirements. SDK `defineTool` accepts an input predicate for `readOnly`.
|
|
8
|
+
|
|
9
|
+
Explicit CLI `ask` rules are now enforced rather than omitted, so they can request review ahead of a wildcard allowance or the read-only default. SDK custom-pattern rules support `decision: 'review'`, with an `authorization.explicitReview` marker on review summaries. Read-only and accept-edits exemptions honor it; explicit auto modes and prior approvals keep their meaning.
|
|
10
|
+
|
|
11
|
+
To keep reviewing every background-job operation in prompt mode, configure `permissions: { job: ask }`, or supply a matching SDK custom-pattern review rule. If an old `ask` entry was intended to inherit default behavior, remove that entry instead. Deny rules, plan-mode mutation restrictions, job ownership and sandbox boundaries remain enforced.
|
|
12
|
+
|
|
13
|
+
- b2e5551: Default CLI main runs and built-in delegated agents to unlimited token usage,
|
|
14
|
+
iterations and run duration. Previously main runs defaulted to 50 iterations,
|
|
15
|
+
children to 40, and both to a one-hour deadline. To keep bounded execution, set
|
|
16
|
+
positive `limits.maxIterations` and `limits.timeoutMs` in your configuration;
|
|
17
|
+
explicit values apply to both the main run and built-in children. SDK embedding
|
|
18
|
+
defaults and file-defined specialist iteration settings remain unchanged.
|
|
19
|
+
|
|
20
|
+
Add Run limits to `/config`: edit tokens, model turns and duration, or remove all
|
|
21
|
+
three caps. Changes apply to new turns and their children for the current TUI
|
|
22
|
+
session; running work retains its captured limits and usage ledger. Resuming a paused
|
|
23
|
+
CLI run reloads its own saved limits instead of replacing them with launch defaults. Persistent
|
|
24
|
+
limits still come from the configuration files. Usage accounting, cancellation,
|
|
25
|
+
permissions and provider quotas continue to apply in unlimited mode.
|
|
26
|
+
|
|
27
|
+
- fe6e0fb: Avoid reading and parsing a shared compaction record once for every removed
|
|
28
|
+
message. A search reuses one authenticated record within that operation; later
|
|
29
|
+
calls revalidate it. Text manifests, integrity checks, cancellation and page
|
|
30
|
+
limits remain in effect.
|
|
31
|
+
|
|
32
|
+
CLI manual compaction now stores one `compaction_shed` event containing all
|
|
33
|
+
removed messages, matching automatic compaction, instead of one event per message.
|
|
34
|
+
Consumers of raw manual-maintenance events must iterate the `messages` array
|
|
35
|
+
and use search results' `seq` and `part` addresses, rather than assuming `part: 0`
|
|
36
|
+
or one sequence per message. Existing archives and SDK event readers remain
|
|
37
|
+
supported. No config change is required for ordinary CLI use.
|
|
38
|
+
|
|
39
|
+
- 64b3da9: New `search_conversation` calls now exclude successful outputs of `search_conversation` and `read_conversation` by default. Previously, explicit searches included them and could find their own earlier results as repeated evidence.
|
|
40
|
+
|
|
41
|
+
To keep the previous unfiltered behavior or inspect retrieval outputs themselves, pass `includeRetrievalResults: true` on a new search. Omit the option when continuing a cursor: its source filter is preserved, and incompatible changes are rejected. Failed retrievals and records with unknown tool names or success status remain searchable. Exact reads of known authorized records remain available. SDK evidence-source defaults are unchanged.
|
|
42
|
+
|
|
43
|
+
- cff2b6a: Conversation search now ignores letter case by default: searching for `destination` also finds `Destination`. Pass `caseSensitive: true` to `search_conversation` to keep the former behavior. Continue pages with the same query and case setting.
|
|
44
|
+
|
|
45
|
+
SDK run-evidence search adds optional `caseSensitive` (default `true`, unchanged). Active and closed run sources now return distinct matching passages within one text chunk, with continuation at the match limit, rather than hiding later passages in that chunk. Exact retained text, UTF-8/UTF-16 offsets, integrity verification and per-call I/O limits remain intact. Case-insensitive searches bypass exact-case filters and may read more bytes or require more pages.
|
|
46
|
+
|
|
47
|
+
- 32080b1: Durable `drain` now mounts `search_conversation` and `read_conversation` under
|
|
48
|
+
the persisted conversation's ownership and honors configured compaction,
|
|
49
|
+
memory and web options. These options were previously omitted from its host.
|
|
50
|
+
It can recover original retained command output without running the command
|
|
51
|
+
again or treating an internal backing file as workspace content.
|
|
52
|
+
|
|
53
|
+
The retained-output preview default on this entrypoint now follows the CLI's
|
|
54
|
+
4,000-character setting instead of its previous 40,000-character preview. Set
|
|
55
|
+
`compaction.retainedToolPreviewChars: 0` to preserve the former preview behavior.
|
|
56
|
+
Previously ignored compaction, memory and web configuration now takes effect;
|
|
57
|
+
review those keys when upgrading an unattended drainer.
|
|
58
|
+
|
|
59
|
+
A resumed run that ends as failed or cancelled is now reported in `failed`
|
|
60
|
+
with exit code 1 instead of being reported as a successful drain.
|
|
61
|
+
|
|
62
|
+
- b2d5b01: Support explicit unlimited run guards while retaining measured token usage.
|
|
63
|
+
Set `tokenBudget: 0`, `maxIterations: 0` and `timeoutMs: 0` in SDK run options,
|
|
64
|
+
or in the CLI's `limits` configuration, to disable those three caps. The CLI's
|
|
65
|
+
`--token-budget 0` and `--max-iterations 0` now override configured caps; blank,
|
|
66
|
+
negative and unsafe numeric values are refused. Omitted defaults are unchanged.
|
|
67
|
+
|
|
68
|
+
SDK breaking change: `maxIterations: 0` and `timeoutMs: 0` previously prevented
|
|
69
|
+
progress; they now disable those guards, consistently with the token limit.
|
|
70
|
+
Hosts that used zero to prevent a run from starting must refuse admission or
|
|
71
|
+
pass an already-aborted signal instead. Use positive values for finite guards.
|
|
72
|
+
|
|
73
|
+
CLI breaking change: an explicitly configured `limits.maxIterations` now applies
|
|
74
|
+
to built-in subagents too, instead of always giving them 40 iterations. Existing
|
|
75
|
+
configurations with a smaller value can stop children earlier; larger values
|
|
76
|
+
permit more work. Omit that setting to retain the previous child default (40)
|
|
77
|
+
and parent default (50), or define a specialist agent with its own iteration
|
|
78
|
+
configuration when the two must differ. The new `limits.timeoutMs` setting also
|
|
79
|
+
reaches child runs and blocking delegation tools. `0` does not bypass a finite
|
|
80
|
+
ancestor token cap, permissions, operator cancellation or unresolved usage.
|
|
81
|
+
|
|
82
|
+
- f49a4b8: Add optional run-metered, tool-free `PrepareStepContext.generateText` and
|
|
83
|
+
`createEvidenceRecallStep({ resolveQuery: true })` for resolving historical
|
|
84
|
+
follow-ups against bounded visible conversation. Generated search terms must
|
|
85
|
+
occur in the question or exact cited history. SDK query resolution defaults off.
|
|
86
|
+
|
|
87
|
+
In the CLI, conversations with `compaction.recallEvidence: true` now resolve
|
|
88
|
+
eligible conversational queries by default. This can add one provider request
|
|
89
|
+
per operator input, up to 512 output tokens and ten seconds before local
|
|
90
|
+
retrieval. It consumes the same run token budget. Set
|
|
91
|
+
`compaction.resolveEvidenceQueries: false` to keep the previous literal-query,
|
|
92
|
+
local-only behavior. Automatic recall itself still defaults off.
|
|
93
|
+
|
|
94
|
+
- c4aaf9b: Interactive CLI sessions now honor `limits.maxIterations` and `limits.tokenBudget` from user and trusted project configuration. Previously these configured limits were ignored by TUI startup, although headless commands applied them. This also applies when rebuilding a session after a model change or reopening a conversation. To keep interactive cumulative tokens unlimited, omit `limits.tokenBudget` from the effective config and use `--token-budget` for individual headless runs. Omitted defaults remain unchanged; `limits.waitForProviderMs` remains a headless policy.
|
|
95
|
+
|
|
96
|
+
SDK closing prose requested by a token, cost or time warning now preserves the triggering limit's stop reason instead of reporting `end_turn`. The partial text is still returned, including when allowance remains, but this path skips prose answer review and must not be treated as verified completion. Cancellation and validated native structured-output settlement retain their existing behavior.
|
|
97
|
+
|
|
98
|
+
- 97acc32: Resident run/start now automatically retrieve bounded original tool evidence
|
|
99
|
+
from earlier settled admissions before model requests, under both context
|
|
100
|
+
profiles. Previously these admissions exposed explicit archive tools only.
|
|
101
|
+
Set `compaction.recallEvidence: false` to retain that previous behavior. This
|
|
102
|
+
adds local archive I/O and request context; it does not add query-planning
|
|
103
|
+
inference, replay actions or grant ordinary chats/delegated agents access.
|
|
104
|
+
|
|
105
|
+
SDK hosts can attach `createResidentEvidenceRecallStep` to an admitted run.
|
|
106
|
+
It preserves historical Session/run/claim addresses and shares bounded evidence
|
|
107
|
+
selection with conversation recall. Resident tool sources also support bounded
|
|
108
|
+
token queries and exact cursor-only recovery, retaining query/filter identity
|
|
109
|
+
across reopening. Incomplete results do not establish absence.
|
|
110
|
+
|
|
111
|
+
Resident Sessions now leave signal handling to their enclosing host. Previously
|
|
112
|
+
the SDK emergency handler could exit immediately on SIGINT/SIGTERM before the
|
|
113
|
+
host wrote cleanup/runner receipts. Cancellation now drains through the resident
|
|
114
|
+
lifecycle and preserves the interrupted claim for inspected reconciliation.
|
|
115
|
+
|
|
116
|
+
- 6cd24e9: Enable automatic historical evidence recall by default in recorded CLI conversations, including resumed conversations and resident turns using the conversation host. Previously, omitted `compaction.recallEvidence` disabled this preparation even when original tool text had been shortened to a retained preview.
|
|
117
|
+
|
|
118
|
+
Follow-ups may now make an additional bounded, metered model call to resolve the historical subject, then read scoped conversation evidence into the next request. This adds inference usage and possible latency; it shares the run's provider, effort, token budget and cancellation. Retrieval retains its existing four-page, 8 MiB read and 6,000-character context ceilings.
|
|
119
|
+
|
|
120
|
+
Set `compaction.recallEvidence: false` to retain the previous default, disabling both automatic archive reads and query-planning inference. Set `compaction.resolveEvidenceQueries: false` to keep automatic literal retrieval without the extra inference. Explicit archive tools remain available. SDK host defaults and stateless archive access are unchanged.
|
|
121
|
+
|
|
122
|
+
- f92daf8: Resident `run` and `start` now default to `--learning-disclosure on-demand` in the resident context profile. Previously all accepted learned skill bodies were included automatically; now the model sees their descriptions and can read relevant guidance with `read_resident_skill`. To retain automatic inclusion, pass `--learning-disclosure eager`. The interactive context profile and ordinary chat retain their existing behavior. Stored learning is unchanged.
|
|
123
|
+
|
|
124
|
+
The SDK adds `createResidentStepContext`, which returns prompt contributions and a read-only skill tool bound by the host to one admitted run. Source dependencies are checked when instructions are read and before subsequent requests. Existing `createResidentStepContributions` callers retain eager disclosure.
|
|
125
|
+
|
|
126
|
+
- 5d31eea: Resident learning hosts and direct skill promotions now require a `protection` plan with disjoint `verification` and `confirmation` task IDs chosen before candidate generation. Existing hosts without this field are refused before inference. Include at least one real preservation task per round, with two measured successful baseline trials and two successful candidate trials. Missing or uncertain controls block activation; losing one established success rejects the candidate even when aggregate scores improve.
|
|
127
|
+
|
|
128
|
+
Update `ResidentLearningCycleOptions`, discovery hosts, and `ResidentSkillEvaluation` callers to supply this plan and its actual paired evidence. Historical stored skills remain readable but do not gain protection evidence retroactively. Generic `reviewHarnessCandidate` callers can opt into the same checks with its third argument. CLI learning summaries display protected-task outcomes.
|
|
129
|
+
|
|
130
|
+
- f1e33a1: Resident wake calls now retain all accepted inputs until the next step settles, instead of replacing the previous wake reason. `ResidentState.wakeEvidence` exposes immutable reasons and receipt times; the SDK resident prompt and both CLI resident profiles include the complete batch. CLI resident status shows pending input counts.
|
|
131
|
+
|
|
132
|
+
The new default accepts at most 16 pending inputs and 16,000 total reason characters per pursuit. Overflow rejects the new wake without discarding accepted evidence. Callers that previously sent an unlimited series of replacement wakes must process each batch before sending more, or coalesce superseded inputs before calling `wake`. Custom callbacks should read `wakeEvidence` rather than only the latest `reason`.
|
|
133
|
+
|
|
134
|
+
Standalone resident records now write schema 2 and agenda records schema 6. Older processes refuse these new formats: upgrade all processes sharing the store together. Prior formats remain readable without inventing historical inputs. Crashed steps keep their pending evidence; only successful exact-claim settlement or explicit inspected reconciliation consumes it.
|
|
135
|
+
|
|
136
|
+
- b888779: Separate the SDK's overflow threshold from the size of an authenticated retained-output preview. `query`/`resumeRun` and `ReactiveAgent` accept `retainedToolPreviewChars`; unset or zero preserves the existing behavior. A shorter preview is used only after full host text and its integrity manifest are saved. Storage failure keeps the ordinary text budget. Rich blocks and independently supplied model text keep their existing handling.
|
|
137
|
+
|
|
138
|
+
Recorded CLI conversations now default to at most 4,000 characters for these retained overflow previews, previously up to 40,000. The 40,000-character spill threshold and ordinary smaller results are unchanged. Set `compaction.retainedToolPreviewChars: 0` in CLI configuration to retain the previous preview size. This applies to new tool results in ordinary turns and resumed runs, without rewriting existing history. Stateless sessions and delegated workers retain their existing defaults.
|
|
139
|
+
|
|
140
|
+
- ea5367d: The CLI now requires Node.js 22.13+ and stores session metadata in
|
|
141
|
+
`NAMZU_HOME/state/sessions.sqlite`, with artifacts directly under
|
|
142
|
+
`NAMZU_HOME/sessions/<sessionId>/`. It no longer creates or reads a `projects/`
|
|
143
|
+
runtime tree. Generated memory remains isolated under `memory/<projectId>/`,
|
|
144
|
+
and resident state moves to `residents/<projectId>/<agent>/`.
|
|
145
|
+
|
|
146
|
+
This changes the default persisted CLI format. Existing project trees are left
|
|
147
|
+
untouched and are not imported automatically. Back up the original application
|
|
148
|
+
home and retain the older CLI to access its conversations, generated memory
|
|
149
|
+
and residents. Credentials, preferences and authored configuration keep their
|
|
150
|
+
locations. Update custom artifact readers to the new session paths.
|
|
151
|
+
|
|
152
|
+
The SDK adds the optional `SqliteSessionStore` driver and an exact `directory`
|
|
153
|
+
option for `DiskMemoryStore`. Existing SDK drivers, formats and defaults remain
|
|
154
|
+
unchanged; SQLite is loaded only when its driver is used.
|
|
155
|
+
|
|
156
|
+
`history` now accepts real conversation UUIDs as well as host keys, and with no
|
|
157
|
+
key reads the most recent workspace conversation as its help documents.
|
|
158
|
+
|
|
159
|
+
### Minor Changes
|
|
160
|
+
|
|
161
|
+
- 2a1e0e5: Preserve provider-identified public assistant message items through streaming,
|
|
162
|
+
settlement and conversation persistence. The SDK adds optional `textParts`
|
|
163
|
+
snapshots, `textPart` delta metadata and `selectAssistantText`. Completed content
|
|
164
|
+
selects explicitly final answers instead of concatenating intermediate progress
|
|
165
|
+
into the answer; ordinary unphased streams retain their existing behavior.
|
|
166
|
+
|
|
167
|
+
The Codex subscription driver maps native message phases and verifies the original
|
|
168
|
+
public parts before native replay. The CLI exposes optional item metadata on
|
|
169
|
+
delta events, separates streamed item bubbles and uses the settled answer for
|
|
170
|
+
turn completion. Consumers that manually concatenate deltas should use completed
|
|
171
|
+
content when they want the final answer; deltas still contain public progress.
|
|
172
|
+
|
|
173
|
+
- ce55c21: Add experimental `createEvidenceRecallStep` and its typed host retrieval contract.
|
|
174
|
+
It ranks a bounded pool of authenticated historical passages and supplies exact
|
|
175
|
+
excerpts with source/error/preview labels in request-only context. Every request
|
|
176
|
+
revalidates ownership and source data; deadlines discard late reads without
|
|
177
|
+
accumulating overlapping retrieval or replaying actions.
|
|
178
|
+
|
|
179
|
+
Recorded CLI conversations can opt in with `compaction.recallEvidence: true`.
|
|
180
|
+
The default remains off. Automatic recall excludes the requesting invocation;
|
|
181
|
+
explicit conversation search/read still cover live evidence, more pages and
|
|
182
|
+
complete text. This adds historical context, not automatic verification of
|
|
183
|
+
current workspace state or a guarantee of exhaustive recall.
|
|
184
|
+
|
|
185
|
+
- bb0281b: Add optional `EvidenceRecallBatch.continuations` with exported
|
|
186
|
+
`EvidenceRecallContinuation` hints for bounded, host-mounted read-only tools.
|
|
187
|
+
Incomplete recall now reports its status even when no new passage is selected,
|
|
188
|
+
so missing context cannot silently look like an exhaustive negative search.
|
|
189
|
+
Hint arguments and output are bounded within the existing context allowance.
|
|
190
|
+
|
|
191
|
+
CLI `search_conversation` accepts `cursor` alone to restore the original query,
|
|
192
|
+
case setting and excluded invocation. Automatic recall supplies these handles
|
|
193
|
+
when live or earlier-run traversal has more pages. The model can continue from
|
|
194
|
+
that position without replaying an action or starting the same scan again.
|
|
195
|
+
New searches still require a literal query. Scope, expiry, source-integrity
|
|
196
|
+
checks and read limits remain enforced; live handles require the same active
|
|
197
|
+
writer and never downgrade to another source. Automatic recall remains opt-in.
|
|
198
|
+
|
|
199
|
+
- 2869fbe: Add an optional SQLite resident learning journal with atomic event/summary updates, scoped ancestry and recorded usage, plus hash-verified immutable JSON artifacts. `runStoredResidentLearningCycle` connects existing generation and independent evaluation callbacks to the journal without adding another model loop. The store requires Node.js 22.13 or newer when used; other SDK stores retain their existing support.
|
|
200
|
+
|
|
201
|
+
Add `namzu resident learn <experiment.learning.mjs>` for explicit trusted host modules and `namzu resident learning [cycle-id]` for read-only inspection. Modules select and bound their own providers and evaluators. Interrupted work and incomplete prices remain visible; these commands do not automatically replay experiments, activate unverified guidance or start background learning. Records live in `state/learning.sqlite` and `learning/artifacts/`; accepted skills remain in the existing resident agenda.
|
|
202
|
+
|
|
203
|
+
Expose `pathBuilder`, `runStore` and `checkpointStore` on `runAgent`, forwarding the kernel's existing host storage controls. Hosts can separate generated execution evidence from a searched workspace. Omitting these options preserves the SDK's current local layout; the CLI retains its application-home layout.
|
|
204
|
+
|
|
205
|
+
- d5d2b9a: Expose optional `recordedAt` Unix milliseconds on evidence search matches, exact read pages and recall candidates. CLI conversation search/read and automatic recall preserve the stored event time, including each included occurrence of equal text. Callers can distinguish recording times without inferring them from run IDs, file times or run-start metadata.
|
|
206
|
+
|
|
207
|
+
Unknown or invalid stored timestamps stay absent; custom recall callbacks must omit unknown times and supply positive integer milliseconds within the JavaScript Date range when known. The timestamp dates recording, not fact validity; compaction copies carry their own copy time. Sequence still orders one run, and clocks across runs do not establish causal order. Existing retrieval ordering, scope, read limits and source validation remain unchanged.
|
|
208
|
+
|
|
209
|
+
- b971796: Expose `classifyEvidenceSource`, `EvidenceRecordKind` and `EVIDENCE_RECORD_GUIDANCE` for hosts presenting authenticated text evidence. Automatic recall uses the same classification. The helper interprets source tags only; it does not authenticate text or establish that its claims are true.
|
|
210
|
+
|
|
211
|
+
CLI `search_conversation` matches and located `read_conversation` pages now include `recordKind` with interpretation guidance. Exact reads also preserve recorded `toolName` and `isError`, leaving missing status unknown. Tool names exceeding 256 JSON-encoded UTF-8 bytes are omitted consistently. Original text, addresses, scope checks and pagination remain unchanged.
|
|
212
|
+
|
|
213
|
+
- 0a0baf2: Add bounded resident activity inspection and a reusable consumption projection in the SDK. The CLI's new `namzu resident inspect` command reports retained admissions, settlements, archived pursuits, historical verification receipts and known versus missing usage across process restarts.
|
|
214
|
+
|
|
215
|
+
Root usage and descendant-inclusive token totals remain separate. Missing or interrupted receipts are explicitly incomplete; unpriced tokens do not imply free work. Cost reports cover the root invocation, not descendant prices or a provider bill. Inspection does not impose a new lifetime spending limit or change existing execution defaults. Use `--max-revisions` or the returned `--cursor` to inspect histories beyond the default bounded range.
|
|
216
|
+
|
|
217
|
+
- 4828eb0: Add opt-in learning discovery from retained, host-scored failures. Hosts can record observations and authorize evaluator revisions; the SDK selects an eligible task against the installed guidance, then uses the existing generation, verification and fresh confirmation cycle. Task claims survive process restarts and prevent concurrent or accidental duplicate experiments. Provider errors, unresolved usage and obsolete observations are excluded from selection.
|
|
218
|
+
|
|
219
|
+
The CLI accepts discovery hosts in `resident learn` and adds `resident learning --observations` for paginated inspection. Compact output includes failure reasons and verification/confirmation pass counts so inspection does not require following raw artifact hashes. Existing explicit-failure hosts remain supported. Learning storage upgrades to schema 2 on its next write; older SDK builds restricted to schema 1 cannot reopen that upgraded database. Keep a database backup if a rollback to such a build is required.
|
|
220
|
+
|
|
221
|
+
- b649224: Expose optional `PrepareStepContext.captureRunEvidence(maxReadBytes?, signal?)`
|
|
222
|
+
for authenticated text from the current invocation's writer. It rejects local
|
|
223
|
+
or run cancellation and settled invocations; unsupported stores return
|
|
224
|
+
`undefined`. Automatic evidence recall forwards this capability with its own
|
|
225
|
+
deadline and revokes new captures when the recall pass ends.
|
|
226
|
+
|
|
227
|
+
With `compaction.recallEvidence: true`, recorded CLI turns now recall missing
|
|
228
|
+
observations from the current run, including after compaction. Up to two live
|
|
229
|
+
pages share the existing four-page, 8 MiB read ceiling with earlier runs;
|
|
230
|
+
explicit conversation tools still handle further pages and exact full text.
|
|
231
|
+
The default remains off. Captured observations describe the past and do not
|
|
232
|
+
establish current workspace contents or replay a tool action.
|
|
233
|
+
|
|
234
|
+
- e0b30c2: The `/plugins` menu can now explicitly remember a plugin's enabled or disabled state across restarts and model switches. Session-only controls keep their existing behavior. A remembered disabled plugin remains visible without importing its executable modules or starting its MCP servers. Choices belong to the plugin's canonical directory and name, so another project's same-named plugin is unaffected. Settings are stored privately in `NAMZU_HOME/plugin-settings`; loading configuration and project trust still apply.
|
|
235
|
+
- 6394010: Learning hosts can supply an optional `explore` callback to run environment experiments before generating guidance. The SDK retains bounded observations and their digest, then provides them to `generate` as `context.exploration`. Missing usage, cancellation, stale state or evidence-journal failure prevents continuing to synthesis or activation.
|
|
236
|
+
|
|
237
|
+
The CLI forwards the callback, shows its exploration phase and retains evidence in SQLite. Hosts that omit it keep their current behavior. Event consumers opting into this feature should handle the new `explore` stage and `exploration` event kind. Exploration needs separately authorized tools and independent evaluation; enabling it does not automatically start learning in ordinary conversations.
|
|
238
|
+
|
|
239
|
+
- f4b3ffb: Residents can retrieve earlier settled summaries and consumed wake inputs when
|
|
240
|
+
the latest summary omits needed evidence. The SDK adds experimental
|
|
241
|
+
`DiskResidentAgenda.history`, `ResidentHistorySource` and related result types,
|
|
242
|
+
`buildResidentHistoryTools`, and optional `ResidentStepPromptOptions.history`.
|
|
243
|
+
Searches are bounded and paged, tied to one pursuit and an explicit upper
|
|
244
|
+
revision, and report unreadable evidence without treating it as proven absence.
|
|
245
|
+
|
|
246
|
+
CLI foreground and managed resident runs mount the two read-only recall tools
|
|
247
|
+
in both context profiles, including deferred loading. Ordinary conversations
|
|
248
|
+
and delegated children do not inherit the resident's history. These tools read
|
|
249
|
+
existing immutable revisions; they do not restore full tool transcripts, replay
|
|
250
|
+
actions, or change the persisted schema.
|
|
251
|
+
|
|
252
|
+
- d1a6ce5: Residents can search and page original retained tool text from earlier settled invocations, even when the latest summary or compacted context omits it. The SDK adds bounded disk indexing, scoped source interfaces and `search_resident_tools` / `read_resident_tool` builders. The CLI binds them to the admitted pursuit, matching attempt receipts and invocation ownership; ordinary conversations gain no cross-session access.
|
|
253
|
+
|
|
254
|
+
Fix fresh disk-backed runs capturing their output directory before store initialization, which could leave oversized tool output as an unrecoverable preview. New spills record chunk integrity manifests, and new run metadata records its own tenant/project/Session/run scope independently of shared token accounting. The existing 40,000-character model-visible cap remains unchanged. Older unscoped runs are unavailable through this API; older truncated records without authenticated spills remain explicitly partial. Missing or modified output is never replayed or presented as an intact original.
|
|
255
|
+
|
|
256
|
+
- 8095541: Allow resident skill candidates to declare source revision dependencies. Their approval hash includes those bindings, and context projection withholds a bound skill unless every dependency matches fresh host observations. Unbound candidates keep their existing hashes and behavior. SDK hosts can resolve revisions per model request; the CLI resident profile supports bounded workspace-file SHA-256 observations.
|
|
257
|
+
|
|
258
|
+
Correct TUI stop messages for unresolved usage and accounting failures, including unlimited runs, so they no longer claim the token allowance was exhausted.
|
|
259
|
+
|
|
260
|
+
- bdf923d: Add `/plugins` to inspect loaded plugins and enable or disable them for an idle session. The menu reports registered tools and skills, shows plugin scope and directory, and explains how to configure loading when it is off. Changes reset on restart or model switch; configuration and plugin files are retained. Active sends, compaction and durable resumes prevent plugin changes, and session cleanup waits for a pending change to settle.
|
|
261
|
+
|
|
262
|
+
Fix discovery when project and user plugin locations resolve to the same directory under an explicit application home. Load that directory once as user scope; project-only scope still excludes it. Distinct plugin directories remain discoverable even if their authority roots match.
|
|
263
|
+
|
|
264
|
+
- 0a36260: Add `createJsonClaimVerifier` for host-configured scalar JSON claims and observation-time receipts. It rejects mismatched, incomplete, historical or foreign observations, bounds verification time and bytes, and exposes pending observation drainage. Hosts supply an authorized read adapter; this does not verify arbitrary prose or establish atomic/future source state.
|
|
265
|
+
|
|
266
|
+
Resident `run` and `start` accept `--verify <manifest>` to require configured claims before recording completion. The manifest explicitly authorizes bounded host file reads, is snapshotted per invocation, and applies to every admitted pursuit. Rejected values use the existing repair budget; only the reviewed answer can complete. Existing invocation behavior is unchanged without the flag.
|
|
267
|
+
|
|
268
|
+
### Patch Changes
|
|
269
|
+
|
|
270
|
+
- 7bb8163: SDK evidence sources now accept `matchMode: 'token'` for complete Unicode
|
|
271
|
+
letter/number/underscore terms, with the same lowercase keys used by bounded
|
|
272
|
+
evidence ranking. The default remains literal substring search. Token queries
|
|
273
|
+
must contain one token per term; use literal mode for phrases or punctuation.
|
|
274
|
+
Continuations retain their matching mode, and token search authenticates the
|
|
275
|
+
preceding chunk when checking a word boundary within the existing I/O budget.
|
|
276
|
+
|
|
277
|
+
CLI automatic evidence recall uses this mode to keep incidental substrings
|
|
278
|
+
such as `in` inside `Packing`, or `3` inside `13000`, from consuming its candidate
|
|
279
|
+
slots. Explicit conversation search still supports literal substrings.
|
|
280
|
+
Whole-word frequency can still limit bounded discovery; this change does not
|
|
281
|
+
claim complete or globally ranked archive retrieval.
|
|
282
|
+
|
|
283
|
+
- 6663561: Prose `reviewAnswer` callbacks now fail the run when they throw or return a malformed verdict. Previously a thrown error accepted the answer without review. To keep a deliberately permissive policy, catch the error in the host callback and explicitly return `{ accept: true }`; return `{ accept: false, feedback }` only when requesting a bounded correction. Rejection feedback must be a nonempty string.
|
|
284
|
+
|
|
285
|
+
`maxAnswerReviews` now rejects negative, fractional, non-finite or unsafe values. Use a nonnegative safe integer (default three corrections). Rejection counts and feedback are saved together in checkpoints, so resuming the same checkpoint preserves the remaining allowance even after history compaction. Cancellation stops waiting for a pending reviewer; external work started by the callback must still honor its signal.
|
|
286
|
+
|
|
287
|
+
The CLI inherits these SDK semantics for host-supplied reviewers. Its command gate already converts unavailable checks to bounded rejection and keeps that behavior. Forced finalization, terminal tools and structured output retain their separate settlement paths.
|
|
288
|
+
|
|
289
|
+
- 6e4a820: Recover original oversized tool text in ordinary conversations after compaction or restart. `search_conversation` and `read_conversation` now use authenticated retained output for closed scoped runs while preserving assistant-message and compaction-history search. Search results can provide a UTF-8 byte position for reading near a match; returned character positions remain UTF-16. Missing or changed originals are explicitly unavailable, and partial legacy records remain previews.
|
|
290
|
+
|
|
291
|
+
The SDK adds `createDiskRunTextEvidenceSource` and its public types, a bounded text view alongside the existing tool-only evidence source, plus an optional smaller per-operation read ceiling. New spill manifests record character positions without changing the existing tool-only source interface.
|
|
292
|
+
|
|
293
|
+
Headless `run --resume`/`--continue` and persistent `run-stream --session` now receive conversation retrieval tools. Both search and read remain available with deferred tool loading. Hosts still authorize the invoking conversation; no tool is replayed to recover its result.
|
|
294
|
+
|
|
295
|
+
- bde219d: Preserve underscores within identifiers in assistant replies. For example,
|
|
296
|
+
`RUN_LIMITS_READY` now displays exactly as returned instead of losing its
|
|
297
|
+
underscores to italic formatting. Standalone underscore emphasis still works;
|
|
298
|
+
stored conversation content is unchanged.
|
|
299
|
+
- 61d47e1: Clean up application homes created by the CLI test suite after both passing and failing tests, with a run-owned parent and final runner-exit sweep for late TUI persistence. Explicitly supplied homes remain untouched, including when a test changes `NAMZU_HOME`. This prevents development and CI runs from accumulating temporary session state; installed CLI behavior is unchanged.
|
|
300
|
+
- eb2e7ba: Preserve Codex native response items when the subscription stream sends them as completed output-item events but leaves the final response output empty. Newly recorded conversations now retain those reasoning and tool-call items for eligible tool continuations and resume. The same correction retains hosted citations and reports tool-call finish reasons correctly. Existing route and message-integrity checks remain in force; native state already discarded by older versions cannot be recovered by upgrading.
|
|
301
|
+
- 738d012: Recover a retained conversation passage after restart without spending a model
|
|
302
|
+
turn on every empty index page. Each read now advances through at most eight
|
|
303
|
+
lookup pages within its existing 8 MiB allowance, checking source ownership and
|
|
304
|
+
integrity before each operation. A continuation still returns when the work or
|
|
305
|
+
byte allowance requires another call. Durable addresses, exact text, read offsets
|
|
306
|
+
and cancellation behavior are unchanged.
|
|
307
|
+
- bd4bd2e: Allow automatic evidence-query resolution to use one explicitly marked compaction summary as a derived lookup reference after original turns leave visible history. The existing six-excerpt, 64-message and inference limits remain; ordinary system policy and tool text are excluded. Query-resolution basis metadata may now include `source: "compaction-summary"`. This provenance marks a derived reference, not proof of the requested fact: answers still require retained originals. Recorded CLI conversations use this through their existing recall configuration.
|
|
308
|
+
- 17933cf: Conversation search now advances through fully searched, nonmatching indexed runs in the same call instead of requiring a model round trip for each irrelevant run. It keeps the shared 8 MiB read ceiling, bounded directory discovery, source ownership checks and existing result limits. Partial index pages and matching pages still return control with a continuation when needed; unavailable evidence remains explicitly incomplete.
|
|
309
|
+
|
|
310
|
+
The read tool now asks the model to copy the search result's exact byte position, and gives actionable recovery guidance when an estimated position splits a UTF-8 character. It continues to refuse invalid reads rather than silently adjusting the requested position.
|
|
311
|
+
|
|
312
|
+
- f1cd16e: Conversation search and read results now show concise source and page-status summaries in the TUI. Retained previews, partial pages, unavailable search runs and recorded tool errors stay visible instead of appearing as plain complete text. Ctrl+O retains the full returned JSON and uses a single-line window heading. Tool responses sent to the model, stored evidence, access checks and retrieval limits are unchanged.
|
|
313
|
+
- 77eac40: Conversation search can return matches from several completely searched runs in one call instead of stopping at the first matching run. The existing result limit, 12,000-byte match allowance, 8 MiB read ceiling and bounded directory discovery still apply. The host reserves output space before each SDK operation and adjusts its requested match count to the available room, including escaped text and source metadata. Partial index pages still yield their continuation, and missing or changed evidence remains incomplete. Callers should continue to use returned cursors rather than assume a page belongs to one run.
|
|
314
|
+
- df686fc: System messages can now carry `source: { type: 'compaction-summary' }`.
|
|
315
|
+
Kernel-generated compaction summaries receive this marker. When retained,
|
|
316
|
+
their text is searchable and readable as `compaction_shed:summary`, preserving
|
|
317
|
+
exact text and existing part positions. Ordinary system text with the same
|
|
318
|
+
heading and older unmarked archives keep their previous classification.
|
|
319
|
+
|
|
320
|
+
Automatic evidence recall orders matching source records before known derived
|
|
321
|
+
summaries within its bounded candidate pool, using separate relevance statistics.
|
|
322
|
+
Summaries remain available as passages and exact read addresses; they are not
|
|
323
|
+
deleted. CLI evidence guidance explains that these are derived text, not
|
|
324
|
+
independent observations. Recall limits and opt-in settings are unchanged.
|
|
325
|
+
|
|
326
|
+
- e954d02: Automatic evidence recall now reports `omittedPassages` when eligible distinct
|
|
327
|
+
records do not fit the selected passage count or context size. Bounded
|
|
328
|
+
`additionalEvidence` addresses let archive tools recover withheld text;
|
|
329
|
+
`omittedAddresses` reports addresses which also could not fit. The original
|
|
330
|
+
scope checks and character ceiling remain in force.
|
|
331
|
+
|
|
332
|
+
The context can now retain an omission notice and read address even when no
|
|
333
|
+
whole excerpt fits. `incomplete` continues to describe source traversal, rather
|
|
334
|
+
than implying that every matched record was presented. In the CLI these
|
|
335
|
+
addresses work with the existing `read_conversation` tool. This corrects hidden
|
|
336
|
+
selection loss without changing the recall opt-in or adding model calls to the
|
|
337
|
+
retrieval hook itself.
|
|
338
|
+
|
|
339
|
+
- df143c8: Expose optional `excerptComplete` on retained-evidence search matches and recall candidates. Built-in sources prove whether the displayed excerpt contains a whole full-retained text part using validated UTF-8 bounds. A partial excerpt or retained preview reports false; custom sources that omit the field remain unknown.
|
|
340
|
+
|
|
341
|
+
CLI conversation search and automatic recall preserve this information and explain when reading the same unchanged part adds no text or independent evidence. The field describes one text part, not the truth of its claims or coverage of the whole conversation. Existing scope, integrity, cancellation and context limits remain enforced.
|
|
342
|
+
|
|
343
|
+
- 45c8292: Fix opt-in evidence query resolution skipping follow-up questions after six or
|
|
344
|
+
more assistant progress messages. Within the existing 64-message scan, retain
|
|
345
|
+
the nearest preceding operator request and five recent updates when progress
|
|
346
|
+
would otherwise fill all six reference slots. The prompt, retrieval and scan
|
|
347
|
+
ceilings remain unchanged. A missing or compacted-away request is not invented.
|
|
348
|
+
|
|
349
|
+
Do not rewind the reference window to an older identical question when the
|
|
350
|
+
current retained input is outside visible history, such as steering carried on
|
|
351
|
+
a tool result. Use the known message object as the boundary when available;
|
|
352
|
+
otherwise consider bounded recent history instead of inventing a position.
|
|
353
|
+
|
|
354
|
+
Normalize grounded filenames and punctuation-separated identifiers into the
|
|
355
|
+
same word tokens used by evidence discovery. A valid term such as
|
|
356
|
+
`sevkiyatlar.txt` no longer causes the entire optional plan to fail; all expanded
|
|
357
|
+
tokens must remain grounded and fit the existing 16-token ceiling.
|
|
358
|
+
|
|
359
|
+
Cover this behavior through the CLI Session host, including the existing
|
|
360
|
+
`resolveEvidenceQueries: false` opt-out. The CLI adds no default model call.
|
|
361
|
+
|
|
362
|
+
- 6a6921c: Report unavailable automatic historical evidence in temporary model context instead of silently dropping every sign of a failed query plan or read. The short status distinguishes planning failure, retrieval failure, timeout and an earlier read still pending; it does not imply that the requested history is absent.
|
|
363
|
+
|
|
364
|
+
Raw error bodies, malformed plans and rejected source data stay out of the note. Existing error diagnostics and direct callback rejections remain, parent cancellation stops work, and context/read bounds still apply. Explicit archive tools remain available, and a failed cached query plan does not trigger an extra model call each iteration. No status note is stored as operator conversation history.
|
|
365
|
+
|
|
366
|
+
- 691342c: Automatic conversation recall now labels selected passages and visible-source
|
|
367
|
+
references with their producer kind. Prior assistant statements are identified
|
|
368
|
+
as claims rather than proof of observed file state or successful actions.
|
|
369
|
+
|
|
370
|
+
Within the existing candidate and context limits, selection keeps the best
|
|
371
|
+
lexical match first and then considers matching records from other producer
|
|
372
|
+
kinds before repeating a kind. This prevents repeated model claims from taking
|
|
373
|
+
every slot when a tool record is available. Derived summaries remain last.
|
|
374
|
+
Archive bytes, explicit search/read tools and access boundaries are unchanged;
|
|
375
|
+
these labels and ranking do not establish truth or independent corroboration.
|
|
376
|
+
|
|
377
|
+
- 612879e: Recover text blocks in compacted tool results that also contain images or
|
|
378
|
+
documents. Scoped conversation search and exact reads now include those blocks
|
|
379
|
+
after compaction and restart, without mixing binary bytes or inserted separators
|
|
380
|
+
into the text. Existing plain-text part addresses keep pointing to the same
|
|
381
|
+
content. Newly written large archives retain the additional text parts; old
|
|
382
|
+
archives are not rewritten. Unindexed legacy scans report skipped block arrays
|
|
383
|
+
as incomplete instead of claiming a complete search. No configuration changes
|
|
384
|
+
are required; automatic CLI recall remains opt-in.
|
|
385
|
+
- e7bc7a1: When optional conversation query planning finds competing referents, preserve
|
|
386
|
+
that interpretation for the main model instead of silently skipping recall.
|
|
387
|
+
A temporary note carries validated quotes and asks the model to clarify if
|
|
388
|
+
needed; it is labelled as a fallible interpretation, not historical evidence.
|
|
389
|
+
No subject is selected for automatic retrieval in this case. The note shares
|
|
390
|
+
the existing context allowance and cancellation, and new operator input clears
|
|
391
|
+
the cached interpretation. SDK defaults and CLI configuration keys are unchanged.
|
|
392
|
+
- 3e09024: Learning candidates and learning cycles can declare `purpose: 'exploration'` for instructions intended to improve an explorer. Their purpose is covered by the content digest, and generation cannot redirect the host-admitted purpose. A skill cannot change purpose under the same name.
|
|
393
|
+
|
|
394
|
+
`projectResidentLearning` continues to select task guidance by default. Exploration policies require an explicit matching purpose and are reported as `different-purpose` when withheld. Existing skills without a purpose retain their task behavior and hashes. CLI resident steps therefore keep exploration policies out of ordinary task context. Explicit exploration projection still requires matching source revisions and does not grant tools or start inference.
|
|
395
|
+
|
|
396
|
+
- d1be0be: Stabilize goal conversation UI tests by waiting for the enabled composer before
|
|
397
|
+
typing commands, including after conversation replacement. Tests continue to
|
|
398
|
+
exercise durable goal ordering and automatic continuation without increasing
|
|
399
|
+
timeouts or changing CLI behavior.
|
|
400
|
+
- 43124f0: When automatic evidence query resolution is enabled, allow its existing bounded
|
|
401
|
+
planner to select grounded subject words for discovery. A named record can now
|
|
402
|
+
focus the search without generic field words filling context with other records.
|
|
403
|
+
Source spelling, quoted context and every candidate's conversation ownership
|
|
404
|
+
are validated before use.
|
|
405
|
+
|
|
406
|
+
Temporary context reports the selected focus, observed focus words and locally
|
|
407
|
+
excluded passages. An empty focused scan is explicitly not proof of archive
|
|
408
|
+
absence. Explicit conversation search/read tools remain available with their
|
|
409
|
+
existing semantics; no additional model call or retrieval budget is introduced.
|
|
410
|
+
SDK query resolution remains opt-in. CLI integration checks cover archived
|
|
411
|
+
observations after reopening a conversation.
|
|
412
|
+
|
|
413
|
+
- e40044b: Correct evidence-source guidance for questions about earlier observations. The SDK coding-agent doctrine now distinguishes retained historical content from current workspace reads, preserves exact identifiers in reports and requires unavailable history to be reported honestly. Recorded CLI turns explain how to recover clipped details with their conversation search/read tools, before compaction as well as after restart. The guidance is omitted when those tools are unavailable and remains stable across a run. Search responses explicitly distinguish remaining pages from unavailable evidence so a matching announcement is not confused with the original observation. Storage, permissions, retrieval bounds and freshness checks for edits are unchanged.
|
|
414
|
+
- 6446182: Fix opt-in evidence query planning failing when a model rewrites a word's
|
|
415
|
+
spelling or inflection. The internal planner selects numbered words supplied
|
|
416
|
+
by the host; retrieval receives the original spellings after quote validation.
|
|
417
|
+
The vocabulary shares the existing 12,000-character preparation allowance,
|
|
418
|
+
offers at most 256 distinct spellings, and reports omissions. Each plan still
|
|
419
|
+
selects at most 16 words. Literal retrieval remains the SDK default, and the
|
|
420
|
+
CLI's existing query-resolution opt-out remains available.
|
|
421
|
+
|
|
422
|
+
Keep present-state plans from expanding with historical terms. Invalid IDs or
|
|
423
|
+
quotes still reject optional preparation instead of weakening source grounding.
|
|
424
|
+
Update the CLI Session regression for the internal selection protocol.
|
|
425
|
+
|
|
426
|
+
- 77272e3: Read retained original observations after a process exits before recording a
|
|
427
|
+
terminal run status. Disk evidence factories accept `consistency: 'snapshot'`
|
|
428
|
+
for explicitly scoped nonterminal runs; the existing default remains `closed`.
|
|
429
|
+
Snapshot reads validate ownership and unchanged source bytes on every operation
|
|
430
|
+
without acquiring an execution lease, resuming tools or changing run metadata.
|
|
431
|
+
|
|
432
|
+
The CLI now uses this mode for recorded `idle`, `pending` and `running` runs
|
|
433
|
+
outside its requesting live writer. An incomplete final JSONL fragment is
|
|
434
|
+
excluded within the existing bounded I/O allowance without editing the source.
|
|
435
|
+
Search remains incomplete for nonterminal snapshots; a full read describes only
|
|
436
|
+
the selected retained text. File or metadata changes require a fresh search,
|
|
437
|
+
and missing or altered retained originals remain unavailable.
|
|
438
|
+
|
|
439
|
+
- 5996a84: Recover retained tool text while the same invocation is still running. The SDK adds optional `ToolContext.captureRunEvidence` and `RunStore.captureTextEvidence` capabilities; custom stores need not implement them. Disk events carry additive integrity links so new appends do not invalidate earlier search/read continuations. Scope changes, damaged records and modified retained outputs are refused; torn boundaries remain explicitly incomplete.
|
|
440
|
+
|
|
441
|
+
CLI conversation search and read use this capability for the requesting invocation, preserving exact output after compaction without repeating the original action. Live cursors expire when the writer is replaced; start a new search after restart. Closed-run retrieval continues to support durable run/event/part references.
|
|
442
|
+
|
|
443
|
+
Conversation search also identifies the originating tool and directs callers to read the full passage, so original observations can be distinguished from prior retrieval excerpts.
|
|
444
|
+
|
|
445
|
+
- ebfb3b4: Preserve original messages removed by CLI `/compact`, including exact user details
|
|
446
|
+
absent from its summary, for conversation search/read after restart. Failed
|
|
447
|
+
retention keeps the existing conversation; messages whose serialized form exceeds
|
|
448
|
+
3 MiB are refused before replacement.
|
|
449
|
+
|
|
450
|
+
SDK consumers handling `compaction_shed.reason` or `ShedPass.reason` exhaustively
|
|
451
|
+
must add the new `manual` case. Both manual compaction helpers accept optional
|
|
452
|
+
`onShed` to await host-owned retention before returning replacement history;
|
|
453
|
+
callback failure rejects the operation. Existing callers without a callback keep
|
|
454
|
+
their projection-only behavior.
|
|
455
|
+
|
|
456
|
+
- 7168bbf: Avoid returning an underfilled conversation-search response solely because an internal SDK index page ended. Search can follow up to seven internal continuations while preserving its existing requested match count, 12,000-byte match output allowance and 8 MiB read ceiling. Public cursors still resume remaining work, and each internal page revalidates scope and source integrity. A later validation failure removes that run's accumulated matches from the current response; cancellation still aborts the call. Run counts describe distinct runs visited within the response.
|
|
457
|
+
- 7182f1b: Fix conversation evidence searches that permanently excluded runs after the
|
|
458
|
+
first 100 directory entries. `search_conversation` now returns a continuation
|
|
459
|
+
for later discovery batches, including empty batches containing no run IDs.
|
|
460
|
+
`read_conversation` and automatic recall keep their existing exact-text,
|
|
461
|
+
ownership, byte and page limits; no tool action is replayed.
|
|
462
|
+
|
|
463
|
+
Discovery resources are bounded to 32 scans and 128 cached name pages per
|
|
464
|
+
process and expire after ten minutes. Concurrent reads of one continuation
|
|
465
|
+
share its page. Directory changes require restarting discovery, and CLI
|
|
466
|
+
Session shutdown closes abandoned scans. Batch order is not chronological
|
|
467
|
+
or globally ranked; automatic recall remains opt-in and non-exhaustive.
|
|
468
|
+
|
|
469
|
+
- c329408: Fix repeated historical observations filling every automatic evidence-recall
|
|
470
|
+
passage slot and excluding a different record such as a correction. Exact equal
|
|
471
|
+
text with the same producer, retention and error status now shares a passage
|
|
472
|
+
before bounded BM25 scoring. Copies retain their separate source addresses;
|
|
473
|
+
changed identifiers, previews and errors remain distinct.
|
|
474
|
+
|
|
475
|
+
Request context includes `otherOccurrences` for additional addresses and
|
|
476
|
+
`omittedOccurrences` when the character allowance cannot hold all addresses in
|
|
477
|
+
the retrieved pool. Distinct text takes priority over extra addresses. No archive
|
|
478
|
+
record is removed, no current-state or cross-run chronology is inferred, and
|
|
479
|
+
explicit search/read tools are unchanged. CLI automatic recall remains opt-in
|
|
480
|
+
with `compaction.recallEvidence: true`; no read or passage limits increase.
|
|
481
|
+
|
|
482
|
+
- e1b8bc7: Fix live evidence continuations incorrectly reporting an exhaustive search
|
|
483
|
+
after automatic recall had encountered a preview or unavailable original.
|
|
484
|
+
The continuation now retains omissions from the same live scan, even when its
|
|
485
|
+
remaining pages contain only valid records and are fully consumed.
|
|
486
|
+
|
|
487
|
+
`unavailableRuns` remains a count for the current call. A final page can have
|
|
488
|
+
zero new unavailable runs while `incomplete` remains true because an earlier
|
|
489
|
+
record was missing. Healthy scans still finish normally; a separate historical
|
|
490
|
+
scan's omissions do not taint the live cursor. No additional reads, model calls,
|
|
491
|
+
action replay or broader access are introduced.
|
|
492
|
+
|
|
493
|
+
- 10e9984: Add optional `RunEvidenceSearchOptions.excludeSuccessfulTools` to omit successful
|
|
494
|
+
results from up to 16 exact tool names during bounded discovery. The default
|
|
495
|
+
excludes nothing. Filter membership is bound to continuations; exact reads stay
|
|
496
|
+
available and errors or unknown provenance remain searchable. Search results and
|
|
497
|
+
`EvidenceRecallBatch` can report optional `excludedToolResults`, counting skipped
|
|
498
|
+
visits rather than unique facts. A positive count can produce an explanatory
|
|
499
|
+
recall context even when no passage is selected.
|
|
500
|
+
|
|
501
|
+
Preserve tool name and explicit error status in compacted text when the same
|
|
502
|
+
record contains an unambiguous, correctly ordered call/result pair. Newly written
|
|
503
|
+
large compaction archives retain that metadata; older archives without it stay
|
|
504
|
+
unknown. Text addresses, original messages and copy timestamps are unchanged.
|
|
505
|
+
|
|
506
|
+
When CLI automatic evidence recall is enabled, successful `search_conversation`
|
|
507
|
+
and `read_conversation` results no longer occupy its initial candidate slots,
|
|
508
|
+
allowing original observations behind repeated archive quotes to be considered.
|
|
509
|
+
Automatic cursors preserve this filter. Start a new literal search without that
|
|
510
|
+
cursor to inspect the quoted search/read results. This fixes candidate pollution
|
|
511
|
+
without increasing budgets or changing the default-disabled recall option.
|
|
512
|
+
|
|
513
|
+
- 4801a6f: Automatic evidence recall now recognizes text already present in tool text
|
|
514
|
+
blocks and earlier preparation stages. Those passages receive source references
|
|
515
|
+
instead of occupying slots intended for missing information. Images, documents
|
|
516
|
+
and private reasoning are not treated as visible text, and separate blocks are
|
|
517
|
+
never joined to invent a matching passage. Existing scope validation, context
|
|
518
|
+
limits and opt-in behavior are unchanged.
|
|
519
|
+
|
|
520
|
+
CLI automatic discovery can fill a candidate page from several completely
|
|
521
|
+
searched runs, within the same byte, output and page limits. It no longer
|
|
522
|
+
spends one automatic page on every small matching run. Explicit literal
|
|
523
|
+
searches retain their early return; unfinished source pages still require
|
|
524
|
+
continuation. Serialized matches, including escaping, share the output cap.
|
|
525
|
+
|
|
526
|
+
- b9e0f37: Add the experimental `refineEvidenceRecallTerms` SDK helper for bounded lexical
|
|
527
|
+
coverage checks. Hosts can use the returned strict query subset to search terms
|
|
528
|
+
missing from candidate excerpts without introducing another model call.
|
|
529
|
+
|
|
530
|
+
When `compaction.recallEvidence` is enabled, the CLI spends existing retrieval
|
|
531
|
+
pages on uncovered terms so frequent words are less likely to hide an earlier
|
|
532
|
+
observation. Original and focused cursors retain their own query and omission
|
|
533
|
+
state. The four-page, two-live-page and 8 MiB read limits remain in force;
|
|
534
|
+
explicit conversation searches retain literal matching. No configuration or
|
|
535
|
+
stored-data migration is required.
|
|
536
|
+
|
|
537
|
+
- 2bcf017: Improve automatic resident evidence selection when a long objective/summary
|
|
538
|
+
loses its subject or frequent matches hide a rarer requested observation.
|
|
539
|
+
Selection samples both ends of bounded fields and can spend existing search
|
|
540
|
+
pages on uncovered query words. Original and corrected observations retain
|
|
541
|
+
separate provenance; ambiguous references are not silently resolved.
|
|
542
|
+
|
|
543
|
+
Disk evidence sources and the resident source factory now advertise
|
|
544
|
+
`supportsTermRefinement`. SDK callers can supply `refineTerms` with an existing
|
|
545
|
+
token-search cursor to branch a strict subset at its authenticated position.
|
|
546
|
+
Returned cursors use the subset; the original broad cursor remains valid.
|
|
547
|
+
Scope, filters, read ceilings and automatic page/context limits stay enforced.
|
|
548
|
+
Custom sources without this capability use a fresh subset search; the resident
|
|
549
|
+
factory restarts within the selected invocation when its resolved backend
|
|
550
|
+
cannot refine a cursor.
|
|
551
|
+
|
|
552
|
+
- e63ca83: Add `PrepareStepResult.context` for current observations carried after history in a labelled runtime message for this request only. It is separate from `system` authority, counted in subsequent stages' context estimates, and never replaces operator intent or accumulates in conversation history.
|
|
553
|
+
|
|
554
|
+
The emitted `RuntimeContextMessageKind` union now includes `step-context`. Consumers with exhaustive switches or records over that exported union must handle the new kind as runtime-generated context, not operator input. This is the SDK's breaking surface; existing `prepareStep.system` callers retain their behavior.
|
|
555
|
+
|
|
556
|
+
The CLI moves its changing context inventory into this field. OpenAI and Anthropic request conversion no longer moves that inventory ahead of conversation history as system text. This preserves history placement without promising cache hits or reduced billed tokens.
|
|
557
|
+
|
|
558
|
+
Anthropic message caching now places its breakpoint before request-only step context, so the cached boundary ends on stable history rather than the inventory that changes next step. Requests without step context keep their existing breakpoint.
|
|
559
|
+
|
|
560
|
+
- 52f2d09: Resumed conversations and earlier-prompt forks no longer show blank assistant
|
|
561
|
+
rows for tool-only messages. Retained public commentary and final-answer items
|
|
562
|
+
are restored as separate entries when they still match the saved answer. Edited
|
|
563
|
+
or compacted content takes precedence over stale parts. Tool results and provider
|
|
564
|
+
replay state remain unchanged for the next model request.
|
|
565
|
+
- 2e93158: Preserve full permitted shell output before condensing similar lines. Previously,
|
|
566
|
+
condensation happened before retention, so omitted row values could be lost even
|
|
567
|
+
though conversation search reported the stored result as complete. Historical
|
|
568
|
+
search and reads can now recover those originals without repeating the command.
|
|
569
|
+
|
|
570
|
+
Compact output carries its recovery path. Authenticated retention may also write
|
|
571
|
+
an artifact for a condensed result below the normal size cap. If retention fails,
|
|
572
|
+
the ordinary bounded original is shown instead; hook-redacted text stays redacted.
|
|
573
|
+
|
|
574
|
+
- 1d651d0: Keep large compacted histories searchable, including short user text attached to
|
|
575
|
+
large images and individual long text messages. The disk store writes a bounded
|
|
576
|
+
`compaction_archive` storage record and saves original messages and authenticated
|
|
577
|
+
text chunks under the run's `compaction-output/` directory. Full SDK event readers
|
|
578
|
+
restore the original `compaction_shed` event with its attachments and metadata.
|
|
579
|
+
|
|
580
|
+
Raw JSONL consumers must handle this new storage record or switch to
|
|
581
|
+
`RunDiskStore.readEvents()` / `readRunEventsIn()`. Preserve `compaction-output/`
|
|
582
|
+
with the transcript when copying a run. Upgrade SDK readers before consuming new
|
|
583
|
+
archives. Existing inline records remain readable; older oversized records are
|
|
584
|
+
not converted automatically.
|
|
585
|
+
|
|
586
|
+
CLI manual compaction now offloads messages above 3 MiB instead of refusing them.
|
|
587
|
+
Automatic compaction and scoped search/read use the same SDK mechanism. Archive
|
|
588
|
+
write failures and limits still prevent the history replacement.
|
|
589
|
+
|
|
590
|
+
- 281859f: Correct recovery guidance in shortened tool output. The kernel no longer assumes that workspace `read`/`grep` tools can open internal retained-output paths. It directs recovery through the host-authorized tools and distinguishes the saved observation from a fresh read of its source. Existing permissions, exact retention and preview limits are unchanged; previously recorded previews are not rewritten.
|
|
591
|
+
- c795e3f: Read an already located conversation passage directly through its authenticated
|
|
592
|
+
SDK address instead of searching index pages again. This removes an unnecessary
|
|
593
|
+
empty read page after late search matches. Source ownership and bytes are checked
|
|
594
|
+
again on every read; changed evidence is refused.
|
|
595
|
+
|
|
596
|
+
The host retains at most 128 locations for ten minutes without retaining their
|
|
597
|
+
payloads. Expiry, eviction or restart falls back to the existing bounded lookup
|
|
598
|
+
using the same run/sequence/part address. Closing a conversation now releases
|
|
599
|
+
both search and read cursors, as well as these temporary locations.
|
|
600
|
+
|
|
601
|
+
- 0fa8941: Allow a host to bound a resident tool-evidence operation across history,
|
|
602
|
+
invocation resolution and archive reads with `maxReadBytes`. Configure the
|
|
603
|
+
source's `resolutionReadBytes` with a host-enforced document-read ceiling;
|
|
604
|
+
bounded calls refuse to proceed without that declaration. Their `chargedBytes`
|
|
605
|
+
includes the declared resolution allowance, and a failed source search without
|
|
606
|
+
a byte receipt conservatively consumes the remainder. Calls without the new
|
|
607
|
+
option retain their separate existing limits.
|
|
608
|
+
|
|
609
|
+
The CLI declares the existing size bounds of its two attempt receipts, making
|
|
610
|
+
its source usable by bounded host retrieval. This does not enable automatic
|
|
611
|
+
resident recall yet. Returned pages must match their resolved invocation's
|
|
612
|
+
tenant/project/Session/run identity, and cancelled reads cannot expose a late
|
|
613
|
+
backend result. Custom sources must honor the read limits they accept.
|
|
614
|
+
|
|
615
|
+
- 3c60512: Add optional writer-owned `PersistedRunEvent.previousTextRecord` links for live
|
|
616
|
+
text retrieval. Bounded searches can reach earlier observations without spending
|
|
617
|
+
their record allowance on intervening nontext lifecycle events. Operational JSONL
|
|
618
|
+
records and adjacent links remain intact. Missing text links retain adjacent
|
|
619
|
+
traversal, and malformed content or incomplete history cannot be skipped as if
|
|
620
|
+
the archive were complete.
|
|
621
|
+
|
|
622
|
+
The CLI's opt-in automatic evidence recall benefits from these links within its
|
|
623
|
+
existing page and byte limits. No extra model call or tool action replay is used.
|
|
624
|
+
This is selected-text integrity checking, not a full audit of skipped operational
|
|
625
|
+
records; the `compaction.recallEvidence` default remains off.
|
|
626
|
+
|
|
627
|
+
- 6c682d8: Text evidence searches accept `excludeDerivedSummaries`, defaulting to false.
|
|
628
|
+
This excludes only explicitly marked compaction summaries, binds the selection
|
|
629
|
+
into cursors, and reports `excludedSummaries` as skipped part visits. Summary
|
|
630
|
+
text remains available through unfiltered searches and exact reads.
|
|
631
|
+
|
|
632
|
+
When a partial automatic CLI evidence page contains derived summaries, the host
|
|
633
|
+
can spend its existing refinement page on source records instead. The general
|
|
634
|
+
cursor and already retrieved summaries are preserved. This helps discovery reach
|
|
635
|
+
original observations behind repeated summaries without increasing the four-page,
|
|
636
|
+
8 MiB read or context allowances. Explicit tool continuations restore the exact
|
|
637
|
+
filter; new literal searches remain unfiltered. An incomplete scan still cannot
|
|
638
|
+
establish absence.
|
|
639
|
+
|
|
640
|
+
- 656e79d: Add optional cancellation signals to `ToolContext.captureRunEvidence` and
|
|
641
|
+
`RunStore.captureTextEvidence`. Existing implementations that accept fewer
|
|
642
|
+
arguments remain compatible; custom stores should observe the supplied signal
|
|
643
|
+
to stop their own I/O promptly.
|
|
644
|
+
|
|
645
|
+
Tool evidence capture now observes the tool's deadline and nested dispatch
|
|
646
|
+
cancellation, and refuses use after the tool call settles even if its parent
|
|
647
|
+
run is still working. Cancelling a local read leaves other calls available.
|
|
648
|
+
Queued cancelled captures are skipped without releasing a writer lock early.
|
|
649
|
+
An uncooperative custom store can still delay later appends until its pending
|
|
650
|
+
operation settles, although the cancelled caller stops waiting immediately.
|
|
651
|
+
CLI conversation search and exact reads also forward their operation signal
|
|
652
|
+
when capturing live evidence.
|
|
653
|
+
|
|
654
|
+
- 3c6326f: Prevent checkpoint resume from repeating a tool that started but never recorded
|
|
655
|
+
its completion. Previously, resuming a partially completed batch could execute
|
|
656
|
+
such a call again, duplicating an external effect. The resumed conversation now
|
|
657
|
+
receives an explicit unknown outcome and can verify current state before further
|
|
658
|
+
work. Completed calls remain recovered and proven unstarted calls can continue.
|
|
659
|
+
|
|
660
|
+
Add optional `RunStore.readToolExecutions` and exported `ToolExecutionSnapshot` /
|
|
661
|
+
`ToolExecutionRecord` types. Disk and memory stores implement the scan; custom
|
|
662
|
+
stores without it use their strict `readEvents` contract. Missing or contradictory
|
|
663
|
+
execution evidence does not authorize replay. The disk scan has documented size
|
|
664
|
+
bounds; exceeded bounds produce unknown outcomes instead of automatic re-execution.
|
|
665
|
+
|
|
666
|
+
Explicitly answered durable questions may still re-enter their own asking tool,
|
|
667
|
+
without granting the same exception to interrupted siblings.
|
|
668
|
+
|
|
669
|
+
CLI `drain` now passes configured run limits to its resume host. Previously a
|
|
670
|
+
bounded run could fail with a token-budget root-limit mismatch because `drain`
|
|
671
|
+
silently used an unlimited limit. Keep the original token limit in configuration;
|
|
672
|
+
the existing ledger still enforces its spent allowance.
|
|
673
|
+
|
|
674
|
+
- 3c6ef94: Validate returned archive pages before exposing their text or caching an address.
|
|
675
|
+
Conversation search, exact reads and automatic recall now consistently reject
|
|
676
|
+
pages with mismatched ownership, invalid retrieval bounds or inconsistent text
|
|
677
|
+
positions. Exact reads also reject a wrong sequence/part during address lookup
|
|
678
|
+
and discard results returned after cancellation. Faulty captured sources report
|
|
679
|
+
unavailable evidence instead of contributing text to the conversation. Existing
|
|
680
|
+
built-in storage integrity checks and retrieval limits are unchanged.
|
|
681
|
+
- f3b377e: Project bounded file-evidence references and owned worker status into model requests. A successful write body is referenced only while its complete call input and receipt remain visible and match the conversation's observation fingerprint. Existing disk-drift checks still run before mutations. Observations without content now invalidate an earlier fingerprint instead of carrying it forward.
|
|
682
|
+
|
|
683
|
+
`FileReadTracker.recordRead` accepts an optional third argument for a successful full-body write's tool-call ID, exposed through the optional `writeCallId` method. The built-in tracker preserves this witness across identical observations and clears it on changed or unknown content. Existing custom trackers remain valid; trackers without the witness do not enable the new file reference projection.
|
|
684
|
+
|
|
685
|
+
Add `CompletionInbox.describeOwnedWork()` for a non-consuming snapshot of up to sixteen owned tasks, separating scheduler state from delivery to history. The runtime uses it to keep available results visible after operator steering; delivery does not claim that a user-facing synthesis was produced. No automatic relaunch, answer-verification inference or persisted duplicate transcript is added.
|
|
686
|
+
|
|
687
|
+
- fd0d270: Automatic evidence recall now retains bounded source references for exact text already visible in conversation history. The temporary context can contain `visibleEvidence` entries binding an exact bounded `textQuote` to an `address` for a host archive-read tool, recording time when known, source and retention/error metadata. `omittedVisibleEvidence` reports references withheld by the existing character limit. Quotes repeat at most 512 UTF-16 units to make the source association explicit; full records remain available through the read address. Visible quotes and new passages share `maxPassages`, with new text taking priority.
|
|
688
|
+
|
|
689
|
+
An otherwise complete recall pass may now return source metadata even when all matching text is already visible. Consumers should not assume every recall block contains new passage text. New-text ranking is independent of visible copies, and source ownership, revalidation, read limits and cancellation remain enforced. CLI models can use each reference's `address` with `read_conversation` to recover the exact source association without searching again or replaying an action.
|
|
690
|
+
|
|
691
|
+
- Updated dependencies [40651dd]
|
|
692
|
+
- Updated dependencies [b156888]
|
|
693
|
+
- Updated dependencies [7bb8163]
|
|
694
|
+
- Updated dependencies [2d26b44]
|
|
695
|
+
- Updated dependencies [6663561]
|
|
696
|
+
- Updated dependencies [2a1e0e5]
|
|
697
|
+
- Updated dependencies [ce55c21]
|
|
698
|
+
- Updated dependencies [9463b6f]
|
|
699
|
+
- Updated dependencies [de53442]
|
|
700
|
+
- Updated dependencies [6e4a820]
|
|
701
|
+
- Updated dependencies [28d3874]
|
|
702
|
+
- Updated dependencies [985db49]
|
|
703
|
+
- Updated dependencies [eb2e7ba]
|
|
704
|
+
- Updated dependencies [bd4bd2e]
|
|
705
|
+
- Updated dependencies [fe6e0fb]
|
|
706
|
+
- Updated dependencies [bb0281b]
|
|
707
|
+
- Updated dependencies [cff2b6a]
|
|
708
|
+
- Updated dependencies [df686fc]
|
|
709
|
+
- Updated dependencies [e954d02]
|
|
710
|
+
- Updated dependencies [2869fbe]
|
|
711
|
+
- Updated dependencies [b1e3bc5]
|
|
712
|
+
- Updated dependencies [df143c8]
|
|
713
|
+
- Updated dependencies [45c8292]
|
|
714
|
+
- Updated dependencies [6e14db9]
|
|
715
|
+
- Updated dependencies [6a6921c]
|
|
716
|
+
- Updated dependencies [691342c]
|
|
717
|
+
- Updated dependencies [d5d2b9a]
|
|
718
|
+
- Updated dependencies [b971796]
|
|
719
|
+
- Updated dependencies [e9a4192]
|
|
720
|
+
- Updated dependencies [612879e]
|
|
721
|
+
- Updated dependencies [e7bc7a1]
|
|
722
|
+
- Updated dependencies [b2d5b01]
|
|
723
|
+
- Updated dependencies [3e09024]
|
|
724
|
+
- Updated dependencies [f49a4b8]
|
|
725
|
+
- Updated dependencies [43124f0]
|
|
726
|
+
- Updated dependencies [e40044b]
|
|
727
|
+
- Updated dependencies [6446182]
|
|
728
|
+
- Updated dependencies [0a0baf2]
|
|
729
|
+
- Updated dependencies [c4aaf9b]
|
|
730
|
+
- Updated dependencies [77272e3]
|
|
731
|
+
- Updated dependencies [7579aa0]
|
|
732
|
+
- Updated dependencies [5996a84]
|
|
733
|
+
- Updated dependencies [ebfb3b4]
|
|
734
|
+
- Updated dependencies [4828eb0]
|
|
735
|
+
- Updated dependencies [97acc32]
|
|
736
|
+
- Updated dependencies [c329408]
|
|
737
|
+
- Updated dependencies [b649224]
|
|
738
|
+
- Updated dependencies [10e9984]
|
|
739
|
+
- Updated dependencies [4801a6f]
|
|
740
|
+
- Updated dependencies [b9e0f37]
|
|
741
|
+
- Updated dependencies [2bcf017]
|
|
742
|
+
- Updated dependencies [e63ca83]
|
|
743
|
+
- Updated dependencies [830f81e]
|
|
744
|
+
- Updated dependencies [6394010]
|
|
745
|
+
- Updated dependencies [f4b3ffb]
|
|
746
|
+
- Updated dependencies [9a4877a]
|
|
747
|
+
- Updated dependencies [f92daf8]
|
|
748
|
+
- Updated dependencies [22203b0]
|
|
749
|
+
- Updated dependencies [5d31eea]
|
|
750
|
+
- Updated dependencies [9ea5074]
|
|
751
|
+
- Updated dependencies [f1e33a1]
|
|
752
|
+
- Updated dependencies [2e93158]
|
|
753
|
+
- Updated dependencies [1d651d0]
|
|
754
|
+
- Updated dependencies [b888779]
|
|
755
|
+
- Updated dependencies [281859f]
|
|
756
|
+
- Updated dependencies [d1a6ce5]
|
|
757
|
+
- Updated dependencies [d81aca6]
|
|
758
|
+
- Updated dependencies [61aab1f]
|
|
759
|
+
- Updated dependencies [ea5367d]
|
|
760
|
+
- Updated dependencies [0fa8941]
|
|
761
|
+
- Updated dependencies [3c60512]
|
|
762
|
+
- Updated dependencies [8095541]
|
|
763
|
+
- Updated dependencies [6c682d8]
|
|
764
|
+
- Updated dependencies [bdf923d]
|
|
765
|
+
- Updated dependencies [656e79d]
|
|
766
|
+
- Updated dependencies [3c6326f]
|
|
767
|
+
- Updated dependencies [0a36260]
|
|
768
|
+
- Updated dependencies [f3b377e]
|
|
769
|
+
- Updated dependencies [fd0d270]
|
|
770
|
+
- Updated dependencies [2869fbe]
|
|
771
|
+
- @namzu/sdk@39.0.0
|
|
772
|
+
- @namzu/openai@3.1.1
|
|
773
|
+
- @namzu/anthropic@5.1.1
|
|
774
|
+
- @namzu/zen@1.0.1
|
|
775
|
+
- @namzu/computer-use@1.4.2
|
|
776
|
+
- @namzu/ollama@2.2.2
|
|
777
|
+
- @namzu/openrouter@2.4.0
|
|
778
|
+
|
|
779
|
+
## 24.0.0
|
|
780
|
+
|
|
781
|
+
### Major Changes
|
|
782
|
+
|
|
783
|
+
- 1efafcb: Resident `run` and `start` now default to a resident-specific context profile
|
|
784
|
+
instead of the interactive coding and plan-mode prompt. Read-only residents
|
|
785
|
+
can complete read-only objectives without being instructed to pause for an
|
|
786
|
+
interactive plan approval. Pass `--context-profile interactive` to preserve
|
|
787
|
+
the previous guidance. Ordinary chat, tool permissions, output validation and
|
|
788
|
+
claim settlement are unchanged.
|
|
789
|
+
|
|
790
|
+
The SDK exports `createResidentStepContributions` and `ResidentStepPromptOptions`
|
|
791
|
+
for stable resident guidance and captured invocation-specific continuity through
|
|
792
|
+
the existing prompt registry. Prompt-cache validation now checks rendered
|
|
793
|
+
instructions so replacing content under the same contribution or skill name
|
|
794
|
+
cannot retain stale guidance. Full-prompt cache hits still render once locally.
|
|
795
|
+
|
|
796
|
+
### Minor Changes
|
|
797
|
+
|
|
798
|
+
- 09c5993: Add experimental `namzu resident` commands to save, inspect, execute, pause, resume, wake, reconcile and archive project-bound pursuits. Execution reuses the configured CLI runtime, requires a finite step cap and defaults to read-only plan mode; provider/tool/token options apply to each invocation or SDK step as documented. Saved execution directories, last-step summaries and private attempt receipts survive reopening. Interrupted work retains its exact claim and requires explicit inspection before reconciliation; no service, automatic replay, external messaging or ordinary TUI default is enabled.
|
|
799
|
+
|
|
800
|
+
Add an optional durable `pauseGeneration` to resident agendas. Each successful `setPaused(true)` increments it, and resume preserves it, allowing a CLI runner to notice even a rapid pause/resume between local checks. SDK agenda writes use schema 5; schemas 1–4 remain readable with an absent generation interpreted as zero. Older writers refuse the new schema rather than drop stop authority. SDK hosts remain opt-in; existing local `ResidentHost.pause()` behavior is unchanged.
|
|
801
|
+
|
|
802
|
+
- e5bd6a2: Add `ToolRegistry.fork()` and `ToolRegistryForkOptions` to snapshot tool membership and availability independently for a run. Optional `deferExcept` hides currently active schemas until discovery without changing handlers, authorization or the source registry. Definitions and configuration remain shared; this is not a deep clone. Exact short/generic deferred tool names can now be discovered, and scoped prompts only recommend `search_tools` when it is available to that scope.
|
|
803
|
+
|
|
804
|
+
Add opt-in `namzu resident run|start --tool-loading deferred` to load optional tool schemas on demand for each step. The default remains `eager`; project instructions, memory recall, continuation evidence, permissions and provider-native search are unchanged. Discovery may require another model response. The internal CLI session option applies to fresh sends, not checkpoint resume.
|
|
805
|
+
|
|
806
|
+
- b7f6720: Add opt-in `ResidentHostRunOptions.keepAlive` while preserving the default idle-return behavior. A keep-alive invocation retains its original finite step budget and performs no model calls when no work is due; it requires a positive `maxIdleMs`.
|
|
807
|
+
|
|
808
|
+
Add `namzu resident start --max-steps <n>` for managed background execution, `stop` for exact-runner drainage, and `release <runner-id> --executor-stopped` for inspected crash recovery. Foreground and background CLI runners share exclusive immutable ownership. Status distinguishes live control replies from unresponsive retained state; failed cleanup does not establish drainage. No OS service or automatic replay is installed. Existing interrupted pursuit claims still require explicit reconciliation.
|
|
809
|
+
|
|
810
|
+
### Patch Changes
|
|
811
|
+
|
|
812
|
+
- e376b7c: Fix Windows startup rejecting private CLI state directories whose ACL includes
|
|
813
|
+
the operating system's SYSTEM account (`SY`). The current user must still have
|
|
814
|
+
access; grants to other users or groups remain refused. This fixes a local
|
|
815
|
+
state-permission failure that could appear after selecting a discovered Claude
|
|
816
|
+
session, without requiring another provider sign-in.
|
|
817
|
+
|
|
818
|
+
Claude session discovery now honors `CLAUDE_CONFIG_DIR`, including directories
|
|
819
|
+
with spaces. An explicitly selected profile cannot silently fall back to the
|
|
820
|
+
default Claude profile, the paired Windows home, or the default macOS Keychain.
|
|
821
|
+
Custom macOS Keychain entries remain unsupported.
|
|
822
|
+
|
|
823
|
+
- 63328d0: Fix npm startup failures in Windows provider setup and `namzu upgrade` by running npm's JavaScript entry point with the Node runtime that runs Namzu. Arguments, including installation paths with spaces or shell characters, remain literal. Windows uses the npm bundled with that runtime; if it is absent, Namzu explains how to repair it instead of trying a custom PATH wrapper. Cancelling provider installation requests termination of its Windows process tree and reports if cleanup cannot be confirmed.
|
|
824
|
+
|
|
825
|
+
CLI 23.0.0's existing Windows updater cannot acquire this fix itself when it fails with `spawn EINVAL`. Run `npm.cmd install --global @namzu/cli@latest` once using the same Node installation; include `--prefix "<existing-prefix>"` for a custom global prefix. Restart Namzu afterward.
|
|
826
|
+
|
|
827
|
+
- 3225450: Make the Windows conversation resume hint executable in PowerShell, including Windows PowerShell 5.1. The hint explicitly names PowerShell, quotes paths and arguments literally, and resumes only after a required directory change succeeds.
|
|
828
|
+
- 63328d0: Fix Windows startup failing on nested private state directories. Current-user
|
|
829
|
+
access now propagates to new child directories and files instead of leaving
|
|
830
|
+
Windows to assign its default ACL. Protecting a named private directory removes
|
|
831
|
+
an existing Administrators grant, including after an earlier failed startup;
|
|
832
|
+
it does not accept that group or unrelated accounts as private.
|
|
833
|
+
|
|
834
|
+
Existing descendant files with explicit grants are not recursively migrated.
|
|
835
|
+
POSIX permissions and credential-file ACL validation are unchanged.
|
|
836
|
+
|
|
837
|
+
- Updated dependencies [449988e]
|
|
838
|
+
- Updated dependencies [09c5993]
|
|
839
|
+
- Updated dependencies [0c9c98a]
|
|
840
|
+
- Updated dependencies [1efafcb]
|
|
841
|
+
- Updated dependencies [f3fa065]
|
|
842
|
+
- Updated dependencies [e5bd6a2]
|
|
843
|
+
- Updated dependencies [8400937]
|
|
844
|
+
- Updated dependencies [44b8dcf]
|
|
845
|
+
- Updated dependencies [b7f6720]
|
|
846
|
+
- @namzu/sdk@38.2.0
|
|
847
|
+
|
|
3
848
|
## 23.0.0
|
|
4
849
|
|
|
5
850
|
### Major Changes
|