@kodax-ai/kodax 0.7.96-rc.8 → 0.7.96

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.
Files changed (98) hide show
  1. package/CHANGELOG.md +247 -0
  2. package/README.md +79 -1
  3. package/README_CN.md +58 -1
  4. package/dist/chunks/{agent-SQEORJ34.js → agent-7N427EVB.js} +1 -1
  5. package/dist/chunks/argument-completer-FAIHW7HZ.js +2 -0
  6. package/dist/chunks/{chunk-STZJPTOP.js → chunk-4PFZ7BEE.js} +14 -14
  7. package/dist/chunks/{chunk-RZAYZL6D.js → chunk-66XN5AFU.js} +226 -225
  8. package/dist/chunks/{chunk-Q7X5YCGN.js → chunk-6QI3GOYG.js} +4 -4
  9. package/dist/chunks/chunk-7IMWOR34.js +2 -0
  10. package/dist/chunks/chunk-7O2AIFNE.js +373 -0
  11. package/dist/chunks/chunk-ABZDFK2X.js +22 -0
  12. package/dist/chunks/{chunk-M5Q72534.js → chunk-C7U542KM.js} +1 -1
  13. package/dist/chunks/{chunk-WHQCTZKI.js → chunk-DSXUXUZG.js} +1 -1
  14. package/dist/chunks/{chunk-756FJMN2.js → chunk-EM4XJBTK.js} +1 -1
  15. package/dist/chunks/{chunk-SRF7LYW3.js → chunk-GN2IY5YE.js} +1 -1
  16. package/dist/chunks/chunk-GYO73UYQ.js +275 -0
  17. package/dist/chunks/chunk-HPCS3LZ5.js +324 -0
  18. package/dist/chunks/{chunk-W5XGIRQQ.js → chunk-HZYRLIOC.js} +1 -1
  19. package/dist/chunks/{chunk-NS6BVSR6.js → chunk-NI7PBPUR.js} +1 -1
  20. package/dist/chunks/{chunk-VERXLY53.js → chunk-NKT3B3DR.js} +1 -1
  21. package/dist/chunks/{chunk-ILBJY4YW.js → chunk-SC2ELSUS.js} +227 -227
  22. package/dist/chunks/chunk-TEUD5VPJ.js +471 -0
  23. package/dist/chunks/chunk-TYZ2ZAYL.js +487 -0
  24. package/dist/chunks/chunk-WV3DJVW4.js +1478 -0
  25. package/dist/chunks/{chunk-TKWZHYI2.js → chunk-XXNR6S4Q.js} +1 -1
  26. package/dist/chunks/{chunk-MC7QY4RI.js → chunk-YEAUDI6U.js} +1 -1
  27. package/dist/chunks/{client-Q7D2FG75.js → client-6WZZTTSV.js} +1 -1
  28. package/dist/chunks/{compaction-config-PQME2RVW.js → compaction-config-ZMEJU4U7.js} +1 -1
  29. package/dist/chunks/{construction-bootstrap-FJ2IJPX6.js → construction-bootstrap-RX4DMHI7.js} +1 -1
  30. package/dist/chunks/dist-3UCCMCYR.js +2 -0
  31. package/dist/chunks/{dist-222EMRS3.js → dist-F5IWZSAY.js} +1 -1
  32. package/dist/chunks/host-W2JJ3V3Q.js +2 -0
  33. package/dist/chunks/run-manager-RBWU3EVE.js +2 -0
  34. package/dist/chunks/{utils-LZ7IV6HU.js → utils-DJ4ZFJGL.js} +1 -1
  35. package/dist/index.d.ts +15 -15
  36. package/dist/index.js +1 -1
  37. package/dist/kodax_bootstrap.js +1 -1
  38. package/dist/kodax_cli.js +1556 -1441
  39. package/dist/kodax_resume.js +34 -34
  40. package/dist/native/win32-x64/kodax-windows-sandbox.exe +0 -0
  41. package/dist/native/win32-x64/kodax-windows-text-transaction.node +0 -0
  42. package/dist/native/win32-x64/manifest.json +2 -2
  43. package/dist/runtime-worker.js +1444 -1329
  44. package/dist/sandbox-network-broker.js +70 -70
  45. package/dist/sdk-a2a.d.ts +10 -10
  46. package/dist/sdk-a2a.js +1 -1
  47. package/dist/sdk-agent.d.ts +71 -14
  48. package/dist/sdk-agent.js +1 -1
  49. package/dist/sdk-coding.d.ts +19 -18
  50. package/dist/sdk-coding.js +1 -1
  51. package/dist/sdk-experimental-memory.d.ts +5 -5
  52. package/dist/sdk-experimental-memory.js +1 -1
  53. package/dist/sdk-llm.js +1 -1
  54. package/dist/sdk-mcp.js +1 -1
  55. package/dist/sdk-media.js +1 -1
  56. package/dist/sdk-repl.d.ts +13 -13
  57. package/dist/sdk-repl.js +1 -1
  58. package/dist/sdk-runtime.d.ts +14 -10
  59. package/dist/sdk-runtime.js +1 -1
  60. package/dist/sdk-sandbox.js +1 -1
  61. package/dist/sdk-session.d.ts +6 -6
  62. package/dist/sdk-session.js +1 -1
  63. package/dist/sdk-skills.js +1 -1
  64. package/dist/semantic-worker.js +53 -53
  65. package/dist/types-chunks/{bash-prefix-extractor.d-C94-n4cl.d.ts → bash-prefix-extractor.d-DWFIMg0v.d.ts} +55 -7
  66. package/dist/types-chunks/{capsule.d-pCKlk4oY.d.ts → capsule.d-Dj1n6s0Y.d.ts} +14 -10
  67. package/dist/types-chunks/{controller.d-CpCtr_Ew.d.ts → controller.d-C0IM1Tud.d.ts} +2 -2
  68. package/dist/types-chunks/{controller.d-BOR06_Tm.d.ts → controller.d-J2t1q8Ly.d.ts} +2 -2
  69. package/dist/types-chunks/{exec-policy.d-DiMx1srL.d.ts → exec-policy.d-BPESl90L.d.ts} +2 -2
  70. package/dist/types-chunks/{history-retrieval.d-Ckz3qqag.d.ts → history-retrieval.d-CPN5PMBV.d.ts} +1 -1
  71. package/dist/types-chunks/{public-api.d-CnFEp3cI.d.ts → public-api.d-amBop8Nk.d.ts} +4 -4
  72. package/dist/types-chunks/{review-inbox.d-9yOBc4--.d.ts → review-inbox.d-CTeUIKda.d.ts} +6 -2
  73. package/dist/types-chunks/{run-manager.d-9IQPAUM-.d.ts → run-manager.d-hm1XgEou.d.ts} +1 -1
  74. package/dist/types-chunks/{sdk-session-DaDBjpdX.d.ts → sdk-session-B6XjHNU1.d.ts} +2 -2
  75. package/dist/types-chunks/{shell-command-sets.d-C-zD-4yF.d.ts → shell-command-sets.d-oejwpP_7.d.ts} +1 -1
  76. package/dist/types-chunks/{trusted-repl-entry-DOsmYa7z.d.ts → trusted-repl-entry-D0w5M0UZ.d.ts} +5 -5
  77. package/dist/types-chunks/{types-PHjfwebT.d.ts → types-DDJu9iWX.d.ts} +1 -1
  78. package/dist/types-chunks/{types.d-C0ywMnBV.d.ts → types.d-B1l9pWyX.d.ts} +1 -1
  79. package/dist/types-chunks/{types.d-BKZnSdRC.d.ts → types.d-CSv0_cZC.d.ts} +20 -4
  80. package/dist/types-chunks/{types.d-Dt_rSXaY.d.ts → types.d-CtO8mR1s.d.ts} +2 -2
  81. package/dist/types-chunks/{utils.d-BvgUCbA7.d.ts → utils.d-DcznBeQ3.d.ts} +5 -5
  82. package/package.json +7 -5
  83. package/public_docs/README.md +2 -2
  84. package/public_docs/configuration/providers.md +6 -0
  85. package/public_docs/configuration/sandbox.md +14 -5
  86. package/public_docs/sdk/embedder-guide.md +111 -7
  87. package/dist/chunks/argument-completer-NDXDDRIY.js +0 -2
  88. package/dist/chunks/chunk-3KWJIF4H.js +0 -471
  89. package/dist/chunks/chunk-5GADJI73.js +0 -1477
  90. package/dist/chunks/chunk-FHNK6EQV.js +0 -22
  91. package/dist/chunks/chunk-OD5W7DLA.js +0 -363
  92. package/dist/chunks/chunk-Q2E2XK2I.js +0 -2
  93. package/dist/chunks/chunk-QOQ7AX64.js +0 -384
  94. package/dist/chunks/chunk-WIGFIBKZ.js +0 -275
  95. package/dist/chunks/chunk-Y3FYVKYW.js +0 -324
  96. package/dist/chunks/dist-V4OVSEF6.js +0 -2
  97. package/dist/chunks/host-JMUUPHT2.js +0 -2
  98. package/dist/chunks/run-manager-ZXIWARTU.js +0 -2
