@kodax-ai/kodax 0.7.97-alpha.1 → 0.7.97-alpha.11

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 (240) hide show
  1. package/CHANGELOG.md +400 -0
  2. package/README.md +199 -45
  3. package/README_CN.md +138 -29
  4. package/config-templates/config.example.jsonc +2 -4
  5. package/dist/artifacts/LICENSE +158 -0
  6. package/dist/artifacts/dist/browser.d.ts +3 -0
  7. package/dist/artifacts/dist/browser.js +33 -0
  8. package/dist/artifacts/dist/browser.js.map +1 -0
  9. package/dist/artifacts/dist/client.d.ts +4 -0
  10. package/dist/artifacts/dist/client.js +87 -0
  11. package/dist/artifacts/dist/client.js.map +1 -0
  12. package/dist/artifacts/dist/contract.d.ts +14 -0
  13. package/dist/artifacts/dist/contract.js +289 -0
  14. package/dist/artifacts/dist/contract.js.map +1 -0
  15. package/dist/artifacts/dist/document-render.d.ts +12 -0
  16. package/dist/artifacts/dist/document-render.js +109 -0
  17. package/dist/artifacts/dist/document-render.js.map +1 -0
  18. package/dist/artifacts/dist/docx.browser.js +77 -0
  19. package/dist/artifacts/dist/evidence-files.d.ts +5 -0
  20. package/dist/artifacts/dist/evidence-files.js +54 -0
  21. package/dist/artifacts/dist/evidence-files.js.map +1 -0
  22. package/dist/artifacts/dist/evidence.d.ts +6 -0
  23. package/dist/artifacts/dist/evidence.js +84 -0
  24. package/dist/artifacts/dist/evidence.js.map +1 -0
  25. package/dist/artifacts/dist/files.d.ts +9 -0
  26. package/dist/artifacts/dist/files.js +115 -0
  27. package/dist/artifacts/dist/files.js.map +1 -0
  28. package/dist/artifacts/dist/formats.d.ts +2 -0
  29. package/dist/artifacts/dist/formats.js +29 -0
  30. package/dist/artifacts/dist/formats.js.map +1 -0
  31. package/dist/artifacts/dist/identity.d.ts +4 -0
  32. package/dist/artifacts/dist/identity.js +18 -0
  33. package/dist/artifacts/dist/identity.js.map +1 -0
  34. package/dist/artifacts/dist/image-data.d.ts +3 -0
  35. package/dist/artifacts/dist/image-data.js +18 -0
  36. package/dist/artifacts/dist/image-data.js.map +1 -0
  37. package/dist/artifacts/dist/index.d.ts +4 -0
  38. package/dist/artifacts/dist/index.js +4 -0
  39. package/dist/artifacts/dist/index.js.map +1 -0
  40. package/dist/artifacts/dist/kodax.d.ts +9 -0
  41. package/dist/artifacts/dist/kodax.js +88 -0
  42. package/dist/artifacts/dist/kodax.js.map +1 -0
  43. package/dist/artifacts/dist/libreoffice.d.ts +6 -0
  44. package/dist/artifacts/dist/libreoffice.js +25 -0
  45. package/dist/artifacts/dist/libreoffice.js.map +1 -0
  46. package/dist/artifacts/dist/pixels.d.ts +4 -0
  47. package/dist/artifacts/dist/pixels.js +13 -0
  48. package/dist/artifacts/dist/pixels.js.map +1 -0
  49. package/dist/artifacts/dist/prepare.d.ts +4 -0
  50. package/dist/artifacts/dist/prepare.js +30 -0
  51. package/dist/artifacts/dist/prepare.js.map +1 -0
  52. package/dist/artifacts/dist/presentation.d.ts +11 -0
  53. package/dist/artifacts/dist/presentation.js +222 -0
  54. package/dist/artifacts/dist/presentation.js.map +1 -0
  55. package/dist/artifacts/dist/render.d.ts +22 -0
  56. package/dist/artifacts/dist/render.js +186 -0
  57. package/dist/artifacts/dist/render.js.map +1 -0
  58. package/dist/artifacts/dist/runtime-entry.d.ts +1 -0
  59. package/dist/artifacts/dist/runtime-entry.js +37 -0
  60. package/dist/artifacts/dist/runtime-entry.js.map +1 -0
  61. package/dist/artifacts/dist/runtime.d.ts +11 -0
  62. package/dist/artifacts/dist/runtime.js +143 -0
  63. package/dist/artifacts/dist/runtime.js.map +1 -0
  64. package/dist/artifacts/dist/sdk.d.ts +114 -0
  65. package/dist/artifacts/dist/sdk.js +26 -0
  66. package/dist/artifacts/dist/sdk.js.map +1 -0
  67. package/dist/artifacts/dist/types.d.ts +285 -0
  68. package/dist/artifacts/dist/types.js +2 -0
  69. package/dist/artifacts/dist/types.js.map +1 -0
  70. package/dist/artifacts/dist/web-render.d.ts +3 -0
  71. package/dist/artifacts/dist/web-render.js +143 -0
  72. package/dist/artifacts/dist/web-render.js.map +1 -0
  73. package/dist/artifacts/skills/artifact-review/SKILL.md +53 -0
  74. package/dist/builtin/code-review/SKILL.md +5 -17
  75. package/dist/builtin/git-workflow/SKILL.md +9 -8
  76. package/dist/builtin/skill-creator/SKILL.md +38 -108
  77. package/dist/builtin/skill-creator/references/evaluation.md +50 -0
  78. package/dist/builtin/skill-creator/scripts/run-eval.js +3 -3
  79. package/dist/builtin/skill-creator/scripts/run-loop.js +2 -1
  80. package/dist/builtin/skill-creator/scripts/run-trigger-eval.d.ts +2 -0
  81. package/dist/builtin/skill-creator/scripts/run-trigger-eval.js +3 -1
  82. package/dist/builtin/skill-creator/scripts/utils.js +8 -0
  83. package/dist/builtin/tdd/SKILL.md +24 -40
  84. package/dist/builtin/visual-review/SKILL.md +84 -0
  85. package/dist/chunks/agent-C4QJRI2R.js +2 -0
  86. package/dist/chunks/agent-adapter-ZUBK5QZX.js +2 -0
  87. package/dist/chunks/argument-completer-VODW2G5C.js +2 -0
  88. package/dist/chunks/cell-JM7Z7IL4.js +2 -0
  89. package/dist/chunks/chunk-22UAAJCB.js +259 -0
  90. package/dist/chunks/{chunk-LGX7WSRT.js → chunk-4MZEUECQ.js} +1 -1
  91. package/dist/chunks/chunk-6Z63HHR2.js +10 -0
  92. package/dist/chunks/chunk-76UPX4CI.js +14 -0
  93. package/dist/chunks/{chunk-NZYG3D5W.js → chunk-7FQJ7PE6.js} +1 -1
  94. package/dist/chunks/chunk-7PBG4SST.js +137 -0
  95. package/dist/chunks/chunk-CFGJS457.js +633 -0
  96. package/dist/chunks/{chunk-O7VU62ZF.js → chunk-CIIPF3TS.js} +1 -1
  97. package/dist/chunks/chunk-DOKPC4RS.js +5 -0
  98. package/dist/chunks/{chunk-2OL4I5TF.js → chunk-DOO4VVA5.js} +1 -1
  99. package/dist/chunks/chunk-E2ZROK4I.js +2 -0
  100. package/dist/chunks/chunk-EGVAVI6U.js +2 -0
  101. package/dist/chunks/chunk-EXAZEV56.js +2 -0
  102. package/dist/chunks/chunk-FPUEDGGU.js +500 -0
  103. package/dist/chunks/{chunk-KKTVO3ZN.js → chunk-HAGF25HA.js} +11 -11
  104. package/dist/chunks/chunk-HFJ2KSHV.js +5 -0
  105. package/dist/chunks/chunk-HKN6ZIXI.js +408 -0
  106. package/dist/chunks/chunk-IL5AAIGK.js +2 -0
  107. package/dist/chunks/{chunk-OIJYHVTO.js → chunk-KI3TUCEE.js} +1 -1
  108. package/dist/chunks/chunk-LXSXL4DB.js +448 -0
  109. package/dist/chunks/chunk-MZ44IR3J.js +2 -0
  110. package/dist/chunks/chunk-N2MPJVHA.js +12 -0
  111. package/dist/chunks/chunk-NBKSCESR.js +29 -0
  112. package/dist/chunks/{chunk-A26WXO3D.js → chunk-NMRBY4TS.js} +1 -1
  113. package/dist/chunks/chunk-OXXWTARH.js +351 -0
  114. package/dist/chunks/{chunk-LIWLDMWE.js → chunk-QRIBGJLE.js} +1 -1
  115. package/dist/chunks/chunk-QVMFYZOS.js +2 -0
  116. package/dist/chunks/chunk-UFWK2OOJ.js +1119 -0
  117. package/dist/chunks/chunk-ULA453FO.js +362 -0
  118. package/dist/chunks/chunk-USAJGDW3.js +42 -0
  119. package/dist/chunks/chunk-VA5GQNHW.js +365 -0
  120. package/dist/chunks/chunk-W5LXBBFR.js +9 -0
  121. package/dist/chunks/{chunk-JLZUOLEL.js → chunk-XYYFVN3S.js} +1 -1
  122. package/dist/chunks/client-IRMZJ3B5.js +2 -0
  123. package/dist/chunks/compaction-config-WWWEV7KG.js +2 -0
  124. package/dist/chunks/{construction-bootstrap-IOWLYAWA.js → construction-bootstrap-SHGJLW3H.js} +1 -1
  125. package/dist/chunks/dist-OZQCZUII.js +2 -0
  126. package/dist/chunks/dist-YNYHK6HX.js +2 -0
  127. package/dist/chunks/host-Q4CZDQFX.js +2 -0
  128. package/dist/chunks/model-6WXAASYQ.js +2 -0
  129. package/dist/chunks/readline-helpers-ACZ24UPE.js +2 -0
  130. package/dist/chunks/run-manager-2FHS7A5M.js +2 -0
  131. package/dist/chunks/running-session-JUSIVRWI.js +2 -0
  132. package/dist/chunks/skills-I4D7CLUH.js +2 -0
  133. package/dist/chunks/tool-dispatch-AJ7U2PQX.js +2 -0
  134. package/dist/chunks/utils-B4GWG4UV.js +2 -0
  135. package/dist/index.d.ts +31 -28
  136. package/dist/index.js +2 -2
  137. package/dist/kodax_bootstrap.js +4 -2
  138. package/dist/kodax_cli.js +1741 -1705
  139. package/dist/kodax_resume.js +32 -32
  140. package/dist/native/win32-x64/kodax-windows-sandbox.exe +0 -0
  141. package/dist/native/win32-x64/kodax-windows-text-transaction.node +0 -0
  142. package/dist/native/win32-x64/manifest.json +2 -2
  143. package/dist/provider-capabilities.json +495 -29
  144. package/dist/sandbox-network-broker.js +236 -227
  145. package/dist/script-cell.js +8 -0
  146. package/dist/script-worker.cjs +2166 -0
  147. package/dist/sdk-a2a.d.ts +22 -19
  148. package/dist/sdk-a2a.js +2 -2
  149. package/dist/sdk-agent.d.ts +39 -56
  150. package/dist/sdk-agent.js +1 -1
  151. package/dist/sdk-client.d.ts +23 -7
  152. package/dist/sdk-client.js +1 -1
  153. package/dist/sdk-coding.d.ts +69 -438
  154. package/dist/sdk-coding.js +1 -1
  155. package/dist/sdk-experimental-memory.d.ts +3 -3
  156. package/dist/sdk-experimental-memory.js +1 -1
  157. package/dist/sdk-llm.d.ts +11 -9
  158. package/dist/sdk-llm.js +1 -1
  159. package/dist/sdk-mcp.d.ts +4 -4
  160. package/dist/sdk-mcp.js +1 -1
  161. package/dist/sdk-media.d.ts +1 -1
  162. package/dist/sdk-media.js +1 -1
  163. package/dist/sdk-repl.d.ts +28 -35
  164. package/dist/sdk-repl.js +1 -1
  165. package/dist/sdk-runtime.d.ts +147 -152
  166. package/dist/sdk-runtime.js +1 -1
  167. package/dist/sdk-sandbox.js +1 -1
  168. package/dist/sdk-session.d.ts +15 -12
  169. package/dist/sdk-session.js +1 -1
  170. package/dist/sdk-skills.d.ts +2 -2
  171. package/dist/sdk-skills.js +1 -1
  172. package/dist/semantic-worker.js +84 -75
  173. package/dist/types-chunks/{base.d-Dz_g7CUo.d.ts → base.d-51ikkF5c.d.ts} +2 -1
  174. package/dist/types-chunks/{bash-prefix-extractor.d-BhFz5sIp.d.ts → bash-prefix-extractor.d-BDunA1bO.d.ts} +138 -202
  175. package/dist/types-chunks/{capability-learning.d-B4pxKwP4.d.ts → capability-learning.d-BckMZRgz.d.ts} +1 -1
  176. package/dist/types-chunks/{capability.d-DOF3r0fJ.d.ts → capability.d-N5ulMiTc.d.ts} +1 -1
  177. package/dist/types-chunks/{capsule.d-DhXy_i0g.d.ts → capsule.d-CWeFKL2e.d.ts} +5 -5
  178. package/dist/types-chunks/{client-contract-DYkkBxuz.d.ts → client-contract-CenyRbib.d.ts} +305 -45
  179. package/dist/types-chunks/{controller.d-CA7iiSfI.d.ts → controller.d-BFi6Gc2Q.d.ts} +70 -7
  180. package/dist/types-chunks/{controller.d-BkUJ_3sl.d.ts → controller.d-Bs6MEu9T.d.ts} +1 -1
  181. package/dist/types-chunks/{cost-tracker.d-BWI4lFWn.d.ts → cost-tracker.d-BeaenODW.d.ts} +2 -47
  182. package/dist/types-chunks/{history-retrieval.d-JdFfkeF3.d.ts → history-retrieval.d-nDle7ZMT.d.ts} +2 -2
  183. package/dist/types-chunks/{manager.d-C_20XqCV.d.ts → manager.d-ByXdsxIK.d.ts} +6 -2
  184. package/dist/types-chunks/{manifest.d-Bw2i-zQi.d.ts → manifest.d-BM3wjQP3.d.ts} +1 -1
  185. package/dist/types-chunks/{oauth-login.d-6i-vidxv.d.ts → oauth-login.d-DsvsksTD.d.ts} +2 -0
  186. package/dist/types-chunks/provider-credential-context.d-BH2OaB1b.d.ts +47 -0
  187. package/dist/types-chunks/provider-request-observation.d-DCimKZJv.d.ts +38 -0
  188. package/dist/types-chunks/{public-api.d-CofjXB_K.d.ts → public-api.d-BqfXQREc.d.ts} +31 -13
  189. package/dist/types-chunks/{resolver.d-BMoO2VPt.d.ts → resolver.d-CBIllMab.d.ts} +4 -2
  190. package/dist/types-chunks/{review-inbox.d-BeaLRNHx.d.ts → review-inbox.d-CBWZZaKk.d.ts} +12 -1
  191. package/dist/types-chunks/{review-packet.d-BskpQxDZ.d.ts → review-packet.d-DJ4cvofA.d.ts} +1 -1
  192. package/dist/types-chunks/{run-manager.d-BrVCxHum.d.ts → run-manager.d-C7orI9Dw.d.ts} +40 -10
  193. package/dist/types-chunks/runtime-client-info-vWqPfxSv.d.ts +190 -0
  194. package/dist/types-chunks/{sdk-session-BjZqSlA-.d.ts → sdk-session-B-qxkrFY.d.ts} +13 -12
  195. package/dist/types-chunks/{sdk-skills-DokfOoJF.d.ts → sdk-skills-C-UA1A6I.d.ts} +3 -1
  196. package/dist/types-chunks/{side-query.d-DmOU7byC.d.ts → side-query.d-Bx8vNwmM.d.ts} +4 -3
  197. package/dist/types-chunks/{types.d-mlrvOZT1.d.ts → skill-invocation-error.d-Dr9SQHBj.d.ts} +20 -31
  198. package/dist/types-chunks/task-results.d-sGVm9DYX.d.ts +15 -0
  199. package/dist/types-chunks/{trusted-repl-entry-C7tjze05.d.ts → trusted-repl-entry-CSO88d7v.d.ts} +14 -10
  200. package/dist/types-chunks/{types.d-o7t9dds4.d.ts → types.d-C1Nptcqo.d.ts} +22 -13
  201. package/dist/types-chunks/{types.d-Cb8RdrjU.d.ts → types.d-D8qQjMeo.d.ts} +5 -1
  202. package/dist/types-chunks/{types.d-BjOq57-z.d.ts → types.d-zkw4VJ8r.d.ts} +1 -1
  203. package/dist/types-chunks/{utils.d-Bi-i7O5D.d.ts → utils.d-hrtd99Wk.d.ts} +9 -18
  204. package/docs/ARTIFACT_SDK.md +261 -0
  205. package/docs/CLIENT_CONTRACT.md +139 -10
  206. package/docs/SDK_MIGRATION.md +112 -2
  207. package/docs/SPACE_SDK_SEAMS.md +364 -0
  208. package/package.json +32 -4
  209. package/public_docs/README.md +18 -2
  210. package/public_docs/configuration/config-files.md +6 -0
  211. package/public_docs/configuration/providers.md +213 -3
  212. package/public_docs/configuration/sandbox.md +8 -0
  213. package/public_docs/getting-started/overview.md +1 -1
  214. package/public_docs/getting-started/quickstart.md +10 -1
  215. package/public_docs/sdk/embedder-guide.md +404 -66
  216. package/dist/chunks/agent-KDEZEKHT.js +0 -2
  217. package/dist/chunks/argument-completer-S6XK5OQA.js +0 -2
  218. package/dist/chunks/chunk-27NV62CK.js +0 -2
  219. package/dist/chunks/chunk-3IXRUVY7.js +0 -5
  220. package/dist/chunks/chunk-3M5335DB.js +0 -22
  221. package/dist/chunks/chunk-75IELO25.js +0 -137
  222. package/dist/chunks/chunk-7TYV3YFX.js +0 -261
  223. package/dist/chunks/chunk-AWHU6MSJ.js +0 -1478
  224. package/dist/chunks/chunk-EIWAATQU.js +0 -355
  225. package/dist/chunks/chunk-H2KGA4NZ.js +0 -641
  226. package/dist/chunks/chunk-K4Z7DWSV.js +0 -2
  227. package/dist/chunks/chunk-LDCEV5QA.js +0 -2
  228. package/dist/chunks/chunk-NNB6AZSC.js +0 -372
  229. package/dist/chunks/chunk-SKSS6TDQ.js +0 -498
  230. package/dist/chunks/chunk-W7W2XKJC.js +0 -417
  231. package/dist/chunks/chunk-YOKMTTLR.js +0 -473
  232. package/dist/chunks/client-2UJ3ESQU.js +0 -2
  233. package/dist/chunks/compaction-config-WQ7SKQYF.js +0 -2
  234. package/dist/chunks/dist-5Z6YN7Z6.js +0 -2
  235. package/dist/chunks/dist-YWAVSU65.js +0 -2
  236. package/dist/chunks/host-ELUUZWI4.js +0 -2
  237. package/dist/chunks/readline-helpers-ONOPF5J5.js +0 -2
  238. package/dist/chunks/run-manager-7INNATMJ.js +0 -2
  239. package/dist/chunks/utils-HFKMRP34.js +0 -2
  240. package/dist/types-chunks/runtime-client-info-DE3G2vWa.d.ts +0 -15
