@kodax-ai/kodax 0.7.76 → 0.7.78
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 +758 -371
- package/LICENSE +158 -158
- package/README.md +1702 -1508
- package/README_CN.md +1019 -869
- package/config-templates/config.example.jsonc +86 -4
- package/config-templates/integrations/a2a.example.jsonc +98 -98
- package/config-templates/integrations/extensions.example.jsonc +7 -7
- package/config-templates/integrations/mcp.example.jsonc +16 -16
- package/dist/builtin/code-review/SKILL.md +22 -22
- package/dist/builtin/skill-creator/scripts/aggregate-benchmark.d.ts +46 -46
- package/dist/builtin/skill-creator/scripts/analyze-benchmark.d.ts +46 -46
- package/dist/builtin/skill-creator/scripts/compare-runs.d.ts +62 -62
- package/dist/builtin/skill-creator/scripts/generate-review.d.ts +33 -33
- package/dist/builtin/skill-creator/scripts/grade-evals.d.ts +73 -73
- package/dist/builtin/skill-creator/scripts/improve-description.d.ts +23 -23
- package/dist/builtin/skill-creator/scripts/init-skill.d.ts +14 -14
- package/dist/builtin/skill-creator/scripts/install-skill.d.ts +29 -29
- package/dist/builtin/skill-creator/scripts/package-skill.d.ts +38 -38
- package/dist/builtin/skill-creator/scripts/quick-validate.d.ts +8 -8
- package/dist/builtin/skill-creator/scripts/run-eval.d.ts +66 -66
- package/dist/builtin/skill-creator/scripts/run-loop.d.ts +49 -49
- package/dist/builtin/skill-creator/scripts/run-trigger-eval.d.ts +58 -58
- package/dist/chunks/agent-ASP4MS3X.js +2 -0
- package/dist/chunks/argument-completer-JYQ7FX3W.js +2 -0
- package/dist/chunks/chunk-2CFHBKRE.js +5 -0
- package/dist/chunks/chunk-35PPHOQ2.js +292 -0
- package/dist/chunks/chunk-43QNNDHR.js +29 -0
- package/dist/chunks/chunk-5BNQXXGY.js +1 -0
- package/dist/chunks/chunk-5GO6FH7L.js +458 -0
- package/dist/chunks/chunk-5NDCSFOP.js +78 -0
- package/dist/chunks/chunk-6FOJVETH.js +22 -0
- package/dist/chunks/chunk-6XM4B6K2.js +48 -0
- package/dist/chunks/chunk-6YZUE6NC.js +240 -0
- package/dist/chunks/{chunk-RDXRM3UI.js → chunk-7OEBJGHK.js} +1 -1
- package/dist/chunks/chunk-KQLQYHWU.js +386 -0
- package/dist/chunks/chunk-NXO6GWSY.js +46 -0
- package/dist/chunks/chunk-T2XZTLYE.js +316 -0
- package/dist/chunks/chunk-TQDBTTIM.js +348 -0
- package/dist/chunks/{chunk-SMT2JSM3.js → chunk-UID7BLAB.js} +9 -9
- package/dist/chunks/chunk-VAT2QYXM.js +765 -0
- package/dist/chunks/chunk-YAZQTC2L.js +5 -0
- package/dist/chunks/chunk-YVRYHC4C.js +655 -0
- package/dist/chunks/{chunk-PXKSE54E.js → chunk-Z3KFRTSB.js} +1 -1
- package/dist/chunks/compaction-config-BQSSIWK5.js +2 -0
- package/dist/chunks/{construction-bootstrap-5F5KF2BZ.js → construction-bootstrap-VQLQGWPY.js} +1 -1
- package/dist/chunks/dist-BFT5YIGU.js +2 -0
- package/dist/chunks/dist-PCFE24YP.js +2 -0
- package/dist/chunks/host-UTFXCYYM.js +2 -0
- package/dist/chunks/run-manager-PJU3WIFJ.js +2 -0
- package/dist/chunks/utils-SID4HW2Q.js +2 -0
- package/dist/index.d.ts +21 -19
- package/dist/index.js +6 -6
- package/dist/kodax_bootstrap.js +25 -25
- package/dist/kodax_cli.js +1787 -1341
- package/dist/kodax_resume.js +17 -17
- package/dist/provider-capabilities.json +392 -362
- package/dist/runtime-worker.js +1707 -1279
- package/dist/sandbox-workspace-session.js +563 -0
- package/dist/sdk-a2a.d.ts +18 -17
- package/dist/sdk-a2a.js +8 -8
- package/dist/sdk-agent.d.ts +320 -70
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +135 -168
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.d.ts +14 -597
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-llm.d.ts +219 -6
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.d.ts +1 -1
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +70 -27
- package/dist/sdk-repl.js +2 -2
- package/dist/sdk-runtime.d.ts +212 -149
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-sandbox.d.ts +93 -0
- package/dist/sdk-sandbox.js +2 -0
- package/dist/sdk-session.d.ts +8 -8
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.d.ts +2 -2
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +15 -15
- package/dist/types-chunks/{base.d-ChvpaKjZ.d.ts → base.d-4e74xDdy.d.ts} +13 -1
- package/dist/types-chunks/{bash-prefix-extractor.d-r1beOESM.d.ts → bash-prefix-extractor.d-uAe2Oqda.d.ts} +319 -9
- package/dist/types-chunks/{capability-learning.d-DPrYxRjF.d.ts → capability-learning.d-CVsdHw4j.d.ts} +1 -1
- package/dist/types-chunks/{capsule.d-zeqV4IQX.d.ts → capsule.d-BlSv9l3V.d.ts} +2 -2
- package/dist/types-chunks/{guardrail.d-CWYD1bdL.d.ts → guardrail.d-BRE_ErEj.d.ts} +1 -1
- package/dist/types-chunks/{guardrail.d-qjuKJZ31.d.ts → guardrail.d-CXDYRgZ3.d.ts} +201 -35
- package/dist/types-chunks/{history-retrieval.d-BKTJIrVd.d.ts → history-retrieval.d-DtCy7x64.d.ts} +2 -2
- package/dist/types-chunks/{integration-config.d-ojG4swOP.d.ts → integration-config.d-BNowXE8k.d.ts} +23 -8
- package/dist/types-chunks/{public-api.d-CX4B11qY.d.ts → public-api.d-B3AohsxN.d.ts} +37 -8
- package/dist/types-chunks/{commands.d-DUxnK2TU.d.ts → repl.d-Ie_ZXb_U.d.ts} +89 -78
- package/dist/types-chunks/{side-query.d-DWTMsndP.d.ts → resolver.d-iAQ9ocLB.d.ts} +23 -74
- package/dist/types-chunks/{run-manager.d-B9fEIjZk.d.ts → run-manager.d-D1twIhF9.d.ts} +1 -1
- package/dist/types-chunks/{sdk-session-B0fhAOPa.d.ts → sdk-session-DB9KksIx.d.ts} +3 -3
- package/dist/types-chunks/side-query.d-DTuLPcC5.d.ts +77 -0
- package/dist/types-chunks/types-D3g6XUQr.d.ts +662 -0
- package/dist/types-chunks/{types.d-sRLugmjy.d.ts → types.d-BA-Jwpfs.d.ts} +506 -11
- package/dist/types-chunks/{types.d-DEctY20M.d.ts → types.d-BH0ZkTGf.d.ts} +2 -2
- package/dist/types-chunks/{types.d-DCQVBqVn.d.ts → types.d-BbtGlKZu.d.ts} +25 -3
- package/dist/types-chunks/{types.d-CSmF0t0n.d.ts → types.d-DIpZJKUl.d.ts} +15 -0
- package/dist/types-chunks/{types.d-Bm_y6YuM.d.ts → types.d-DVDTIfB_.d.ts} +4 -4
- package/dist/types-chunks/{utils.d-D0wPxz8y.d.ts → utils.d-CVp6bFl9.d.ts} +23 -7
- package/docs/SDK_EMBEDDER_GUIDE.md +592 -119
- package/package.json +9 -1
- package/scripts/kodax-bin.cjs +28 -28
- package/scripts/production-env.cjs +25 -25
- package/dist/chunks/agent-7X5CFET2.js +0 -2
- package/dist/chunks/argument-completer-3NHIKB4N.js +0 -2
- package/dist/chunks/chunk-4PWPNCNK.js +0 -158
- package/dist/chunks/chunk-7FJNLJLF.js +0 -369
- package/dist/chunks/chunk-COQYLD4U.js +0 -5
- package/dist/chunks/chunk-D3T24FJW.js +0 -78
- package/dist/chunks/chunk-EI4JBQKL.js +0 -46
- package/dist/chunks/chunk-HGT6WQ24.js +0 -321
- package/dist/chunks/chunk-HS3XHF3R.js +0 -622
- package/dist/chunks/chunk-IDCGNQ4H.js +0 -5
- package/dist/chunks/chunk-KAY2XLCP.js +0 -74
- package/dist/chunks/chunk-OD6LVXU6.js +0 -329
- package/dist/chunks/chunk-OSF3H4RR.js +0 -22
- package/dist/chunks/chunk-TGMBHGZO.js +0 -427
- package/dist/chunks/chunk-VWSLC2WO.js +0 -770
- package/dist/chunks/chunk-Y3AMP22L.js +0 -37
- package/dist/chunks/compaction-config-7J2XE35D.js +0 -2
- package/dist/chunks/dist-2RA7LSH3.js +0 -2
- package/dist/chunks/dist-URKXBOC6.js +0 -2
- package/dist/chunks/host-RKZ2OGFT.js +0 -2
- package/dist/chunks/run-manager-7RM4HEH6.js +0 -2
- package/dist/chunks/utils-X3TEH6IO.js +0 -2
- package/dist/types-chunks/center-types.d-BBT122uJ.d.ts +0 -91
package/CHANGELOG.md
CHANGED
|
@@ -6,398 +6,785 @@ All notable changes to this project will be documented in this file.
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
-
## [0.7.
|
|
10
|
-
|
|
11
|
-
> Git tag and GitHub Release are published by the release workflow. npm
|
|
12
|
-
> publication remains the operator's final manual step.
|
|
13
|
-
|
|
14
|
-
### Changed
|
|
15
|
-
|
|
16
|
-
- **Kimi Code defaults to the official K3 256K route.** The `kimi-code`
|
|
17
|
-
provider now defaults to `k3-256k` and sends that exact upstream model ID.
|
|
18
|
-
`kimi-for-coding` remains selectable for K2.7 Code, alongside
|
|
19
|
-
`kimi-for-coding-highspeed` and the 1M `k3` tier. K3 now exposes the
|
|
20
|
-
documented `low` / `high` / `max` reasoning levels with `high` as default;
|
|
21
|
-
media metadata marks `k3-256k` as image-capable but not video-capable, and
|
|
22
|
-
nominal subscription accounting reflects the 1M `k3` route's roughly 2x
|
|
23
|
-
quota consumption.
|
|
24
|
-
|
|
25
|
-
### Verification
|
|
26
|
-
|
|
27
|
-
- Added direct live-wire smoke coverage for all four Kimi Code subscription
|
|
28
|
-
routes: `k3-256k`, `k3`, `kimi-for-coding`, and
|
|
29
|
-
`kimi-for-coding-highspeed`.
|
|
30
|
-
|
|
31
|
-
## [0.7.75] - 2026-07-24
|
|
32
|
-
|
|
33
|
-
> The npm package was published manually. The `v0.7.75` Git tag and GitHub
|
|
34
|
-
> Release were skipped; the binary-release changes roll into `v0.7.76`.
|
|
35
|
-
|
|
36
|
-
### Changed
|
|
37
|
-
|
|
38
|
-
- **Exact audited npm candidate bytes.** The release script now packs first,
|
|
39
|
-
audits the generated Sidecar prompt and budget bridge, and publishes that
|
|
40
|
-
exact tarball so SDK validation and registry publication cannot drift.
|
|
41
|
-
- **Windows GUI background-process hardening.** Runtime
|
|
42
|
-
Worker-reachable non-interactive child processes now request hidden Windows
|
|
43
|
-
consoles across memory/Git metadata, provider CLI and ACP, LSP, clipboard,
|
|
44
|
-
worktree, review, extension-command, checkpoint, and sandbox paths. Explicit
|
|
45
|
-
editor, terminal, and PTY interaction remains unchanged.
|
|
46
|
-
- **Published Runtime Worker audit and packaged-host regression.** The bundle
|
|
47
|
-
build now audits statically identifiable child-process calls in the published
|
|
48
|
-
Runtime Worker, and the packaged Electron daemon smoke runs 20 ordinary
|
|
49
|
-
queries with a Win32 console-visibility probe. Packaged KodaX Space validation
|
|
50
|
-
on Windows 10 and Windows 11 remains a non-blocking product follow-up; it does
|
|
51
|
-
not gate the tag, package build, or npm publication.
|
|
52
|
-
|
|
53
|
-
### Fixed
|
|
54
|
-
|
|
55
|
-
- **Sidecar completion and Runtime terminal semantics.** Optional work offered
|
|
56
|
-
after the current request is complete is accepted rather than reported as
|
|
57
|
-
blocked; only clarification required to finish the current request remains
|
|
58
|
-
blocked. Budget-approval state is emitted only for an eligible `revise`, and
|
|
59
|
-
structured blocked codes and reasons survive live events, persistence,
|
|
60
|
-
daemon round trips, and restart recovery.
|
|
61
|
-
|
|
62
|
-
### Documentation
|
|
63
|
-
|
|
64
|
-
- Updated the release guide, current architecture/design baselines, SDK
|
|
65
|
-
embedder guidance, feature index, roadmap, issue tracker, English/Chinese
|
|
66
|
-
READMEs, and the v0.7.75 regression guide for the SDK validation candidate.
|
|
67
|
-
- Rescheduled FEATURE_263 from v0.7.75 to v0.7.77 and then to v0.7.78; moved
|
|
68
|
-
FEATURE_274 from v0.7.76 to v0.7.77. v0.7.75 and v0.7.76 remain feature-free
|
|
69
|
-
stabilization releases.
|
|
70
|
-
|
|
71
|
-
## [0.7.74] - 2026-07-23
|
|
72
|
-
|
|
73
|
-
> Git tag and GitHub Release are published by the release workflow. npm
|
|
74
|
-
> publication remains a separate manual operator step.
|
|
9
|
+
## [0.7.78] - 2026-07-29
|
|
75
10
|
|
|
76
11
|
### Added
|
|
77
12
|
|
|
78
|
-
- **
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
`
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
- **
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
and
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
- **Runtime active-run interrupt input.** Embedded Runtime and the shared daemon
|
|
98
|
-
now advertise `interruptInput:1`. `runtime.runs.submitInput()` queues cloned,
|
|
99
|
-
ordered input for the current active Actor Run, delivers one FIFO batch as
|
|
100
|
-
separate user messages at the next safe Runner boundary, and exposes durable
|
|
101
|
-
queued/delivered lifecycle facts without creating a continuation Run or
|
|
102
|
-
leaking terminalized input into a later Run.
|
|
13
|
+
- **Evidence-Gated Background Skill Learning (FEATURE_263).** Completed the
|
|
14
|
+
Memory-first learning loop with durable non-blocking review, immutable
|
|
15
|
+
project-scoped learned Skill revisions, canonical record/fingerprint-gated
|
|
16
|
+
discovery, exact-use outcome attribution, bounded three-use canaries,
|
|
17
|
+
independently verified project activation, and full `/learn`/Runtime Learning
|
|
18
|
+
Center controls. Protected/formal Skills, global promotion, and Extension
|
|
19
|
+
authoring remain explicit user actions.
|
|
20
|
+
- **Complete First-Run Split Configuration (FEATURE_276).** `kodax setup`,
|
|
21
|
+
first-run onboarding, and `--custom` now create and validate the core, MCP,
|
|
22
|
+
Extensions, and A2A active files plus annotated templates without
|
|
23
|
+
overwriting existing configuration or collecting secrets. Legacy integration
|
|
24
|
+
declarations are preserved and all cooperating writers share the same
|
|
25
|
+
lock/revision boundary.
|
|
26
|
+
- **Standalone Sandbox SDK.** Added the `@kodax-ai/kodax/sandbox` subpath with
|
|
27
|
+
typed capability, doctor, setup/activation guidance, and explicit
|
|
28
|
+
host-owned contained command execution. The generic API reports structured
|
|
29
|
+
unavailability and never silently executes without containment.
|
|
30
|
+
- Added read-only `/sandbox` diagnostics and optional `tool.sandbox` Runtime
|
|
31
|
+
events. Ordinary startup, history, and command cards remain quiet.
|
|
103
32
|
|
|
104
33
|
### Changed
|
|
105
34
|
|
|
106
|
-
- **
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
`
|
|
116
|
-
paths. This removes an avoidable discovery round trip while preserving the
|
|
117
|
-
explicit-create and three-turn blocked-state rules. The remaining deferred
|
|
118
|
-
set stays at exactly 11 tools; schemas, handlers, permissions, Goal state, and
|
|
119
|
-
compaction-protected receipts are unchanged.
|
|
35
|
+
- **Intent-Aligned Auto[LLM] Permission and ASRT Execution (FEATURE_277).**
|
|
36
|
+
Precisely modeled ordinary reads and workspace/system-temp mutations bypass
|
|
37
|
+
classifier latency independently of sandbox readiness. Other actions are
|
|
38
|
+
reviewed against bounded user intent and exact side effects; approval timeout
|
|
39
|
+
cancels only the current operation. ASRT is optional execution containment,
|
|
40
|
+
not permission authority, and admitted commands reuse a workspace-scoped
|
|
41
|
+
session instead of paying initialization/reset per command.
|
|
42
|
+
- The published bundle now exposes 12 SDK subpaths (13 entries including the
|
|
43
|
+
root), adding `/sandbox`; README, README_CN, the SDK embedder guide, and
|
|
44
|
+
`kodax_manual` describe the same surface.
|
|
120
45
|
|
|
121
46
|
### Fixed
|
|
122
47
|
|
|
123
|
-
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
48
|
+
- The v0.7.78 semantic release gates now use frozen, resumable current-policy
|
|
49
|
+
runners instead of absent or historical fixtures. F263 revision
|
|
50
|
+
`f263-v0.7.78.4` freezes production learning-review and downstream action
|
|
51
|
+
bytes; F277 revision `f277-v0.7.78.4` freezes the intent-aligned permission
|
|
52
|
+
prompt and exact action evidence. Both default to zero provider calls, require
|
|
53
|
+
explicit owner authorization plus a feature-specific generation flag, keep
|
|
54
|
+
raw/blind-review evidence outside the repository, and fail closed on
|
|
55
|
+
case/prompt/scorer drift.
|
|
56
|
+
- The first F263 paid validity pilot (`f263-v0.7.78.2`) correctly stopped after
|
|
57
|
+
4 calls: three outputs were rejected by the production normalizer and neither
|
|
58
|
+
positive sample produced a project canary. The production report contract now
|
|
59
|
+
requires `memoryPlan` and `capabilityDecision` as top-level siblings and
|
|
60
|
+
states the governed `requiresApproval=true` invariant without weakening the
|
|
61
|
+
strict normalizer or changing Skill admission policy.
|
|
62
|
+
- The subsequent F263 `.3` safety panel found no credible high-severity harm:
|
|
63
|
+
no negative case normalized to a project canary and all nine positive raw
|
|
64
|
+
decisions selected `project_canary`. It also exposed one systematic utility
|
|
65
|
+
mismatch: six human-readable Skill names failed the production slug
|
|
66
|
+
invariant, leaving only 3/9 normalized positive canaries. The production
|
|
67
|
+
prompt/tool schema now state the existing lowercase hyphenated-slug and
|
|
68
|
+
64-character constraints. Strict validation, evidence thresholds, scope,
|
|
69
|
+
canary admission, and promotion policy remain unchanged; downstream expansion
|
|
70
|
+
stopped and fresh `.4` revisions bind the corrected bytes to one exact
|
|
71
|
+
candidate.
|
|
72
|
+
- Runtime Actor trees now persist one exclusive owner per Session. A second live
|
|
73
|
+
Runtime can no longer recover another Runtime's active child turns; stale
|
|
74
|
+
controllers self-fence on CAS conflict, physically abort local executors,
|
|
75
|
+
refresh durable state and mailbox events, and expose actionable
|
|
76
|
+
`actor_owner_conflict` diagnostics. Runtime close and Session deletion release
|
|
77
|
+
ownership safely; archive/delete retain the owner through the filesystem
|
|
78
|
+
operation, while deletion quiesces executors before removing the file and
|
|
79
|
+
then performs a no-write local dispose. A per-Session gate closes Run/Agent
|
|
80
|
+
admission races with archive/delete, and SA root Runs now claim the same
|
|
81
|
+
owner fence. A Runtime-scoped loopback identity challenge now distinguishes
|
|
82
|
+
a live owner from an unrelated process that reused its PID: refused or
|
|
83
|
+
completed mismatched challenges prove stale, while timeouts and unknown
|
|
84
|
+
failures stay fail-closed. Legacy snapshots without an identity challenge
|
|
85
|
+
remain fail-closed because their live owner cannot be proven. Archived Sessions
|
|
86
|
+
reject Run/Agent execution and in-place mutation until unarchived, and
|
|
87
|
+
archived Actor CAS writes stay in the exact archived file instead of
|
|
88
|
+
recreating an active duplicate. Failed deletion retains its authoritative
|
|
89
|
+
snapshot and owner for retry, paired archive moves roll back on sidecar
|
|
90
|
+
failure, and external task aborts cover queued, preflight, pending, and
|
|
91
|
+
ambiguous start admission with a prompt `AbortSignal`, A2A request-level
|
|
92
|
+
propagation, retained per-Agent start ordering, coalesced reference-aware
|
|
93
|
+
cancellation, and bounded Actor-turn convergence.
|
|
94
|
+
Actor recovery preflight is byte-for-byte read-only, and Session recovery re-reads under the
|
|
95
|
+
cross-process lock without bypassing Actor ownership or moving archived data.
|
|
96
|
+
Stale full Session saves cannot replace the Actor CAS sub-snapshot, and all
|
|
97
|
+
full rewrites/island maintenance retain the resolved archived path.
|
|
98
|
+
Failed initialization releases a newly claimed fence and supports
|
|
99
|
+
same-instance/double-failure cleanup. Raw maintenance and retention reject
|
|
100
|
+
owned/non-terminal trees, complete Session file sets delete through
|
|
101
|
+
rollback-safe staging, and cross-process append revalidates and merges stale
|
|
102
|
+
watermarks plus same-length identity rewrites on the exact resolved path.
|
|
103
|
+
Runtime client, Worker, hosted-daemon, host, lease, and executor-plane close
|
|
104
|
+
attempts are shared and retryable after partial failure or timeout.
|
|
105
|
+
- SDK daemon auto-start accepts an opt-in `daemonOrphanExitMs` lifecycle
|
|
106
|
+
contract. A newly ready daemon arms bootstrap grace even if its launching
|
|
107
|
+
client crashes before initialize; attach cancels the timer, and loss of the
|
|
108
|
+
final logical client starts a fresh full grace period. Other clients cancel
|
|
109
|
+
it, governed active work defers shutdown until terminal/idle state, and only
|
|
110
|
+
then does the daemon release its endpoint, state, and owner lock. Ordinary
|
|
111
|
+
CLI persistent daemons remain unchanged. The dedicated
|
|
112
|
+
`daemonOrphanExit:1` capability reports that the current host actually has
|
|
113
|
+
the policy enabled, and both Runtime facades safely replace an idle
|
|
114
|
+
persistent owner before relying on it.
|
|
115
|
+
- Invalid optional MCP, A2A, or Extension configuration no longer aborts
|
|
116
|
+
daemon cold start. Each domain fails independently to a visible safe-empty
|
|
117
|
+
state, retains last-known-good data on later invalid edits, watches legacy
|
|
118
|
+
`config.json` fallbacks, and hot-recovers without mutating user files.
|
|
119
|
+
Detached bootstrap output is retained in continuously bounded logs, and the
|
|
120
|
+
daemon advertises the versioned `integrationConfigResilience` contract.
|
|
121
|
+
- Auto[LLM] now retries classifier timeout/provider/contract failures once,
|
|
122
|
+
enforces its deadline even when a provider ignores cancellation, exposes
|
|
123
|
+
bounded prompt-size and TTFT phase diagnostics, and then degrades at the
|
|
124
|
+
Accept-edits boundary without switching to Auto[rules]. Classifier
|
|
125
|
+
concerns request user confirmation instead of hard-blocking. Exact,
|
|
126
|
+
explicitly requested workspace copy/move/rename/delete/write/create shell
|
|
127
|
+
calls can proceed without an LLM round trip independently of sandbox
|
|
128
|
+
readiness. ASRT adds optional execution containment; unavailable or
|
|
129
|
+
pre-launch-failed local containment falls back to the ordinary path without
|
|
130
|
+
another classifier/approval. Admitted commands in one workspace reuse a
|
|
131
|
+
long-lived ASRT session, so session-level initialization/reset is not paid
|
|
132
|
+
on every command. Normal history stays quiet, while `/sandbox` provides
|
|
133
|
+
explicit diagnostics and SDK hosts can opt into structured events.
|
|
134
|
+
- Runtime Auto capability negotiation now requires
|
|
135
|
+
`runtimeAutoModeGuardrail:4` for daemon auto-start and consistently reports
|
|
136
|
+
`fallbackPersistsEngine:false` from embedded, Worker, and daemon hosts. An
|
|
137
|
+
idle v3 daemon is replaced before a v0.7.78 client relies on the
|
|
138
|
+
intent-preserving, non-Rules fallback contract.
|
|
139
|
+
- The built-in A2A listener now rejects explicit Fetch-blocked ports and
|
|
140
|
+
retries ephemeral allocation when the operating system selects one, so a
|
|
141
|
+
successfully returned loopback URL is usable by Fetch-compatible clients.
|
|
142
|
+
- `/learn promote` now has dedicated help, strict `--scope user` validation,
|
|
143
|
+
name/slug/capability-ID disambiguation, command completion, v2 learned-record
|
|
144
|
+
transport across inline/Worker/daemon, reviewed `ready` or `active_learned`
|
|
145
|
+
admission, and atomic non-overwriting publication with symlink/junction
|
|
146
|
+
containment and idempotent repeat behavior.
|
|
147
|
+
- Learned Skill canaries now remain in `testing` until all three exact-revision
|
|
148
|
+
outcomes settle, activate only with at least one independently verified
|
|
149
|
+
success, and revalidate revision/fingerprint inside the second locked
|
|
150
|
+
invocation mutation. A stale artifact identity cannot consume a canary slot
|
|
151
|
+
or be attributed to the current revision.
|
|
152
|
+
- Root AMA runs now execute the same governed MemorySession lifecycle as the
|
|
153
|
+
standard Agent path. The new root-only `memory_intent` signal binds an exact
|
|
154
|
+
current-user quote, distinguishes captured/queued/applied states, retains
|
|
155
|
+
durable review evidence, serializes review drains, and prevents generated
|
|
156
|
+
resume text or child Agents from authorizing Memory writes. Explicit
|
|
157
|
+
host-bound intent survives a later root cancellation without preserving
|
|
158
|
+
observations or lessons from the cancelled task; foreground completion still
|
|
159
|
+
stops at durable review enqueue rather than waiting for semantic review.
|
|
160
|
+
- Workspace ASRT shell containment now denies reads from sensitive home
|
|
161
|
+
credential paths and the complete resolved agent home. Home-local executable
|
|
162
|
+
search paths cannot carve access back into a denied subtree; ordinary
|
|
163
|
+
external reads, workspace/temp writes, bootstrap execution, and the existing
|
|
164
|
+
network policy remain unchanged.
|
|
165
|
+
- Edit mode no longer sends already-allowed static Skill loading to the client
|
|
166
|
+
permission broker, and Plan mode can load static instructions without
|
|
167
|
+
authorizing their later side effects. Dynamic Skill commands are blocked
|
|
168
|
+
live in Plan and otherwise require an explicit host-controlled executor;
|
|
169
|
+
protected writes and non-read-only shell actions keep their normal gates.
|
|
170
|
+
- Managed Workflow Actor waits no longer turn the Actor API's internal
|
|
171
|
+
30-second polling window into a misleading `undefinedms` failure when the
|
|
172
|
+
workflow has no explicit timeout. Explicit deadlines remain authoritative,
|
|
173
|
+
and terminal Actor output closes event-delivery races.
|
|
174
|
+
- The resume Session picker now renders stored timestamps in the host's local
|
|
175
|
+
timezone instead of presenting UTC values without a timezone marker.
|
|
176
|
+
- The Windows ordinary-query regression now gives temporary recursive removal
|
|
177
|
+
a bounded native retry window for the intentionally non-blocking governed
|
|
178
|
+
Memory review queue. The release gate no longer fails with transient
|
|
179
|
+
`ENOTEMPTY`, without making background review block foreground completion.
|
|
196
180
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
- Root and generated JSONC templates, both READMEs, architecture/design docs,
|
|
200
|
-
the SDK embedder guide, feature/issue trackers, release verification guide,
|
|
201
|
-
package READMEs, and `kodax_manual` now describe the complete v0.7.74
|
|
202
|
-
compaction, mailbox-wait, active-run input, Goal-tool, resume, Auto-switch,
|
|
203
|
-
and recovery contracts.
|
|
181
|
+
## [0.7.77] - 2026-07-27
|
|
204
182
|
|
|
205
|
-
|
|
183
|
+
> Released as Git tag `v0.7.77`, GitHub Release, and
|
|
184
|
+
> `@kodax-ai/kodax@0.7.77` on npm. Frozen F274/F275 paid evaluation completed
|
|
185
|
+
> with a joint owner `SHIP` decision; no unmeasured task-effect, token, or
|
|
186
|
+
> latency improvement is claimed.
|
|
206
187
|
|
|
207
188
|
### Added
|
|
208
189
|
|
|
209
|
-
- **
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
190
|
+
- **Host-configurable Shell Execution Contract.** Runtime callers can persist a
|
|
191
|
+
JSON-only `shellExecution` policy per Session or override it per Run,
|
|
192
|
+
selecting pwsh, Windows PowerShell, cmd, bash, zsh, or an explicit Git Bash
|
|
193
|
+
path. Configured runs resolve a credential-filtered environment through the
|
|
194
|
+
selected shell in the effective cwd, cache it by contract/cwd with strict
|
|
195
|
+
TTL or `refreshToken` invalidation, and execute through that same explicit
|
|
196
|
+
interpreter. Native child Agents and AMA deterministic evaluators inherit
|
|
197
|
+
the policy, command grants bind to its hash, and unconfigured callers retain
|
|
198
|
+
legacy shell behavior.
|
|
199
|
+
- **Pattern-aware adaptive AMA (FEATURE_274).** Ordinary AMA now shares one
|
|
200
|
+
six-pattern problem-solving catalog with Workflow semantics while continuing
|
|
201
|
+
to execute through the existing Runtime-owned Actor/Turn tree. Optional
|
|
202
|
+
`quality_strategy` metadata distinguishes coverage, replication, opposition,
|
|
203
|
+
filtering, judging, and challenge intent; Runtime derives a bounded,
|
|
204
|
+
fact-only `PatternTrace`, and the existing Sidecar remains the sole
|
|
205
|
+
terminal-answer quality adjudicator. Pattern presence does not activate a
|
|
206
|
+
Workflow, force a child, create a fixed topology, or add another verifier.
|
|
207
|
+
- **Governed event-triggered memory intervention (FEATURE_275).** Tool failure,
|
|
208
|
+
verification failure, and durably committed compaction can rebuild a closed,
|
|
209
|
+
prompt-safe candidate set before the next Action-LLM request.
|
|
210
|
+
`MemorySession.intervene()` performs deterministic exact selection by
|
|
211
|
+
default; an in-process host may opt into the bounded `memoryRecallRunner` or
|
|
212
|
+
`createCodingMemoryInterventionRunner()`. F228 remains the only durable
|
|
213
|
+
memory authority, daemon DTOs reject the function binding, and malformed,
|
|
214
|
+
unknown, stale, timed-out, or cancelled selector output fails silent.
|
|
215
|
+
- **Public Kimi K3 route.** The `kimi` provider now exposes `kimi-k3` with a
|
|
216
|
+
1,048,576-token context and the same K3 reasoning profile used by Kimi Code,
|
|
217
|
+
while preserving `kimi-k2.7-code` as the public default.
|
|
235
218
|
|
|
236
219
|
### Fixed
|
|
237
220
|
|
|
238
|
-
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
-
|
|
302
|
-
(
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
221
|
+
- Daemon startup now waits for the matching healthy owner state to publish
|
|
222
|
+
`status: ready` before returning, unrefing its child, or attaching a
|
|
223
|
+
concurrent CLI/SDK starter. Owned, competing, and pre-existing-owner paths
|
|
224
|
+
share the same bounded, cancellable identity fence, preventing successful
|
|
225
|
+
starts or SDK connections from observing a stale `starting` state.
|
|
226
|
+
- Missing local files referenced by historical image blocks no longer poison every later
|
|
227
|
+
Provider request. Anthropic-compatible user/tool-result images and OpenAI-compatible user
|
|
228
|
+
images now degrade only `ENOENT`/`ENOTDIR` to a path-free text marker; unrelated filesystem
|
|
229
|
+
errors remain visible. OpenAI-compatible tool-result image blocks also use path-free
|
|
230
|
+
missing/unsupported markers instead of serializing absolute local paths.
|
|
231
|
+
- Added stable, opaque Provider prompt-cache affinity for Kimi Code and other
|
|
232
|
+
verified endpoints. AMA/SA root requests reuse one logical-context key across
|
|
233
|
+
runs, retries, fallback, resume, and compaction; child Agents use stable
|
|
234
|
+
canonical-path keys isolated from their parent and physical worker Sessions.
|
|
235
|
+
Kimi Code lowers it to Anthropic-compatible `metadata.user_id`, public Kimi
|
|
236
|
+
and official OpenAI use `prompt_cache_key`, strict compatible gateways remain
|
|
237
|
+
opt-in, and the effective SDK/run-scoped/env `disablePromptCache` policy
|
|
238
|
+
removes all cache-routing metadata. Cache diagnostics expose only a separate
|
|
239
|
+
hash of an affinity key actually supported by the configured wire, never the
|
|
240
|
+
key or logical identity itself.
|
|
241
|
+
- Preserved official CLI cache usage end to end. Codex CLI
|
|
242
|
+
`cached_input_tokens` / `cache_write_input_tokens` and Gemini CLI
|
|
243
|
+
`stats.cached` now survive the JSONL parser, pseudo-ACP, normalized Provider
|
|
244
|
+
usage, and Runtime diagnostics. Explicit Provider zero remains `0`; missing
|
|
245
|
+
or invalid fields remain absent, and input totals are never recomputed by
|
|
246
|
+
adding cache breakdowns. The bridge now also keeps generated ACP IDs separate
|
|
247
|
+
from native Codex/Gemini session IDs: first prompts start fresh, only
|
|
248
|
+
CLI-reported native IDs may be resumed, stateless calls cannot share a
|
|
249
|
+
process-global session, failed/disconnected pseudo transports are recreated,
|
|
250
|
+
pending handshakes and later transport deaths are invalidated for reconnect,
|
|
251
|
+
and missing or non-zero-exit CLI completion fails visibly even when a
|
|
252
|
+
successful completion event was reported earlier. Default aborts remain
|
|
253
|
+
user cancellation, while hard/idle timeout abort reasons propagate into the
|
|
254
|
+
normal retry and failure path instead of becoming an empty success. The
|
|
255
|
+
configured CLI executor timeout is now enforced through process-tree
|
|
256
|
+
termination, including after a CLI reports success but never exits; native
|
|
257
|
+
ACP prompts also stop waiting at the caller deadline even if a server ignores
|
|
258
|
+
the best-effort cancel request.
|
|
259
|
+
- Hardened the Shell Execution Contract after adversarial review: configured
|
|
260
|
+
commands now deny credentials for every registered Provider, preserve a
|
|
261
|
+
Session contract when a Run context contains explicit `undefined`, rebuild
|
|
262
|
+
Windows Registry environments without stale `%PATH%` or tool-manager
|
|
263
|
+
variables, reject unsupported PowerShell profile/command switches, remove
|
|
264
|
+
`NODE_OPTIONS` before probing, honor explicit environment denies, and avoid
|
|
265
|
+
cmd-only hints under PowerShell or Git Bash. Last-waiter cancellation now
|
|
266
|
+
terminates an in-flight profile probe without interrupting shared waiters.
|
|
267
|
+
A targeted Windows CI gate covers the cross-platform shell paths.
|
|
268
|
+
- Rebuilt the supplied v0.7.77 package from the cache-stability fix and added
|
|
269
|
+
an end-to-end AMA automatic-compaction regression. Before and after
|
|
270
|
+
compaction, native and legacy Providers now prove the Skills addendum and
|
|
271
|
+
selected Skill are injected exactly once per Worker request, remain visible
|
|
272
|
+
to context-budget diagnostics, and never persist in compactable history.
|
|
273
|
+
- Repaired nested `agent-turn:` evidence fence sanitization so downstream child
|
|
274
|
+
briefings use invisible zero-width separators instead of visible mojibake.
|
|
275
|
+
- Made queued Runtime interrupt validation atomic at the batch boundary:
|
|
276
|
+
invalid artifacts now leave every accepted prompt queued and append no
|
|
277
|
+
partial user-message batch.
|
|
278
|
+
- Extended governed-memory prompt safety to qualified credential sentences and
|
|
279
|
+
advanced its frozen evidence fingerprint to cover the policy identity and
|
|
280
|
+
renderer limits.
|
|
281
|
+
- Aligned terminal contracts by emitting `onComplete` on iteration exhaustion
|
|
282
|
+
and deriving live-turn status from the final result; pattern-disposition
|
|
283
|
+
output Schema now enforces the parser's exclusive target forms.
|
|
284
|
+
- Taught the workflow structured-output validator to honor `oneOf`
|
|
285
|
+
(exactly-one-variant), so Schemas using it—including the
|
|
286
|
+
pattern-disposition envelope—are genuinely validated instead of silently
|
|
287
|
+
passing, and remain legal for workflow `outputSchema` declarations.
|
|
288
|
+
- Completed the Runtime diagnostics query contract for reconnecting hosts.
|
|
289
|
+
Budget, tool-exposure, compaction-skip, and provider-cache diagnostics now
|
|
290
|
+
carry stable logical `contextId` / `parentContextId` identity while retaining
|
|
291
|
+
isolated child transcript Sessions. Inline and daemon Runtime services expose
|
|
292
|
+
`latestProviderCacheDiagnostic(filter?)`; root defaults and child
|
|
293
|
+
Session/Agent isolation share the same strict matching semantics. Existing
|
|
294
|
+
hash-only request-envelope, ephemeral-suffix, retry/fallback/repair, and
|
|
295
|
+
compaction diagnostics remain intact.
|
|
296
|
+
- Extended prompt-cache and context-budget diagnostics to the SA substrate used
|
|
297
|
+
by Runtime child Agents, including retries, non-streaming fallback, workflow
|
|
298
|
+
digest, structured-output repair, and compaction summary requests. Diagnostics
|
|
299
|
+
now hash the Provider-visible projection, endpoint query, ephemeral suffix,
|
|
300
|
+
and complete request envelope while reporting only Provider-supplied cache
|
|
301
|
+
usage. Child cache controls preserve explicit `true` and `false` end to end.
|
|
302
|
+
- Kept the default child leading System prefix stable while restoring the
|
|
303
|
+
documented full specialist System override and write-child project mutation
|
|
304
|
+
rules. Runtime Actor children retain recursive AMA collaboration semantics on
|
|
305
|
+
the direct Runner substrate; actorless and protocol-owned Workflow leaves
|
|
306
|
+
remain SA with collaboration tools and guidance hidden.
|
|
307
|
+
- Separated Runtime Actor mailbox routing and logical context identity from
|
|
308
|
+
each child's isolated transcript session so child-to-grandchild wait/output
|
|
309
|
+
delivery completes reliably, follow-up diagnostics keep stable identities,
|
|
310
|
+
and synthetic digest/repair calls cannot advance canonical history revisions.
|
|
311
|
+
- Enforced specialist tool ceilings across descendants, Actor provider ceilings
|
|
312
|
+
across final routing and fallback, and model-visible collaboration guidance
|
|
313
|
+
against the final tool table. Direct children no longer see an unbound
|
|
314
|
+
`run_workflow`; actorless Workflow leaves execute under their admitted Actor
|
|
315
|
+
capability snapshot and use collision-free Actor paths for diagnostics.
|
|
316
|
+
- Kept canonical context revisions aligned with core-owned compaction storage:
|
|
317
|
+
a post-commit observer failure is diagnosed but can no longer roll back an
|
|
318
|
+
already persisted history replacement.
|
|
319
|
+
- Added root/child diagnostic identity and filtering so child physical requests
|
|
320
|
+
remain observable without replacing the default root result returned by
|
|
321
|
+
`context.budget.get`; diagnostics remain fully fail-open and never expose
|
|
322
|
+
prompt text.
|
|
323
|
+
- Corrected the paid prompt-cache lifetime probe to send the canonical
|
|
324
|
+
`input_schema` tool field.
|
|
325
|
+
- Closed the Runtime interrupt finalization race in both managed and ordinary
|
|
326
|
+
coding runs. A terminal candidate now closes active-run input admission
|
|
327
|
+
atomically, drains every interrupt accepted before that boundary into the
|
|
328
|
+
same Run, reserves a continuation model turn even at the configured iteration
|
|
329
|
+
limit, and reopens admission only when another model turn is guaranteed.
|
|
330
|
+
A fixed internal continuation allowance now preserves an absolute Run bound
|
|
331
|
+
when a client keeps submitting input without exceeding an admitted manifest's
|
|
332
|
+
`maxIterations` governance cap.
|
|
333
|
+
Idle-yield waiting reopens admission, while failure, cancellation, and
|
|
334
|
+
terminal cleanup close it before asynchronous teardown. Ordinary coding also
|
|
335
|
+
rotates live-turn attribution for each queued prompt and commits a COMPLETE
|
|
336
|
+
assistant response before any accepted continuation input. REPL follow-ups
|
|
337
|
+
retain their existing fresh-round ownership.
|
|
338
|
+
- Deduplicated built-in default models across `/model` completion, provider
|
|
339
|
+
metadata, and SDK capability listings while preserving default-first order
|
|
340
|
+
and per-model capability overrides.
|
|
341
|
+
- Resolved provider-only Auto LLM admission before preflight by materializing
|
|
342
|
+
the provider's static default model when one is available; custom providers
|
|
343
|
+
without a resolvable default retain the existing actionable error.
|
|
344
|
+
- Stabilized Anthropic-compatible prompt-cache prefixes across managed role
|
|
345
|
+
turns, exported cache diagnostic events, and added a focused
|
|
346
|
+
`probe:prompt-cache` operator command. Marking the latest user turn seeds the
|
|
347
|
+
next request but can add cache-write overhead to isolated one-shot requests;
|
|
348
|
+
those callers can set `disablePromptCache:true` or
|
|
349
|
+
`KODAX_DISABLE_PROMPT_CACHE=1`.
|
|
350
|
+
- Removed the Session-specific scratch path from AMA's stable System prompt.
|
|
351
|
+
Repository, memory, routing, Session, and live Actor facts now travel in the
|
|
352
|
+
request-only tail after Provider cache breakpoints, so equivalent first
|
|
353
|
+
requests from fresh Sessions share the same System/tools/messages prefix and
|
|
354
|
+
emit an `ephemeralSuffixHash`. Qwen Anthropic-compatible usage continues to
|
|
355
|
+
count uncached input plus cache creation/read input as total input. OpenAI-
|
|
356
|
+
compatible Providers merge the suffix into the final wire user turn to avoid
|
|
357
|
+
rejected `user,user` adjacency; runtime-registered Providers that do not
|
|
358
|
+
declare native suffix support receive a request-only message fallback.
|
|
359
|
+
- Expanded the governed-memory prompt-safety gate for common override/reset
|
|
360
|
+
variants, role-mode claims, self-closing role tags, and sentence-shaped
|
|
361
|
+
credentials. Checks now run against Unicode-normalized,
|
|
362
|
+
formatting-separated, and formatting-joined text; ordinary credential status
|
|
363
|
+
statements remain usable, and persistence shares the same secret predicate;
|
|
364
|
+
prompt-cache diagnostics now document their existing `contextDiagnostics`
|
|
365
|
+
gate.
|
|
366
|
+
- Made abort completion emission exactly-once and kept governed memory
|
|
367
|
+
intervention delivery ordered with terminal cleanup.
|
|
334
368
|
|
|
335
|
-
|
|
336
|
-
subscriptions now expose an awaitable `RuntimeSubscription.ready` handshake,
|
|
337
|
-
so hosts can establish cross-client ordering before starting work whose first
|
|
338
|
-
event must not be missed. Handshake failures remain observable to new callers
|
|
339
|
-
without creating unhandled rejections in legacy callers that ignore `ready`.
|
|
340
|
-
|
|
341
|
-
- **Detached daemon lifecycle cleanup.** CLI and SDK startup now retain the
|
|
342
|
-
exact candidate process until its PID is healthy and reclaim only that process
|
|
343
|
-
tree on early exit, timeout, identity mismatch, owner-race loss, or startup
|
|
344
|
-
cancellation. Vitest-owned daemons also shut down when a forcibly terminated
|
|
345
|
-
worker cannot run normal teardown; production daemons remain persistent after
|
|
346
|
-
ordinary client detach and have no idle reaper. A source daemon child now
|
|
347
|
-
carries only KodaX's production preload, explicit `tsx` support, and safe
|
|
348
|
-
Node engine flags instead of inheriting arbitrary parent loaders, preventing
|
|
349
|
-
test-runner hooks from parsing daemon CLI arguments.
|
|
369
|
+
### Documentation
|
|
350
370
|
|
|
351
|
-
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
371
|
+
- Updated the English/Chinese READMEs, current PRD/HLD/DD baselines, ADR
|
|
372
|
+
addendum, SDK embedder guide, feature and issue trackers, release guide,
|
|
373
|
+
package READMEs, and `kodax_manual` for the v0.7.77 candidate. Added focused
|
|
374
|
+
Issues 212–214 regression guides for terminal/schema/memory hardening,
|
|
375
|
+
compaction-safe managed context, and the Shell Execution Contract.
|
|
355
376
|
|
|
356
|
-
|
|
357
|
-
expects the current `minimax-coding` default, MiniMax M3, to support image
|
|
358
|
-
input while retaining fail-closed checks for unverified nearby routes.
|
|
377
|
+
### Verification
|
|
359
378
|
|
|
360
|
-
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
`
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
conditional readonly exception, `semantic_lookup(refresh:true)`, remains
|
|
377
|
-
classified because it rebuilds the on-disk derived index.
|
|
378
|
-
- **Runtime permission boundary correctness.** Relative operands resolve from
|
|
379
|
-
the validated execution directory while `gitRoot` remains a safety boundary;
|
|
380
|
-
Windows containment is case-insensitive, deterministic direct/nested-shell
|
|
381
|
-
writes to the user `.kodax` credential zone are Tier-0 denied, and quoted
|
|
382
|
-
Python/regexp source is not treated as a path. Permission previews use a
|
|
383
|
-
scan-bounded field whitelist, omit write/edit bodies, redact JSON/YAML/PEM
|
|
384
|
-
and command-line credentials, and remain valid size-limited JSON with that
|
|
385
|
-
directory. `exit_plan_mode` is absent without a real host approval bridge.
|
|
386
|
-
- **0.7.x SDK source compatibility.** Deprecated `amaw` input is accepted and
|
|
387
|
-
normalized to AMA without restoring retired behavior; formal `SkillSource`
|
|
388
|
-
remains exhaustive while `ResolvedSkillSource` adds `learned`; daemon
|
|
389
|
-
preflight normalizes canonical `activeAgentTurns` and deprecated
|
|
390
|
-
`activeAgentTasks` to the same required array across old and current wire
|
|
391
|
-
shapes.
|
|
392
|
-
- **Queued follow-up responsiveness.** REPL, AMA, and SA now share the same
|
|
393
|
-
Actor queue routing contract while SA retains its legacy unscoped queue. User
|
|
394
|
-
input wakes `wait_agent` and idle-yield through lossless subscriptions and
|
|
395
|
-
resumes at a safe turn boundary without canceling unrelated parallel tools.
|
|
396
|
-
SDK media follow-ups accept an explicit `sessionId`, preserve old single-Actor
|
|
397
|
-
calls through lifecycle-bound auto-routing, and reject ambiguous concurrent
|
|
398
|
-
calls instead of crossing sessions.
|
|
379
|
+
- Added deterministic F274/F275 experiment-contract, pattern/trace,
|
|
380
|
+
Sidecar-alignment, prompt-safety, candidate-admission, intervention-ordering,
|
|
381
|
+
Runtime interrupt, structured-output, real auto-compaction, and
|
|
382
|
+
cross-platform Shell Execution Contract regressions. A dedicated Windows CI
|
|
383
|
+
job exercises pwsh, Windows PowerShell, cmd, Registry environment refresh,
|
|
384
|
+
and Git Bash behavior.
|
|
385
|
+
- Completed the owner-authorized frozen paid gate against clean commit
|
|
386
|
+
`25d5521e`: F274 revision `f274-v0.7.77.6` used 96 Layer 2 calls plus 40
|
|
387
|
+
Layer 3 calls, kept candidate simple tasks solo in 6/6 cells, produced zero
|
|
388
|
+
accidental Workflow activation, and received blinded `recommend-ship`
|
|
389
|
+
reviews; F275 revision `f275-v0.7.77.3` completed its 16-call pilot with B/C
|
|
390
|
+
compatibility preservation at 4/4 versus control 1/2 and exact-empty
|
|
391
|
+
selector output in all 4/4 selector calls (including 2/2 negative controls).
|
|
392
|
+
The joint decision is `SHIP`. F275 semantic selection remains experimental
|
|
393
|
+
and host opt-in, and the 144-call task-effect/default-on validation was
|
|
394
|
+
intentionally not run.
|
|
399
395
|
|
|
400
|
-
## [0.7.
|
|
396
|
+
## [0.7.76] - 2026-07-25
|
|
397
|
+
|
|
398
|
+
> Git tag and GitHub Release are published by the release workflow. npm
|
|
399
|
+
> publication remains the operator's final manual step.
|
|
400
|
+
|
|
401
|
+
### Changed
|
|
402
|
+
|
|
403
|
+
- **Kimi Code defaults to the official K3 256K route.** The `kimi-code`
|
|
404
|
+
provider now defaults to `k3-256k` and sends that exact upstream model ID.
|
|
405
|
+
`kimi-for-coding` remains selectable for K2.7 Code, alongside
|
|
406
|
+
`kimi-for-coding-highspeed` and the 1M `k3` tier. K3 now exposes the
|
|
407
|
+
documented `low` / `high` / `max` reasoning levels with `high` as default;
|
|
408
|
+
media metadata marks `k3-256k` as image-capable but not video-capable, and
|
|
409
|
+
nominal subscription accounting reflects the 1M `k3` route's roughly 2x
|
|
410
|
+
quota consumption.
|
|
411
|
+
|
|
412
|
+
### Verification
|
|
413
|
+
|
|
414
|
+
- Added direct live-wire smoke coverage for all four Kimi Code subscription
|
|
415
|
+
routes: `k3-256k`, `k3`, `kimi-for-coding`, and
|
|
416
|
+
`kimi-for-coding-highspeed`.
|
|
417
|
+
|
|
418
|
+
## [0.7.75] - 2026-07-24
|
|
419
|
+
|
|
420
|
+
> The npm package was published manually. The `v0.7.75` Git tag and GitHub
|
|
421
|
+
> Release were skipped; the binary-release changes roll into `v0.7.76`.
|
|
422
|
+
|
|
423
|
+
### Changed
|
|
424
|
+
|
|
425
|
+
- **Exact audited npm candidate bytes.** The release script now packs first,
|
|
426
|
+
audits the generated Sidecar prompt and budget bridge, and publishes that
|
|
427
|
+
exact tarball so SDK validation and registry publication cannot drift.
|
|
428
|
+
- **Windows GUI background-process hardening.** Runtime
|
|
429
|
+
Worker-reachable non-interactive child processes now request hidden Windows
|
|
430
|
+
consoles across memory/Git metadata, provider CLI and ACP, LSP, clipboard,
|
|
431
|
+
worktree, review, extension-command, checkpoint, and sandbox paths. Explicit
|
|
432
|
+
editor, terminal, and PTY interaction remains unchanged.
|
|
433
|
+
- **Published Runtime Worker audit and packaged-host regression.** The bundle
|
|
434
|
+
build now audits statically identifiable child-process calls in the published
|
|
435
|
+
Runtime Worker, and the packaged Electron daemon smoke runs 20 ordinary
|
|
436
|
+
queries with a Win32 console-visibility probe. Packaged KodaX Space validation
|
|
437
|
+
on Windows 10 and Windows 11 remains a non-blocking product follow-up; it does
|
|
438
|
+
not gate the tag, package build, or npm publication.
|
|
439
|
+
|
|
440
|
+
### Fixed
|
|
441
|
+
|
|
442
|
+
- **Sidecar completion and Runtime terminal semantics.** Optional work offered
|
|
443
|
+
after the current request is complete is accepted rather than reported as
|
|
444
|
+
blocked; only clarification required to finish the current request remains
|
|
445
|
+
blocked. Budget-approval state is emitted only for an eligible `revise`, and
|
|
446
|
+
structured blocked codes and reasons survive live events, persistence,
|
|
447
|
+
daemon round trips, and restart recovery.
|
|
448
|
+
|
|
449
|
+
### Documentation
|
|
450
|
+
|
|
451
|
+
- Updated the release guide, current architecture/design baselines, SDK
|
|
452
|
+
embedder guidance, feature index, roadmap, issue tracker, English/Chinese
|
|
453
|
+
READMEs, and the v0.7.75 regression guide for the SDK validation candidate.
|
|
454
|
+
- Rescheduled FEATURE_263 from v0.7.75 to v0.7.77 and then to v0.7.78; moved
|
|
455
|
+
FEATURE_274 from v0.7.76 to v0.7.77. v0.7.75 and v0.7.76 remain feature-free
|
|
456
|
+
stabilization releases.
|
|
457
|
+
|
|
458
|
+
## [0.7.74] - 2026-07-23
|
|
459
|
+
|
|
460
|
+
> Git tag and GitHub Release are published by the release workflow. npm
|
|
461
|
+
> publication remains a separate manual operator step.
|
|
462
|
+
|
|
463
|
+
### Added
|
|
464
|
+
|
|
465
|
+
- **Absolute automatic-compaction threshold (FEATURE_272).** SDK, Runtime
|
|
466
|
+
Session settings, daemon protocol, REPL, and KodaX Space now expose an
|
|
467
|
+
optional token threshold. Missing/zero is inactive; otherwise the smaller of
|
|
468
|
+
the absolute limit, bounded percentage policy, and physical provider capacity
|
|
469
|
+
triggers compaction. Percentage defaults to 75% and clamps to 15-90%, while
|
|
470
|
+
automatic large compaction remains always enabled.
|
|
471
|
+
- **Context-owned compaction telemetry and transcript paging.** Root and child
|
|
472
|
+
turns now carry stable `contextId`/revision ownership. The canonical
|
|
473
|
+
`context.compaction.finished` event reports committed before/after and
|
|
474
|
+
component metrics. Runtime observations use bounded transcript slices,
|
|
475
|
+
revision-bound pages, and lossless chunks for oversized entries; clients can
|
|
476
|
+
require `contextCompaction:3`, `transcriptPaging:1`, and
|
|
477
|
+
`transcriptSearch:1`.
|
|
478
|
+
- **Durable exact-history recovery.** The root host now persists and flushes
|
|
479
|
+
exact pre-compaction lineage before evicting raw bodies. Island sidecars are
|
|
480
|
+
committed before the slim main Session, stable entry IDs deduplicate overlap,
|
|
481
|
+
and failures preserve the last exact live or persisted copy. Root Agents gain
|
|
482
|
+
bounded `session_history_search` / `session_history_read`; SDK and daemon
|
|
483
|
+
clients gain revision-bound `sessions.transcriptSearch()`.
|
|
484
|
+
- **Runtime active-run interrupt input.** Embedded Runtime and the shared daemon
|
|
485
|
+
now advertise `interruptInput:1`. `runtime.runs.submitInput()` queues cloned,
|
|
486
|
+
ordered input for the current active Actor Run, delivers one FIFO batch as
|
|
487
|
+
separate user messages at the next safe Runner boundary, and exposes durable
|
|
488
|
+
queued/delivered lifecycle facts without creating a continuation Run or
|
|
489
|
+
leaking terminalized input into a later Run.
|
|
490
|
+
|
|
491
|
+
### Changed
|
|
492
|
+
|
|
493
|
+
- **Mailbox-driven Agent coordination (FEATURE_273).** Model-visible
|
|
494
|
+
`wait_agent` now accepts only a bounded timeout and yields on the caller's
|
|
495
|
+
mailbox, root user input, interruption, or expiry. Progress remains available
|
|
496
|
+
through Actor snapshots, event replay, and SDK long-poll without waking and
|
|
497
|
+
resampling the parent model. The tool returns only a wake acknowledgement;
|
|
498
|
+
authenticated Agent messages and structured completion metadata enter the
|
|
499
|
+
transcript once at the next safe boundary. `list_agents` owns tree-state
|
|
500
|
+
inspection and `agent_output` owns targeted result reads.
|
|
501
|
+
- **Resident Goal lifecycle contracts.** `get_goal`, `create_goal`, and
|
|
502
|
+
`update_goal` keep their complete descriptions on both SA and managed AMA
|
|
503
|
+
paths. This removes an avoidable discovery round trip while preserving the
|
|
504
|
+
explicit-create and three-turn blocked-state rules. The remaining deferred
|
|
505
|
+
set stays at exactly 11 tools; schemas, handlers, permissions, Goal state, and
|
|
506
|
+
compaction-protected receipts are unchanged.
|
|
507
|
+
|
|
508
|
+
### Fixed
|
|
509
|
+
|
|
510
|
+
- **Large compaction coverage and protected-tail basis.** Major compaction now
|
|
511
|
+
protects 20% of the effective trigger rather than 20% of the model maximum,
|
|
512
|
+
summarizes the complete eligible prefix in one transaction, and uses
|
|
513
|
+
map-once/reduce-once only for physical overflow. Exact main-request prefix
|
|
514
|
+
reuse preserves prompt/KV cache on both ordinary and managed-task paths while
|
|
515
|
+
explicitly excluding the protected raw tail from the summary.
|
|
516
|
+
- **User intent retention across repeated and degraded compaction.** Genuine
|
|
517
|
+
user queries are mechanically retained in a stable JSONL checkpoint ledger,
|
|
518
|
+
including text carried beside tool results. A query is represented exactly
|
|
519
|
+
once: raw while it remains in the protected tail, then in the ledger when its
|
|
520
|
+
prefix is compacted. The explicit emergency-pruning fallback installs query
|
|
521
|
+
recovery before removing old raw evidence.
|
|
522
|
+
- **SDK/UI accounting and daemon frame safety.** The legacy compact callback now
|
|
523
|
+
reports post-compact tokens on both execution paths, and automatic managed
|
|
524
|
+
compaction emits the same post-commit canonical event/report as the standard
|
|
525
|
+
agent path. Persisted anchors include admitted post-compact attachments.
|
|
526
|
+
Space ignores child context metrics for the root gauge/activity/cost display,
|
|
527
|
+
displays the last root transition, labels active model input separately from
|
|
528
|
+
complete visible history, and reads transcripts directly through bounded
|
|
529
|
+
page/chunk calls. The legacy full-transcript daemon method rejects responses
|
|
530
|
+
above 512 KiB instead of risking the 8 MiB frame.
|
|
531
|
+
- **Compacted-history loss and maintenance replay.** Full-lineage loads now
|
|
532
|
+
merge exact sidecar entries over slim placeholders, compaction writes use a
|
|
533
|
+
durable-before-evict boundary, child compaction cannot overwrite root
|
|
534
|
+
lineage, and maintenance preserves its append watermark instead of archiving
|
|
535
|
+
the same island entries again.
|
|
536
|
+
- **Agent completion delivery and resumed transcripts.** Unacknowledged root
|
|
537
|
+
completions persist an explicit pending-delivery set and are republished after
|
|
538
|
+
a hard restart; same-process Runtime reconstruction deduplicates the projected
|
|
539
|
+
queue by child turn ID, while acknowledged and legacy historical completions
|
|
540
|
+
are not replayed. Completion acknowledgement remains after authoritative
|
|
541
|
+
transcript persistence. Session restore also deduplicates and canonically
|
|
542
|
+
repositions tool groups by tool-use ID and binds repeated text to the latest
|
|
543
|
+
persisted suffix.
|
|
544
|
+
- **Deterministic reads, bounded tool attention, and compaction round exits.**
|
|
545
|
+
Auto Mode now handles complete risk-free static reads deterministically while
|
|
546
|
+
sensitive paths, credential stores, process environments, and named secret
|
|
547
|
+
variables require confirmation. Grep clips pathological lines and exposes
|
|
548
|
+
bounded offset continuation; one batch-admission owner separates physical
|
|
549
|
+
capacity from tool-attention spill. Current user-shaped and legacy compaction
|
|
550
|
+
checkpoints no longer cause a compacted query/final pair to be appended twice.
|
|
551
|
+
- **Release-review boundary fixes.** Emergency compaction fallback accounts for
|
|
552
|
+
system/tool overhead and response reserve before pruning and reports no
|
|
553
|
+
success for unchanged or still-oversized candidates. Runtime-backed REPL paths
|
|
554
|
+
use one Session writer, first-run headless compaction seeds Session metadata,
|
|
555
|
+
persistence failure rolls back tentative context revision, and history search
|
|
556
|
+
consistently excludes system/hidden/checkpoint/placeholder content. Auto
|
|
557
|
+
permission analysis samples the middle of long operation lists, POSIX paths
|
|
558
|
+
are not mistaken for Windows switches, and continuation errors identify
|
|
559
|
+
`runtime.runs.submitInput` accurately.
|
|
560
|
+
- **Release-candidate checkpoint and PowerShell boundary closure.** Session
|
|
561
|
+
lineage now consumes and re-renders the exact compaction checkpoint bytes,
|
|
562
|
+
including recovery guidance, so the compaction entry, first-kept pointer, and
|
|
563
|
+
post-compact attachments remain on the active path; legacy suffix-free
|
|
564
|
+
checkpoints still resume. Auto Mode treats bracket wildcards on PowerShell
|
|
565
|
+
path parameters as incomplete and escalates them, while exact `LiteralPath`
|
|
566
|
+
filenames containing brackets remain supported.
|
|
567
|
+
- **Reliable continue-most-recent selection.** `kodax -c`, classic/Ink startup,
|
|
568
|
+
one-shot CLI execution, and coding-runtime auto-resume now scan beyond the
|
|
569
|
+
legacy ten-session window, skip zero-message ACP/bootstrap placeholders, and
|
|
570
|
+
preserve an explicit session ID. Interactive resume restores the saved
|
|
571
|
+
workspace runtime together with messages, UI history, lineage, artifacts,
|
|
572
|
+
extensions, title, tag, and session identity before the next turn.
|
|
573
|
+
- **Deterministic Auto mode switching.** Entering Auto now displays the resolved
|
|
574
|
+
configured engine immediately instead of a transient bare `Auto`, and Runtime
|
|
575
|
+
setting writes are serialized per Session so rapid shortcut cycling is
|
|
576
|
+
last-action-wins. Persisted or automatic `Auto[RULES]` fallback remains sticky
|
|
577
|
+
by design and can be changed explicitly with `/auto-engine llm`.
|
|
578
|
+
- **Release-review debt closure.** Imperative manual compaction now reconciles
|
|
579
|
+
the exact flat Session history into lineage before creating the compaction
|
|
580
|
+
island. A failed durable interrupt-delivery event leaves the input queued,
|
|
581
|
+
rethrows the persistence error, and emits a bounded `runtime.warning` without
|
|
582
|
+
copying user input content into diagnostics.
|
|
583
|
+
|
|
584
|
+
### Documentation
|
|
585
|
+
|
|
586
|
+
- Root and generated JSONC templates, both READMEs, architecture/design docs,
|
|
587
|
+
the SDK embedder guide, feature/issue trackers, release verification guide,
|
|
588
|
+
package READMEs, and `kodax_manual` now describe the complete v0.7.74
|
|
589
|
+
compaction, mailbox-wait, active-run input, Goal-tool, resume, Auto-switch,
|
|
590
|
+
and recovery contracts.
|
|
591
|
+
|
|
592
|
+
## [0.7.73] - 2026-07-20
|
|
593
|
+
|
|
594
|
+
### Added
|
|
595
|
+
|
|
596
|
+
- **Qwen Token Plan provider.** The new `qwen-token-plan` alias uses the
|
|
597
|
+
Anthropic-compatible Alibaba Cloud Token Plan endpoint and
|
|
598
|
+
`QWEN_TOKEN_API_KEY`. It defaults to `qwen3.8-max-preview`, exposes the
|
|
599
|
+
supported Qwen 3.7/3.6, GLM-5.2, and DeepSeek V4 Pro routes with one-million-
|
|
600
|
+
token context metadata, and declares verified reasoning, image-input, and
|
|
601
|
+
nominal subscription-cost capabilities without changing the existing `qwen`
|
|
602
|
+
provider.
|
|
603
|
+
- **First-run provider setup (FEATURE_271).** A bare interactive `kodax`
|
|
604
|
+
launch with no selected provider and no supported local credential now opens
|
|
605
|
+
a focused provider/model setup flow before Runtime, daemon, session, or REPL
|
|
606
|
+
startup. `kodax setup` reruns the same flow explicitly. It stores only
|
|
607
|
+
non-secret metadata, preserves unrelated config through a revision-checked
|
|
608
|
+
atomic write, refuses malformed existing custom providers and credential-
|
|
609
|
+
bearing endpoint URLs, and then names the required environment variable and
|
|
610
|
+
terminal restart steps.
|
|
611
|
+
- **Typed Auto Mode SDK contract (FEATURE_271).** The root and REPL SDK
|
|
612
|
+
entries now export one pure `resolveAutoModeSettings()` plus the authoritative
|
|
613
|
+
loader and related types; `loadConfig().autoMode` is declared, Runtime Session
|
|
614
|
+
settings persist `autoModeSpeculativeWindowMs` (including `0`), and side
|
|
615
|
+
queries return prompt-free provider/model/timing/retry/phase diagnostics.
|
|
616
|
+
- **Runtime-owned concrete permission grants.** Embedded and daemon SDK clients
|
|
617
|
+
can submit concrete `toolInput` and `executionCwd`, receive only opaque
|
|
618
|
+
Runtime-issued Session/persistent grant suggestions, and select a suggestion
|
|
619
|
+
without constructing or widening its hidden matcher. Exact command, known
|
|
620
|
+
file-tool path, and generic exact-call matchers remain revisioned and audited;
|
|
621
|
+
dynamic or dangerous shell calls never receive a persistent suggestion.
|
|
622
|
+
|
|
623
|
+
### Fixed
|
|
624
|
+
|
|
625
|
+
- **Reasoning, Auto Mode, and confirmation regressions.** Native
|
|
626
|
+
disabled-thinking requests now send the provider's explicit disabled form
|
|
627
|
+
only for models that declare support (including verified Qwen Token Plan 3.7
|
|
628
|
+
routes); always-thinking variants retain their declared behavior. Sidecar
|
|
629
|
+
queries preserve a supported `none` effort, persisted Runtime Auto engines
|
|
630
|
+
are not overwritten by a fresh REPL, `/mode` synchronizes before reporting
|
|
631
|
+
success, and concurrent confirmation prompts are serialized instead of
|
|
632
|
+
replacing one another.
|
|
633
|
+
- **Legacy permission-grant upgrade safety.** Matcherless grants persisted by
|
|
634
|
+
older releases remain visible and revocable but can no longer authorize a
|
|
635
|
+
concrete tool call. The next invocation requires a fresh Runtime-issued
|
|
636
|
+
matcher, so old coarse Bash grants cannot bypass exact-command, dynamic-shell,
|
|
637
|
+
or absolute-deny protections.
|
|
638
|
+
- **Classifier credential boundary.** Auto[LLM] now redacts explicitly named
|
|
639
|
+
credential values inside shell-escaped JSON before sending an action to its
|
|
640
|
+
side provider, while retaining adjacent operational fields. Redaction is
|
|
641
|
+
documented as defense in depth; arbitrary Base64/hex values are not treated
|
|
642
|
+
as secrets without a credential signal.
|
|
643
|
+
- **Todo/Actor semantic progress checkpoint (FEATURE_270 follow-up).** Worker
|
|
644
|
+
guidance now treats Todo rows as user-visible milestones rather than Actor
|
|
645
|
+
instances and requires timely updates at milestone boundaries. Structured
|
|
646
|
+
terminal child results arm one deduplicated, warn-only reconciliation
|
|
647
|
+
reminder; transcript scans are append-incremental with safe compaction
|
|
648
|
+
fallback, and Sidecar accept-time residual reconciliation emits a diagnostic
|
|
649
|
+
without changing its existing bridge contract.
|
|
650
|
+
- **Auto LLM classifier timeout and missing-model escalation.** Runtime now
|
|
651
|
+
treats omitted Auto engine as the documented LLM default and still owns the
|
|
652
|
+
guardrail, while a missing/blank/malformed effective classifier model fails
|
|
653
|
+
as a typed recoverable Runtime error or a local block in the shared
|
|
654
|
+
`createAutoModeToolGuardrail` boundary. The final guardrail check runs before
|
|
655
|
+
provider lookup and cannot invoke `askUser`, record a circuit-breaker error,
|
|
656
|
+
or downgrade to rules. Classifier requests strip assistant prose/thinking,
|
|
657
|
+
cap normalized transcript/tool-result/action/prompt bytes, remove image
|
|
658
|
+
paths, and cap the structured response at 256 tokens. The 20-second deadline remains bounded:
|
|
659
|
+
a four-call `zai-coding/glm-5.2` probe completed representative Windows
|
|
660
|
+
permission verdicts in 1.9–2.8 seconds, while the matching production session
|
|
661
|
+
revealed a 1.625 MB tool result that had bypassed the existing sanitizer.
|
|
662
|
+
- **Auto guardrail daemon and tracing semantics.** Auto-started Runtime clients
|
|
663
|
+
now require `runtimeAutoModeGuardrail:3`. It retains v2's effective
|
|
664
|
+
timeout/window defaults, bounded classifier input, and diagnostics metadata,
|
|
665
|
+
and adds opaque concrete-grant semantics. Capability negotiation is monotonic
|
|
666
|
+
(v3 satisfies v2/v1); idle older daemons use the existing fenced upgrade path,
|
|
667
|
+
while busy daemons are left untouched with a recoverable error. Guardrail
|
|
668
|
+
spans now cover the awaited callback instead of timing only final verdict
|
|
669
|
+
emission.
|
|
670
|
+
- **Concurrent daemon startup publication race.** A cleanly exiting loser now
|
|
671
|
+
gives the elected owner a bounded publication grace period, preventing an
|
|
672
|
+
SDK starter from reporting failure during the short lock/state handoff gap.
|
|
673
|
+
- **Guardrail/permission execution parity.** Both Runner paths now commit each
|
|
674
|
+
guardrail rewrite before permission policy and execution, reject correlation-
|
|
675
|
+
id rewrites, propagate blocks as visible audited tool results, and preserve
|
|
676
|
+
embedded host policy hooks while rejecting non-transportable daemon hooks.
|
|
677
|
+
Calls rewritten into Bash retain serialized shell ordering.
|
|
678
|
+
- **Managed-run capacity and tool-dispatch accounting.** A complete system
|
|
679
|
+
prompt override no longer double-counts Skills, missing provider usage rebases
|
|
680
|
+
from the final request envelope, and authoritative provider usage remains
|
|
681
|
+
intact. Non-Bash tool calls keep parallel dispatch, Bash remains sequential,
|
|
682
|
+
and aggregate tool-result spill decisions use the complete batch budget.
|
|
683
|
+
|
|
684
|
+
## [0.7.72] - 2026-07-19
|
|
685
|
+
|
|
686
|
+
### Added
|
|
687
|
+
|
|
688
|
+
- **Learning Center and learned-capability Runtime control plane
|
|
689
|
+
(FEATURE_266).** KodaX now owns learned capability lifecycle, notification
|
|
690
|
+
cursors, lower-precedence learned Skill discovery, F224 proposal projection,
|
|
691
|
+
promotion/rollback actions, and inline/Worker/daemon SDK parity through one
|
|
692
|
+
agent-layer service. `/learn`, status summaries, and the Ink learning segment
|
|
693
|
+
expose the same durable state without creating a second runtime engine.
|
|
694
|
+
- **Unified adaptive Actor/Turn control plane (FEATURE_270).** AMA collaboration
|
|
695
|
+
now uses one Runtime-owned actor tree and scheduler across native, recursive,
|
|
696
|
+
Workflow-owned, constructed, and external Agent work. The canonical
|
|
697
|
+
`spawn_agent`, `send_message`, `followup_task`, `wait_agent`,
|
|
698
|
+
`interrupt_agent`, `list_agents`, and `agent_output` surface supports reusable
|
|
699
|
+
Actor identities, durable Turn history, direct-parent completion, recursive
|
|
700
|
+
delegation, shared capacity, and SDK/daemon recovery. A manifest-first,
|
|
701
|
+
fail-closed behavioral eval driver freezes the released/current production
|
|
702
|
+
prompt and tool bytes, call graphs, budgets, raw evidence, and blind review
|
|
703
|
+
mapping before any separately authorized provider call.
|
|
704
|
+
|
|
705
|
+
### Changed
|
|
706
|
+
|
|
707
|
+
- **Current coding-eval aliases and MiniMax default model.** Newly authored or
|
|
708
|
+
revised evals now route Zhipu through `zhipu/glm52` (`glm-5.2`) and MiniMax
|
|
709
|
+
through `mmx/m3` (`MiniMax-M3`). `minimax-coding` now defaults to M3 while
|
|
710
|
+
the old `zhipu/glm51` and `mmx/m27` aliases remain explicitly selectable for
|
|
711
|
+
historical replay; existing raw evidence and reports keep their original
|
|
712
|
+
route labels.
|
|
713
|
+
- **AMA and Workflow orchestration cutover.** AMAW and the old model-visible
|
|
714
|
+
child-task vocabulary are retired. Persisted `amaw`/`ama-workflow` settings
|
|
715
|
+
migrate once to AMA, while new inputs fail with a migration hint. Workflow
|
|
716
|
+
remains available for explicit natural-language, command, named-pattern, and
|
|
717
|
+
SDK requests, but its child Agents now use the unified Actor scheduler and
|
|
718
|
+
task complexity alone no longer activates Workflow.
|
|
719
|
+
|
|
720
|
+
### Fixed
|
|
721
|
+
|
|
722
|
+
- **Remote Runtime subscription readiness.** Daemon event/workflow
|
|
723
|
+
subscriptions now expose an awaitable `RuntimeSubscription.ready` handshake,
|
|
724
|
+
so hosts can establish cross-client ordering before starting work whose first
|
|
725
|
+
event must not be missed. Handshake failures remain observable to new callers
|
|
726
|
+
without creating unhandled rejections in legacy callers that ignore `ready`.
|
|
727
|
+
|
|
728
|
+
- **Detached daemon lifecycle cleanup.** CLI and SDK startup now retain the
|
|
729
|
+
exact candidate process until its PID is healthy and reclaim only that process
|
|
730
|
+
tree on early exit, timeout, identity mismatch, owner-race loss, or startup
|
|
731
|
+
cancellation. Vitest-owned daemons also shut down when a forcibly terminated
|
|
732
|
+
worker cannot run normal teardown; production daemons remain persistent after
|
|
733
|
+
ordinary client detach and have no idle reaper. A source daemon child now
|
|
734
|
+
carries only KodaX's production preload, explicit `tsx` support, and safe
|
|
735
|
+
Node engine flags instead of inheriting arbitrary parent loaders, preventing
|
|
736
|
+
test-runner hooks from parsing daemon CLI arguments.
|
|
737
|
+
|
|
738
|
+
- **Windows memory lifecycle lock contention.** Concurrent forget/archive
|
|
739
|
+
operations now retry short-lived Windows sharing denials within the existing
|
|
740
|
+
bounded lock deadline instead of failing immediately with `EPERM`; unrelated
|
|
741
|
+
filesystem errors remain fail-fast.
|
|
742
|
+
|
|
743
|
+
- **MiniMax M3 default media regression.** The media capability suite now
|
|
744
|
+
expects the current `minimax-coding` default, MiniMax M3, to support image
|
|
745
|
+
input while retaining fail-closed checks for unverified nearby routes.
|
|
746
|
+
|
|
747
|
+
- **Bare resume cancellation terminal release.** Pressing Esc in `kodax -r`
|
|
748
|
+
now pauses and unreferences the picker-owned stdin path before the bootstrap
|
|
749
|
+
exits, so Windows PowerShell regains its prompt immediately without requiring
|
|
750
|
+
an extra keypress. The full CLI remains unloaded while listing sessions,
|
|
751
|
+
successful selection hands input to the REPL, and replay retains each
|
|
752
|
+
persisted event timestamp.
|
|
753
|
+
- **Auto[LLM] approval reliability.** The default classifier budget is now 20
|
|
754
|
+
seconds, pure readonly invocations bypass classification by invariant, and
|
|
755
|
+
SDK/daemon session settings can select the classifier model and timeout without
|
|
756
|
+
stale guardrail-cache reuse. Runtime advertises and requires
|
|
757
|
+
`runtimeAutoModeGuardrail:1` for auto-started daemon clients, owns the Session
|
|
758
|
+
guardrail ahead of the generic permission hook, persists LLM-to-rules
|
|
759
|
+
fallback, and creates a shared pending request only for an explicit
|
|
760
|
+
escalation. An older daemon is replaced only after a revision/owner-policy
|
|
761
|
+
fenced preflight proves that active/queued work and pending interactions are
|
|
762
|
+
absent; busy or unfenceable daemons return a typed recoverable error. The one
|
|
763
|
+
conditional readonly exception, `semantic_lookup(refresh:true)`, remains
|
|
764
|
+
classified because it rebuilds the on-disk derived index.
|
|
765
|
+
- **Runtime permission boundary correctness.** Relative operands resolve from
|
|
766
|
+
the validated execution directory while `gitRoot` remains a safety boundary;
|
|
767
|
+
Windows containment is case-insensitive, deterministic direct/nested-shell
|
|
768
|
+
writes to the user `.kodax` credential zone are Tier-0 denied, and quoted
|
|
769
|
+
Python/regexp source is not treated as a path. Permission previews use a
|
|
770
|
+
scan-bounded field whitelist, omit write/edit bodies, redact JSON/YAML/PEM
|
|
771
|
+
and command-line credentials, and remain valid size-limited JSON with that
|
|
772
|
+
directory. `exit_plan_mode` is absent without a real host approval bridge.
|
|
773
|
+
- **0.7.x SDK source compatibility.** Deprecated `amaw` input is accepted and
|
|
774
|
+
normalized to AMA without restoring retired behavior; formal `SkillSource`
|
|
775
|
+
remains exhaustive while `ResolvedSkillSource` adds `learned`; daemon
|
|
776
|
+
preflight normalizes canonical `activeAgentTurns` and deprecated
|
|
777
|
+
`activeAgentTasks` to the same required array across old and current wire
|
|
778
|
+
shapes.
|
|
779
|
+
- **Queued follow-up responsiveness.** REPL, AMA, and SA now share the same
|
|
780
|
+
Actor queue routing contract while SA retains its legacy unscoped queue. User
|
|
781
|
+
input wakes `wait_agent` and idle-yield through lossless subscriptions and
|
|
782
|
+
resumes at a safe turn boundary without canceling unrelated parallel tools.
|
|
783
|
+
SDK media follow-ups accept an explicit `sessionId`, preserve old single-Actor
|
|
784
|
+
calls through lifecycle-bound auto-routing, and reject ambiguous concurrent
|
|
785
|
+
calls instead of crossing sessions.
|
|
786
|
+
|
|
787
|
+
## [0.7.72-hotfix.0] - 2026-07-17
|
|
401
788
|
|
|
402
789
|
### Fixed
|
|
403
790
|
|
|
@@ -3017,7 +3404,7 @@ repl → coding, skills
|
|
|
3017
3404
|
### Tests
|
|
3018
3405
|
- Added / expanded tests for `task-engine`, `reasoning`, `tool-display`, `live-streaming`, `StatusBar`, `invocation-runtime`, `types-legacy`, and `InkREPL.interrupted`
|
|
3019
3406
|
|
|
3020
|
-
<!-- last-sync:
|
|
3407
|
+
<!-- last-sync: dfce6cd5 -->
|
|
3021
3408
|
|
|
3022
3409
|
### Added
|
|
3023
3410
|
- **Repository intelligence substrate (FEATURE_018)**: Task-aware repository intelligence layer under `.agent/repo-intelligence/` with durable artifacts — `repo-overview.json`, `changed-scope.json`, `module-index.json`, `symbol-index.json`, `process-index.json`, `repo-intelligence-manifest.json` — supporting incremental refresh, freshness metadata, and language-tiered extraction (TS/JS via AST, Python, Go, Rust, Java, C++)
|