package/CHANGELOG.md CHANGED
@@ -8,6 +8,253 @@ All notable changes to this project will be documented in this file.
8
8
 
9
9
  ---
10
10
 
11
+ ## [0.7.96] - 2026-10-01
12
+
13
+ Stable release of the v0.7.96 line, finalizing the fourteen release
14
+ candidates: trusted text transactions and platform shell containment across
15
+ Windows, Linux, and macOS; Windows daemon lifecycle arbitration with
16
+ nonblocking uncertain Shell cleanup; turn-matched interrupted-Run recovery
17
+ across Runs; provable tool-history pairing and compaction-copy tracing;
18
+ macOS system Git preflight; provider authentication isolation; single-writer
19
+ Runtime transcript ownership in Ink sessions; and Windows NUL-ACE startup
20
+ recovery. CI runs inside the tag-triggered Release workflow. Every rc.14
21
+ contract is retained; open items remain tracked in `docs/KNOWN_ISSUES.md`.
22
+ npm publication remains a manual maintainer action.
23
+
24
+ ---
25
+
26
+ ## [0.7.96-rc.14] - 2026-10-01
27
+
28
+ Fourteenth release candidate of the v0.7.96 line: interrupted-Run recovery
29
+ reaches coding Runs and managed execution with budgeted turn-matched
30
+ records, tool-history pairing and compaction-copy tracing become provable,
31
+ Anthropic-compatible providers ignore inherited `ANTHROPIC_AUTH_TOKEN`, the
32
+ Ink host defers to the Runtime as the single transcript writer, and Windows
33
+ interactive startup re-verifies the NUL account ACE behind a current setup
34
+ marker after a reboot. CI now runs inside the tag-triggered Release
35
+ workflow instead of on branch pushes. Every rc.13 contract is retained. npm
36
+ publication remains a manual maintainer action.
37
+
38
+ ### Fixed
39
+
40
+ - Interactive Windows startup verifies the live NUL sandbox-account grant
41
+ before trusting the durable setup marker. Missing access enters the existing
42
+ setup recovery boundary; installation omits historical read roots whose
43
+ files disappeared. SDK/daemon startup and ordinary admission remain
44
+ read-only and do not activate setup automatically (Issue 341).
45
+ - Windows sandbox unit tests provision mock-SID artifacts and remove recovery
46
+ fixtures in a private temporary native cache, so they no longer interfere
47
+ with live sandbox commands using the host's shared cache. The native
48
+ provisioning suite still requires an ordinary host token (Issue 343).
49
+ - Tool-history validation pairs calls with results across the whole assistant
50
+ scope, so an internal managed-run context message between them no longer
51
+ strips both halves of the pair (Issue 340).
52
+ - Failed managed provider calls hand back the Runner transcript they received,
53
+ not provider-normalized request copies, so compatibility cleanup never becomes
54
+ persisted history.
55
+ - Conversation resolution restores active-path entries damaged by the old
56
+ adjacent-only cleanup when a retained sibling chain reproduces the damage
57
+ exactly; unproven cases stay ambiguous. The page cache version is bumped so
58
+ existing v6 caches rebuild once.
59
+ - The next managed or coding Run of a Session receives a labelled, bounded,
60
+ transient record of journaled progress from an earlier unfinished Run on the
61
+ active branch: confirmed results, operations whose result is unknown, and
62
+ unconfirmed excerpts of assistant text the Run streamed but never saved. The
63
+ record is never saved and each part disappears once history contains it.
64
+ Operations from every included Run take the size bound before any excerpt.
65
+ Operations match history per turn, so a provider reusing a tool call id in a
66
+ later turn no longer hides an earlier unfinished operation, and the source
67
+ tracing also covers histories compacted again before this fix.
68
+ - Conversation resolution traces a compaction copy of a copy back to its first
69
+ retained predecessor, so re-compacted history no longer shows the same
70
+ message twice. When an older compaction boundary cannot be proven, history
71
+ is truncated at that boundary and reported as `partial` with
72
+ `compaction_history_truncated`, instead of flattening unproven regions into
73
+ one conversation. The page cache version is bumped to 9.
74
+ - Anthropic-compatible providers no longer pick up an inherited
75
+ `ANTHROPIC_AUTH_TOKEN`. The SDK sent it as a Bearer header next to the
76
+ provider key, so gateways such as zhipu-coding and deepseek returned 401 and
77
+ the Anthropic token reached a third-party endpoint. The native Anthropic
78
+ provider is unchanged.
79
+ - Compare PowerShell-emitted native artifact and control-directory paths
80
+ through long-form realpaths when the literal comparison disagrees.
81
+ PowerShell's `GetFullPath` expands 8.3 path components, so a runner whose
82
+ `TEMP` root uses a short name (`C:\Users\RUNNER~1\...`) made the private
83
+ test native-artifact cache provisioning fail with an unexpected-path error
84
+ even though the provisioner returned the canonical destination.
85
+ - The interactive REPL no longer forks a duplicate branch every round when a
86
+ Runtime owns the Session. The host stops writing its own lineage. Storage
87
+ reconciles host saves against the Runtime's durable lineage, and the host
88
+ continues from the Runtime's entry ids. That fixes three problems:
89
+ - The next host save no longer replaces the Runtime's branch.
90
+ - A crash between the two writes no longer leaves a permanent fork.
91
+ - A Run cancelled before it produced a result no longer clears the host's
92
+ transcript copy.
93
+
94
+ ### Changed
95
+
96
+ - CI runs through `workflow_call` or manual dispatch instead of branch pushes
97
+ and pull requests. Tag and manually dispatched release builds run the full
98
+ reusable CI workflow before their build matrix.
99
+
100
+ ### Documentation
101
+
102
+ - Align the public SDK guide with read-only legacy history repair, partial
103
+ compaction truncation, transient interrupted-Run recovery, and Runtime-owned
104
+ transcript persistence. Document the CLI-only NUL recovery boundary and
105
+ provider authentication isolation.
106
+ - Track unexpected interactive REPL exit as unresolved (Issue 342). Successful
107
+ SDK concurrency and full-TTY trace replay do not resolve that failure.
108
+
109
+ ---
110
+
111
+ ## [0.7.96-rc.13] - 2026-09-29
112
+
113
+ Thirteenth release candidate of the v0.7.96 line: Runtime-owned managed
114
+ runs persist generated output at Runner commit boundaries so an interrupted
115
+ run keeps its transcript instead of losing it with a hung request. Every
116
+ rc.12 contract is retained. npm publication remains a manual maintainer
117
+ action.
118
+
119
+ ### Fixed
120
+
121
+ - Runtime-owned managed runs persist generated assistant messages and tool results
122
+ at Runner commit boundaries, before tools or subsequent provider calls can hang.
123
+ Persist the current compacted transcript and queued-input identities; do not
124
+ repeatedly save old input messages or change host-owned persistence timing.
125
+
126
+ ---
127
+
128
+ ## [0.7.96-rc.12] - 2026-09-28
129
+
130
+ Twelfth release candidate of the v0.7.96 line: uncertain Shell cleanup no
131
+ longer blocks conversations, Runner iteration progress becomes observable,
132
+ exhausted Actor children settle with honest structured results, and the test
133
+ toolchain upgrades to Vitest 4. Every rc.11 contract is retained. npm
134
+ publication remains a manual maintainer action.
135
+
136
+ ### Fixed
137
+
138
+ - Return exhausted Shell cleanup diagnostics and partial output to the model
139
+ without cancelling its Run. Keep unresolved process identities as deferred
140
+ cleanup, allow successors and close, and accept queued input during Stop.
141
+ - Expose Root Runner iteration progress in Runtime live snapshots and structured
142
+ Actor iteration progress in durable turn summaries/output. Values come from
143
+ the executing Runner; the default managed Root (500) and native Actor child
144
+ (200) thresholds are unchanged.
145
+ - Settle exhausted native Actor children as failed with terminationReason
146
+ iteration_limit, preserving partial output, artifacts and structured results.
147
+ Parent completion notifications include the reason. Exhaustion no longer runs
148
+ a structured-output repair or workflow digest, and follow-up starts a fresh
149
+ iteration count. Completion on the final permitted iteration remains successful.
150
+
151
+ ### Changed
152
+
153
+ - Upgrade the test toolchain to Vitest 4.1.11 (with `@vitest/coverage-v8`
154
+ 4.1.11 and pinned vite 7.3.3/vite-node) and fflate ^0.8.3, which fixes a
155
+ ZIP64 directory scan that never terminated when a compressed-size sentinel
156
+ was present without the required `0x0001` extra field; skill archive
157
+ regression coverage locks the fix in.
158
+
159
+ ### Documentation
160
+
161
+ - Document the embedder-owned Electron `safeStorage` credential storage
162
+ lifecycle: on Windows, the `Local State` encryption state must be preserved
163
+ together with the ciphertext across cleanup, uninstall, reinstall, and
164
+ profile migration, and an undecryptable existing client secret surfaces a
165
+ terminal credential recovery error instead of a silent replacement.
166
+
167
+ ---
168
+
169
+ ## [0.7.96-rc.11] - 2026-09-23
170
+
171
+ Eleventh release candidate of the v0.7.96 line: SDK-owned background Git
172
+ calls on macOS preflight the system Git shim so a machine without usable
173
+ command-line developer tools no longer receives repeated Apple installation
174
+ prompts. Every rc.10 contract is retained. npm publication remains a manual
175
+ maintainer action.
176
+
177
+ ### Fixed
178
+
179
+ - Preflight the macOS system Git shim before SDK-owned Git calls
180
+ (`@kodax-ai/agent/runtime/macos-git`): the shared platform guard detects
181
+ the known developer-tools-missing condition only (exit code 2,
182
+ `DEVELOPER_DIR`-aware), caches probes with a bounded TTL, shares one probe
183
+ across concurrent callers, and recovers after installation with no
184
+ permanent disable state. Repo-intelligence, worktree, changed-diff,
185
+ managed-task checkpoint, agent-adapter, worktree-sweep, session-snapshot,
186
+ REPL helpers, and synchronous memory paths apply the guard while ordinary
187
+ Git on `PATH`, independent Git installations, and arbitrary Bash/PTY
188
+ commands remain unchanged (Issue 339). Worktree operations keep actionable
189
+ errors; synchronous memory identity keeps its remote-based identity and
190
+ local-path fallback rules. Native macOS on-device UI verification remains
191
+ recommended on real hardware.
192
+
193
+ ---
194
+
195
+ ## [0.7.96-rc.10] - 2026-09-22
196
+
197
+ Tenth release candidate of the v0.7.96 line: Runtime shutdown now owns and
198
+ drains the background work it starts, Edits-mode text tools no longer reject
199
+ ordinary project files when a workspace root contains protected native state,
200
+ and the MCP image-validation cancellation fixture is stabilized. Every rc.9
201
+ contract is retained. npm publication remains a manual maintainer action.
202
+
203
+ ### Fixed
204
+
205
+ - Drain owned managed terminal maintenance on Runtime close: the optional
206
+ repo-intelligence/artifact maintenance factory is registered with its own
207
+ Runtime before it can start, close stops accepting new optional maintenance
208
+ and waits for existing owned work before releasing Actor, executor, and
209
+ owner-liveness resources, so test workspaces are no longer held after
210
+ `Runtime.close()` returns. Run completion, successor admission, and Stop
211
+ stay independent of maintenance; shared repo caches are not cancelled.
212
+ - Own and settle memory work on shutdown: Runtime registers its memory
213
+ setup/finalization IO and background review drains before execution; close
214
+ refuses new work, cancels pending review requests, and awaits
215
+ already-started work before releasing the owner. Managed execution finishes
216
+ its required durable memory finalization before publishing completion, the
217
+ classic finalizer owns learned-Skill outcome and binding-release IO, and
218
+ branch-authority setup checks cancellation before prompt/Git work. A caller
219
+ signal already aborted at entry settles as an interrupt terminal (defined
220
+ `KodaXResult`, terminal `onComplete`) instead of a raw rejection, keeping
221
+ the CAP-005-001b and CAP-086-003 contracts.
222
+ - Scope trusted text transaction cache protection to the authorized canonical
223
+ target: Edits-mode `edit`/`write` no longer fail with `Runtime write policy
224
+ targets protected native text state` for ordinary project files when a
225
+ workspace root contains the protected native cache (for example a home
226
+ root). Development artifact trust still checks every authorized write root,
227
+ so a writable manifest cannot redefine trusted native bytes.
228
+
229
+ ---
230
+
231
+ ## [0.7.96-rc.9] - 2026-09-21
232
+
233
+ Ninth release candidate of the v0.7.96 line: Windows daemon startup trees
234
+ are reclaimed when a launcher dies before publication, contended daemon state
235
+ replacement retries only Windows EPERM, and Windows Runtime identity probes
236
+ gained structured, privacy-bounded lifecycle diagnostics. Every rc.8
237
+ contract is retained. npm publication remains a manual maintainer action.
238
+
239
+ ### Fixed
240
+
241
+ - Arbitrate daemon publication against launcher loss with a one-shot startup
242
+ handoff: unpublished daemon candidates and their Windows Job descendants are
243
+ reclaimed, while published shared services and other clients' execution are
244
+ preserved (Issue 337).
245
+ - Retry only Windows EPERM while atomically publishing the same flushed
246
+ daemon state, under a bounded monotonic failure-path budget; permanent
247
+ errors and staging cleanup are preserved and ownership ordering is
248
+ unchanged, so concurrent JSON readers no longer break state replacement
249
+ (Issue 338).
250
+ - Add structured Windows Runtime lifecycle diagnostics: `setKodaXDiagnosticSink`
251
+ reports boot identity, Job membership, process snapshot, start identity, and
252
+ exit-owner validation stages with bounded evidence and no commands,
253
+ environment, output, or identity values; probes, retries, and checks are
254
+ unchanged.
255
+
256
+ ---
257
+
11
258
  ## [0.7.96-rc.8] - 2026-09-17