package/CHANGELOG.md CHANGED
@@ -8,6 +8,406 @@ All notable changes to this project will be documented in this file.
8
8
 
9
9
  ---
10
10
 
11
+ ## [0.7.97-alpha.11] - 2026-10-29
12
+
13
+ ### Added
14
+
15
+ - Add explicit Agent, Coding and experimental Script work modes through the
16
+ CLI, interactive `/work-mode` command and managed SDK/Session paths. Coding
17
+ remains the default. Script executes supported leaf tools through the existing
18
+ permission and receipt boundaries; SDK profiles and specialist agents retain
19
+ their declared capabilities.
20
+
21
+ - Refresh Ark, MiMo and MiniMax model catalogs and their reasoning/capacity
22
+ metadata. Provider-specific mappings and validation limits are documented in
23
+ the provider configuration guide.
24
+
25
+ ### Fixed
26
+
27
+ - Run release builds alongside full CI while retaining all publication gates;
28
+ move the complete serial Node 20 system suite to its own runner, validate
29
+ archives before lengthy Electron checks, and bound bundle/archive execution
30
+ with retained failure evidence. Ordinary branch pushes still do not trigger CI.
31
+ - Preserve the Windows PowerShell module search path in isolated archive tests,
32
+ avoiding stalled OS containment probes. Reject unverified supervised Hosts
33
+ before publishing incomplete capabilities and a misleading upgrade error.
34
+
35
+ - Align current SDK, Client, design and user documentation with post-alpha.10
36
+ work modes, question deadlines, saved tool originals, structured task reports
37
+ and streaming token estimates; retain historical release/validation limits.
38
+
39
+ - Preserve non-interactive question outcomes through the REPL client and reject
40
+ client-supplied timeout answers before daemon submission; the Host owns deadlines.
41
+ - Constrain Skill `Bash(pattern)` rules to a single parsed command, preventing
42
+ wildcard matches from admitting additional shell statements, pipelines,
43
+ redirects or command substitutions. Bare Bash and absent Skill restrictions
44
+ continue through normal Host authorization.
45
+ - Correct Windows stale-process recovery startup overhead and history browsing
46
+ cursor resynchronization; validate sandbox filesystem capabilities at startup.
47
+ Historical intermittent first-read latency remains under investigation.
48
+ - Display estimated tokens consistently across model streaming progress surfaces.
49
+
50
+ - Project existing task-result metadata into Product live views and recovered
51
+ history with explicit source, task identity, terminal/unknown status and
52
+ Markdown report bodies. Preserve multi-report order, literal report content,
53
+ existing full-body reads and raw canonical envelopes; decode only explicitly
54
+ sourced legacy deliveries and keep child failures separate from root Provider
55
+ errors. Deduplicate only identified task-message mirrors; preserve independent
56
+ same-text notices and ambiguous old UI records during history restoration.
57
+
58
+ - Keep Skill discovery rooted at the repository when the SDK runs from a
59
+ subdirectory, synchronize catalogs with loader availability in SA/AMA, and
60
+ invalidate stale bodies across rediscovery and in-flight reads. Model loads
61
+ now apply the existing Skill action policies, lifecycle hooks and model
62
+ preference, retaining Host authorization and safe multi-Skill composition.
63
+
64
+ - Preserve complete MCP tool output behind explicit SDK `part: 'original'`
65
+ reads, including daemon IPC and Host restart, while retaining existing preview
66
+ offsets. Keep results inline when recovery cannot be read, improve long JSON
67
+ previews, and stop Session-local automatic cleanup from deleting shared output
68
+ artifacts. Add simulated-provider/MCP E2E coverage against the built SDK.
69
+
70
+ ---
71
+
72
+ ## [0.7.97-alpha.10] - 2026-10-27
73
+
74
+ Tenth alpha of the v0.7.97 line: live context-capacity recovery reaches
75
+ durable generation boundaries — checkpointed Runs and task trees resume
76
+ after Host restart with fresh scoped authority, Kimi K3.1 routes join the
77
+ provider registry with full effort coverage, and AskUser interactions gain
78
+ answer-aware policies with explicit skip semantics. Every v0.7.96 stable
79
+ and v0.7.97-alpha.1 through alpha.9 contract is retained. npm publication
80
+ remains a manual maintainer action.
81
+
82
+ ### Added
83
+
84
+ - Forward actual Host initialization phases through the existing SDK startup callback and CLI indicator, including MCP prewarm and task recovery; reuse bounded bootstrap-log observation without extra readiness probes or waits.
85
+ - Kimi K3.1 provider routes: all seven user effort levels map through the Anthropic-compatible endpoint exactly like the official Kimi client (explicit thinking enablement plus output_config effort), with live subscription results, inconclusive high self-reports, and the public account balance limitation documented.
86
+
87
+ ### Fixed
88
+
89
+ - Repair bundled Skill shell declarations against the full-command glob contract while retaining Host authorization; make Git/TDD discoverable, separate tests-only and Skill creation/packaging/evaluation flows, and align visual preparation and unverified fallbacks. Skill Creator helpers now resolve public Skill SDK exports in installed tarballs and create fresh description-loop workspaces; semantic-screening output no longer implies observed model selection.
90
+ - Classify trusted Skill loading and policy restoration failures as local execution failures with stable codes and path-safe Skill messages; preserve the facts through Runtime persistence, daemon IPC and Product Client outcomes without weakening trusted reloads or changing Provider error classification.
91
+ - Resume checkpointed Runs and task trees after Host restart: original history, tool receipts, pending input intent and iteration budgets are preserved across independent child and Host recovery; scoped authority rebinds freshly, suspended worktrees stay protected, and bounded verbatim constraint memory retains oversized requests (Issue 322 follow-up).
92
+ - Converge client exit recovery without rewriting unknown outcomes: startup readiness is separated from historical client cleanup acknowledgements, exact Host/process/Job shutdown evidence is reverified, referenced outcomes are retained with late cleanup results preserved, and old exit requests can no longer fence or stop replacement Hosts.
93
+ - Preserve non-interactive question settlement in one-shot CLI: report normal `unanswered/non_interactive` results without default answers or Run interruption, retain MCP protocol cancellation and independent permission rejection, and update the adjacent regression assertions.
94
+ - Close adjacent question/restart regressions: retain checkpoints on unanswered recovery prompts, cancel unanswered MCP confirmation/URL requests, preserve UI callback errors through the SDK MCP bridge for protocol cancellation, surface ordinary prompt callback errors without overriding prior settlements, scope client Stop intent to its exact Run, and persist thread concurrency limits. Expose the existing new-Host question deadline through the Product launcher; repair classic assertions and capacity-test cleanup.
95
+ - Honor a partially delivered durable Session Stop during Root/Actor generation recovery; its original request can finish through verified dead-owner checkpoint Stop takeover, while later Runs remain outside the old frontier.
96
+
97
+ - Preserve prior summary failures when an irreducibly oversized user input
98
+ needs request-only degradation (Issue 322). Single-agent and managed
99
+ compaction no longer reset the breaker on an oversized partial result;
100
+ the single-agent capacity-error branch also retains its prior count.
101
+ Ordinary failures still accumulate, successful relief still rearms the
102
+ breaker, and oversized inputs retain their bounded recovery attempt. String
103
+ and mixed text/image user messages share this behavior; images and tool
104
+ receipts cannot independently qualify as irreducible user text.
105
+
106
+ - Extend live context-capacity recovery with retrievable older assistant history,
107
+ cumulative request-only user-text paging (including mixed image messages),
108
+ budgeted runtime provenance, small-window safety accounting, and emergency
109
+ schema discovery through the existing tool bridge. Preserve protected tools,
110
+ canonical user messages, and completed execution receipts; paging requires an
111
+ authorized read capability and readable saved artifacts.
112
+ - Retry rejected generations only after measured request reduction (at most four
113
+ recovery retries). A Host can save the transcript and wait in `recovering`, then
114
+ continue the same execution when model settings change or corrective input arrives.
115
+ Stop cancels the wait; the independent SDK keeps typed failure semantics unless
116
+ its caller supplies the recovery callback. Automatic continuation after Host death
117
+ or expired credential authority is not included.
118
+ - Retry transient context-history and artifact I/O with cancellable backoff. Read
119
+ back a failed save acknowledgement before retrying, preserving newer metadata
120
+ and avoiding duplicate history transactions; permission failures still surface.
121
+
122
+ - Keep the natural-eval fixture's `npm test` working on staged Node installs by
123
+ allowing reads of an npm CLI installed outside the binary directory, and
124
+ canonicalize the native test fixture root so hosted-runner 8.3 temp paths
125
+ (`RUNNER~1`) are not rejected by the native path policy.
126
+ - Keep eval dump directories and unrelated `kodax-eval-*` directories out of orphan
127
+ worktree cleanup. Require a worktree gitfile and successful Git-owned removal;
128
+ isolate the cleanup regression from the shared system temporary directory.
129
+ - AskUser questions wait indefinitely by default (timeout 0) and support explicit skip; skip and Host timeout return an `unanswered` result with its reason instead of cancelling the Run, defaults are never submitted automatically, and only Stop interrupts. Permission prompts keep their five-minute default; both accept 0 to disable their timer. MCP reverse elicitation and the client plane follow the same policy.
130
+ - Close the A2A server task store when agent-card validation fails during
131
+ construction, so a rejected server no longer leaks its data-dir lock handle;
132
+ on Windows the leaked handle kept the data dir undeletable (`ENOTEMPTY`)
133
+ for the life of the process.
134
+ - Deliver observation handoff events to event-stream observers. Daemon
135
+ `session.observe` subscribers never read the snapshot, so events published
136
+ while the snapshot materialized were silently deduplicated away whenever the
137
+ snapshot's seq raced past them — a late `run.failed` could be lost forever.
138
+ Snapshot consumers keep the existing no-duplicates handoff contract.
139
+
140
+ ---
141
+
142
+ ## [0.7.97-alpha.9] - 2026-10-19
143
+
144
+ Ninth alpha of the v0.7.97 line: shared Host Run inspection checks Session
145
+ admission through canonical identity metadata instead of loading complete
146
+ historical transcripts, so a readable metadata header with an unreadable
147
+ body (for example a Windows ERROR_CRC surfacing as EIO) no longer blocks
148
+ unrelated Run listing, daemon inspection, or idle-exit inspection; admission
149
+ reuse is fenced to initialized Actor controllers so live persistence,
150
+ trailing saves, and `protected` exit receipts for other clients' work are
151
+ preserved. Every
152
+ v0.7.96 stable and v0.7.97-alpha.1 through alpha.8 contract is retained.
153
+ npm publication remains a manual maintainer action.
154
+
155
+ ### Fixed
156
+
157
+ - Shared Host Run inspection now checks Session admission through canonical identity metadata instead of loading complete historical transcripts. A readable metadata header with an unreadable body no longer blocks unrelated Run listing, daemon inspection, or idle-exit inspection. Unreadable metadata still fails closed, active/unknown Runs and Actor turns still block exit, and explicitly opening the affected Session still reports its read error.
158
+ - Shared Host Run listing and inspection reuse Session admission only for initialized Actor controllers that still hold their owner fence, matching Actor preflight. This avoids racing live persistence, including trailing saves after Run completion, preserves `protected` exit receipts for other clients' work, and retains strict canonical metadata checks for unclaimed Sessions and after controller ownership is released.
159
+
160
+ ---
161
+
162
+ ## [0.7.97-alpha.8] - 2026-10-18
163
+
164
+ Eighth alpha of the v0.7.97 line: the Artifact SDK ships inside the single
165
+ main package — `@kodax-ai/kodax` gains `/artifacts`, `/artifacts/client`,
166
+ `/artifacts/runtime` and `/artifacts/kodax` subpath exports while the
167
+ workspace module turns private, its pinned dependencies declare in the root
168
+ package, and the declared Node floor advances to 20.16. Every v0.7.96
169
+ stable and v0.7.97-alpha.1 through alpha.7 contract is retained. npm
170
+ publication remains a manual maintainer action.
171
+
172
+ ### Changed
173
+
174
+ - Single-package Artifact distribution: the main tarball stages the existing module/worker/resource layout under `dist/artifacts/`, the tarball audit validates every export/entry/dependency, the Release workflow runs an installed-package Artifact gate, and `release.mjs` rejects a separate `--artifacts` publication. There is no separate `@kodax-ai/artifacts` npm package. Core startup stays free of renderer loading and probes.
175
+
176
+ ---
177
+
178
+ ## [0.7.97-alpha.7] - 2026-10-16
179
+
180
+ Seventh alpha of the v0.7.97 line: shared-Session Host ownership resolves
181
+ across daemon profiles — launchers wait for a starting owner's verified
182
+ descriptor within the original startup deadline, reuse compatible Hosts
183
+ without restarting work, and permit only a guarded same-build orphan-exit
184
+ policy refresh — daemon startup and connection timeouts surface as
185
+ structured, retryable failures, idle interactive Hosts retire after a
186
+ bounded 30-second lifetime while explicit daemon/A2A service owners are
187
+ retained, and Windows SDK attachment reads targeted exact identities within
188
+ the original startup controls (Space #222). Every v0.7.96 stable and
189
+ v0.7.97-alpha.1 through alpha.6 contract is retained. npm publication
190
+ remains a manual maintainer action.
191
+
192
+ ### Fixed
193
+
194
+ - Space Issue 222 CI regression: use one conservative process-liveness check for shared storage discovery, daemon health and verified exit, recognizing unreaped Linux zombies while retaining PID generation checks. Release temporary attachments and rediscover current ownership on bounded startup-only retries within the original deadline and cancellation signal; never replay accepted input or tool work. Gate the original crash cases and deterministic zombie/owner-handoff regressions on Linux Node 20/22 before release.
195
+ - Bound Windows startup cleanup of unverifiable historical child records: the automatic historical sweep keeps incomplete Run trees `unknown` instead of launching a PowerShell termination helper per unverified record — a helper storm that invalidated the shared process snapshot and made startup cost grow with history (24-record fixture: 11,069ms and 48 helpers before, 10ms and none after). Exact-handle Run recovery and verified live-descendant cleanup are preserved.
196
+ - Bound Windows SDK attachment work: fresh PID identity checks read targeted exact FILETIME identities instead of repeatedly scanning the full process table, initial Job ownership evidence is collected together, and the original startup deadline passes through readiness and attachment — expired startup stays an expired failure instead of misclassifying the launcher's own new Host as a competitor (nine isolated same-CPU callers reproduced the timeout and now pass without budget increases). Readiness keeps verified-owner status fresh after authenticated OS inspection, checks deadline/cancellation after final owner/build validation, and aborts pending socket/supervisor readiness through existing cleanup paths; discovery that has crossed its boundary no longer opens attachment leases, and the idle inspection cancels when clients attach.
197
+ - Recognize a starting daemon as an existing owner: a concurrent CLI start while initial A2A reconciliation holds the fence before `daemon.json` exists now reports `already_running` against the actual PID/runtimeId instead of claiming a second `started: true` Host.
198
+ - Retire idle interactive Hosts after the accepted 30-second CLI idle lifetime while retaining explicit services: daemon `start` and A2A-serving owners stay in place, explicit/service retention is authenticated separately from default SDK persistence, conflicting orphan-exit requirements are rejected before shutdown, persistent intent survives rebuild refresh, and configured services are re-evaluated in the replacement Host. Idle exit is fenced on pending memory/managed-task maintenance and unknown legacy startup intent; tracked background work blocks automatic idle exit (including the final draining check) without breaking cancellable explicit shutdown, review or compaction contracts; startup admission uses authenticated read-only checks off idle preflight scans without scanning Session history before any real client.
199
+ - Drain a Run queued after its predecessor finishes: admission can retain its queued decision across asynchronous journal binding while the active predecessor completes and drains an empty queue; the existing guarded drain now wakes after queue publication so the queued Run starts exactly once instead of stranding.
200
+ - Keep the preceding turn visible when submitting a new query in a restored Session with legacy display checkpoints. The Host retains its bounded 150-item tail instead of advancing to the next query and collapsing the entire view to the new input; canonical history, full-item reads and input/tool identities are preserved.
201
+ - Keep saved history readable when its final tool call has no result yet: reaching the end of a valid cached revision no longer reports a history-change conflict. Preserve canonical tool timestamps across observed and paged history, and show the session banner only at the beginning of saved history while browsing ordinary chat, avoiding banner flashes at intermediate page boundaries.
202
+ - Space Issue 222: resolve the daemon that owns the canonical Session directory across profiles before startup, and recheck ownership if a peer wins during bootstrap. Wait for a starting owner's descriptor within the original startup deadline and cancellation signal. Reuse compatible Hosts without restarting work. Permit guarded same-build orphan-exit policy refresh, retaining active-work preflight, exact owner identity and process-exit verification. Publish structured owner/profile and upgrade blocker diagnostics; mark transient blockers retryable.
203
+ - Add bundled real-process shared-Host recovery to the continuous `test:bundle` gate.
204
+
205
+ ---
206
+
207
+ ## [0.7.97-alpha.6] - 2026-10-15
208
+
209
+ Sixth alpha of the v0.7.97 line: shared-Host startup runs historical child
210
+ recovery once under the owner fences and projects canonical Actor metadata
211
+ during preflight, and `kodax -r`/Host/SDK Session lists order by genuine
212
+ recent message activity with an optional `lastMessageAt`. New REPL Sessions
213
+ stay Host-local drafts until their first accepted input is saved (Issue 368),
214
+ restored views preserve user image attachments, and concurrent resume
215
+ launchers recover from transient inspection conflicts while refreshing an
216
+ older Host (Issue 369). Every v0.7.96 stable and v0.7.97-alpha.1 through
217
+ alpha.5 contract is retained. npm publication remains a manual maintainer
218
+ action.
219
+
220
+ ### Fixed
221
+
222
+ - Retry transient initialization and read-only inspection failures during concurrent CLI/SDK Host refresh after releasing temporary clients. Account for slow preflight duration in contention backoff, retain the original deadline, and never replay shutdown or business requests (Issue 369).
223
+ - Avoid repeated historical process sweeps during shared-Host startup and exit. Recover under the Host/storage owner fences, retain exact local-child final cleanup, batch Windows identity observations, and read canonical Actor metadata for preflight without materializing Session transcripts.
224
+ - Order `kodax -r`, Host and SDK Session lists by genuine recent message activity. Preserve creation time, compaction/fork provenance and metadata-only writes; expose optional `lastMessageAt`, retain creation-based `before`, and continue new cursors after anchor deletion or activity changes.
225
+ - Keep new REPL Sessions as Host-local drafts until the first accepted user input is saved. Preserve draft settings and Actor CAS in memory, avoid empty history records after exit or rejected input, and persist settings on admission. CLI requires `sessionDrafts:1`; explicit durable SDK creation keeps its existing semantics.
226
+ - Save initial draft inputs and settings before low-level Runs dispatch, preserve settings after restart, and reuse canonical inputs when retrying failed promotion instead of duplicating them.
227
+ - Declare `relationship_scan.depth` as an integer range from 1 to 3 for cross-protocol tool schema compatibility, preserving numeric inputs and stream completion checks.
228
+ - Preserve user image references when restoring canonical accepted inputs into the public Session view. Resolve attachments by the original inputId, retaining item identity, order and text, including repeated identical prompts with different images.
229
+
230
+ ---
231
+
232
+ ## [0.7.97-alpha.5] - 2026-10-13
233
+
234
+ Fifth alpha of the v0.7.97 line: FEATURE_301's unified Artifact SDK and
235
+ format backends ship — the `ArtifactExecutionPort` seam grows to nine
236
+ public operations with native PDF, exact PNG/JPEG/WebP/SVG, candidate DOCX
237
+ pagination, and local HTML/SMIL evidence over one execution port serving
238
+ independent Node and shared-Host clients — and busy daemon preflights are
239
+ bounded before redundant full state scans (Issue 367). Every v0.7.96
240
+ stable and v0.7.97-alpha.1 through alpha.4 contract is retained. npm
241
+ publication remains a manual maintainer action.
242
+
243
+ ### Added
244
+
245
+ - Unified optional Artifact SDK (developed in `27d08788`): public
246
+ `prepare` and `readEvidence`, native PDF, exact PNG and JPEG/WebP/SVG evidence,
247
+ candidate DOCX pagination, local HTML loaded-view capture and SVG SMIL samples.
248
+ The same execution port serves independent Node and existing shared-Host clients.
249
+
250
+ ### Changed
251
+
252
+ - Artifact contracts use content formats, structured capabilities, file/surface
253
+ provenance, kind-matched capture locators, PNG dimensions and paginated layout.
254
+ These pre-release changes have no legacy aliases. Shared-Host image bytes use
255
+ existing attachment reads; core startup does not load optional renderers.
256
+ - SDK, Client/Space integration, migration, architecture and feature documents
257
+ distinguish source support from released packages and evidence readiness from
258
+ visual approval. See [support and limits](docs/ARTIFACT_SDK.md).
259
+
260
+ ### Fixed
261
+
262
+ - Mixed-size PDF viewport cropping, DOCX rendering without optional settings,
263
+ cross-bundle admitted fixed-argv authority and Host tool image attachment delivery.
264
+ - Daemon preflight rejects known in-flight mutations before redundant full state
265
+ scans, and reports the actual method/count using the existing shutdown fence
266
+ (Issue 367). A mutation beginning during a read also stops further scans;
267
+ busy work is never treated as safe to stop.
268
+
269
+ Validation: 16,589 tests passed, with package/bundle/native/type checks recorded
270
+ in the [regression guide](docs/test-guides/FEATURE_301_v0.7.97_TEST_GUIDE.md).
271
+ Natural-task GLM/DeepSeek smoke observed automatic image review, but full
272
+ repair/re-review/delivery has not passed all checks. Native DOCX fidelity and
273
+ model-facing schema gaps remain open; see [E2E evidence](docs/test-guides/FEATURE_301_v0.7.97_TEST_GUIDE.md#natural-task-observations-2026-10-13).
274
+
275
+ ---
276
+
277
+ ## [0.7.97-alpha.4] - 2026-10-12
278
+
279
+ Fourth alpha of the v0.7.97 line: FEATURE_301 adds the independent
280
+ `@kodax-ai/artifacts` package — PPTX authoring, bounded editing, and
281
+ current-file visual evidence through lightweight rendering (optional
282
+ LibreOffice/PDF conversion) — with an
283
+ optional managed KodaX adapter, and retires the out-of-band Sidecar
284
+ Verifier in favor of evidence-based in-run result review with the
285
+ `visual-review` builtin skill. Every v0.7.96 stable and
286
+ v0.7.97-alpha.1/alpha.2/alpha.3 contract is retained. npm publication
287
+ remains a manual maintainer action.
288
+
289
+ ### Added
290
+
291
+ - `@kodax-ai/artifacts`: independent optional package for PPTX authoring,
292
+ bounded editing, and current-file visual evidence; its optional KodaX
293
+ bridge uses managed permissions, sandbox, and cancellation (FEATURE_301).
294
+ - Managed PPT review loop: native Office and autonomous non-Office PPT
295
+ validation with rendered-page evidence and bounded edit cycles.
296
+ - `visual-review` builtin skill covering static images/charts, paginated
297
+ documents/slides/sheets, interactive web/app/terminal/canvas/3D surfaces,
298
+ and temporal video/animation results; missing capabilities and unchecked
299
+ scope are reported honestly as unverified.
300
+
301
+ ### Changed
302
+
303
+ - Main-agent result verification replaces the Sidecar Verifier (ADR
304
+ 2026-10-11): the main agent verifies each requested requirement with
305
+ actual tool and rendered evidence before delivery, and an ordinary
306
+ read-only child reviewer may contribute findings within the same Run.
307
+ Retired: verifier execution, config, live callbacks, the synthetic
308
+ revision producer, `/verifier-log`, and `KODAX_VERIFIER_*` diagnostics;
309
+ persisted verifier history readers remain. Stall sidecar, Auto
310
+ permission reviewer, Bash/sandbox policy, Actor waits, and Stop hooks
311
+ are unchanged.
312
+ - Bundled skill discovery resolves the packaged `builtin` layout, and
313
+ provider capability profiles carry the capability snapshot into managed
314
+ task admission; the release audit now walks the runtime tarball
315
+ (`audit-runtime-tarball.mjs`).
316
+ - Unified client startup progress: `connectKodaXClient` /
317
+ `ensureKodaXClient` accept an `onStartupProgress` observer over the
318
+ pure-data `ClientStartupProgress` contract (checking / starting /
319
+ upgrading / connecting / ready, with waiting reasons
320
+ `connected_clients`, `host_starting`, `host_stopping`). Observation is
321
+ local, never awaited, and observer failures never change the startup
322
+ result; the CLI drives its loading animation from the same notifications
323
+ and stays responsive, and the REPL gains an optional `onBeforeRender` to
324
+ clear the loading display before restoring prompts.
325
+
326
+ ---
327
+
328
+ ## [0.7.97-alpha.3] - 2026-10-10
329
+
330
+ Third alpha of the v0.7.97 line: trusted Main can now bound Product
331
+ Workflows. `authorizeExecution` may return a `workflowHostPolicy`
332
+ (`maxAgents`, `tokenBudget`) without registering credential or hostTools
333
+ leases; the Host capability moves to `productExecutionAuthorization:2`.
334
+ Ceilings bind to Product Runs including their Workflow children, Workflow
335
+ spawn slots are reserved across concurrent admissions, and output usage is
336
+ published only when every executed round reported it. Every v0.7.96
337
+ stable and v0.7.97-alpha.1/alpha.2 contract is retained. npm publication
338
+ remains a manual maintainer action.
339
+
340
+ ### Added
341
+
342
+ - Trusted-Main Workflow ceilings: `workflowHostPolicy` (`maxAgents`,
343
+ `tokenBudget`) on `RuntimeExecutionAuthorization`, accepted policy-only
344
+ on `/client` inputs, queued consumes, and Skill/command/review derived
345
+ Runs; rejected on independent Actor admissions; Host capability
346
+ `productExecutionAuthorization:2`.
347
+ - Workflow `maxAgents` race safety: spawn slots are reserved synchronously
348
+ across pending backend admissions, so concurrent requests cannot exceed
349
+ the lifetime cap.
350
+ - Workflow output usage: finalized managed results carry aggregate
351
+ input/output usage; `outputTokens` is published only when every executed
352
+ round (including verification repair) reported its output usage.
353
+
354
+ ### Changed
355
+
356
+ - Product Runs capture the Host `workflow.maxConcurrency` at start and use
357
+ the Host-owned workflow-runs directory; the client adapter strips forged
358
+ `workflowHostPolicy` fields from Product payloads.
359
+
360
+ ### Fixed
361
+
362
+ - Terminal Memory review drains no longer reclaim an unavailable preferred
363
+ job as backlog and steal startup recovery from the next Run (Issue 362).
364
+ - Clipboard helper input-pipe failures now enter the existing native/tmux/OSC
365
+ 52 fallback instead of crashing mouse copy-on-select (Issue 363).
366
+ - MCP stdio sends observe asynchronous write failures and report them through
367
+ the awaited send and transport diagnostics; required initialization
368
+ notifications cannot turn a failed connection into ready (Issue 364).
369
+ - Workflow child budgets retain all reported Provider fallback attempts and
370
+ requests before a thrown attempt, including truncated continuations. Local
371
+ accounting reuses normalized request facts, preserves Host observers, and
372
+ keeps conservative totals when component usage is incomplete (Issue 365).
373
+ - The Host interrupt-fence and statistics fixtures wait for actual Provider entry, observe
374
+ early Run termination, and retain a bounded cleanup window (Issue 366).
375
+
376
+ ---
377
+
378
+ ## [0.7.97-alpha.2] - 2026-10-10
379
+
380
+ Second alpha of the v0.7.97 line: completes the FEATURE_298 product seams
381
+ embedders need to run the client inside a trusted shell (Space). Execution
382
+ authorization moves to the trusted Main process, every provider wire request
383
+ carries its attribution, and full exits become verifiable. Every
384
+ v0.7.96 stable and v0.7.97-alpha.1 contract is retained. npm publication
385
+ remains a manual maintainer action.
386
+
387
+ ### Added
388
+
389
+ - Trusted Main execution authorization: `connectKodaXClient` /
390
+ `ensureKodaXClient` accept an `authorizeExecution(request, services)`
391
+ callback that runs only in the trusted Main process (Host capability
392
+ `productExecutionAuthorization:1`; older Hosts reject it instead of
393
+ silently dropping bindings). It registers scoped credential and hostTools
394
+ leases and attaches non-secret bindings per operation kind — input,
395
+ command, review, agents_lean, tool, workflow, agent_spawn, agent_followup,
396
+ and manual compaction. Queued consumes bind at consumption time, steers
397
+ keep the target Run's authorization, redirects carry their own, and
398
+ different authorizations never merge or widen.
399
+ - Provider request attribution: every provider wire request carries its
400
+ execution identity and route so hosts and embedders can observe which
401
+ authorization issued it.
402
+ - Client lifecycle and exit: `lifecycle.requestExit` settles client work and
403
+ records durable exit receipts that `readKodaXClientExits` verifies after
404
+ reconnect; full exits no longer rely on disconnect side effects.
405
+ - Host surfaces for embedders: an execution facts store and per-session
406
+ statistics exposed through the daemon, and a bundled product-exit smoke
407
+ joined the release gates.
408
+
409
+ ---
410
+
11
411
  ## [0.7.97-alpha.1] - 2026-10-08
12
412
 
13
413
  First alpha of the v0.7.97 line: FEATURE_298's unified product Host and