agl 1.0.17 → 21.0.2

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 (277) hide show
  1. package/.smartconfig.json +55 -0
  2. package/changelog.md +1026 -0
  3. package/cli.js +14 -0
  4. package/dist_serve/bundle.js +44778 -0
  5. package/dist_serve/index.html +13 -0
  6. package/dist_ts/00_commitinfo_data.d.ts +8 -0
  7. package/dist_ts/00_commitinfo_data.js +9 -0
  8. package/dist_ts/classes.authmodels.d.ts +126 -0
  9. package/dist_ts/classes.authmodels.js +1422 -0
  10. package/dist_ts/classes.authstore.d.ts +160 -0
  11. package/dist_ts/classes.authstore.js +2483 -0
  12. package/dist_ts/classes.browserresourcehost.d.ts +85 -0
  13. package/dist_ts/classes.browserresourcehost.js +912 -0
  14. package/dist_ts/classes.cli.d.ts +21 -0
  15. package/dist_ts/classes.cli.js +1082 -0
  16. package/dist_ts/classes.config.d.ts +23 -0
  17. package/dist_ts/classes.config.js +267 -0
  18. package/dist_ts/classes.controller.d.ts +523 -0
  19. package/dist_ts/classes.controller.js +10611 -0
  20. package/dist_ts/classes.controllermanagement.d.ts +32 -0
  21. package/dist_ts/classes.controllermanagement.js +222 -0
  22. package/dist_ts/classes.draftmanager.d.ts +30 -0
  23. package/dist_ts/classes.draftmanager.js +179 -0
  24. package/dist_ts/classes.embeddeddb.d.ts +30 -0
  25. package/dist_ts/classes.embeddeddb.js +159 -0
  26. package/dist_ts/classes.flexframedtransport.d.ts +56 -0
  27. package/dist_ts/classes.flexframedtransport.js +275 -0
  28. package/dist_ts/classes.flexmodels.private.d.ts +231 -0
  29. package/dist_ts/classes.flexmodels.private.js +985 -0
  30. package/dist_ts/classes.flexmodels.public.d.ts +207 -0
  31. package/dist_ts/classes.flexmodels.public.js +885 -0
  32. package/dist_ts/classes.flexprojectionreader.d.ts +89 -0
  33. package/dist_ts/classes.flexprojectionreader.js +580 -0
  34. package/dist_ts/classes.flexservice.d.ts +196 -0
  35. package/dist_ts/classes.flexservice.js +3704 -0
  36. package/dist_ts/classes.flexstore.d.ts +174 -0
  37. package/dist_ts/classes.flexstore.js +3400 -0
  38. package/dist_ts/classes.flexsupervisor.d.ts +105 -0
  39. package/dist_ts/classes.flexsupervisor.js +1191 -0
  40. package/dist_ts/classes.gitreversion.d.ts +431 -0
  41. package/dist_ts/classes.gitreversion.js +10592 -0
  42. package/dist_ts/classes.harnessoperationmanager.d.ts +113 -0
  43. package/dist_ts/classes.harnessoperationmanager.js +602 -0
  44. package/dist_ts/classes.opencodeclient.d.ts +146 -0
  45. package/dist_ts/classes.opencodeclient.js +3003 -0
  46. package/dist_ts/classes.opencodesupervisor.d.ts +60 -0
  47. package/dist_ts/classes.opencodesupervisor.js +1003 -0
  48. package/dist_ts/classes.passkeymanager.d.ts +34 -0
  49. package/dist_ts/classes.passkeymanager.js +456 -0
  50. package/dist_ts/classes.processinspection.d.ts +50 -0
  51. package/dist_ts/classes.processinspection.js +484 -0
  52. package/dist_ts/classes.resourcecoordinator.d.ts +64 -0
  53. package/dist_ts/classes.resourcecoordinator.js +294 -0
  54. package/dist_ts/classes.sessionintelligencereader.d.ts +13 -0
  55. package/dist_ts/classes.sessionintelligencereader.js +40 -0
  56. package/dist_ts/classes.systemmetricssampler.d.ts +53 -0
  57. package/dist_ts/classes.systemmetricssampler.js +168 -0
  58. package/dist_ts/classes.terminalmanager.d.ts +95 -0
  59. package/dist_ts/classes.terminalmanager.js +981 -0
  60. package/dist_ts/classes.terminalresourcehost.d.ts +20 -0
  61. package/dist_ts/classes.terminalresourcehost.js +84 -0
  62. package/dist_ts/classes.upgradecoordinator.d.ts +244 -0
  63. package/dist_ts/classes.upgradecoordinator.js +2155 -0
  64. package/dist_ts/classes.upgradetransaction.d.ts +92 -0
  65. package/dist_ts/classes.upgradetransaction.js +2125 -0
  66. package/dist_ts/classes.uploadmanager.d.ts +24 -0
  67. package/dist_ts/classes.uploadmanager.js +210 -0
  68. package/dist_ts/classes.validation.d.ts +91 -0
  69. package/dist_ts/classes.validation.js +1087 -0
  70. package/dist_ts/flexharness.child.d.ts +1 -0
  71. package/dist_ts/flexharness.child.js +28 -0
  72. package/dist_ts/functions.canonicaldirectory.d.ts +21 -0
  73. package/dist_ts/functions.canonicaldirectory.js +144 -0
  74. package/dist_ts/functions.controllerdataroot.d.ts +15 -0
  75. package/dist_ts/functions.controllerdataroot.js +76 -0
  76. package/dist_ts/functions.embeddeddb.d.ts +2 -0
  77. package/dist_ts/functions.embeddeddb.js +21 -0
  78. package/dist_ts/functions.flexcredentialstore.d.ts +16 -0
  79. package/dist_ts/functions.flexcredentialstore.js +93 -0
  80. package/dist_ts/functions.opencodeauth.d.ts +3 -0
  81. package/dist_ts/functions.opencodeauth.js +31 -0
  82. package/dist_ts/functions.runtimeenvironment.d.ts +2 -0
  83. package/dist_ts/functions.runtimeenvironment.js +79 -0
  84. package/dist_ts/functions.upgradefollower.d.ts +3 -0
  85. package/dist_ts/functions.upgradefollower.js +95 -0
  86. package/dist_ts/index.d.ts +24 -0
  87. package/dist_ts/index.js +25 -0
  88. package/dist_ts/interfaces.auth.d.ts +181 -0
  89. package/dist_ts/interfaces.auth.js +82 -0
  90. package/dist_ts/interfaces.config.d.ts +34 -0
  91. package/dist_ts/interfaces.config.js +2 -0
  92. package/dist_ts/interfaces.flexipc.d.ts +939 -0
  93. package/dist_ts/interfaces.flexipc.js +1492 -0
  94. package/dist_ts/interfaces.gitreversion.d.ts +246 -0
  95. package/dist_ts/interfaces.gitreversion.js +2 -0
  96. package/dist_ts/interfaces.lifecycle.d.ts +37 -0
  97. package/dist_ts/interfaces.lifecycle.js +2 -0
  98. package/dist_ts/interfaces.opencode.d.ts +101 -0
  99. package/dist_ts/interfaces.opencode.js +3 -0
  100. package/dist_ts/interfaces.projects.d.ts +156 -0
  101. package/dist_ts/interfaces.projects.js +5 -0
  102. package/dist_ts/plugins.d.ts +36 -0
  103. package/dist_ts/plugins.js +40 -0
  104. package/dist_ts_interfaces/index.d.ts +2 -0
  105. package/dist_ts_interfaces/index.js +3 -0
  106. package/dist_ts_interfaces/interfaces.d.ts +747 -0
  107. package/dist_ts_interfaces/interfaces.js +47 -0
  108. package/dist_ts_interfaces/plugins.d.ts +4 -0
  109. package/dist_ts_interfaces/plugins.js +3 -0
  110. package/dist_ts_interfaces/requests.d.ts +806 -0
  111. package/dist_ts_interfaces/requests.js +2 -0
  112. package/dist_ts_migration/classes.documentmigrationrunner.d.ts +8 -0
  113. package/dist_ts_migration/classes.documentmigrationrunner.js +24 -0
  114. package/dist_ts_migration/classes.flexmigrationrunner.d.ts +11 -0
  115. package/dist_ts_migration/classes.flexmigrationrunner.js +25 -0
  116. package/dist_ts_migration/classes.flexpostharnessmigrationrunner.d.ts +10 -0
  117. package/dist_ts_migration/classes.flexpostharnessmigrationrunner.js +15 -0
  118. package/dist_ts_migration/classes.migrationrunner.d.ts +8 -0
  119. package/dist_ts_migration/classes.migrationrunner.js +34 -0
  120. package/dist_ts_migration/index.d.ts +12 -0
  121. package/dist_ts_migration/index.js +13 -0
  122. package/dist_ts_migration/v10_flexharnessv3migration.d.ts +11 -0
  123. package/dist_ts_migration/v10_flexharnessv3migration.js +23 -0
  124. package/dist_ts_migration/v13_flexprojectionorder.d.ts +11 -0
  125. package/dist_ts_migration/v13_flexprojectionorder.js +23 -0
  126. package/dist_ts_migration/v16_flexprovidercredentials.d.ts +22 -0
  127. package/dist_ts_migration/v16_flexprovidercredentials.js +149 -0
  128. package/dist_ts_migration/v18_resourcelayout.d.ts +22 -0
  129. package/dist_ts_migration/v18_resourcelayout.js +23 -0
  130. package/dist_ts_migration/v18_resourcelayoutmigration.d.ts +6 -0
  131. package/dist_ts_migration/v18_resourcelayoutmigration.js +61 -0
  132. package/dist_ts_migration/v19_flexprojectmanagement.d.ts +11 -0
  133. package/dist_ts_migration/v19_flexprojectmanagement.js +21 -0
  134. package/dist_ts_migration/v1_embeddeddatabaselocation.d.ts +28 -0
  135. package/dist_ts_migration/v1_embeddeddatabaselocation.js +415 -0
  136. package/dist_ts_migration/v22_projectfilesystemidentitymigration.d.ts +7 -0
  137. package/dist_ts_migration/v22_projectfilesystemidentitymigration.js +105 -0
  138. package/dist_ts_migration/v2_controllerdataroot.d.ts +130 -0
  139. package/dist_ts_migration/v2_controllerdataroot.js +1887 -0
  140. package/dist_ts_migration/v6_protocoldocumentmigration.d.ts +7 -0
  141. package/dist_ts_migration/v6_protocoldocumentmigration.js +100 -0
  142. package/dist_ts_migration/v6_protocoldocuments.d.ts +7 -0
  143. package/dist_ts_migration/v6_protocoldocuments.js +138 -0
  144. package/html/index.html +13 -0
  145. package/{LICENSE → license.md} +2 -2
  146. package/package.json +86 -48
  147. package/readme.md +480 -0
  148. package/readme.plan.md +188 -0
  149. package/ts/00_commitinfo_data.ts +8 -0
  150. package/ts/classes.authmodels.ts +1245 -0
  151. package/ts/classes.authstore.ts +3274 -0
  152. package/ts/classes.browserresourcehost.ts +1205 -0
  153. package/ts/classes.cli.ts +1254 -0
  154. package/ts/classes.config.ts +351 -0
  155. package/ts/classes.controller.ts +14426 -0
  156. package/ts/classes.controllermanagement.ts +330 -0
  157. package/ts/classes.draftmanager.ts +232 -0
  158. package/ts/classes.embeddeddb.ts +166 -0
  159. package/ts/classes.flexframedtransport.ts +283 -0
  160. package/ts/classes.flexmodels.private.ts +823 -0
  161. package/ts/classes.flexmodels.public.ts +732 -0
  162. package/ts/classes.flexprojectionreader.ts +816 -0
  163. package/ts/classes.flexservice.ts +4302 -0
  164. package/ts/classes.flexstore.ts +4565 -0
  165. package/ts/classes.flexsupervisor.ts +1453 -0
  166. package/ts/classes.gitreversion.ts +13353 -0
  167. package/ts/classes.harnessoperationmanager.ts +870 -0
  168. package/ts/classes.opencodeclient.ts +4110 -0
  169. package/ts/classes.opencodesupervisor.ts +1280 -0
  170. package/ts/classes.passkeymanager.ts +570 -0
  171. package/ts/classes.processinspection.ts +623 -0
  172. package/ts/classes.resourcecoordinator.ts +436 -0
  173. package/ts/classes.sessionintelligencereader.ts +52 -0
  174. package/ts/classes.systemmetricssampler.ts +215 -0
  175. package/ts/classes.terminalmanager.ts +1207 -0
  176. package/ts/classes.terminalresourcehost.ts +122 -0
  177. package/ts/classes.upgradecoordinator.ts +2675 -0
  178. package/ts/classes.upgradetransaction.ts +2900 -0
  179. package/ts/classes.uploadmanager.ts +240 -0
  180. package/ts/classes.validation.ts +1409 -0
  181. package/ts/flexharness.child.ts +35 -0
  182. package/ts/functions.canonicaldirectory.ts +213 -0
  183. package/ts/functions.controllerdataroot.ts +107 -0
  184. package/ts/functions.embeddeddb.ts +22 -0
  185. package/ts/functions.flexcredentialstore.ts +128 -0
  186. package/ts/functions.opencodeauth.ts +34 -0
  187. package/ts/functions.runtimeenvironment.ts +90 -0
  188. package/ts/functions.upgradefollower.ts +115 -0
  189. package/ts/index.ts +36 -6
  190. package/ts/interfaces.auth.ts +316 -0
  191. package/ts/interfaces.config.ts +37 -0
  192. package/ts/interfaces.flexipc.ts +2586 -0
  193. package/ts/interfaces.gitreversion.ts +336 -0
  194. package/ts/interfaces.lifecycle.ts +46 -0
  195. package/ts/interfaces.opencode.ts +153 -0
  196. package/ts/interfaces.projects.ts +182 -0
  197. package/ts/plugins.ts +64 -0
  198. package/ts_interfaces/index.ts +2 -0
  199. package/ts_interfaces/interfaces.ts +827 -0
  200. package/ts_interfaces/plugins.ts +15 -0
  201. package/ts_interfaces/requests.ts +1186 -0
  202. package/ts_migration/classes.documentmigrationrunner.ts +32 -0
  203. package/ts_migration/classes.flexmigrationrunner.ts +33 -0
  204. package/ts_migration/classes.flexpostharnessmigrationrunner.ts +22 -0
  205. package/ts_migration/classes.migrationrunner.ts +40 -0
  206. package/ts_migration/index.ts +12 -0
  207. package/ts_migration/v10_flexharnessv3migration.ts +35 -0
  208. package/ts_migration/v13_flexprojectionorder.ts +33 -0
  209. package/ts_migration/v16_flexprovidercredentials.ts +196 -0
  210. package/ts_migration/v18_resourcelayout.ts +55 -0
  211. package/ts_migration/v18_resourcelayoutmigration.ts +68 -0
  212. package/ts_migration/v19_flexprojectmanagement.ts +28 -0
  213. package/ts_migration/v1_embeddeddatabaselocation.ts +560 -0
  214. package/ts_migration/v22_projectfilesystemidentitymigration.ts +121 -0
  215. package/ts_migration/v2_controllerdataroot.ts +2349 -0
  216. package/ts_migration/v6_protocoldocumentmigration.ts +144 -0
  217. package/ts_migration/v6_protocoldocuments.ts +198 -0
  218. package/ts_web/00_commitinfo_data.ts +8 -0
  219. package/ts_web/classes.controllersocketclient.ts +517 -0
  220. package/ts_web/classes.sessiondraftsync.ts +390 -0
  221. package/ts_web/elements.harnesscontrollerapp.ts +11494 -0
  222. package/ts_web/index.ts +2 -0
  223. package/ts_web/plugins.ts +31 -0
  224. package/.gitlab-ci.yml +0 -71
  225. package/.npmignore +0 -5
  226. package/README.md +0 -40
  227. package/dist/cli.js +0 -2
  228. package/dist/index.d.ts +0 -0
  229. package/dist/index.js +0 -9
  230. package/dist/mod_bundle/index.d.ts +0 -1
  231. package/dist/mod_bundle/index.js +0 -18
  232. package/dist/mod_bundle/mod.plugins.d.ts +0 -4
  233. package/dist/mod_bundle/mod.plugins.js +0 -11
  234. package/dist/mod_install/index.d.ts +0 -4
  235. package/dist/mod_install/index.js +0 -21
  236. package/dist/mod_install/mod.plugins.d.ts +0 -1
  237. package/dist/mod_install/mod.plugins.js +0 -7
  238. package/dist/mod_standard/index.d.ts +0 -4
  239. package/dist/mod_standard/index.js +0 -21
  240. package/dist/mod_standard/mod.browser.d.ts +0 -6
  241. package/dist/mod_standard/mod.browser.js +0 -14
  242. package/dist/mod_standard/mod.clean.d.ts +0 -4
  243. package/dist/mod_standard/mod.clean.js +0 -12
  244. package/dist/mod_standard/mod.compile.d.ts +0 -4
  245. package/dist/mod_standard/mod.compile.js +0 -21
  246. package/dist/mod_standard/mod.plugins.d.ts +0 -8
  247. package/dist/mod_standard/mod.plugins.js +0 -19
  248. package/dist/mod_standard/mod.test.d.ts +0 -4
  249. package/dist/mod_standard/mod.test.js +0 -12
  250. package/dist/plr.cli.d.ts +0 -3
  251. package/dist/plr.cli.js +0 -57
  252. package/dist/plr.config.d.ts +0 -11
  253. package/dist/plr.config.js +0 -26
  254. package/dist/plr.mods.d.ts +0 -17
  255. package/dist/plr.mods.js +0 -17
  256. package/dist/plr.paths.d.ts +0 -19
  257. package/dist/plr.paths.js +0 -26
  258. package/dist/plr.plugins.d.ts +0 -8
  259. package/dist/plr.plugins.js +0 -16
  260. package/npmextra.json +0 -10
  261. package/ts/mod_bundle/index.ts +0 -20
  262. package/ts/mod_bundle/mod.plugins.ts +0 -9
  263. package/ts/mod_install/index.ts +0 -20
  264. package/ts/mod_install/mod.plugins.ts +0 -1
  265. package/ts/mod_standard/index.ts +0 -23
  266. package/ts/mod_standard/mod.browser.ts +0 -17
  267. package/ts/mod_standard/mod.clean.ts +0 -13
  268. package/ts/mod_standard/mod.compile.ts +0 -23
  269. package/ts/mod_standard/mod.plugins.ts +0 -17
  270. package/ts/mod_standard/mod.test.ts +0 -13
  271. package/ts/plr.cli.ts +0 -60
  272. package/ts/plr.config.ts +0 -36
  273. package/ts/plr.mods.ts +0 -25
  274. package/ts/plr.paths.ts +0 -29
  275. package/ts/plr.plugins.ts +0 -17
  276. package/tslint.json +0 -3
  277. package/yarn.lock +0 -3464