12
259
 
13
260
  Eighth release candidate of the v0.7.96 line: custom OpenAI-compatible
package/README.md CHANGED
@@ -786,6 +786,84 @@ provider's model, REPL `/compact` clears the UI only after a durable save, and
786
786
  successful reports carry bounded `summaryRequests` plus `commitMs` per
787
787
  physical summary call.
788
788
 
789
+ **v0.7.96 stable release:** The stable release of the v0.7.96 line,
790
+ finalizing the fourteen release candidates: trusted text transactions and
791
+ platform shell containment across Windows, Linux, and macOS; Windows daemon
792
+ lifecycle arbitration with nonblocking uncertain Shell cleanup; turn-matched
793
+ interrupted-Run recovery across Runs; provable tool-history pairing and
794
+ compaction-copy tracing; macOS system Git preflight; provider authentication
795
+ isolation; single-writer Runtime transcript ownership in Ink sessions; and
796
+ Windows NUL-ACE startup recovery. CI runs inside the tag-triggered Release
797
+ workflow. Every rc.14 contract is retained; open items remain tracked in
798
+ `docs/KNOWN_ISSUES.md`.
799
+
800
+ **v0.7.96-rc.14 release:** Fourteenth release candidate of the v0.7.96
801
+ line. Interrupted-Run recovery reaches coding Runs and managed execution
802
+ with a labelled, bounded, transient record of journaled progress matched
803
+ per turn; tool-history pairing spans the whole assistant scope;
804
+ conversation resolution traces compaction copies to a provable root and
805
+ truncates unproven boundaries as `partial`; Anthropic-compatible providers
806
+ ignore an inherited `ANTHROPIC_AUTH_TOKEN`; the Ink host defers to the
807
+ Runtime as the single transcript writer; and Windows interactive startup
808
+ re-verifies the NUL account ACE behind a current setup marker after a
809
+ reboot (Issues 340-341). CI now runs inside the tag-triggered Release
810
+ workflow instead of on branch pushes. Every rc.13 contract is retained.
811
+
812
+ **v0.7.96-rc.13 release:** Thirteenth release candidate of the v0.7.96
813
+ line. Runtime-owned managed runs persist generated assistant messages and
814
+ tool results at Runner commit boundaries, before tools or subsequent
815
+ provider calls can hang: the current compacted transcript and queued-input
816
+ identities survive an interrupted run, initial input replay is skipped
817
+ rather than re-saving all history, and host-owned persistence timing is
818
+ unchanged. Every rc.12 contract is retained.
819
+
820
+ **v0.7.96-rc.12 release:** Twelfth release candidate of the v0.7.96 line.
821
+ Uncertain Shell cleanup no longer blocks conversations: exhausted cleanup
822
+ retries return diagnostics and partial output to the model, unresolved
823
+ process identities become deferred cleanup records, successors and close
824
+ proceed, and an exhausted terminal Run settles honestly with
825
+ `effectOutcome: unknown` instead of claiming verified termination. Root
826
+ Runner iteration progress is exposed in Runtime live snapshots and durable
827
+ Actor turns, and exhausted native Actor children settle as failed with
828
+ `terminationReason: iteration_limit` while preserving partial output,
829
+ artifacts, and structured results. The test toolchain upgrades to Vitest
830
+ 4.1.11 with fflate 0.8.3 (ZIP64 scan fix). Every rc.11 contract is retained.
831
+
832
+ **v0.7.96-rc.11 release:** Eleventh release candidate of the v0.7.96 line.
833
+ SDK-owned background Git calls on macOS preflight the system Git shim: a
834
+ shared `DEVELOPER_DIR`-aware platform guard (`@kodax-ai/agent/runtime/macos-git`)
835
+ detects the known developer-tools-missing condition (exit code 2 only,
836
+ TTL-cached probes shared across concurrent callers, recoverable after
837
+ installation, no permanent disable state) so repo-intelligence, worktree,
838
+ changed-diff, managed-task checkpoint, agent-adapter, worktree-sweep,
839
+ session-snapshot, REPL helpers, and synchronous memory paths no longer
840
+ repeat Apple's developer-tools installation prompt. Ordinary Git on `PATH`,
841
+ independent Git, and arbitrary Bash/PTY commands are unchanged (Issue 339).
842
+ Every rc.10 contract is retained.
843
+
844
+ **v0.7.96-rc.10 release:** Tenth release candidate of the v0.7.96 line.
845
+ Runtime shutdown owns and drains the background work it starts: managed
846
+ terminal maintenance and memory setup/finalization IO plus background review
847
+ drains are registered with the owning Runtime, close refuses new work and
848
+ awaits already-started work before releasing resources, and managed execution
849
+ finishes its durable memory finalization before publishing completion.
850
+ Edits-mode `edit`/`write` no longer reject ordinary project files when a
851
+ workspace root contains protected native state: trusted text transaction
852
+ cache protection targets only the authorized canonical file while
853
+ development artifact trust still checks every authorized write root. Every
854
+ rc.9 contract is retained.
855
+
856
+ **v0.7.96-rc.9 release:** Ninth release candidate of the v0.7.96 line.
857
+ Arbitrates daemon publication against launcher loss with a one-shot startup
858
+ handoff: unpublished Windows daemon startup trees and their Job descendants
859
+ are reclaimed while published shared services stay untouched (Issue 337).
860
+ Windows daemon state replacement retries only contended EPERM while
861
+ atomically publishing the same flushed state under a bounded failure budget,
862
+ so concurrent JSON readers no longer break replacement (Issue 338). Windows
863
+ Runtime identity probes emit structured lifecycle diagnostics through
864
+ `setKodaXDiagnosticSink` with bounded evidence and no commands, environment,
865
+ output, or identity values. Every rc.8 contract is retained.
866
+
789
867
  **v0.7.96-rc.8 release:** Eighth release candidate of the v0.7.96 line.