package/changelog.md ADDED
@@ -0,0 +1,1026 @@
1
+ # Changelog
2
+
3
+ ## 2026-08-20 - 21.0.2
4
+
5
+ ### Fixes
6
+
7
+ - stabilize transport and git revision tests (test)
8
+ - Run transport tests on an OS-assigned port and build the public origin from the actual listening port.
9
+ - Allow the bounded git revision test to pass when either the file-output limit or transient quota guard rejects first.
10
+ - Update @api.global/typedserver to 11.1.0 and @push.rocks/smartserve to 6.0.1.
11
+
12
+ ## 2026-08-20 - 21.0.1
13
+
14
+ ### Fixes
15
+
16
+ - retry concurrent worktree record replacements during reads (gitreversion)
17
+ - Detect private worktree record replacement or removal during bounded reads and retry transient concurrent changes.
18
+ - Revalidate file metadata, ownership, and pathname identity after reads before accepting a worktree record.
19
+ - Add regression coverage for atomic worktree record replacement during listing.
20
+
21
+ ## 2026-08-20 - 21.0.0
22
+
23
+ ### Breaking Changes
24
+
25
+ - rename package and CLI to agl (package)
26
+ - Renames the npm package from @modelprofile.com/harness-controller to agl and the CLI binary from hcon to agl.
27
+ - Updates UI, WebAuthn registration, CLI help, errors, docs, and upgrade messaging with AGL branding.
28
+ - Bumps controller upgrade management to version 2 and adds package-transition handling between the legacy bridge and AGL.
29
+ - Adds a managed parallel test runner, sharded Git reversion tests, and hardens private Git ref validation.
30
+
31
+ ## 2026-08-20 - 20.0.3
32
+
33
+ ### Fixes
34
+
35
+ - support AGL bridge package transition and harden recovery (upgrade,gitreversion)
36
+ - Add format-3 package-transition transactions from the hcon bridge to agl@21.0.0 with exact package, CLI, management-version, and shim validation.
37
+ - Recover stalled upgrades with durable worker ownership, recovery-context handoff, authoritative installation resolution, and follower log path switching.
38
+ - Validate controller status against explicit package identities so bridge and target controllers are accepted only under matching expectations.
39
+ - Create and validate the Git reversion parent directory securely and replay finalized capture lifecycle gaps after crashes.
40
+
41
+ ## 2026-08-19 - 20.0.2
42
+
43
+ ### Fixes
44
+
45
+ - bound exact message responses and reduce redundant session work (sessions)
46
+ - Bound exact message bundle responses to the transcript transfer budget with stable history-limited digests.
47
+ - Share lifecycle-owned OpenCode and Flex session enumeration across concurrent callers without cancelling underlying work on caller aborts.
48
+ - Use exhaustive Flex projection snapshots for session lists and session message metrics while preserving truncation guards.
49
+ - Skip and abort inactive subtask preview hydrations, and reconcile successful archives locally without a supplemental refresh.
50
+
51
+ - preserve retained upgrade authority and exact cleanup ownership (upgrade)
52
+ - Serialize upgrade, start-lease, and transaction-lock generations with fail-closed mutation guards and exact owner tombstones so stale cleanup cannot delete a live replacement.
53
+ - Keep an inherited Linux target alive across blocked migration, retain the unchanged v2 upgrade exclusion after draining admitted starts, and prevent immutable followers from launching a replacement.
54
+ - Preserve nested CLI startup and cleanup diagnostics, handle command-level help without dispatch, and retain exclusion when controller shutdown remains incomplete.
55
+ - Make BrowserRuntime startup cancellation wait for runtime-lock and artifact cleanup before releasing host ownership.
56
+
57
+ - resume prepared controller data-root relocation (dependencies)
58
+ - Upgrade SmartDB from 5.2.0 to 5.2.1 so the installed controller migration can preserve terminal transaction journals and their exact publication markers while moving the stopped database root.
59
+
60
+ ## 2026-08-19 - 20.0.1
61
+
62
+ ### Fixes
63
+
64
+ - remove the OpenCode operation lifetime (controller)
65
+ - Keep accepted OpenCode operations active until exact terminal reconciliation or explicit lifecycle cancellation instead of force-aborting them after 30 minutes.
66
+
67
+ ## 2026-08-19 - 20.0.0
68
+
69
+ ### Breaking Changes
70
+
71
+ - unify harness-native slash commands and workspace reversion (protocol)
72
+ - Bump the controller protocol to v22 and replace the separate command-list, session-command, and built-in-command requests with `controller.slash.list` and `controller.slash.execute`.
73
+ - Add `session.history.changed` so clients invalidate stale transcript and reversion state after an authoritative undo, redo, or branch transition.
74
+ - Bump Flex IPC to v14 for native slash descriptors and execution results, exact queue/run acknowledgement and cancellation, session reversion metadata, and parent-owned Git reversion and linked-worktree host requests.
75
+ - Root-export `ControllerGitReversion` and its typed capture, apply, release, metadata, and worktree contracts; Git 2.43 or newer is now required for these workspace operations.
76
+ - Preserve staged and unstaged Git state independently through lifecycle-managed private bare stores, disposable object generations, and write-ahead apply recovery while retaining later unrelated edits across undo and redo.
77
+ - Keep capture, finalize, inspection, release metadata, and generated objects out of source repositories; apply imports bounded self-contained packs under exact temporary keeps without controller refs.
78
+ - Move Flex transcript and Git state together for `/undo` and `/redo`; a project inside a containing repository reverts tracked and non-ignored state across that repository, while ignored paths remain unchanged.
79
+
80
+ - make project removal explicit and crash-resumable (projects)
81
+ - Persist removal intent before cleanup, resume interrupted removals at startup, and finalize bound-project tombstones only after Flex, resource, Session Intelligence, Git worktree, and reversion cleanup is confirmed.
82
+ - Replace active-project snapshot purging with exact Flex `project.register` and `project.remove` requests so an omitted project can never authorize storage deletion.
83
+ - Bind project registration to the complete ordered device/inode ancestry from the filesystem root through the project directory across controller, Flex, Git, background cleanup, and shutdown admission.
84
+ - Migrate each truly legacy project exactly once under its owning controller: available canonical directories become completely bound, unavailable entries remain terminally unbound, and incomplete pre-release bindings fail closed.
85
+ - Retire terminally unbound project metadata without dereferencing its untrusted path; retain retired resource tombstones and path-scoped OpenCode, Flex, and Git artifacts.
86
+ - Revalidate durable terminal cwd and Git repository, metadata, index-parent, and controller-owned worktree bindings before path-sensitive work or cleanup.
87
+ - migrate installed controller data root to hcon (controller)
88
+ - Move installed embedded SmartDB storage from the legacy harness-controller config root to the hcon root through a journaled migration.
89
+ - Retain inherited upgrade startups fail-closed and retry blocked data-root migration without reopening public server or prompt admission.
90
+ - Serialize temp-password and upgrade data writers, and block package replacement while source controller, temp-password, or Flex child writers remain active.
91
+ - Fence Flex runtime prompt admission and browser capability cleanup across child exits and recovery generations.
92
+ - Bump smartdb to 5.2.0, smartsecret to 1.6.0, and pnpm to 11.22.0.
93
+
94
+ ### Fixes
95
+
96
+ - fail closed on incomplete or stale controller state (controller)
97
+ - Reject incomplete OpenCode and Flex session enumerations and verify exact attention-request ownership before replies.
98
+ - Repair layouts only for positively identified archived sessions and keep late browser mutations scoped to their origin project.
99
+
100
+ - restore transient Flex tool output at the runtime boundary (dependencies)
101
+ - Upgrade `@modelprofile.com/flexharness` from 4.0.2 to 4.1.1 and direct `@push.rocks/smartagent` usage from 4.8.0 to 5.0.0.
102
+
103
+ - keep file-backed storage reads consistent during compaction (dependencies)
104
+ - Upgrade `@push.rocks/smartdb` from 4.0.2 to 5.0.1.
105
+
106
+ ## 2026-08-16 - 19.0.1
107
+
108
+ ### Fixes
109
+
110
+ - make session archiving reliable (controller)
111
+ - Use the owning harness mutation response directly and reconcile unknown outcomes with bounded exact-session readback.
112
+ - Fence archive against prompts, permissions, background work, Session Intelligence, and concurrent session or project mutations without aborting active work.
113
+ - Reconcile browser list, layout, selection, and draft state after success, ambiguous failure, and cross-tab archive transitions.
114
+
115
+ - complete bounded OpenCode archive reconciliation (controller)
116
+ - Confirm committed archives through exact session-only readback when the mutation response is lost or remains pending.
117
+ - Keep irreversible mutations and unresolved safety fences controller-owned without retaining the browser request.
118
+ - Bound reconciliation below the browser request deadline and clean late-response runtime listeners deterministically.
119
+
120
+ - retain live overlays until authoritative hydration covers them (live-rendering)
121
+ - Retain OpenCode and Flex live tool, text, and reasoning overlays when hydrated transcript data is incomplete, elided, or failed.
122
+ - Supplement delayed terminal tool payloads from live events without overriding newer durable terminal results.
123
+ - Enforce aggregate Flex live snapshot and pending event byte budgets, collapsing stream epochs safely on saturation.
124
+ - Release retained live stream state when a conversation is archived.
125
+
126
+ ## 2026-08-16 - 19.0.0
127
+
128
+ ### Breaking Changes
129
+
130
+ - add protocol v21 browser transport for Flex resources (protocol)
131
+ - Bump controller protocol to v21 and Flex IPC to v13 for qualified browser resource channels.
132
+ - Bridge Flex resource tools to Browser Runtime through framed capability-bound channels with exact attachment and peer validation.
133
+ - Add browser resource host cleanup and recovery paths for human views, Flex channels, and pending capability revocations.
134
+ - Cover browser transport, resource attachment, and Flex tool integration with regression tests.
135
+
136
+ ## 2026-08-15 - 18.4.1
137
+
138
+ ### Fixes
139
+
140
+ - restore OpenCode subagent cards (web)
141
+ - Upgrade dees-catalog to 6.10.1 so OpenCode `task` calls retain subtask previews and drill-in actions.
142
+ - Preserve compact project-task rendering for FlexHarness's action-based task operations.
143
+ - Cover both classifications in the controller's browser integration suite.
144
+
145
+ ## 2026-08-15 - 18.4.0
146
+
147
+ ### Features
148
+
149
+ - run Session Intelligence in isolated Flex workers (session-intelligence)
150
+ - Replace temporary OpenCode analysis sessions with ephemeral in-memory FlexHarness workers pinned to openai/gpt-5.6-luna.
151
+ - Expose only bounded read-only session tools and require the exact source session to be read before broader access or completion.
152
+ - Bind private capabilities to one project and harness generation, with one active job per source and four controller-wide.
153
+ - Fail closed across cancellation, persistence reads, worker disposal, capability revocation, project retirement, and controller shutdown.
154
+ - Recover legacy temporary sessions while preventing them from appearing in normal session reads and listings.
155
+
156
+ ### Fixes
157
+
158
+ - recover Flex after Session Intelligence cleanup failures (flex)
159
+ - Fence new analysis admission and stop the failed Flex generation when worker disposal or capability closure cannot be confirmed.
160
+ - Retain and retry capability ownership through post-stop browser-channel, operation, and read-connection cleanup before replacement startup.
161
+ - Settle ready-only host work and repeat resource cleanup while retaining state-changing authority, without allowing stale browser-frame failures to affect a replacement generation.
162
+
163
+ - preserve accepted OpenCode account switches after peer disconnect (controller)
164
+ - Bind an accepted switch transaction to controller lifetime rather than the initiating browser connection.
165
+ - Continue to abort the transaction during controller shutdown.
166
+
167
+ ## 2026-08-14 - 18.3.1
168
+
169
+ ### Fixes
170
+
171
+ - restore Flex startup for existing conversations (flex)
172
+ - Authorize project-management migration calls by exact live child generation before Flex reports ready.
173
+ - Keep browser resources ready-only and fence stale host responses, transport failures, and prior-generation work.
174
+
175
+ ## 2026-08-14 - 18.3.0
176
+
177
+ ### Features
178
+
179
+ - load older transcripts on upward-scroll demand (web)
180
+ - Request one older page of up to 50 source-message bundles only when the main conversation or subagent drill-in intentionally reaches the transcript top.
181
+ - Fence paging by transcript, session, controller, cursor, and stream epoch while aborting obsolete detail, auxiliary, modal, and subtask-preview requests.
182
+ - Retain the newest 200 bundles within 512 KiB, preserve the visible prepend anchor, prune unconfirmed provisional bundles, and stop repeated or no-progress cursor chains.
183
+ - Upgrade dees-catalog to 6.10.0 for the demand-paging event and state contract.
184
+
185
+ ## 2026-08-14 - 18.2.0
186
+
187
+ ### Features
188
+
189
+ - add Harness-owned project management tools (flex)
190
+ - Enable FlexHarness's `delegate`, `task`, `goal`, `scratchpad`, and `rename_session` tools without shadowing them in the controller tool provider.
191
+ - Persist generation-fenced task, goal, and scratchpad state in exact controller session documents while keeping browser and Session Intelligence scratchpad revisions synchronized.
192
+ - Backfill existing Flex sessions idempotently after session-generation repair and retain tombstone, revival, namespace-purge, and failed-purge recovery guarantees.
193
+ - Bump private Flex IPC to v11 for bounded project-management host operations and pin FlexHarness 4.0.2, Browser Runtime 2.1.2, and dees-catalog 6.9.1.
194
+
195
+ ## 2026-08-14 - 18.1.1
196
+
197
+ ### Fixes
198
+
199
+ - recover Flex provider accounts after child exits (flex)
200
+ - Restart a failed Flex child with capped backoff after prior-generation cleanup and exact project reconciliation.
201
+ - Serve bounded validated account metadata read-only while Flex is unavailable, preserving browser snapshots and blocking mutations.
202
+ - Retain sanitized exit diagnostics and retry process, browser-channel, operation, and database cleanup without losing ownership.
203
+
204
+ ## 2026-08-14 - 18.1.0
205
+
206
+ ### Features
207
+
208
+ - add Task subagent support (flex)
209
+ - Configure a depth-1 inherited-model general subagent for Flex task delegation.
210
+ - Propagate child session lineage, child model metadata, and family-scoped permissions through Flex IPC v10.
211
+ - Hide child sessions from root listings while preserving parent attention, task links, public projections, and read-only drill-in views.
212
+ - Scope yolo auto-accept state per project and route child permission replies to the exact Flex session.
213
+ - Show the unique active subagent count in the chat working indicator.
214
+
215
+ ## 2026-08-14 - 18.0.2
216
+
217
+ ### Fixes
218
+
219
+ - retain loaded history across live stream refreshes (web)
220
+ - Preserve no-op detail refresh intent instead of repeatedly restarting bounded history backfill.
221
+ - Fence stale tool and Assistant stream enrichment without clearing rendered history or subtask previews.
222
+ - Keep live snapshot synthesis stable through the returned stream cursors.
223
+
224
+ ## 2026-08-14 - 18.0.1
225
+
226
+ ### Fixes
227
+
228
+ - keep hcon upgrade preparation within TypedSocket timeout bounds (upgrade)
229
+ - Replace the grace-length completion request with a bounded prepare-begin acknowledgement and private durable transaction polling.
230
+ - Persist immutable acceptance, deadline, and completion timestamps so the worker cannot stop the source controller or install a package before successful preparation.
231
+ - Preserve the documented 1–3600 second grace range, compensate failed preparation, and keep uncertain pause cleanup fail-closed.
232
+
233
+ ## 2026-08-14 - 18.0.0
234
+
235
+ ### Breaking Changes
236
+
237
+ - separate Assistant message stream ordering from tool delivery (protocol)
238
+ - Bump the controller protocol to v20 with message stream cursors on bundle-preserving session detail and message stream epoch barriers on harness events.
239
+ - Stream bounded replace-only OpenCode Assistant text and reasoning snapshots from message part updates and deltas.
240
+ - Track independent tool and Assistant message epochs through controller, tip-first history backfill, and browser hydration.
241
+ - Generalize live text and reasoning DTO validation for OpenCode and Flex while preserving Flex source-order requirements and Flex IPC v9.
242
+
243
+ ## 2026-08-13 - 17.0.0
244
+
245
+ ### Breaking Changes
246
+
247
+ - load conversation tails before bounded history and auxiliary analysis (protocol)
248
+ - Bump the controller protocol to v19 and replace `IControllerSessionDetail.messages` with a bundle-preserving `messagePage` containing up to 20 newest source-message bundles.
249
+ - Move `sessionMetrics` and `sessionIntelligenceEnabled` from the core detail into `controller.session.auxiliary.get`, which returns `IControllerSessionAuxiliary` without delaying first paint.
250
+ - Prepend up to 180 older source bundles asynchronously with generation, stream-epoch, cursor, count, and byte fences; opaque cursors are best-effort continuations rather than immutable snapshots.
251
+ - Export `controllerInitialMessageBundleLimit`, `controllerMaximumMessageBundles`, and `controllerMaximumTranscriptBytes`; distinguish harness retention loss through `truncated` from controller source-bundle or payload omission through `historyLimited`.
252
+ - Preserve live snapshot ownership by source bundle and expose partial history instead of replacing an already-rendered conversation on backfill failure.
253
+ - Bump `@design.estate/dees-catalog` to 6.8.2 so prepended history preserves the visible message anchor.
254
+ ## 2026-08-13 - 16.0.3
255
+
256
+ ### Fixes
257
+
258
+ - fail closed on writer lease stalls and fatal store errors (flex)
259
+ - Report Flex store fatal errors to the service, close admission, publish failed status, and close the transport with a timeout.
260
+ - Track uncertain writer lease transitions so recoverable ambiguity can be retried while expired or stalled authority fails closed.
261
+ - Treat unexpected Flex child transport closure as a protocol failure.
262
+
263
+ ## 2026-08-13 - 16.0.2
264
+
265
+ ### Fixes
266
+
267
+ - normalize browser toolbar navigation and handle Go actions (browser)
268
+ - Default bare browser addresses to HTTPS and reject non-HTTP schemes before navigation
269
+ - Route toolbar submit and Go button actions through guarded navigation handling to avoid stale updates and surface failures
270
+ - Bump dees-catalog to 6.8.1 and browser-runtime to 2.1.1
271
+ - Add regression coverage for browser toolbar navigation and resource drag state during rerenders
272
+
273
+ ## 2026-08-13 - 16.0.1
274
+
275
+ ### Fixes
276
+
277
+ - reconcile archived sessions before refresh completes (sidebar)
278
+ - Remove archived sessions from applied sidebar layouts so stale layout data cannot restore them
279
+ - Immediately clear selection, detail, draft, and focus state when archiving the selected session
280
+ - Ignore stale archive results after project changes and reject invalid archive responses
281
+ ## 2026-08-13 - 16.0.0
282
+
283
+ ### Breaking Changes
284
+
285
+ - switch the controller-owned OpenCode runtime between managed OpenAI accounts (protocol)
286
+ - Bump the controller protocol to v17 and Flex IPC to v8 with a metadata-only activation RPC and private OAuth retrieval.
287
+ - Pause the exact active OpenCode cohort, generation-fence SDK traffic, replace the owned runtime and event stream, and continue conversations after the selected account is healthy.
288
+ - Persist and restage only controller-managed selections, roll back only to confirmed prior managed credentials, and otherwise keep OpenCode fail-closed.
289
+ - Move Flex provider credentials from individual kernel entries to a kernel-keyed sealed store through an idempotent, byte-preserving, fail-closed migration.
290
+ - Reject ambient or delegated `OPENCODE_AUTH_CONTENT` and keep credentials outside browser RPC, SmartData, logs, and OpenCode filesystem management.
291
+ - remove controller scheduling and stream accepted harness work directly (protocol)
292
+ - Bump the controller protocol to v16 and Flex IPC to v7 while preserving harness-owned prompt ordering.
293
+ - Correlate accepted OpenCode and Flex prompts by exact native identities with bounded abort, recovery, upload cleanup, and operation lifetime ownership.
294
+ - Stream bounded ordered Flex text and reasoning snapshots through terminal reconciliation and reject stale epochs in the browser.
295
+ - Add model-backed Flex `/compact` through the existing built-in command RPC and browser workflow.
296
+ - Recover expired same-controller Flex writer leases with serialized heartbeat and write transitions.
297
+ - add protocol v18 durable terminal and browser resources (resources)
298
+ - Introduce persisted resource documents, a resource coordinator, and terminal/browser runtime hosts with lifecycle, attachment revision, recovery, and retirement handling.
299
+ - Add resource and browser-view DTOs, requests, events, validation, audit types, and web UI support.
300
+ - Integrate BrowserRuntime with Flex IPC v9 browser resource resolution and framed browser channels for agent tool providers.
301
+ - Migrate session layouts to session-only entries by pruning legacy controller-terminal IDs.
302
+
303
+ ## 2026-08-12 - 15.0.0
304
+
305
+ ### Breaking Changes
306
+
307
+ - add protocol v15 upgrade handoff with graceful session continuity (protocol)
308
+ - Bumps the controller protocol to v15 and adds upgrade management version reporting.
309
+ - Adds sanitized upgrade status, upgrade.changed events, and controller.upgrade.prepare/finalize requests.
310
+ - Enhances hcon upgrade with bounded grace periods, optional session continuation, durable worker progress, and JSON terminal output.
311
+ - Seals prompt admission during upgrades, pauses captured active sessions, and finalizes or compensates sessions after restart or worker loss.
312
+ - Updates the browser UI to persist upgrade status and perform cache-busted reloads with stale-bundle detection.
313
+ - Improves Flex writer lease transitions to recover expired leases and serialize heartbeat/write renewals.
314
+
315
+ ## 2026-08-12 - 14.2.0
316
+
317
+ ### Features
318
+
319
+ - add Flex session rename tool (flex)
320
+ - Expose an unpermissioned rename_session tool that updates only the invoking Flex session title.
321
+ - Reuse the controller session title validation contract for both browser rename requests and the Flex tool.
322
+ - Bump @modelprofile.com/flexharness to 3.3.0 to support title updates while Flex work is active.
323
+
324
+ ## 2026-08-11 - 14.1.0
325
+
326
+ ### Features
327
+
328
+ - consume canonical FlexHarness prompt queues (flex)
329
+ - Upgrade FlexHarness to 3.2.0 and Flex IPC to v6 for bounded per-session FIFO admission and exact queue cancellation.
330
+ - Correlate prompt lifecycle and upload ownership by project, session, queue, and promoted run identifiers without inferring scheduling from background jobs.
331
+ - Keep OpenCode on its separate controller-owned FIFO while FlexHarness owns Flex scheduling, retirement, and shutdown cleanup.
332
+
333
+ ## 2026-08-11 - 14.0.1
334
+
335
+ ### Fixes
336
+
337
+ - retain referenced Flex projection candidates during orphan maintenance (flex-persistence)
338
+ - Upgrade SmartDB to 4.0.2 so dotted array-backed index queries fall back to authoritative scans.
339
+ - Keep every public candidate referenced by a Flex public head beyond the orphan grace period.
340
+
341
+ ## 2026-08-11 - 14.0.0
342
+
343
+ ### Breaking Changes
344
+
345
+ - preserve authoritative Flex transcript chronology end to end (protocol)
346
+ - Bump the controller protocol to v13 and Flex IPC to v4 with source message and part coordinates.
347
+ - Repair older projection chains from private snapshots before publishing strict ordered records.
348
+ - Keep persisted, paged, hydrated, and live tool entries on the same source-order contract.
349
+ - Upgrade dees-catalog to 6.5.0 and FlexHarness to 3.1.0 for ordered rendering and live event coordinates.
350
+ - synchronize ephemeral composer drafts and path-based uploads (protocol)
351
+ - Bump the controller protocol to v14 and Flex IPC to v5 with revisioned draft get, update, event, and operation contracts.
352
+ - Synchronize bounded text and attachments across authenticated browsers without persisting draft or upload content.
353
+ - Reserve immutable draft revisions for sends and commands, retain failed or outcome-unknown drafts, and preserve concurrent newer edits.
354
+ - Materialize attachments in private controller-owned temporary directories and clean exact OpenCode and Flex operation ownership on completion, deletion, child exit, or shutdown.
355
+ - Extract server harness-operation coordination and browser draft synchronization into focused state-machine classes.
356
+ - Upgrade SmartAgent to 4.7.0 and dees-catalog to 6.6.0 for Flex read-only upload roots and controlled attachment limits.
357
+
358
+ ## 2026-08-10 - 13.0.0
359
+
360
+ ### Breaking Changes
361
+
362
+ - persist terminal positions in revisioned sidebar layouts (protocol)
363
+ - Bump the controller protocol to v12 with explicit conversation, terminal, and mixed layout-item ID types while retaining the existing persisted field names.
364
+ - Allow terminals to reorder with conversations and move into, between, and out of groups through the existing revisioned layout update path.
365
+ - Serialize layout writes with terminal lifecycle pruning so dead terminal references cannot be reintroduced and connected clients receive the confirmed revision.
366
+ ### Features
367
+
368
+ - upgrade dees-catalog to 6.4.0 (web)
369
+ - Consume the latest published harness component release.
370
+ - stream Flex tool execution snapshots to connected browsers (flex)
371
+ - Add Flex IPC v3 `tool.updated` events for the existing allowlisted tool-part projection.
372
+ - Preserve active and terminal phases through bounded child/controller queues, harness-specific stream epochs, and cursor-safe detail hydration.
373
+ - Reuse the existing live tool cards while keeping durable terminal Flex projections authoritative.
374
+ - allow CLI temporary-password sign-in during setup (auth)
375
+ - Expose the CLI temporary-password form on the initial setup screen as well as the normal login screen.
376
+ - Allow authenticated setup-required peers to enter the main UI without enrolling a passkey.
377
+ - Permit resume-token authentication while passkey setup remains pending.
378
+ - Update browser tests and documentation for setup-time temporary-password access.
379
+
380
+ ## 2026-08-10 - 12.0.0
381
+
382
+ ### Breaking Changes
383
+
384
+ - persist account-aware session models and expose provider usage (protocol)
385
+ - Bump the controller protocol to v10 and Flex IPC to v2 with durable per-session model choices, authoritative child catalog validation, and metadata-only provider account rate limits.
386
+ - Upgrade dees-catalog to 6.3.0 and SmartAI to 6.0.0 for controlled composer account selection and OpenAI account quota retrieval.
387
+ - Serialize model persistence and two-phase logout per provider connection, fencing the account before clearing every matching global and session choice, with live and startup recovery before credential removal.
388
+
389
+ ### Fixes
390
+
391
+ - keep generic New conversations on OpenCode and release deletion state immediately (web)
392
+ - Prevent sticky Flex draft or selection state from routing the generic New conversation action into FlexHarness.
393
+ - Reconcile a successful deletion locally and release the mutation lock before the supplemental session refresh.
394
+ - remove duplicate account-aware session model entry (changelog)
395
+ - Remove redundant expanded changelog bullets already covered by the consolidated protocol entry.
396
+
397
+ ## 2026-08-10 - 11.0.0
398
+
399
+ ### Breaking Changes
400
+
401
+ - add provider connection status and harden lease heartbeats (flex)
402
+ - Bump the controller protocol to v9 and add provider connection status for active and reauthentication-required connections.
403
+ - Update Flex provider management to show reauthentication state, refresh catalogs after successful login, and track per-connection refresh progress.
404
+ - Renew Flex writer leases on every heartbeat with bounded deadlines and retry transient database failures without marking leases lost.
405
+
406
+ ## 2026-08-10 - 10.1.0
407
+
408
+ ### Features
409
+
410
+ - stream bounded subagent previews inside parent conversations (web)
411
+ - Upgrade dees-catalog to 6.2.0 and project active plus recent child sessions into chronological subtask cards.
412
+ - Hydrate at most 16 previews from bounded 40-bundle message pages with four concurrent reads, stale-selection rejection, and coalesced event refreshes.
413
+ - Preserve the dedicated subagent drill-in while exposing authoritative child status and truncation in the parent transcript.
414
+
415
+ ### Fixes
416
+
417
+ - remove duplicate pending subagent preview entry (changelog)
418
+ - Remove duplicated Pending changelog text for web subagent previews.
419
+
420
+ ## 2026-08-09 - 10.0.2
421
+
422
+ ### Fixes
423
+
424
+ - preserve native PTY support during global upgrades (upgrade)
425
+ - Passes pnpm allow-build flags for node-pty and fs-ext-extra-prebuilt when installing the target controller version
426
+
427
+ ## 2026-08-09 - 10.0.1
428
+
429
+ ### Fixes
430
+
431
+ - hydrate large OpenCode conversations through bounded cursor pages instead of one oversized response
432
+
433
+ ## 2026-08-09 - 10.0.0
434
+
435
+ ### Breaking Changes
436
+
437
+ - migrate Flex sessions to split durable stores (flex)
438
+ - Upgrade FlexHarness to 3.0.1 and SmartAgent to 4.6.0 for the new Flex store API.
439
+ - Split Flex durable state into separate scope, projection, permission, agent event/archive, and job domains with per-project writer leases.
440
+ - Add bounded public projections backed by public heads, visible digests, and integrity-linked projection sources.
441
+ - Migrate retained FlexHarness 2 snapshots before runtime admission with resumable completion markers and projection repair.
442
+ - Treat scheduled Flex sessions as busy in controller status projections.
443
+
444
+ ## 2026-08-09 - 9.0.0
445
+
446
+ ### Breaking Changes
447
+
448
+ - stream live OpenCode tool snapshots (opencode)
449
+ - add protocol v8 live tool execution DTOs, cursors, and session.tool.updated events
450
+ - coalesce controller-delivered tool snapshots with stream epoch barriers to recover from delivery gaps
451
+ - merge live tool overlays into the browser chat UI before authoritative hydration
452
+ - bump OpenCode SDK and platform packages to 1.18.15
453
+
454
+ ## 2026-08-09 - 8.0.0
455
+
456
+ ### Breaking Changes
457
+
458
+ - add protocol v7 session scratchpads and intelligence workflows (protocol)
459
+ - Bumps the controller protocol to v7 with session metrics, scratchpad state, intelligence exchanges, and new scratchpad/intelligence request methods.
460
+ - Persists scoped session state with CAS scratchpad saves, bounded intelligence exchanges, tombstones, recovery, and temporary-session cleanup.
461
+ - Updates the browser chat experience to expose scratchpads, intelligence interactions, session metrics, and conversation sidebar toggling.
462
+ - Upgrades dees-catalog to 6.0.0 and moves the Conversations toggle into the application header.
463
+
464
+ ### Features
465
+
466
+ - move conversations sidebar toggle to app header (web)
467
+ - Moves the Conversations sidebar toggle from chat components into the application header.
468
+ - Updates dees-catalog to 6.0.0.
469
+ - Adjusts sidebar tests and documentation for the new toggle ownership.
470
+
471
+ ## 2026-08-08 - 7.0.0
472
+
473
+ ### Breaking Changes
474
+
475
+ - add FlexHarness runtime and protocol v6 qualified identifiers (controller-protocol)
476
+ - Bump the controller protocol to v6 and qualify runtime-owned IDs with harness ownership across sessions, messages, permissions, questions, terminals, and events.
477
+ - Add FlexHarness as an independently supervised session runtime with isolated framed IPC, provider management, model refresh, and bounded public projections.
478
+ - Replace the single defaultModel setting with per-harness defaultModels and add idempotent migrations for existing OpenCode settings and session layouts.
479
+ - Add bounded session message paging and single-message retrieval APIs.
480
+ - Update CLI status, controller shutdown, project reconciliation, terminal handling, and browser validation for multi-harness operation.
481
+ - Drain and purge removed Flex project scopes, and reconcile abandoned candidate publications with bounded age-gated maintenance.
482
+ - Preserve ordered database and harness cleanup during detached controller shutdown before verified process-group escalation.
483
+
484
+ ## 2026-08-07 - 6.3.0
485
+
486
+ ### Features
487
+
488
+ - move terminal process ownership into the controller (terminals)
489
+ - Spawn shells directly with Smartshell's shell-free node-pty API and controller-generated opaque terminal IDs.
490
+ - Add fixed-slab bounded per-terminal scrollback with independent peer replay cursors, exact authenticated-peer output delivery, and ordered trailing output.
491
+ - Close project terminals before deregistration and retain process ownership until independent PTY exit confirmation.
492
+ - Bound terminal, peer, and ordered control admission and make cleanup single-flight across project retirement and controller shutdown.
493
+ - Reuse the sanitized child-runtime environment policy for OpenCode and controller-owned terminal shells.
494
+
495
+ ## 2026-08-07 - 6.2.0
496
+
497
+ ### Features
498
+
499
+ - add hcon upgrade workflow for pnpm-global installations (upgrade)
500
+ - Add a new hcon upgrade command that launches a detached upgrade worker with private logging and optional JSON output.
501
+ - Authorize running-controller upgrades through a one-time local launch grant bound to the verified controller process and package installation.
502
+ - Serialize upgrades and controller starts with upgrade coordination locks and start leases.
503
+ - Add shared controller management helpers for status checks, verified stops, port checks, and upgrade launch requests.
504
+ - Document the new upgrade flow and add tests for upgrade coordination, worker payloads, process inspection, and package transaction behavior.
505
+
506
+ ## 2026-08-06 - 6.1.0
507
+
508
+ ### Features
509
+
510
+ - migrate embedded SmartDB storage to controller data directory (storage)
511
+ - Default embedded database and detached log paths now use XDG config storage, with repository checkouts using .nogit.
512
+ - Add journaled one-time migration from the legacy XDG state SmartDB location with digest verification and retry safety.
513
+ - Harden SmartData and embedded database startup/shutdown serialization and cleanup error reporting.
514
+ - Bump @push.rocks/smartdb to 2.18.1 and include migration sources in published files.
515
+
516
+ ## 2026-08-06 - 6.0.0
517
+
518
+ ### Breaking Changes
519
+
520
+ - add revisioned session layouts and controller system metrics (controller-protocol)
521
+ - Changes session group get/update contracts to use IControllerSessionLayout with explicit ungrouped ordering and optimistic concurrency revisions.
522
+ - Adds protected controller.system.metrics sampling for CPU, memory, and network rates.
523
+ - Adds controller.session.discard-empty to safely clean up unused materialized draft sessions.
524
+ - Propagates authoritative session status, error, and attention markers through controller events and sidebar UI.
525
+
526
+ ## 2026-08-05 - 5.5.2
527
+
528
+ ### Fixes
529
+
530
+ - upgrade the controller transport stack to TypedServer 10 and TypedSocket 7
531
+ - Use the strict package-major handshake before admitting controller RPC.
532
+ - Preserve server-owned authentication state, explicit push targets, and default-deny client tags on the new transport.
533
+ - Document the required stop-before-upgrade process and refresh active build and test tooling.
534
+
535
+ ## 2026-08-04 - 5.5.1
536
+
537
+ ### Fixes
538
+
539
+ - avoid blocking startup on initial audit history pruning (authstore)
540
+ - Run the initial audit retention sweep asynchronously so large existing backlogs do not delay controller readiness.
541
+ - Keep recurring audit history pruning scheduled in the background.
542
+
543
+ ## 2026-08-04 - 5.5.0
544
+
545
+ ### Features
546
+
547
+ - surface OpenCode model effort in session details (controller)
548
+ - Capture OpenCode message variant metadata as effort and include the latest assistant effort in session details.
549
+ - Show effort alongside the model in the OpenCode session header.
550
+ - Prune oversized audit backlogs in bounded batches to avoid large materialized queries.
551
+ - Bump @design.estate/dees-catalog to 4.9.0.
552
+
553
+ ## 2026-08-04 - 5.4.0
554
+
555
+ ### Features
556
+
557
+ - surface model metadata in session and subagent views (opencode)
558
+ - Normalize provider/model labels for assistant messages and subagent tool calls.
559
+ - Expose the latest assistant model in session details and display it in chat and subagent headings.
560
+ - Bump @design.estate/dees-catalog to 4.8.1.
561
+
562
+ ## 2026-08-04 - 5.3.2
563
+
564
+ ### Fixes
565
+
566
+ - bump @push.rocks/smartdb to 2.17.0 (deps)
567
+ - Updates @push.rocks/smartdb from 2.15.4 to 2.17.0.
568
+
569
+ ## 2026-08-04 - 5.3.1
570
+
571
+ ### Fixes
572
+
573
+ - cap audit log retention by event count (authstore)
574
+ - Prunes oldest audit events when the collection exceeds the count cap before applying age-based retention.
575
+ - Shortens the audit prune interval from 6 hours to 30 minutes to keep embedded storage scans bounded.
576
+
577
+ ## 2026-08-04 - 5.3.0
578
+
579
+ ### Features
580
+
581
+ - support file attachments in session messages (sessions)
582
+ - Accept and validate base64 attachments on controller.session.send requests.
583
+ - Store uploaded files in per-message temporary directories and append their paths to the prompt for tool-based reading.
584
+ - Forward chat composer uploads with outgoing session messages and update dees-catalog to 4.7.0.
585
+
586
+ ## 2026-08-04 - 5.2.2
587
+
588
+ ### Fixes
589
+
590
+ - abort busy sessions before shutdown and raise raw response limits (opencode)
591
+ - Abort busy OpenCode sessions across registered project directories before stopping the child process, bounded by a shutdown timeout.
592
+ - Increase raw OpenCode response and SSE event buffering limits to tolerate larger local session histories.
593
+
594
+ ## 2026-08-04 - 5.2.1
595
+
596
+ ### Fixes
597
+
598
+ - bump @design.estate/dees-catalog to 4.6.1 (deps)
599
+ - Updates @design.estate/dees-catalog from 4.6.0 to 4.6.1
600
+
601
+ ## 2026-08-04 - 5.2.0
602
+
603
+ ### Features
604
+
605
+ - add browser authentication resume after transport reconnects (auth)
606
+ - Adds single-use in-memory resume tokens that rotate on successful resume and expire without extending the original login lifetime.
607
+ - Stores resume tokens in browser sessionStorage to re-authenticate reconnecting transports without user interaction.
608
+ - Adds the controller.auth.resume typed request and request validation.
609
+ - Raises the websocket payload limit to 16 MiB and bumps typedsocket to 6.2.0.
610
+ - Records recent transport close events for diagnostics.
611
+
612
+ ## 2026-08-04 - 5.1.0
613
+
614
+ ### Features
615
+
616
+ - add embedded smartdb database mode (database)
617
+ - Use an embedded smartdb engine by default when HARNESS_CONTROLLER_MONGO_URL is not set, with storage under the controller state directory or HARNESS_CONTROLLER_DB_DIR.
618
+ - Allow secondary CLI processes to attach to the running embedded engine socket for direct database operations such as temp-password.
619
+ - Keep external MongoDB-compatible server support through HARNESS_CONTROLLER_MONGO_URL and HARNESS_CONTROLLER_MONGO_DB.
620
+ - Add bounded audit log pruning and embedded database integration coverage.
621
+
622
+ ## 2026-08-04 - 5.0.2
623
+
624
+ ### Fixes
625
+
626
+ - bundle highlight.js for CSP-safe code views (web)
627
+ - Provide highlight.js through the catalog library loader before terminal or code views mount.
628
+ - Bump @design.estate/dees-catalog to 4.6.0 and add highlight.js 11.11.1.
629
+
630
+ ## 2026-08-04 - 5.0.1
631
+
632
+ ### Fixes
633
+
634
+ - correct CLI error prefix and bump dees catalog (cli,deps)
635
+ - Update CLI error output label from opencode-controller to harness-controller.
636
+ - Bump @design.estate/dees-catalog from 4.5.1 to 4.5.2.
637
+
638
+ ## 2026-08-04 - 5.0.0
639
+
640
+ ### Breaking Changes
641
+
642
+ - rename OpenCode controller to Harness Controller (branding)
643
+ - Renames the package to @modelprofile.com/harness-controller and updates controller identity metadata.
644
+ - Changes the CLI command and help text to the new Harness Controller naming.
645
+ - Replaces OPENCODE_CONTROLLER_* configuration variables with HARNESS_CONTROLLER_* equivalents.
646
+ - Updates proxy secret header, WebAuthn display identity, UI element/export names, log paths, tests, and documentation for the new naming.
647
+
648
+ ## 2026-08-04 - 4.8.7
649
+
650
+ ### Fixes
651
+
652
+ - refine sidebar section styling and update dees-catalog (ui)
653
+ - Add a Project section label above the project selector.
654
+ - Adjust sidebar header spacing and label styling for a more consistent layout.
655
+ - Bump @design.estate/dees-catalog from 4.5.0 to 4.5.1.
656
+
657
+ ## 2026-08-04 - 4.8.6
658
+
659
+ ### Fixes
660
+
661
+ - bump @design.estate/dees-catalog to 4.5.0 (deps)
662
+ - Updates @design.estate/dees-catalog from 4.4.0 to 4.5.0.
663
+
664
+ ## 2026-08-04 - 4.8.5
665
+
666
+ ### Fixes
667
+
668
+ - prevent event fanout from blocking permission handling (controller)
669
+ - Dispatch controller events asynchronously so stale browser peers cannot delay the event stream.
670
+ - Debounce auto-accept permission sweeps per directory to avoid excessive work during permission-event bursts.
671
+ - Increase protected operation rate limits and lengthen session refresh debounce for busy agent runs.
672
+
673
+ ## 2026-08-04 - 4.8.4
674
+
675
+ ### Fixes
676
+
677
+ - bump @design.estate/dees-catalog to 4.4.0 (deps)
678
+ - Updates @design.estate/dees-catalog from 4.3.2 to 4.4.0.
679
+
680
+ ## 2026-08-04 - 4.8.3
681
+
682
+ ### Fixes
683
+
684
+ - prevent stale session state from accumulating (sessions)
685
+ - Bound auto-accept session tracking by removing oldest stale session ids.
686
+ - Prune model and effort overrides for sessions that no longer exist.
687
+ - Clear subagent modal state on session or project switches and cap pending terminal output buffering.
688
+
689
+ ## 2026-08-03 - 4.8.2
690
+
691
+ ### Fixes
692
+
693
+ - bump @design.estate/dees-catalog to 4.3.2 (deps)
694
+ - Updates @design.estate/dees-catalog from 4.3.1 to 4.3.2.
695
+
696
+ ## 2026-08-03 - 4.8.1
697
+
698
+ ### Fixes
699
+
700
+ - bump @design.estate/dees-catalog to 4.3.1 (deps)
701
+ - Updates @design.estate/dees-catalog from 4.3.0 to 4.3.1.
702
+
703
+ ## 2026-08-03 - 4.8.0
704
+
705
+ ### Features
706
+
707
+ - add subagent session drill-in view (subagents)
708
+ - Expose childSessionId on tool calls when tool metadata references a spawned session
709
+ - Open a modal message list for subtask sessions from harness subtask events
710
+ - Refresh the subagent drill-in modal when child session events arrive
711
+ - Upgrade dees-catalog to 4.3.0 for subtask open support
712
+
713
+ ## 2026-08-03 - 4.7.7
714
+
715
+ ### Fixes
716
+
717
+ - bump @design.estate/dees-catalog to 4.2.1 (deps)
718
+ - Updated @design.estate/dees-catalog from 4.2.0 to 4.2.1.
719
+
720
+ ## 2026-08-03 - 4.7.6
721
+
722
+ ### Fixes
723
+
724
+ - bump @design.estate/dees-catalog to 4.2.0 (deps)
725
+ - Updates @design.estate/dees-catalog from 4.1.0 to 4.2.0.
726
+
727
+ ## 2026-08-03 - 4.7.5
728
+
729
+ ### Fixes
730
+
731
+ - bump @design.estate/dees-catalog to 4.1.0 (deps)
732
+ - Updates @design.estate/dees-catalog from 4.0.3 to 4.1.0.
733
+
734
+ ## 2026-08-03 - 4.7.4
735
+
736
+ ### Fixes
737
+
738
+ - update @design.estate/dees-catalog to 4.0.3 (deps)
739
+ - Updated @design.estate/dees-catalog from 4.0.2 to 4.0.3.
740
+
741
+ ## 2026-08-03 - 4.7.3
742
+
743
+ ### Fixes
744
+
745
+ - restore completed question card answers from model output (web)
746
+ - Parse completed question call output for model-facing question/answer pairs when structured answers are unavailable.
747
+ - Fall back to cached question card responses before marking completed answers as empty.
748
+
749
+ ## 2026-08-03 - 4.7.2
750
+
751
+ ### Fixes
752
+
753
+ - bump @design.estate/dees-catalog to 4.0.2 (deps)
754
+ - Updates @design.estate/dees-catalog from 4.0.1 to 4.0.2.
755
+
756
+ ## 2026-08-03 - 4.7.1
757
+
758
+ ### Fixes
759
+
760
+ - handle model-backed builtin session commands asynchronously (sessions)
761
+ - Run compact and init builtin session commands in the background so browser requests return immediately and progress is delivered through session events.
762
+ - Increase OpenCode SDK timeout for model-backed builtin commands to ten minutes.
763
+
764
+ ## 2026-08-03 - 4.7.0
765
+
766
+ ### Features
767
+
768
+ - add built-in session slash commands (sessions)
769
+ - Expose compact, undo, redo, and init in slash command autocomplete
770
+ - Add validated controller.session.builtin request handling with auth coverage
771
+ - Run matching OpenCode session operations and refresh session state after execution
772
+
773
+ ## 2026-08-03 - 4.6.5
774
+
775
+ ### Fixes
776
+
777
+ - show orphaned question tool calls in transcript (questions)
778
+ - Link pending question requests to their originating tool call IDs.
779
+ - Render orphaned running or pending question calls as expired and errored calls as dismissed instead of hiding them.
780
+
781
+ ## 2026-08-03 - 4.6.4
782
+
783
+ ### Fixes
784
+
785
+ - persist answered question cards from transcript (chat)
786
+ - Filter question tool-call messages out of the chat transcript so raw question JSON is not rendered.
787
+ - Rebuild answered question cards from completed question tool calls so responses persist after reload.
788
+ - Avoid duplicate answered question cards when transcript data replaces the local cache.
789
+
790
+ ## 2026-08-03 - 4.6.3
791
+
792
+ ### Fixes
793
+
794
+ - prevent oversized transcript payloads from starving message normalization (opencodeclient)
795
+ - Use independent payload budgets for each tool call so oversized tool data elides locally.
796
+ - Cap reasoning text per message and elide reasoning parts beyond the per-message budget.
797
+ - Keep transcript loading resilient by relying on final oldest-message trimming instead of a shared aggregate message budget.
798
+
799
+ ## 2026-08-03 - 4.6.2
800
+
801
+ ### Fixes
802
+
803
+ - bump @design.estate/dees-catalog to 4.0.1 (deps)
804
+ - Update @design.estate/dees-catalog from 4.0.0 to 4.0.1
805
+
806
+ ## 2026-08-03 - 4.6.1
807
+
808
+ ### Fixes
809
+
810
+ - bump @design.estate/dees-catalog to 4.0.0 (deps)
811
+ - Updated @design.estate/dees-catalog from 3.104.0 to 4.0.0.
812
+
813
+ ## 2026-08-03 - 4.6.0
814
+
815
+ ### Features
816
+
817
+ - add per-chat yolo mode and resilient transcript loading (chat)
818
+ - Add a controller.session.yolo request to toggle per-chat permission auto-accept for the current controller run.
819
+ - Expose each session detail's effective auto-accept state so the chat can switch between Ask and Yolo modes.
820
+ - Render permissions and questions inline in the conversation and keep answered cards visible in the transcript.
821
+ - Elide oversized transcript payloads and trim oldest messages so session details remain loadable within transport limits.
822
+
823
+ ## 2026-08-03 - 4.5.1
824
+
825
+ ### Fixes
826
+
827
+ - document integrated terminal behavior (readme)
828
+ - Adds README coverage for terminal creation, server-side PTY lifecycle, browser reattachment, shared sizing, and audited terminal events.
829
+
830
+ ## 2026-08-03 - 4.5.0
831
+
832
+ ### Features
833
+
834
+ - add PTY terminal relay and web UI (terminal)
835
+ - Expose typed controller requests for terminal listing, creation, renaming, removal, attach, detach, input, resize, and output streaming.
836
+ - Bridge OpenCode PTY WebSocket sessions through an authenticated TerminalRelay with input limits, resize handling, peer detach cleanup, and terminal change events.
837
+ - Add bundled xterm support and terminal selection/rendering in the browser client.
838
+
839
+ ## 2026-08-03 - 4.4.0
840
+
841
+ ### Features
842
+
843
+ - add shared text prompt modal for create and rename dialogs (web)
844
+ - Adds a reusable single-field prompt for group creation, group renaming, and conversation renaming
845
+ - Focuses and selects prompt input when opened and supports Enter key submission
846
+ - Keeps empty-value validation before applying prompt actions
847
+
848
+ ## 2026-08-03 - 4.3.1
849
+
850
+ ### Fixes
851
+
852
+ - accept session group controller events in socket client (controller-events)
853
+ - Export controllerEventTypes and derive TControllerEventType from it to keep runtime validation aligned with type definitions.
854
+ - Include sessiongroups.changed in the browser socket client's allowed controller event set.
855
+
856
+ ## 2026-08-03 - 4.3.0
857
+
858
+ ### Features
859
+
860
+ - add per-project session grouping (session-groups)
861
+ - Add persisted per-project session group storage with validation and typed socket get/update endpoints.
862
+ - Enable creating, renaming, deleting, dragging, and reordering conversation groups in the web UI.
863
+ - Synchronize group changes across connected clients and remove archived or deleted sessions from groups.
864
+ - Bump @design.estate/dees-catalog to 3.102.0 for grouping support.
865
+
866
+ ## 2026-08-03 - 4.2.3
867
+
868
+ ### Fixes
869
+
870
+ - filter child sessions from session listings (opencodeclient)
871
+ - Exclude sessions with a parentId so child sessions do not appear as standalone conversations.
872
+
873
+ ## 2026-08-03 - 4.2.2
874
+
875
+ ### Fixes
876
+
877
+ - list only root sessions when loading conversations (opencodeclient)
878
+ - Pass roots: true when requesting the session list to exclude internal subagent child sessions.
879
+ - Prevents child sessions from consuming the request limit and crowding out top-level conversations.
880
+
881
+ ## 2026-08-03 - 4.2.1
882
+
883
+ ### Fixes
884
+
885
+ - centralize audit event validation vocabulary (audit)
886
+ - Derive the audit event type union from a shared const list.
887
+ - Use the shared audit event list for runtime document validation so valid events cannot drift from persisted validation.
888
+
889
+ ## 2026-08-03 - 4.2.0
890
+
891
+ ### Features
892
+
893
+ - add session rename and archive actions (sessions)
894
+ - Add typed controller requests, validation, audit events, and OpenCode client update support for renaming and archiving sessions.
895
+ - Add a conversation context menu in the web UI with Rename, Archive, and Delete actions.
896
+ - Bump dees-catalog to 3.101.0 for the updated session list context interactions.
897
+
898
+ ## 2026-08-03 - 4.1.0
899
+
900
+ ### Features
901
+
902
+ - add question handling and auto-accept permissions (controller)
903
+ - Add OpenCode question normalization, session detail exposure, reply/reject controller API, and UI cards for answering pending questions.
904
+ - Persist an auto-accept permissions setting and automatically reply once to pending permission requests across registered projects when enabled.
905
+ - Add client-side draft conversations before first send and move archived sessions out of the main conversation list.
906
+
907
+ ## 2026-08-03 - 4.0.0
908
+
909
+ ### Breaking Changes
910
+
911
+ - allow registering projects from any directory on disk (projects)
912
+ - Changes --projects-root from an enforcing project boundary to the default base for relative paths and initial suggestions.
913
+ - Accepts absolute project paths outside the default base while keeping relative display names for projects under it.
914
+ - Updates path suggestions, UI copy, documentation, and tests for filesystem-wide project registration.
915
+
916
+ ## 2026-08-03 - 3.4.0
917
+
918
+ ### Features
919
+
920
+ - support absolute paths when registering projects (projects)
921
+ - Accept absolute disk paths below the configured projects root for project creation and normalize them before registration.
922
+ - Return absolute path suggestions for absolute queries and expose the projects root through controller settings for the UI.
923
+ - Show the projects root and inline project creation errors in the add-project form.
924
+ - Document the absolute and relative project path workflow and extend validation tests.
925
+
926
+ ## 2026-08-03 - 3.3.0
927
+
928
+ ### Features
929
+
930
+ - add CLI temporary password login (auth)
931
+ - Add hashed temporary password persistence with TTL expiry, one-minute to 24-hour lifetime bounds, and an active credential limit.
932
+ - Expose a temp-password CLI command that mints browser login credentials directly from the controller database and records audit events.
933
+ - Add a typed temporary password login endpoint and browser UI form for authenticating with minted credentials.
934
+ - Document temporary password usage and add auth store coverage for minting, verification, expiry, and limits.
935
+
936
+ ## 2026-08-03 - 3.2.0
937
+
938
+ ### Features
939
+
940
+ - support reasoning effort variants in model selection (models)
941
+ - Adds validation and persistence for optional model variant selections.
942
+ - Sends selected variants to OpenCode as the body-level variant parameter while keeping model references unchanged.
943
+ - Surfaces advertised model variants in the settings dialog and chat composer effort dropdowns.
944
+
945
+ ## 2026-08-03 - 3.1.0
946
+
947
+ ### Features
948
+
949
+ - add project removal flow and transport close handling (controller)
950
+ - Add a confirmed UI action to remove the selected project from the project list without deleting files on disk.
951
+ - Surface non-normal transport closures in the web app, including frame-limit disconnect messages during reconnects.
952
+ - Reduce normalized response budgets to stay under the typedsocket frame limit and update aggregate budget coverage.
953
+
954
+ ## 2026-08-03 - 3.0.0
955
+
956
+ ### Breaking Changes
957
+
958
+ - switch project registration to existing paths and add slash command support (controller-protocol)
959
+ - Bumps the controller protocol to v3 and changes project creation requests from name to path.
960
+ - Registers only existing visible directories below the projects root, including nested relative paths, instead of creating new project folders.
961
+ - Adds project path suggestions for the add-project UI.
962
+ - Adds OpenCode command listing, slash-command autocomplete, and server-side command execution with command-pinned agent or model support.
963
+ - Adds per-message model overrides while preserving the persisted default model behavior.
964
+
965
+ ## 2026-08-03 - 2.0.0
966
+
967
+ ### Breaking Changes
968
+
969
+ - add project-scoped sessions and default model settings (controller)
970
+ - Bump the controller protocol to v2 and require projectId on session and permission requests.
971
+ - Add projectsRoot configuration with legacy adoption, project persistence, and project create/list/remove endpoints.
972
+ - Add model listing and persisted default model settings with live project and settings change events.
973
+ - Update the web UI with project selection, project creation, model selection, and backend version reload handling.
974
+
975
+ ## 2026-08-03 - 1.1.0
976
+
977
+ ### Features
978
+
979
+ - add setup-code option and detached diagnostics logging (controller-startup)
980
+ - Adds validation and propagation for operator-provided setup codes during foreground and detached starts.
981
+ - Writes detached controller stderr diagnostics to a per-port XDG state log with rotation and file safety checks.
982
+ - Improves controller process verification for default-port launches and relative CLI paths.
983
+ - Updates tests and documentation for setup-code behavior, detached logs, and process inspection.
984
+
985
+ ## 2026-08-03 - 1.0.2
986
+
987
+ ### Fixes
988
+
989
+ - normalize passkey begin failures as typed responses (auth)
990
+ - Convert passkey setup and authentication begin failures into TypedResponseError responses.
991
+ - Log underlying controller operation errors while keeping wire responses generic.
992
+
993
+ ## 2026-08-03 - 1.0.1
994
+
995
+ ### Fixes
996
+
997
+ - bump typedserver to 9.2.1 and typedsocket to 6.1.0 (deps)
998
+ - Update @api.global/typedserver from 9.2.0 to 9.2.1
999
+ - Update @api.global/typedsocket from 6.0.0 to 6.1.0
1000
+
1001
+ ## 2026-08-02 - 1.0.0
1002
+
1003
+ ### Features
1004
+
1005
+ - add initial passkey-authenticated OpenCode controller (controller)
1006
+ - Add CLI lifecycle commands for detached and foreground controller operation, status checks, and verified stop handling.
1007
+ - Implement immutable runtime configuration with WebAuthn origin, RP ID, workspace, and trusted proxy validation.
1008
+ - Add SmartData-backed passkey setup/authentication, ceremony persistence, credential counter updates, and audit events.
1009
+ - Expose typed controller API, browser socket client, and web UI for sessions, messages, permissions, and OpenCode status.
1010
+ - Add OpenCode supervision/client integration plus build configuration and test coverage.
1011
+
1012
+ ### Breaking Changes
1013
+
1014
+ - restrict local transport to loopback and harden pre-authentication controls (controller)
1015
+ - Local mode now binds the controller HTTP/WebSocket listener to 127.0.0.1; all-interface binding is limited to trusted proxy mode.
1016
+ - Count wrong setup-code attempts before validation and add a global unauthenticated preflight limit.
1017
+ - Reap surviving OpenCode process-group members when the leader exits and avoid later signalling a possibly recycled group id.
1018
+ - Upgrade TypedRequest, TypedServer, and TypedSocket dependencies and add live transport coverage for default-deny client tags.
1019
+ - Disable npm publication in release configuration and update documentation for git-only release and proxy isolation.
1020
+
1021
+ ### Fixes
1022
+
1023
+ - remove redundant pending changelog summary (changelog)
1024
+ - Remove duplicate Pending entry already covered by the Features section.
1025
+ - restore sha512 integrity metadata for legacy lockfile entries (deps)
1026
+ - Replace 20 collision-weak sha1 integrity values (a registry-metadata artifact) with the upstream sha512 values and verify a frozen-lockfile install against them.