790
868
  Custom OpenAI-compatible reasoning is negotiated from `auto`: rejected
791
869
  efforts lower through explicit levels without losing disable intent,
@@ -934,7 +1012,7 @@ requests, preserves structured Child Agent Provider failures, honors exact
934
1012
  run-scoped credential verification, and omits empty `tools` arrays for strict
935
1013
  vLLM gateways (Issues 329-332). npm publication remains a
936
1014
  manual maintainer action. See the
937
- [release checklist](docs/release.md#v0796-rc8-release-preparation).
1015
+ [release checklist](docs/release.md#v0796-rc9-release-preparation).
938
1016
 
939
1017
  **v0.7.96-alpha.3 release:** Provider credentials are lazy, scoped,
940
1018
  revocable capabilities (ADR-068). The v2 credential broker keeps Provider
package/README_CN.md CHANGED
@@ -296,6 +296,63 @@ SDK 系统代码契约更新,但没有放宽 shell/sandbox 的 fail-closed 边
296
296
  `handleRuntimePermissionRequest()` 管理 SDK 权限 UI,并在 prepared Session 尾部遇到
297
297
  `data_changed` 时通过权威 delta 合并恢复;后台持久化失败会显示为诊断,不再静默丢失。
298
298
 
299
+ **v0.7.96 正式版发布**:v0.7.96 线的正式版本,定格十四个发布候选的全部
300
+ 成果:跨 Windows/Linux/macOS 的受信文本事务与平台 Shell 隔离;Windows
301
+ daemon 生命周期仲裁与不阻塞的不确定 Shell 清理;按回合匹配的中断 Run 跨
302
+ Run 恢复;可证明的工具历史配对与压缩副本追溯;macOS 系统 Git 预检;
303
+ Provider 认证隔离;Ink 会话中 Runtime 作为唯一转录写入者;Windows NUL
304
+ 账户 ACE 启动恢复。CI 在 tag 触发的 Release workflow 内运行。所有 rc.14
305
+ 契约全部保留;未决项继续在 `docs/KNOWN_ISSUES.md` 中跟踪。
306
+
307
+ **v0.7.96-rc.14 发布**:v0.7.96 线第十四个发布候选。中断 Run 的恢复进入
308
+ coding Run 与托管执行:以带标签、有界、临时的记录按回合匹配交接已日志化的
309
+ 进度;工具历史配对覆盖整个 assistant 范围;会话解析把压缩副本追溯到可证明
310
+ 的根,无法证明的边界以 `partial` 截断;Anthropic 兼容 Provider 不再继承
311
+ `ANTHROPIC_AUTH_TOKEN`;Ink 宿主让位给 Runtime 作为唯一转录写入者;
312
+ Windows 交互启动在重启后面对仍有效的 setup 标记会重新校验 NUL 账户 ACE
313
+ (Issues 340-341)。CI 改为在 tag 触发的 Release workflow 内运行,普通
314
+ push 不再触发。所有 rc.13 契约全部保留。
315
+
316
+ **v0.7.96-rc.13 发布**:v0.7.96 线第十三个发布候选。Runtime 拥有的托管 Run
317
+ 在 Runner 消息提交边界持久化已生成的助手消息与工具结果,赶在工具或后续
318
+ Provider 调用可能挂起之前:当前压缩后的转录与排队输入身份在中断的 Run 中
319
+ 得以保留,初始输入重放被跳过而不重复保存全部历史,宿主拥有的持久化时机
320
+ 不变。所有 rc.12 契约全部保留。
321
+
322
+ **v0.7.96-rc.12 发布**:v0.7.96 线第十二个发布候选。不确定的 Shell 清理不再
323
+ 阻塞对话:耗尽的清理重试把诊断与部分输出返回给模型,未决的进程身份转为
324
+ deferred 清理记录,后继 Run 与 close 照常进行,耗尽后的终态 Run 以
325
+ `effectOutcome: unknown` 诚实结算而不宣称已验证终止。Root Runner 迭代进度
326
+ 在 Runtime 实时快照与持久 Actor 回合中可见,耗尽的 native Actor 子任务以
327
+ `terminationReason: iteration_limit` 结算为失败并保留部分输出、工件与结构化
328
+ 结果。测试工具链升级到 Vitest 4.1.11 与 fflate 0.8.3(修复 ZIP64 扫描死循环)。
329
+ 所有 rc.11 契约全部保留。
330
+
331
+ **v0.7.96-rc.11 发布**:v0.7.96 线第十一个发布候选。macOS 上 SDK 拥有的后台
332
+ Git 调用会先预检系统 Git 垫片:共享的平台守卫(`@kodax-ai/agent/runtime/macos-git`)
333
+ 能识别已知的开发者工具缺失状态(仅限退出码 2,感知 `DEVELOPER_DIR`,探测按有界
334
+ TTL 缓存并在并发调用间共享,安装后可恢复,无永久禁用状态),使 repo-intelligence、
335
+ worktree、changed-diff、托管任务 checkpoint、agent-adapter、worktree-sweep、
336
+ session-snapshot、REPL 辅助路径与同步内存路径不再反复触发 Apple 开发者工具安装
337
+ 弹窗。`PATH` 上的普通 Git、独立安装的 Git 与任意 Bash/PTY 命令不受影响
338
+ (Issue 339)。所有 rc.10 契约全部保留。
339
+
340
+ **v0.7.96-rc.10 发布**:v0.7.96 线第十个发布候选。Runtime 关闭时拥有并
341
+ 排空自己启动的后台工作:托管终端维护与内存 setup/finalization IO 及后台
342
+ review 排空都注册到所属 Runtime,close 拒绝新工作并等待已开始的工作完成后
343
+ 才释放资源,托管执行在发布完成前先落地持久内存 finalization。当工作区根
344
+ 包含受保护原生状态时,Edits 模式的 `edit`/`write` 不再拒绝普通项目文件:
345
+ 受信文本事务的缓存保护只针对授权的规范化目标文件,而开发工件信任仍检查
346
+ 全部授权可写根。所有 rc.9 契约全部保留。
347
+
348
+ **v0.7.96-rc.9 发布**:v0.7.96 线第九个发布候选。以一次性启动交接仲裁
349
+ daemon 发布与 launcher 失联:未发布的 Windows daemon 启动树及其 Job 后代被
350
+ 回收,已发布的共享服务不受影响(Issue 337)。Windows daemon 状态替换在有界
351
+ 失败预算下只对竞争性 EPERM 重试,原子发布同一份已 flush 状态,并发 JSON
352
+ 读取者不再破坏替换(Issue 338)。Windows Runtime 身份探测通过
353
+ `setKodaXDiagnosticSink` 输出结构化生命周期诊断,证据有界且不含命令、环境
354
+ 变量、输出或身份值。所有 rc.8 契约全部保留。
355
+
299
356
  **v0.7.96-rc.8 发布**:v0.7.96 线第八个发布候选。自定义 OpenAI 兼容推理从
300
357
  `auto` 开始协商:被拒绝的 effort 沿显式档位降级且不丢失显式禁用意图,硬拒绝
301
358
  缓存跨流式与非流式回合复用,请求/实际发送的 effort 与回退原因上报给 SDK 宿主,
@@ -421,7 +478,7 @@ native 文本权威改在摘要固定的 `manylinux_2_28` 构建器中编译,
421
478
  scope 在 SDK、Agent 摘要、CLI 与 Runtime Worker 请求间共享,保留结构化的 Child Agent Provider
422
479
  失败信息,精确遵循 run-scoped 凭据校验,并为严格 vLLM 网关省略空 `tools` 数组(Issues 329-332)。
423
480
  npm 发布仍由
424
- 维护者手动执行。详见 [v0.7.96-rc.8 发布清单](docs/release.md#v0796-rc8-release-preparation)。
481
+ 维护者手动执行。详见 [v0.7.96 正式版发布清单](docs/release.md#v0796-release-preparation)。
425
482
 
426
483
  **v0.7.96-alpha.3 发布**:Provider 凭据成为惰性、受限、可撤销的能力(ADR-068)。v2
427
484
  credential broker 将 Provider 密钥保留在 OS keychain,按每次 wire call、为单一封闭
@@ -1,2 +1,2 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{Pa as g,Ra as h,a as c,ka as d,la as e,ma as f,qb as i,rb as j,zb as k}from"./chunk-OD5W7DLA.js";import"./chunk-756FJMN2.js";import"./chunk-RZAYZL6D.js";import"./chunk-M5Q72534.js";import"./chunk-NS6BVSR6.js";import{Pb as a,Qb as b}from"./chunk-5GADJI73.js";import"./chunk-WHQCTZKI.js";import"./chunk-W5XGIRQQ.js";import"./chunk-ONUPGMER.js";export{e as bucketProviderPayloadSize,g as buildAutoRepoIntelligenceContext,f as checkPromiseSignal,b as cleanupIncompleteToolCalls,h as describeTransientProviderRetry,c as emitResilienceDebug,d as estimateProviderPayloadBytes,k as runKodaX,j as saveRequiredSessionSnapshot,i as saveSessionSnapshot,a as validateAndFixToolHistory};
2
+ import{Fb as k,Va as g,Xa as h,a as c,qa as d,ra as e,sa as f,wb as i,xb as j}from"./chunk-7O2AIFNE.js";import"./chunk-EM4XJBTK.js";import"./chunk-66XN5AFU.js";import"./chunk-C7U542KM.js";import"./chunk-NI7PBPUR.js";import{Rb as a,Sb as b}from"./chunk-WV3DJVW4.js";import"./chunk-DSXUXUZG.js";import"./chunk-HZYRLIOC.js";import"./chunk-ONUPGMER.js";export{e as bucketProviderPayloadSize,g as buildAutoRepoIntelligenceContext,f as checkPromiseSignal,b as cleanupIncompleteToolCalls,h as describeTransientProviderRetry,c as emitResilienceDebug,d as estimateProviderPayloadBytes,k as runKodaX,j as saveRequiredSessionSnapshot,i as saveSessionSnapshot,a as validateAndFixToolHistory};
@@ -0,0 +1,2 @@
1
+ // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
+ import{Ma as a,Na as b}from"./chunk-SC2ELSUS.js";import"./chunk-GYO73UYQ.js";import"./chunk-YEAUDI6U.js";import"./chunk-TEUD5VPJ.js";import"./chunk-NKT3B3DR.js";import"./chunk-ABZDFK2X.js";import"./chunk-7O2AIFNE.js";import"./chunk-EM4XJBTK.js";import"./chunk-66XN5AFU.js";import"./chunk-C7U542KM.js";import"./chunk-NI7PBPUR.js";import"./chunk-WV3DJVW4.js";import"./chunk-DSXUXUZG.js";import"./chunk-HZYRLIOC.js";import"./chunk-ONUPGMER.js";export{a as ArgumentCompleter,b as createArgumentCompleter};