@indigoai-us/hq-cli 5.313.0 → 5.314.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1174) hide show
  1. package/CHANGELOG.md +1 -4300
  2. package/assets/scaffold/core/scripts/checkpoint-stop-gate.sh +43 -281
  3. package/assets/scaffold/core/scripts/hook-lib.sh +50 -345
  4. package/assets/scaffold/core/scripts/hq-session.sh +23 -184
  5. package/assets/scaffold/core/scripts/lib/session-id.sh +2 -3
  6. package/assets/scaffold/core/scripts/lib/session-scope-capability.sh +1 -1
  7. package/assets/scaffold/core/scripts/lib/work-mesh-enqueue.sh +1 -2
  8. package/assets/scaffold/core/scripts/qmd-reindex-after-sync.sh +87 -10
  9. package/assets/scaffold/core/scripts/rebuild-company-knowledge-index.sh +3 -36
  10. package/assets/scaffold/core/scripts/rebuild-projects-index.sh +12 -99
  11. package/assets/scaffold/core/scripts/token-usage-report.sh +20 -81
  12. package/dist/bin/hq-auth-refresh.d.ts +0 -2
  13. package/dist/bin/hq-auth-refresh.js +6 -12
  14. package/dist/commands/__fixtures__/access-vault.d.ts +0 -2
  15. package/dist/commands/__fixtures__/access-vault.js +1 -1
  16. package/dist/commands/_patterns.d.ts +0 -16
  17. package/dist/commands/_patterns.js +3 -20
  18. package/dist/commands/access.d.ts +1 -2
  19. package/dist/commands/access.js +49 -58
  20. package/dist/commands/agents.d.ts +4 -106
  21. package/dist/commands/agents.js +45 -924
  22. package/dist/commands/auth.d.ts +0 -1
  23. package/dist/commands/auth.js +19 -189
  24. package/dist/commands/billing.d.ts +0 -3
  25. package/dist/commands/billing.js +1 -6
  26. package/dist/commands/channels.js +1 -56
  27. package/dist/commands/cloud-demote.js +2 -3
  28. package/dist/commands/cloud-provision.d.ts +0 -14
  29. package/dist/commands/cloud-provision.js +58 -232
  30. package/dist/commands/cloud.d.ts +15 -49
  31. package/dist/commands/cloud.js +122 -357
  32. package/dist/commands/company-transfer.d.ts +28 -4
  33. package/dist/commands/company-transfer.js +49 -5
  34. package/dist/commands/company.js +3 -68
  35. package/dist/commands/core-checkpoint.d.ts +9 -19
  36. package/dist/commands/core-checkpoint.js +37 -301
  37. package/dist/commands/core.d.ts +0 -4
  38. package/dist/commands/core.js +80 -277
  39. package/dist/commands/crm.js +3 -52
  40. package/dist/commands/db-provision.js +4 -4
  41. package/dist/commands/db-sql.js +21 -7
  42. package/dist/commands/dm.d.ts +12 -119
  43. package/dist/commands/dm.js +38 -388
  44. package/dist/commands/doctor.d.ts +0 -12
  45. package/dist/commands/doctor.js +12 -158
  46. package/dist/commands/feedback.d.ts +0 -6
  47. package/dist/commands/feedback.js +37 -86
  48. package/dist/commands/files-browse.d.ts +12 -32
  49. package/dist/commands/files-browse.js +60 -176
  50. package/dist/commands/files.d.ts +0 -17
  51. package/dist/commands/files.js +47 -300
  52. package/dist/commands/group-grants.js +2 -3
  53. package/dist/commands/groups.js +5 -6
  54. package/dist/commands/index-cmd.d.ts +1 -19
  55. package/dist/commands/index-cmd.js +7 -74
  56. package/dist/commands/integrations-api.d.ts +10 -15
  57. package/dist/commands/integrations-api.js +22 -27
  58. package/dist/commands/integrations-connect.d.ts +13 -51
  59. package/dist/commands/integrations-connect.js +71 -86
  60. package/dist/commands/integrations-core.d.ts +6 -6
  61. package/dist/commands/integrations-core.js +11 -25
  62. package/dist/commands/integrations-import.d.ts +1 -1
  63. package/dist/commands/integrations-import.js +24 -43
  64. package/dist/commands/integrations-manage.js +13 -20
  65. package/dist/commands/integrations.d.ts +0 -8
  66. package/dist/commands/integrations.js +7 -94
  67. package/dist/commands/login.js +6 -49
  68. package/dist/commands/mcp-registration.d.ts +25 -32
  69. package/dist/commands/mcp-registration.js +23 -256
  70. package/dist/commands/mcp-status.js +0 -1
  71. package/dist/commands/meetings.js +34 -55
  72. package/dist/commands/members.js +1 -5
  73. package/dist/commands/mesh.d.ts +0 -11
  74. package/dist/commands/mesh.js +76 -1086
  75. package/dist/commands/onboard-identity-guard.d.ts +1 -1
  76. package/dist/commands/onboard.js +5 -24
  77. package/dist/commands/pack-install.js +1 -3
  78. package/dist/commands/packs.js +1 -11
  79. package/dist/commands/people.d.ts +0 -4
  80. package/dist/commands/people.js +3 -37
  81. package/dist/commands/publish.d.ts +1 -8
  82. package/dist/commands/publish.js +4 -17
  83. package/dist/commands/reindex.js +6 -56
  84. package/dist/commands/rescue.d.ts +0 -4
  85. package/dist/commands/rescue.js +17 -27
  86. package/dist/commands/run.js +4 -18
  87. package/dist/commands/safe-extract.d.ts +2 -11
  88. package/dist/commands/safe-extract.js +8 -36
  89. package/dist/commands/scaffold-fast.d.ts +41 -0
  90. package/dist/commands/scaffold-fast.js +57 -0
  91. package/dist/commands/secrets.d.ts +2 -20
  92. package/dist/commands/secrets.js +71 -175
  93. package/dist/commands/skill.d.ts +4 -35
  94. package/dist/commands/skill.js +18 -357
  95. package/dist/commands/sync-mode.d.ts +0 -11
  96. package/dist/commands/sync-mode.js +0 -30
  97. package/dist/commands/sync-narrow.js +5 -36
  98. package/dist/commands/team-sync.js +10 -71
  99. package/dist/commands/update.js +0 -6
  100. package/dist/commands/whoami.d.ts +0 -22
  101. package/dist/commands/whoami.js +4 -137
  102. package/dist/commands/workers.d.ts +14 -2
  103. package/dist/commands/workers.js +10 -7
  104. package/dist/fast-core.d.ts +7 -6
  105. package/dist/fast-core.js +24 -87
  106. package/dist/index.d.ts +4 -3
  107. package/dist/index.js +9 -59
  108. package/dist/lazy-commands.d.ts +44 -20
  109. package/dist/lazy-commands.js +58 -60
  110. package/dist/lib/company-skill-wrapper.d.ts +0 -1
  111. package/dist/lib/company-skill-wrapper.js +29 -121
  112. package/dist/lib/core-utils/codex-skill-bridge.d.ts +1 -2
  113. package/dist/lib/core-utils/qmd-reindex-after-sync.d.ts +1 -14
  114. package/dist/lib/core-utils/qmd-reindex-after-sync.js +17 -101
  115. package/dist/lib/core-utils/soft-timeout.js +1 -1
  116. package/dist/lib/core-utils/timeout-guard.d.ts +3 -3
  117. package/dist/lib/core-utils/timeout-guard.js +13 -28
  118. package/dist/lib/core-utils/token-usage-report.js +3 -17
  119. package/dist/lib/db/control-plane.js +0 -6
  120. package/dist/lib/db/local.d.ts +5 -0
  121. package/dist/lib/db/local.js +1 -1
  122. package/dist/lib/db/migrate.d.ts +12 -0
  123. package/dist/lib/db/migrate.js +5 -5
  124. package/dist/lib/db/remote-sql.d.ts +2 -2
  125. package/dist/lib/db/remote-sql.js +3 -3
  126. package/dist/lib/db/sql.d.ts +10 -0
  127. package/dist/lib/db/sql.js +8 -4
  128. package/dist/lib/doctor/__testing__/fake-hq-tree.d.ts +1 -1
  129. package/dist/lib/doctor/__testing__/fake-hq-tree.js +1 -1
  130. package/dist/lib/doctor/checks/claude-wiring.js +1 -70
  131. package/dist/lib/doctor/checks/codex-wiring.d.ts +4 -0
  132. package/dist/lib/doctor/checks/codex-wiring.js +35 -3
  133. package/dist/lib/doctor/checks/grok-wiring.js +34 -1
  134. package/dist/lib/doctor/checks/integrations.js +0 -11
  135. package/dist/lib/doctor/checks/runtime-health.d.ts +17 -4
  136. package/dist/lib/doctor/checks/runtime-health.js +7 -20
  137. package/dist/lib/doctor/checks/sync-health.d.ts +0 -21
  138. package/dist/lib/doctor/checks/sync-health.js +2 -72
  139. package/dist/lib/doctor/checks/work-context.js +6 -20
  140. package/dist/lib/doctor/compat.d.ts +16 -0
  141. package/dist/lib/doctor/compat.js +3 -4
  142. package/dist/lib/doctor/deep/effects.js +3 -1
  143. package/dist/lib/doctor/deep/executor.d.ts +10 -4
  144. package/dist/lib/doctor/deep/executor.js +1 -1
  145. package/dist/lib/doctor/deep/parity.d.ts +29 -2
  146. package/dist/lib/doctor/deep/parity.js +7 -7
  147. package/dist/lib/doctor/deep/sandbox.d.ts +25 -7
  148. package/dist/lib/doctor/deep/sandbox.js +7 -5
  149. package/dist/lib/doctor/fix/apply.d.ts +8 -79
  150. package/dist/lib/doctor/fix/apply.js +80 -292
  151. package/dist/lib/doctor/fix/remediation.d.ts +6 -14
  152. package/dist/lib/doctor/fix/remediation.js +9 -49
  153. package/dist/lib/doctor/fixtures/schema.js +3 -1
  154. package/dist/lib/doctor/json-output.d.ts +1 -17
  155. package/dist/lib/doctor/json-output.js +2 -7
  156. package/dist/lib/doctor/platform.d.ts +26 -0
  157. package/dist/lib/doctor/platform.js +5 -5
  158. package/dist/lib/doctor/registry.d.ts +0 -14
  159. package/dist/lib/doctor/registry.js +0 -71
  160. package/dist/lib/doctor/report.js +1 -1
  161. package/dist/lib/doctor/types.d.ts +0 -5
  162. package/dist/lib/doctor/types.js +0 -20
  163. package/dist/lib/flag-registry-worker.js +1 -12
  164. package/dist/lib/flag-registry.d.ts +6 -26
  165. package/dist/lib/flag-registry.js +16 -133
  166. package/dist/lib/index-render/companies.d.ts +1 -4
  167. package/dist/lib/index-render/companies.js +3 -66
  168. package/dist/lib/index-render/company-knowledge.js +17 -80
  169. package/dist/lib/index-render/index.d.ts +0 -1
  170. package/dist/lib/index-render/index.js +1 -2
  171. package/dist/lib/index-render/projects.js +5 -82
  172. package/dist/lib/index-render/shared.d.ts +1 -13
  173. package/dist/lib/index-render/shared.js +2 -41
  174. package/dist/lib/mesh/api.d.ts +10 -103
  175. package/dist/lib/mesh/api.js +64 -334
  176. package/dist/lib/mesh/client.d.ts +2 -3
  177. package/dist/lib/mesh/client.js +7 -26
  178. package/dist/lib/mesh/live/backfill-held.d.ts +16 -67
  179. package/dist/lib/mesh/live/backfill-held.js +61 -415
  180. package/dist/lib/mesh/live/backoff.d.ts +2 -2
  181. package/dist/lib/mesh/live/backoff.js +3 -16
  182. package/dist/lib/mesh/live/daemon/board-refresh.d.ts +1 -7
  183. package/dist/lib/mesh/live/daemon/board-refresh.js +30 -78
  184. package/dist/lib/mesh/live/daemon/credentials.d.ts +10 -64
  185. package/dist/lib/mesh/live/daemon/credentials.js +20 -270
  186. package/dist/lib/mesh/live/daemon/doctor.d.ts +0 -53
  187. package/dist/lib/mesh/live/daemon/doctor.js +6 -190
  188. package/dist/lib/mesh/live/daemon/index.d.ts +10 -13
  189. package/dist/lib/mesh/live/daemon/index.js +6 -7
  190. package/dist/lib/mesh/live/daemon/install.d.ts +1 -255
  191. package/dist/lib/mesh/live/daemon/install.js +13 -811
  192. package/dist/lib/mesh/live/daemon/paths.d.ts +0 -2
  193. package/dist/lib/mesh/live/daemon/paths.js +0 -2
  194. package/dist/lib/mesh/live/daemon/presence.d.ts +5 -24
  195. package/dist/lib/mesh/live/daemon/presence.js +10 -79
  196. package/dist/lib/mesh/live/daemon/run.d.ts +2 -48
  197. package/dist/lib/mesh/live/daemon/run.js +33 -485
  198. package/dist/lib/mesh/live/daemon/state.d.ts +2 -19
  199. package/dist/lib/mesh/live/daemon/state.js +2 -34
  200. package/dist/lib/mesh/live/daemon/transcript-watch.d.ts +9 -45
  201. package/dist/lib/mesh/live/daemon/transcript-watch.js +31 -227
  202. package/dist/lib/mesh/live/emit-client.d.ts +0 -8
  203. package/dist/lib/mesh/live/emit-client.js +8 -23
  204. package/dist/lib/mesh/live/emit-evidence.d.ts +0 -19
  205. package/dist/lib/mesh/live/emit-evidence.js +2 -20
  206. package/dist/lib/mesh/live/emit.d.ts +0 -9
  207. package/dist/lib/mesh/live/emit.js +2 -28
  208. package/dist/lib/mesh/live/enqueue.d.ts +0 -5
  209. package/dist/lib/mesh/live/enqueue.js +0 -19
  210. package/dist/lib/mesh/live/flush.d.ts +5 -17
  211. package/dist/lib/mesh/live/flush.js +38 -391
  212. package/dist/lib/mesh/live/format-spool-line.d.ts +2 -5
  213. package/dist/lib/mesh/live/format-spool-line.js +0 -10
  214. package/dist/lib/mesh/live/paths.d.ts +0 -2
  215. package/dist/lib/mesh/live/paths.js +0 -4
  216. package/dist/lib/mesh/live/session-event.schema.json +1 -24
  217. package/dist/lib/mesh/live/session-events-client.d.ts +0 -2
  218. package/dist/lib/mesh/live/session-events-client.js +0 -26
  219. package/dist/lib/mesh/live/spool.d.ts +0 -19
  220. package/dist/lib/mesh/live/spool.js +3 -269
  221. package/dist/lib/mesh/live/validate-session-event.d.ts +1 -1
  222. package/dist/lib/mesh/live/validate-session-event.js +1 -1
  223. package/dist/lib/plan-limit-nag.d.ts +6 -102
  224. package/dist/lib/plan-limit-nag.js +43 -348
  225. package/dist/lib/scan-packages/index.d.ts +0 -2
  226. package/dist/lib/scan-packages/index.js +6 -168
  227. package/dist/lib/search-index/background.d.ts +1 -8
  228. package/dist/lib/search-index/background.js +200 -55
  229. package/dist/lib/search-index/index.d.ts +0 -12
  230. package/dist/lib/search-index/index.js +7 -153
  231. package/dist/lib/work-context/company.d.ts +20 -22
  232. package/dist/lib/work-context/company.js +40 -124
  233. package/dist/lib/work-context/config.d.ts +11 -58
  234. package/dist/lib/work-context/config.js +83 -334
  235. package/dist/lib/work-context/contract.d.ts +0 -13
  236. package/dist/lib/work-context/contract.schema.json +1 -3
  237. package/dist/lib/work-context/index.d.ts +25 -0
  238. package/dist/lib/work-context/index.js +21 -0
  239. package/dist/lib/work-context/outbox.d.ts +5 -27
  240. package/dist/lib/work-context/outbox.js +6 -135
  241. package/dist/lib/work-context/reconcile.d.ts +0 -15
  242. package/dist/lib/work-context/reconcile.js +29 -405
  243. package/dist/lib/work-context/state.d.ts +10 -93
  244. package/dist/lib/work-context/state.js +29 -342
  245. package/dist/lib/workers-registry/index.js +8 -62
  246. package/dist/main.d.ts +0 -32
  247. package/dist/main.js +73 -273
  248. package/dist/node-network-compat.d.ts +30 -2
  249. package/dist/node-network-compat.js +51 -4
  250. package/dist/node-preflight.d.ts +1 -7
  251. package/dist/node-preflight.js +5 -5
  252. package/dist/register-all.d.ts +29 -4
  253. package/dist/register-all.js +233 -4
  254. package/dist/run/discover-schemas.d.ts +1 -2
  255. package/dist/run/env-graph-guard.d.ts +2 -2
  256. package/dist/run/env-graph-guard.js +2 -5
  257. package/dist/run/hq-plugin.d.ts +0 -4
  258. package/dist/run/hq-plugin.js +8 -36
  259. package/dist/sentry-before-send.js +0 -80
  260. package/dist/sentry.d.ts +2 -8
  261. package/dist/sentry.js +13 -117
  262. package/dist/startup-registration.d.ts +2 -26
  263. package/dist/startup-registration.js +15 -116
  264. package/dist/utils/cli-telemetry.d.ts +1 -74
  265. package/dist/utils/cli-telemetry.js +7 -434
  266. package/dist/utils/client-health.d.ts +4 -0
  267. package/dist/utils/client-health.js +2 -2
  268. package/dist/utils/cognito-session.d.ts +0 -71
  269. package/dist/utils/cognito-session.js +27 -481
  270. package/dist/utils/contribution-table.d.ts +1 -1
  271. package/dist/utils/environmental-error.d.ts +0 -18
  272. package/dist/utils/environmental-error.js +7 -240
  273. package/dist/utils/expected-cli-error.d.ts +0 -2
  274. package/dist/utils/expected-cli-error.js +0 -4
  275. package/dist/utils/feedback-diagnostics.d.ts +1 -2
  276. package/dist/utils/feedback-log-bundle.d.ts +26 -51
  277. package/dist/utils/feedback-log-bundle.js +31 -211
  278. package/dist/utils/feedback-logs.d.ts +47 -18
  279. package/dist/utils/feedback-logs.js +21 -50
  280. package/dist/utils/feedback-screenshots.d.ts +1 -0
  281. package/dist/utils/feedback-screenshots.js +1 -1
  282. package/dist/utils/hq-roots.d.ts +2 -25
  283. package/dist/utils/hq-roots.js +7 -67
  284. package/dist/utils/incomplete-install-error.d.ts +19 -87
  285. package/dist/utils/incomplete-install-error.js +68 -319
  286. package/dist/utils/install-tree-torn.d.ts +24 -260
  287. package/dist/utils/install-tree-torn.js +51 -998
  288. package/dist/utils/large-file-guard.d.ts +10 -0
  289. package/dist/utils/large-file-guard.js +1 -1
  290. package/dist/utils/local-files-overview.d.ts +8 -4
  291. package/dist/utils/local-files-overview.js +7 -48
  292. package/dist/utils/login-provider.d.ts +0 -7
  293. package/dist/utils/login-provider.js +0 -34
  294. package/dist/utils/pack-contributions.d.ts +14 -2
  295. package/dist/utils/pack-contributions.js +44 -7
  296. package/dist/utils/package-root-diagnostics.d.ts +1 -1
  297. package/dist/utils/people.d.ts +11 -7
  298. package/dist/utils/people.js +20 -5
  299. package/dist/utils/plan-gate-error.d.ts +10 -52
  300. package/dist/utils/plan-gate-error.js +41 -364
  301. package/dist/utils/qmd-model-download-error.d.ts +8 -0
  302. package/dist/utils/qmd-model-download-error.js +1 -1
  303. package/dist/utils/qmd-query-document-error.d.ts +6 -0
  304. package/dist/utils/qmd-query-document-error.js +1 -1
  305. package/dist/utils/redact-error-text.d.ts +2 -0
  306. package/dist/utils/redact-error-text.js +2 -3
  307. package/dist/utils/run-bundled-script.d.ts +0 -6
  308. package/dist/utils/run-bundled-script.js +4 -117
  309. package/dist/utils/sandbox-runner-client.d.ts +1 -2
  310. package/dist/utils/secrets-cache.d.ts +3 -7
  311. package/dist/utils/secrets-cache.js +14 -162
  312. package/dist/utils/self-update.d.ts +1 -34
  313. package/dist/utils/self-update.js +42 -660
  314. package/dist/utils/sentry-fingerprint.d.ts +1 -23
  315. package/dist/utils/sentry-fingerprint.js +31 -223
  316. package/dist/utils/team-upgrade.d.ts +1 -1
  317. package/dist/utils/team-upgrade.js +3 -4
  318. package/dist/utils/vault-api.d.ts +1 -21
  319. package/dist/utils/vault-api.js +84 -251
  320. package/dist/utils/version-check.d.ts +1 -11
  321. package/dist/utils/version-check.js +3 -32
  322. package/dist/utils/version-gate.d.ts +17 -101
  323. package/dist/utils/version-gate.js +70 -645
  324. package/dist/utils/windows-spawn.d.ts +0 -6
  325. package/dist/utils/windows-spawn.js +0 -37
  326. package/package.json +8 -20
  327. package/README.md +0 -113
  328. package/assets/bot-workers/setup/context/USER-GUIDE.md +0 -404
  329. package/assets/bot-workers/setup/context/quick-reference.md +0 -199
  330. package/assets/bot-workers/setup/skills/agents-and-team.md +0 -167
  331. package/assets/bot-workers/setup/skills/explain-hq.md +0 -35
  332. package/assets/bot-workers/setup/skills/first-company.md +0 -74
  333. package/assets/bot-workers/setup/skills/joining-a-team.md +0 -125
  334. package/assets/bot-workers/setup/skills/pricing.md +0 -92
  335. package/assets/bot-workers/setup/skills/standing-help.md +0 -81
  336. package/assets/bot-workers/setup/skills/your-business.md +0 -281
  337. package/assets/bot-workers/setup/worker.yaml +0 -791
  338. package/assets/lanes-hooks/hq-lanes-drain.json +0 -15
  339. package/assets/lanes-hooks/hq-lanes-drain.mjs +0 -275
  340. package/assets/lanes-hooks/hq-lanes-drain.sh +0 -21
  341. package/assets/lanes-reconcile/hq-lanes-reconcile.service +0 -11
  342. package/assets/lanes-reconcile/hq-lanes-reconcile.timer +0 -12
  343. package/assets/scaffold/.claude/hooks/validate-policy-frontmatter.sh +0 -485
  344. package/assets/scaffold/core/scripts/audit-log.sh +0 -384
  345. package/assets/scaffold/core/scripts/clean-worktree-reconcile-handoff.sh +0 -171
  346. package/assets/scaffold/core/scripts/eval-trigger.sh +0 -193
  347. package/assets/scaffold/core/scripts/git-pack-extension-check.sh +0 -164
  348. package/assets/scaffold/core/scripts/handoff-finalize.sh +0 -688
  349. package/assets/scaffold/core/scripts/handoff-open-steps.sh +0 -81
  350. package/assets/scaffold/core/scripts/handoff-post.sh +0 -252
  351. package/assets/scaffold/core/scripts/hq-delegate-bundle.sh +0 -307
  352. package/assets/scaffold/core/scripts/hq-delegate-grant.sh +0 -252
  353. package/assets/scaffold/core/scripts/hq-delegate-pickup.sh +0 -99
  354. package/assets/scaffold/core/scripts/hq-delegate-publish.sh +0 -91
  355. package/assets/scaffold/core/scripts/hq-delegate-repo.sh +0 -158
  356. package/assets/scaffold/core/scripts/hq-delegate-resolve.sh +0 -145
  357. package/assets/scaffold/core/scripts/hq-delegate-secrets.sh +0 -129
  358. package/assets/scaffold/core/scripts/hq-delegate-send.sh +0 -259
  359. package/assets/scaffold/core/scripts/hq-delegate-transfer.sh +0 -175
  360. package/assets/scaffold/core/scripts/hq-delegate-verify.sh +0 -238
  361. package/assets/scaffold/core/scripts/hq-dm-bind.sh +0 -585
  362. package/assets/scaffold/core/scripts/hq-job-notify.sh +0 -389
  363. package/assets/scaffold/core/scripts/hq-job-probe.sh +0 -835
  364. package/assets/scaffold/core/scripts/hq-job-remediate.sh +0 -359
  365. package/assets/scaffold/core/scripts/hq-job-run.sh +0 -1025
  366. package/assets/scaffold/core/scripts/hq-pin.sh +0 -118
  367. package/assets/scaffold/core/scripts/jobs-schedule-parse.sh +0 -310
  368. package/assets/scaffold/core/scripts/jobs-validate.sh +0 -451
  369. package/assets/scaffold/core/scripts/knowledge-prefs.sh +0 -55
  370. package/assets/scaffold/core/scripts/lib/portable.sh +0 -211
  371. package/assets/scaffold/core/scripts/lib/secret-patterns.sh +0 -58
  372. package/assets/scaffold/core/scripts/lib/work-mesh-live-hook.sh +0 -378
  373. package/assets/scaffold/core/scripts/lib/work-mesh-live-rebind.sh +0 -141
  374. package/assets/scaffold/core/scripts/migrate-policy-triggers.sh +0 -373
  375. package/assets/scaffold/core/scripts/ontology-audience-grant.sh +0 -81
  376. package/assets/scaffold/core/scripts/ontology-brief.mjs +0 -93
  377. package/assets/scaffold/core/scripts/ontology-candidate.sh +0 -100
  378. package/assets/scaffold/core/scripts/ontology-garden.mjs +0 -238
  379. package/assets/scaffold/core/scripts/ontology-source-worklist.sh +0 -79
  380. package/assets/scaffold/core/scripts/outpost-jobs-reconcile.sh +0 -834
  381. package/assets/scaffold/core/scripts/policy-age-report.sh +0 -156
  382. package/assets/scaffold/core/scripts/policy-retire.sh +0 -199
  383. package/assets/scaffold/core/scripts/qmd-reindex-bg.sh +0 -40
  384. package/assets/scaffold/core/scripts/read-policy-frontmatter.sh +0 -32
  385. package/assets/scaffold/core/scripts/refresh-vault-access.sh +0 -188
  386. package/assets/scaffold/core/scripts/register-project.sh +0 -262
  387. package/assets/scaffold/core/scripts/resolve-company.sh +0 -199
  388. package/assets/scaffold/core/scripts/resume-thread-lock.sh +0 -285
  389. package/assets/scaffold/core/scripts/source-yaml-validate.sh +0 -36
  390. package/assets/scaffold/core/scripts/verify-story-deliverables.sh +0 -148
  391. package/assets/scaffold/core/scripts/work-mesh-live-bind-trusted.sh +0 -152
  392. package/assets/scaffold/core/scripts/work-mesh-live-rebind.sh +0 -59
  393. package/assets/scaffold/core/scripts/worktree-gc.sh +0 -362
  394. package/contracts/preflight/v1/fixtures.json +0 -87
  395. package/contracts/preflight/v1/schema.json +0 -58
  396. package/dist/command-catalog.generated.d.ts +0 -10735
  397. package/dist/command-catalog.generated.js +0 -13836
  398. package/dist/command-registration-plan.d.ts +0 -474
  399. package/dist/command-registration-plan.js +0 -136
  400. package/dist/commands/agent-enroll.d.ts +0 -146
  401. package/dist/commands/agent-enroll.js +0 -401
  402. package/dist/commands/agent-inbox.d.ts +0 -9
  403. package/dist/commands/agent-inbox.js +0 -102
  404. package/dist/commands/agent-kit.d.ts +0 -87
  405. package/dist/commands/agent-kit.js +0 -480
  406. package/dist/commands/agent-mcp.d.ts +0 -24
  407. package/dist/commands/agent-mcp.js +0 -127
  408. package/dist/commands/agent-probe.d.ts +0 -77
  409. package/dist/commands/agent-probe.js +0 -335
  410. package/dist/commands/agent.d.ts +0 -13
  411. package/dist/commands/agent.js +0 -40
  412. package/dist/commands/billing-sponsor.d.ts +0 -83
  413. package/dist/commands/billing-sponsor.js +0 -344
  414. package/dist/commands/bot-companies.d.ts +0 -40
  415. package/dist/commands/bot-companies.js +0 -64
  416. package/dist/commands/bot-continuity.d.ts +0 -28
  417. package/dist/commands/bot-continuity.js +0 -68
  418. package/dist/commands/bot-jobs.d.ts +0 -127
  419. package/dist/commands/bot-jobs.js +0 -454
  420. package/dist/commands/bot.d.ts +0 -278
  421. package/dist/commands/bot.js +0 -1982
  422. package/dist/commands/cloud-retire.d.ts +0 -51
  423. package/dist/commands/cloud-retire.js +0 -154
  424. package/dist/commands/company-rename-flag.d.ts +0 -4
  425. package/dist/commands/company-rename-flag.js +0 -7
  426. package/dist/commands/company-rename.d.ts +0 -4
  427. package/dist/commands/company-rename.js +0 -90
  428. package/dist/commands/core-audit-log-native.d.ts +0 -9
  429. package/dist/commands/core-audit-log-native.js +0 -257
  430. package/dist/commands/core-checkpoint-gate-setting.d.ts +0 -59
  431. package/dist/commands/core-checkpoint-gate-setting.js +0 -163
  432. package/dist/commands/core-checkpoint-stop-gate-native.d.ts +0 -34
  433. package/dist/commands/core-checkpoint-stop-gate-native.js +0 -725
  434. package/dist/commands/core-command-catalog.d.ts +0 -34
  435. package/dist/commands/core-command-catalog.js +0 -62
  436. package/dist/commands/core-company-index-scope-flag.d.ts +0 -3
  437. package/dist/commands/core-company-index-scope-flag.js +0 -6
  438. package/dist/commands/core-delegate-w1b.d.ts +0 -10
  439. package/dist/commands/core-delegate-w1b.js +0 -1219
  440. package/dist/commands/core-delegate.d.ts +0 -46
  441. package/dist/commands/core-delegate.js +0 -1040
  442. package/dist/commands/core-dm-bind-native.d.ts +0 -32
  443. package/dist/commands/core-dm-bind-native.js +0 -668
  444. package/dist/commands/core-eval-trigger-native.d.ts +0 -4
  445. package/dist/commands/core-eval-trigger-native.js +0 -12
  446. package/dist/commands/core-git-pack-extension-check-native.d.ts +0 -22
  447. package/dist/commands/core-git-pack-extension-check-native.js +0 -190
  448. package/dist/commands/core-handoff-fast.d.ts +0 -18
  449. package/dist/commands/core-handoff-fast.js +0 -104
  450. package/dist/commands/core-handoff-open-steps.d.ts +0 -21
  451. package/dist/commands/core-handoff-open-steps.js +0 -264
  452. package/dist/commands/core-handoff.d.ts +0 -24
  453. package/dist/commands/core-handoff.js +0 -1144
  454. package/dist/commands/core-hq-session-native.d.ts +0 -39
  455. package/dist/commands/core-hq-session-native.js +0 -579
  456. package/dist/commands/core-job-native-utils.d.ts +0 -6
  457. package/dist/commands/core-job-native-utils.js +0 -80
  458. package/dist/commands/core-job-native.d.ts +0 -5
  459. package/dist/commands/core-job-native.js +0 -16
  460. package/dist/commands/core-job-notify-native.d.ts +0 -36
  461. package/dist/commands/core-job-notify-native.js +0 -359
  462. package/dist/commands/core-job-probe-native.d.ts +0 -45
  463. package/dist/commands/core-job-probe-native.js +0 -564
  464. package/dist/commands/core-job-remediate-native.d.ts +0 -26
  465. package/dist/commands/core-job-remediate-native.js +0 -374
  466. package/dist/commands/core-job-remote-launcher.d.ts +0 -7
  467. package/dist/commands/core-job-remote-launcher.js +0 -51
  468. package/dist/commands/core-job-run-native.d.ts +0 -47
  469. package/dist/commands/core-job-run-native.js +0 -1215
  470. package/dist/commands/core-jobs-native.d.ts +0 -25
  471. package/dist/commands/core-jobs-native.js +0 -1339
  472. package/dist/commands/core-knowledge-prefs.d.ts +0 -11
  473. package/dist/commands/core-knowledge-prefs.js +0 -137
  474. package/dist/commands/core-migrate-policy-triggers-native.d.ts +0 -21
  475. package/dist/commands/core-migrate-policy-triggers-native.js +0 -378
  476. package/dist/commands/core-native-handoff-flag.d.ts +0 -4
  477. package/dist/commands/core-native-handoff-flag.js +0 -7
  478. package/dist/commands/core-native-hook-helper-commands.d.ts +0 -4
  479. package/dist/commands/core-native-hook-helper-commands.js +0 -56
  480. package/dist/commands/core-native-hook-helpers-flag.d.ts +0 -4
  481. package/dist/commands/core-native-hook-helpers-flag.js +0 -7
  482. package/dist/commands/core-native-jobs-flag.d.ts +0 -4
  483. package/dist/commands/core-native-jobs-flag.js +0 -7
  484. package/dist/commands/core-native-policy-flag.d.ts +0 -9
  485. package/dist/commands/core-native-policy-flag.js +0 -12
  486. package/dist/commands/core-native-session-flag.d.ts +0 -4
  487. package/dist/commands/core-native-session-flag.js +0 -7
  488. package/dist/commands/core-native-utilities-flag.d.ts +0 -4
  489. package/dist/commands/core-native-utilities-flag.js +0 -7
  490. package/dist/commands/core-native-utilities.d.ts +0 -29
  491. package/dist/commands/core-native-utilities.js +0 -54
  492. package/dist/commands/core-native-worker-skills-flag.d.ts +0 -4
  493. package/dist/commands/core-native-worker-skills-flag.js +0 -7
  494. package/dist/commands/core-ontology-native.d.ts +0 -17
  495. package/dist/commands/core-ontology-native.js +0 -916
  496. package/dist/commands/core-ontology.d.ts +0 -66
  497. package/dist/commands/core-ontology.js +0 -430
  498. package/dist/commands/core-pin-native.d.ts +0 -14
  499. package/dist/commands/core-pin-native.js +0 -236
  500. package/dist/commands/core-policy-frontmatter.d.ts +0 -8
  501. package/dist/commands/core-policy-frontmatter.js +0 -52
  502. package/dist/commands/core-policy.d.ts +0 -14
  503. package/dist/commands/core-policy.js +0 -1018
  504. package/dist/commands/core-refresh-vault-access-native.d.ts +0 -20
  505. package/dist/commands/core-refresh-vault-access-native.js +0 -229
  506. package/dist/commands/core-register-project-native.d.ts +0 -30
  507. package/dist/commands/core-register-project-native.js +0 -347
  508. package/dist/commands/core-resolve-company-command.d.ts +0 -4
  509. package/dist/commands/core-resolve-company-command.js +0 -42
  510. package/dist/commands/core-resolve-company-native.d.ts +0 -28
  511. package/dist/commands/core-resolve-company-native.js +0 -408
  512. package/dist/commands/core-work-mesh-bind-trusted-native.d.ts +0 -32
  513. package/dist/commands/core-work-mesh-bind-trusted-native.js +0 -190
  514. package/dist/commands/core-work-mesh-live-rebind-native.d.ts +0 -18
  515. package/dist/commands/core-work-mesh-live-rebind-native.js +0 -262
  516. package/dist/commands/core-worker-lint-native.d.ts +0 -4
  517. package/dist/commands/core-worker-lint-native.js +0 -160
  518. package/dist/commands/core-worker-share-native.d.ts +0 -4
  519. package/dist/commands/core-worker-share-native.js +0 -260
  520. package/dist/commands/core-worker-skills-command.d.ts +0 -8
  521. package/dist/commands/core-worker-skills-command.js +0 -33
  522. package/dist/commands/core-worker-skills-runtime.d.ts +0 -33
  523. package/dist/commands/core-worker-skills-runtime.js +0 -86
  524. package/dist/commands/daemon.d.ts +0 -63
  525. package/dist/commands/daemon.js +0 -877
  526. package/dist/commands/deploy-comments.d.ts +0 -3
  527. package/dist/commands/deploy-comments.js +0 -162
  528. package/dist/commands/lanes-accounts.d.ts +0 -28
  529. package/dist/commands/lanes-accounts.js +0 -595
  530. package/dist/commands/lanes-autopilot.d.ts +0 -11
  531. package/dist/commands/lanes-autopilot.js +0 -336
  532. package/dist/commands/lanes-checks.d.ts +0 -51
  533. package/dist/commands/lanes-checks.js +0 -941
  534. package/dist/commands/lanes-hold.d.ts +0 -43
  535. package/dist/commands/lanes-hold.js +0 -655
  536. package/dist/commands/lanes-kpis.d.ts +0 -11
  537. package/dist/commands/lanes-kpis.js +0 -34
  538. package/dist/commands/lanes-message.d.ts +0 -9
  539. package/dist/commands/lanes-message.js +0 -937
  540. package/dist/commands/lanes-move.d.ts +0 -12
  541. package/dist/commands/lanes-move.js +0 -397
  542. package/dist/commands/lanes-questions.d.ts +0 -36
  543. package/dist/commands/lanes-questions.js +0 -1005
  544. package/dist/commands/lanes-report.d.ts +0 -11
  545. package/dist/commands/lanes-report.js +0 -333
  546. package/dist/commands/lanes-resume.d.ts +0 -6
  547. package/dist/commands/lanes-resume.js +0 -564
  548. package/dist/commands/lanes-review.d.ts +0 -10
  549. package/dist/commands/lanes-review.js +0 -56
  550. package/dist/commands/lanes-shared.d.ts +0 -448
  551. package/dist/commands/lanes-shared.js +0 -170
  552. package/dist/commands/lanes-stories.d.ts +0 -15
  553. package/dist/commands/lanes-stories.js +0 -347
  554. package/dist/commands/lanes-watch.d.ts +0 -7
  555. package/dist/commands/lanes-watch.js +0 -216
  556. package/dist/commands/lanes.d.ts +0 -149
  557. package/dist/commands/lanes.js +0 -8973
  558. package/dist/commands/monitor.d.ts +0 -58
  559. package/dist/commands/monitor.js +0 -980
  560. package/dist/commands/onboard-bot-membership.d.ts +0 -32
  561. package/dist/commands/onboard-bot-membership.js +0 -40
  562. package/dist/commands/onboard-create-identity.d.ts +0 -26
  563. package/dist/commands/onboard-create-identity.js +0 -23
  564. package/dist/commands/outpost-pruner.d.ts +0 -3
  565. package/dist/commands/outpost-pruner.js +0 -125
  566. package/dist/commands/personal-connector-settings-flag.d.ts +0 -4
  567. package/dist/commands/personal-connector-settings-flag.js +0 -7
  568. package/dist/commands/personal-targeted-push-flag.d.ts +0 -4
  569. package/dist/commands/personal-targeted-push-flag.js +0 -7
  570. package/dist/commands/personal-targeted-push-paths.d.ts +0 -3
  571. package/dist/commands/personal-targeted-push-paths.js +0 -67
  572. package/dist/commands/report.d.ts +0 -19
  573. package/dist/commands/report.js +0 -537
  574. package/dist/commands/run-feature-telemetry.d.ts +0 -3
  575. package/dist/commands/run-feature-telemetry.js +0 -6
  576. package/dist/commands/staff/reset-test-account.d.ts +0 -110
  577. package/dist/commands/staff/reset-test-account.js +0 -268
  578. package/dist/commands/staff/test-account.d.ts +0 -51
  579. package/dist/commands/staff/test-account.js +0 -196
  580. package/dist/commands/vault-retention-flag.d.ts +0 -3
  581. package/dist/commands/vault-retention-flag.js +0 -9
  582. package/dist/commands/vault-retention.d.ts +0 -11
  583. package/dist/commands/vault-retention.js +0 -69
  584. package/dist/commands/version.d.ts +0 -10
  585. package/dist/commands/version.js +0 -11
  586. package/dist/fast-scaffold.d.ts +0 -86
  587. package/dist/fast-scaffold.js +0 -364
  588. package/dist/lanes-drain-hook.d.ts +0 -14
  589. package/dist/lanes-drain-hook.js +0 -203
  590. package/dist/lib/agent-kit/adopt-identity.d.ts +0 -27
  591. package/dist/lib/agent-kit/adopt-identity.js +0 -60
  592. package/dist/lib/agent-kit/attachment-download.d.ts +0 -24
  593. package/dist/lib/agent-kit/attachment-download.js +0 -47
  594. package/dist/lib/agent-kit/creds.d.ts +0 -106
  595. package/dist/lib/agent-kit/creds.js +0 -163
  596. package/dist/lib/agent-kit/fallback.d.ts +0 -78
  597. package/dist/lib/agent-kit/fallback.js +0 -210
  598. package/dist/lib/agent-kit/inbox-state.d.ts +0 -83
  599. package/dist/lib/agent-kit/inbox-state.js +0 -159
  600. package/dist/lib/agent-kit/kit-config.d.ts +0 -56
  601. package/dist/lib/agent-kit/kit-config.js +0 -65
  602. package/dist/lib/agent-kit/log.d.ts +0 -16
  603. package/dist/lib/agent-kit/log.js +0 -46
  604. package/dist/lib/agent-kit/mcp/attachments.d.ts +0 -126
  605. package/dist/lib/agent-kit/mcp/attachments.js +0 -222
  606. package/dist/lib/agent-kit/mcp/jsonrpc.d.ts +0 -75
  607. package/dist/lib/agent-kit/mcp/jsonrpc.js +0 -164
  608. package/dist/lib/agent-kit/mcp/tools.d.ts +0 -64
  609. package/dist/lib/agent-kit/mcp/tools.js +0 -397
  610. package/dist/lib/agent-kit/paths.d.ts +0 -65
  611. package/dist/lib/agent-kit/paths.js +0 -118
  612. package/dist/lib/agent-kit/private-file.d.ts +0 -29
  613. package/dist/lib/agent-kit/private-file.js +0 -91
  614. package/dist/lib/agent-kit/run/heartbeat.d.ts +0 -72
  615. package/dist/lib/agent-kit/run/heartbeat.js +0 -128
  616. package/dist/lib/agent-kit/run/inbox.d.ts +0 -76
  617. package/dist/lib/agent-kit/run/inbox.js +0 -205
  618. package/dist/lib/agent-kit/run/supervisor.d.ts +0 -35
  619. package/dist/lib/agent-kit/run/supervisor.js +0 -85
  620. package/dist/lib/agent-kit/run/sync.d.ts +0 -33
  621. package/dist/lib/agent-kit/run/sync.js +0 -58
  622. package/dist/lib/agent-kit/services.d.ts +0 -31
  623. package/dist/lib/agent-kit/services.js +0 -55
  624. package/dist/lib/agent-kit/skills.d.ts +0 -18
  625. package/dist/lib/agent-kit/skills.js +0 -151
  626. package/dist/lib/agent-kit/wake.d.ts +0 -83
  627. package/dist/lib/agent-kit/wake.js +0 -243
  628. package/dist/lib/agents/model-catalog.d.ts +0 -62
  629. package/dist/lib/agents/model-catalog.js +0 -275
  630. package/dist/lib/auth-login-provider-state.d.ts +0 -8
  631. package/dist/lib/auth-login-provider-state.js +0 -63
  632. package/dist/lib/aws-sdk-node-warning-output.d.ts +0 -12
  633. package/dist/lib/aws-sdk-node-warning-output.js +0 -22
  634. package/dist/lib/billing/free-month.d.ts +0 -18
  635. package/dist/lib/billing/free-month.js +0 -31
  636. package/dist/lib/billing/plan-limit-refusals.d.ts +0 -69
  637. package/dist/lib/billing/plan-limit-refusals.js +0 -187
  638. package/dist/lib/billing/plan-limit-upgrade-url.d.ts +0 -11
  639. package/dist/lib/billing/plan-limit-upgrade-url.js +0 -66
  640. package/dist/lib/billing/plan-lock.d.ts +0 -143
  641. package/dist/lib/billing/plan-lock.js +0 -439
  642. package/dist/lib/bot/api.d.ts +0 -349
  643. package/dist/lib/bot/api.js +0 -316
  644. package/dist/lib/bot/attachments.d.ts +0 -45
  645. package/dist/lib/bot/attachments.js +0 -89
  646. package/dist/lib/bot/cli-update.d.ts +0 -138
  647. package/dist/lib/bot/cli-update.js +0 -278
  648. package/dist/lib/bot/company-bind.d.ts +0 -27
  649. package/dist/lib/bot/company-bind.js +0 -62
  650. package/dist/lib/bot/config.d.ts +0 -153
  651. package/dist/lib/bot/config.js +0 -233
  652. package/dist/lib/bot/continuity-download.d.ts +0 -28
  653. package/dist/lib/bot/continuity-download.js +0 -75
  654. package/dist/lib/bot/continuity-install.d.ts +0 -14
  655. package/dist/lib/bot/continuity-install.js +0 -101
  656. package/dist/lib/bot/continuity.d.ts +0 -67
  657. package/dist/lib/bot/continuity.js +0 -301
  658. package/dist/lib/bot/creds.d.ts +0 -24
  659. package/dist/lib/bot/creds.js +0 -51
  660. package/dist/lib/bot/daemon.d.ts +0 -173
  661. package/dist/lib/bot/daemon.js +0 -552
  662. package/dist/lib/bot/inbox-poll-backoff-flag.d.ts +0 -24
  663. package/dist/lib/bot/inbox-poll-backoff-flag.js +0 -135
  664. package/dist/lib/bot/inbox-state.d.ts +0 -18
  665. package/dist/lib/bot/inbox-state.js +0 -51
  666. package/dist/lib/bot/index.d.ts +0 -23
  667. package/dist/lib/bot/index.js +0 -23
  668. package/dist/lib/bot/inflight.d.ts +0 -119
  669. package/dist/lib/bot/inflight.js +0 -83
  670. package/dist/lib/bot/job-completions.d.ts +0 -89
  671. package/dist/lib/bot/job-completions.js +0 -132
  672. package/dist/lib/bot/job-run.d.ts +0 -109
  673. package/dist/lib/bot/job-run.js +0 -246
  674. package/dist/lib/bot/local-config.d.ts +0 -61
  675. package/dist/lib/bot/local-config.js +0 -145
  676. package/dist/lib/bot/local-jobs.d.ts +0 -89
  677. package/dist/lib/bot/local-jobs.js +0 -459
  678. package/dist/lib/bot/local-name.d.ts +0 -54
  679. package/dist/lib/bot/local-name.js +0 -114
  680. package/dist/lib/bot/log.d.ts +0 -13
  681. package/dist/lib/bot/log.js +0 -59
  682. package/dist/lib/bot/owner-context.d.ts +0 -79
  683. package/dist/lib/bot/owner-context.js +0 -175
  684. package/dist/lib/bot/paths.d.ts +0 -76
  685. package/dist/lib/bot/paths.js +0 -131
  686. package/dist/lib/bot/progress.d.ts +0 -132
  687. package/dist/lib/bot/progress.js +0 -289
  688. package/dist/lib/bot/promote.d.ts +0 -16
  689. package/dist/lib/bot/promote.js +0 -106
  690. package/dist/lib/bot/promotion-hold.d.ts +0 -24
  691. package/dist/lib/bot/promotion-hold.js +0 -103
  692. package/dist/lib/bot/promotion-receipt.d.ts +0 -9
  693. package/dist/lib/bot/promotion-receipt.js +0 -56
  694. package/dist/lib/bot/promotion-upload.d.ts +0 -16
  695. package/dist/lib/bot/promotion-upload.js +0 -80
  696. package/dist/lib/bot/prompt.d.ts +0 -136
  697. package/dist/lib/bot/prompt.js +0 -433
  698. package/dist/lib/bot/room-policy.d.ts +0 -63
  699. package/dist/lib/bot/room-policy.js +0 -91
  700. package/dist/lib/bot/run.d.ts +0 -217
  701. package/dist/lib/bot/run.js +0 -1869
  702. package/dist/lib/bot/runnable.d.ts +0 -51
  703. package/dist/lib/bot/runnable.js +0 -65
  704. package/dist/lib/bot/runtime/claude.d.ts +0 -50
  705. package/dist/lib/bot/runtime/claude.js +0 -170
  706. package/dist/lib/bot/runtime/codex.d.ts +0 -28
  707. package/dist/lib/bot/runtime/codex.js +0 -153
  708. package/dist/lib/bot/runtime/grok-acp.d.ts +0 -40
  709. package/dist/lib/bot/runtime/grok-acp.js +0 -265
  710. package/dist/lib/bot/runtime/grok.d.ts +0 -41
  711. package/dist/lib/bot/runtime/grok.js +0 -169
  712. package/dist/lib/bot/runtime/index.d.ts +0 -36
  713. package/dist/lib/bot/runtime/index.js +0 -417
  714. package/dist/lib/bot/runtime/messages-stream.d.ts +0 -56
  715. package/dist/lib/bot/runtime/messages-stream.js +0 -194
  716. package/dist/lib/bot/runtime/sanitize.d.ts +0 -18
  717. package/dist/lib/bot/runtime/sanitize.js +0 -28
  718. package/dist/lib/bot/runtime/types.d.ts +0 -159
  719. package/dist/lib/bot/runtime/types.js +0 -51
  720. package/dist/lib/bot/runtime/windows.d.ts +0 -10
  721. package/dist/lib/bot/runtime/windows.js +0 -53
  722. package/dist/lib/bot/runtime-sign-in.d.ts +0 -24
  723. package/dist/lib/bot/runtime-sign-in.js +0 -31
  724. package/dist/lib/bot/scaffold.d.ts +0 -38
  725. package/dist/lib/bot/scaffold.js +0 -94
  726. package/dist/lib/bot/self-heal.d.ts +0 -52
  727. package/dist/lib/bot/self-heal.js +0 -79
  728. package/dist/lib/bot/self-process.d.ts +0 -19
  729. package/dist/lib/bot/self-process.js +0 -35
  730. package/dist/lib/bot/session.d.ts +0 -19
  731. package/dist/lib/bot/session.js +0 -39
  732. package/dist/lib/bot/setup-explain.d.ts +0 -64
  733. package/dist/lib/bot/setup-explain.js +0 -141
  734. package/dist/lib/bot/split.d.ts +0 -32
  735. package/dist/lib/bot/split.js +0 -241
  736. package/dist/lib/bot/status.d.ts +0 -57
  737. package/dist/lib/bot/status.js +0 -66
  738. package/dist/lib/bot/worker-source.d.ts +0 -66
  739. package/dist/lib/bot/worker-source.js +0 -283
  740. package/dist/lib/checkpoint-ontology/aliases.d.ts +0 -17
  741. package/dist/lib/checkpoint-ontology/aliases.js +0 -44
  742. package/dist/lib/checkpoint-ontology/apply.d.ts +0 -110
  743. package/dist/lib/checkpoint-ontology/apply.js +0 -777
  744. package/dist/lib/checkpoint-ontology/company-brief.d.ts +0 -18
  745. package/dist/lib/checkpoint-ontology/company-brief.js +0 -337
  746. package/dist/lib/checkpoint-ontology/company.d.ts +0 -44
  747. package/dist/lib/checkpoint-ontology/company.js +0 -118
  748. package/dist/lib/checkpoint-ontology/drop-aliases.d.ts +0 -41
  749. package/dist/lib/checkpoint-ontology/drop-aliases.js +0 -76
  750. package/dist/lib/checkpoint-ontology/entity-file.d.ts +0 -109
  751. package/dist/lib/checkpoint-ontology/entity-file.js +0 -371
  752. package/dist/lib/checkpoint-ontology/identity.d.ts +0 -38
  753. package/dist/lib/checkpoint-ontology/identity.js +0 -95
  754. package/dist/lib/checkpoint-ontology/merge-copies.d.ts +0 -199
  755. package/dist/lib/checkpoint-ontology/merge-copies.js +0 -1086
  756. package/dist/lib/checkpoint-ontology/multi-writer.d.ts +0 -101
  757. package/dist/lib/checkpoint-ontology/multi-writer.js +0 -394
  758. package/dist/lib/checkpoint-ontology/plan.d.ts +0 -193
  759. package/dist/lib/checkpoint-ontology/plan.js +0 -504
  760. package/dist/lib/checkpoint-ontology/queued-touches.d.ts +0 -29
  761. package/dist/lib/checkpoint-ontology/queued-touches.js +0 -193
  762. package/dist/lib/checkpoint-ontology/sync-client.d.ts +0 -38
  763. package/dist/lib/checkpoint-ontology/sync-client.js +0 -84
  764. package/dist/lib/checkpoint-ontology/tree.d.ts +0 -55
  765. package/dist/lib/checkpoint-ontology/tree.js +0 -198
  766. package/dist/lib/company-errors-sdk-warning-flag.d.ts +0 -5
  767. package/dist/lib/company-errors-sdk-warning-flag.js +0 -8
  768. package/dist/lib/core-utils/hook-timeout-debug-context-flag.d.ts +0 -20
  769. package/dist/lib/core-utils/hook-timeout-debug-context-flag.js +0 -81
  770. package/dist/lib/core-utils/jq-json-serializer.d.ts +0 -5
  771. package/dist/lib/core-utils/jq-json-serializer.js +0 -10
  772. package/dist/lib/core-utils/secret-patterns.d.ts +0 -43
  773. package/dist/lib/core-utils/secret-patterns.js +0 -34
  774. package/dist/lib/core-utils/sentry-report.d.ts +0 -114
  775. package/dist/lib/core-utils/sentry-report.js +0 -1034
  776. package/dist/lib/core-utils/timeout-guard-native.d.ts +0 -7
  777. package/dist/lib/core-utils/timeout-guard-native.js +0 -40
  778. package/dist/lib/core-utils/worktree-resume.d.ts +0 -20
  779. package/dist/lib/core-utils/worktree-resume.js +0 -1198
  780. package/dist/lib/daemon/catalog.d.ts +0 -134
  781. package/dist/lib/daemon/catalog.js +0 -358
  782. package/dist/lib/daemon/config.d.ts +0 -35
  783. package/dist/lib/daemon/config.js +0 -108
  784. package/dist/lib/daemon/flag.d.ts +0 -25
  785. package/dist/lib/daemon/flag.js +0 -59
  786. package/dist/lib/daemon/handoff.d.ts +0 -56
  787. package/dist/lib/daemon/handoff.js +0 -161
  788. package/dist/lib/daemon/hq-cloud.d.ts +0 -79
  789. package/dist/lib/daemon/hq-cloud.js +0 -183
  790. package/dist/lib/daemon/install.d.ts +0 -85
  791. package/dist/lib/daemon/install.js +0 -320
  792. package/dist/lib/daemon/legacy-sync-env.d.ts +0 -10
  793. package/dist/lib/daemon/legacy-sync-env.js +0 -58
  794. package/dist/lib/daemon/legacy.d.ts +0 -45
  795. package/dist/lib/daemon/legacy.js +0 -133
  796. package/dist/lib/daemon/lock.d.ts +0 -47
  797. package/dist/lib/daemon/lock.js +0 -138
  798. package/dist/lib/daemon/machine-type.d.ts +0 -50
  799. package/dist/lib/daemon/machine-type.js +0 -159
  800. package/dist/lib/daemon/migrate.d.ts +0 -77
  801. package/dist/lib/daemon/migrate.js +0 -265
  802. package/dist/lib/daemon/paths.d.ts +0 -24
  803. package/dist/lib/daemon/paths.js +0 -43
  804. package/dist/lib/daemon/protocol-tail.d.ts +0 -33
  805. package/dist/lib/daemon/protocol-tail.js +0 -131
  806. package/dist/lib/daemon/remote-control.d.ts +0 -74
  807. package/dist/lib/daemon/remote-control.js +0 -153
  808. package/dist/lib/daemon/requests.d.ts +0 -28
  809. package/dist/lib/daemon/requests.js +0 -65
  810. package/dist/lib/daemon/run.d.ts +0 -79
  811. package/dist/lib/daemon/run.js +0 -755
  812. package/dist/lib/daemon/succession.d.ts +0 -118
  813. package/dist/lib/daemon/succession.js +0 -263
  814. package/dist/lib/daemon/supervisor.d.ts +0 -132
  815. package/dist/lib/daemon/supervisor.js +0 -836
  816. package/dist/lib/daemon/sync-runner.d.ts +0 -58
  817. package/dist/lib/daemon/sync-runner.js +0 -277
  818. package/dist/lib/daemon/tools.d.ts +0 -52
  819. package/dist/lib/daemon/tools.js +0 -95
  820. package/dist/lib/daemon/updater.d.ts +0 -57
  821. package/dist/lib/daemon/updater.js +0 -163
  822. package/dist/lib/deploy-api.d.ts +0 -5
  823. package/dist/lib/deploy-api.js +0 -21
  824. package/dist/lib/deploy-apps.d.ts +0 -13
  825. package/dist/lib/deploy-apps.js +0 -29
  826. package/dist/lib/doctor/__testing__/run-doctor.d.ts +0 -8
  827. package/dist/lib/doctor/__testing__/run-doctor.js +0 -52
  828. package/dist/lib/doctor/checks/bots.d.ts +0 -13
  829. package/dist/lib/doctor/checks/bots.js +0 -189
  830. package/dist/lib/doctor/checks/scaffold-cli-floor.d.ts +0 -6
  831. package/dist/lib/doctor/checks/scaffold-cli-floor.js +0 -73
  832. package/dist/lib/doctor/checks/sync-runtime.d.ts +0 -11
  833. package/dist/lib/doctor/checks/sync-runtime.js +0 -216
  834. package/dist/lib/doctor/client-health-flag-token.d.ts +0 -15
  835. package/dist/lib/doctor/client-health-flag-token.js +0 -66
  836. package/dist/lib/doctor/client-health-reason-codes-flag.d.ts +0 -27
  837. package/dist/lib/doctor/client-health-reason-codes-flag.js +0 -106
  838. package/dist/lib/doctor/fix/json-output.d.ts +0 -28
  839. package/dist/lib/doctor/fix/json-output.js +0 -33
  840. package/dist/lib/doctor/fix/refresh-sync-outcome.d.ts +0 -12
  841. package/dist/lib/doctor/fix/refresh-sync-outcome.js +0 -25
  842. package/dist/lib/doctor/shared.d.ts +0 -8
  843. package/dist/lib/doctor/shared.js +0 -38
  844. package/dist/lib/doctor/stray-gate-entries.d.ts +0 -35
  845. package/dist/lib/doctor/stray-gate-entries.js +0 -83
  846. package/dist/lib/first-sync-next-step.d.ts +0 -37
  847. package/dist/lib/first-sync-next-step.js +0 -189
  848. package/dist/lib/flag-registry-endpoint.d.ts +0 -5
  849. package/dist/lib/flag-registry-endpoint.js +0 -9
  850. package/dist/lib/flag-registry-worker-source.generated.d.ts +0 -2
  851. package/dist/lib/flag-registry-worker-source.generated.js +0 -3
  852. package/dist/lib/flag-snapshot-file.d.ts +0 -20
  853. package/dist/lib/flag-snapshot-file.js +0 -91
  854. package/dist/lib/heartbeat-identity.d.ts +0 -30
  855. package/dist/lib/heartbeat-identity.js +0 -76
  856. package/dist/lib/lanes/account-home.d.ts +0 -8
  857. package/dist/lib/lanes/account-home.js +0 -10
  858. package/dist/lib/lanes/accounts.d.ts +0 -117
  859. package/dist/lib/lanes/accounts.js +0 -366
  860. package/dist/lib/lanes/admission-host.d.ts +0 -22
  861. package/dist/lib/lanes/admission-host.js +0 -37
  862. package/dist/lib/lanes/admission.d.ts +0 -26
  863. package/dist/lib/lanes/admission.js +0 -210
  864. package/dist/lib/lanes/approval-gate.d.ts +0 -8
  865. package/dist/lib/lanes/approval-gate.js +0 -90
  866. package/dist/lib/lanes/autopilot-metrics.d.ts +0 -99
  867. package/dist/lib/lanes/autopilot-metrics.js +0 -301
  868. package/dist/lib/lanes/autopilot-registry.d.ts +0 -62
  869. package/dist/lib/lanes/autopilot-registry.js +0 -192
  870. package/dist/lib/lanes/autopilot.d.ts +0 -120
  871. package/dist/lib/lanes/autopilot.js +0 -1061
  872. package/dist/lib/lanes/blocker-freshness.d.ts +0 -31
  873. package/dist/lib/lanes/blocker-freshness.js +0 -168
  874. package/dist/lib/lanes/checked-company-path.d.ts +0 -3
  875. package/dist/lib/lanes/checked-company-path.js +0 -39
  876. package/dist/lib/lanes/claude-balance.d.ts +0 -97
  877. package/dist/lib/lanes/claude-balance.js +0 -319
  878. package/dist/lib/lanes/compaction.d.ts +0 -110
  879. package/dist/lib/lanes/compaction.js +0 -293
  880. package/dist/lib/lanes/config.d.ts +0 -94
  881. package/dist/lib/lanes/config.js +0 -606
  882. package/dist/lib/lanes/constants.d.ts +0 -3
  883. package/dist/lib/lanes/constants.js +0 -3
  884. package/dist/lib/lanes/delivery-core.d.ts +0 -15
  885. package/dist/lib/lanes/delivery-core.js +0 -21
  886. package/dist/lib/lanes/delivery.d.ts +0 -180
  887. package/dist/lib/lanes/delivery.js +0 -443
  888. package/dist/lib/lanes/disk-guard.d.ts +0 -66
  889. package/dist/lib/lanes/disk-guard.js +0 -172
  890. package/dist/lib/lanes/dropbox.d.ts +0 -129
  891. package/dist/lib/lanes/dropbox.js +0 -601
  892. package/dist/lib/lanes/effort.d.ts +0 -51
  893. package/dist/lib/lanes/effort.js +0 -113
  894. package/dist/lib/lanes/envelope-repair-dispatch.d.ts +0 -26
  895. package/dist/lib/lanes/envelope-repair-dispatch.js +0 -74
  896. package/dist/lib/lanes/errors.d.ts +0 -39
  897. package/dist/lib/lanes/errors.js +0 -72
  898. package/dist/lib/lanes/flag-keys.d.ts +0 -15
  899. package/dist/lib/lanes/flag-keys.js +0 -15
  900. package/dist/lib/lanes/grants.d.ts +0 -30
  901. package/dist/lib/lanes/grants.js +0 -171
  902. package/dist/lib/lanes/hire-grant-dispatch.d.ts +0 -29
  903. package/dist/lib/lanes/hire-grant-dispatch.js +0 -315
  904. package/dist/lib/lanes/hooks-install.d.ts +0 -82
  905. package/dist/lib/lanes/hooks-install.js +0 -479
  906. package/dist/lib/lanes/host-capacity.d.ts +0 -69
  907. package/dist/lib/lanes/host-capacity.js +0 -254
  908. package/dist/lib/lanes/hq-root.d.ts +0 -19
  909. package/dist/lib/lanes/hq-root.js +0 -28
  910. package/dist/lib/lanes/index.d.ts +0 -76
  911. package/dist/lib/lanes/index.js +0 -42
  912. package/dist/lib/lanes/keep-alive.d.ts +0 -68
  913. package/dist/lib/lanes/keep-alive.js +0 -343
  914. package/dist/lib/lanes/kr-freshness.d.ts +0 -76
  915. package/dist/lib/lanes/kr-freshness.js +0 -413
  916. package/dist/lib/lanes/lane-company.d.ts +0 -10
  917. package/dist/lib/lanes/lane-company.js +0 -41
  918. package/dist/lib/lanes/liveness.d.ts +0 -108
  919. package/dist/lib/lanes/liveness.js +0 -396
  920. package/dist/lib/lanes/machine-identity.d.ts +0 -34
  921. package/dist/lib/lanes/machine-identity.js +0 -92
  922. package/dist/lib/lanes/manager-status-gate.d.ts +0 -17
  923. package/dist/lib/lanes/manager-status-gate.js +0 -133
  924. package/dist/lib/lanes/merge-command.d.ts +0 -15
  925. package/dist/lib/lanes/merge-command.js +0 -629
  926. package/dist/lib/lanes/mesh-events.d.ts +0 -127
  927. package/dist/lib/lanes/mesh-events.js +0 -564
  928. package/dist/lib/lanes/message-replay.d.ts +0 -21
  929. package/dist/lib/lanes/message-replay.js +0 -122
  930. package/dist/lib/lanes/models.d.ts +0 -86
  931. package/dist/lib/lanes/models.js +0 -234
  932. package/dist/lib/lanes/monitor.d.ts +0 -48
  933. package/dist/lib/lanes/monitor.js +0 -428
  934. package/dist/lib/lanes/move-account.d.ts +0 -56
  935. package/dist/lib/lanes/move-account.js +0 -193
  936. package/dist/lib/lanes/orphans.d.ts +0 -25
  937. package/dist/lib/lanes/orphans.js +0 -102
  938. package/dist/lib/lanes/outpost-dispatch.d.ts +0 -147
  939. package/dist/lib/lanes/outpost-dispatch.js +0 -271
  940. package/dist/lib/lanes/outpost-hire-cache.d.ts +0 -22
  941. package/dist/lib/lanes/outpost-hire-cache.js +0 -153
  942. package/dist/lib/lanes/outpost-identity.d.ts +0 -33
  943. package/dist/lib/lanes/outpost-identity.js +0 -59
  944. package/dist/lib/lanes/outpost-profile-repin.d.ts +0 -17
  945. package/dist/lib/lanes/outpost-profile-repin.js +0 -84
  946. package/dist/lib/lanes/outpost-pruner-install.d.ts +0 -37
  947. package/dist/lib/lanes/outpost-pruner-install.js +0 -238
  948. package/dist/lib/lanes/outpost-registry-worker-approval.d.ts +0 -18
  949. package/dist/lib/lanes/outpost-registry-worker-approval.js +0 -109
  950. package/dist/lib/lanes/outpost-snapshot-memo.d.ts +0 -6
  951. package/dist/lib/lanes/outpost-snapshot-memo.js +0 -14
  952. package/dist/lib/lanes/outpost-worktree-pruner-flag.d.ts +0 -19
  953. package/dist/lib/lanes/outpost-worktree-pruner-flag.js +0 -86
  954. package/dist/lib/lanes/outpost-worktree-pruner.d.ts +0 -62
  955. package/dist/lib/lanes/outpost-worktree-pruner.js +0 -1201
  956. package/dist/lib/lanes/profile.d.ts +0 -69
  957. package/dist/lib/lanes/profile.js +0 -552
  958. package/dist/lib/lanes/provider-rejection.d.ts +0 -86
  959. package/dist/lib/lanes/provider-rejection.js +0 -286
  960. package/dist/lib/lanes/questions.d.ts +0 -90
  961. package/dist/lib/lanes/questions.js +0 -384
  962. package/dist/lib/lanes/quota.d.ts +0 -134
  963. package/dist/lib/lanes/quota.js +0 -471
  964. package/dist/lib/lanes/reconcile-install.d.ts +0 -90
  965. package/dist/lib/lanes/reconcile-install.js +0 -257
  966. package/dist/lib/lanes/reconcile.d.ts +0 -161
  967. package/dist/lib/lanes/reconcile.js +0 -3324
  968. package/dist/lib/lanes/registry-flag.d.ts +0 -35
  969. package/dist/lib/lanes/registry-flag.js +0 -164
  970. package/dist/lib/lanes/registry-persona.d.ts +0 -20
  971. package/dist/lib/lanes/registry-persona.js +0 -329
  972. package/dist/lib/lanes/registry.d.ts +0 -122
  973. package/dist/lib/lanes/registry.js +0 -570
  974. package/dist/lib/lanes/reviews.d.ts +0 -38
  975. package/dist/lib/lanes/reviews.js +0 -395
  976. package/dist/lib/lanes/runaway-tool-guard.d.ts +0 -38
  977. package/dist/lib/lanes/runaway-tool-guard.js +0 -284
  978. package/dist/lib/lanes/session-relink.d.ts +0 -25
  979. package/dist/lib/lanes/session-relink.js +0 -216
  980. package/dist/lib/lanes/spawn.d.ts +0 -355
  981. package/dist/lib/lanes/spawn.js +0 -2668
  982. package/dist/lib/lanes/ssm-command-context.d.ts +0 -12
  983. package/dist/lib/lanes/ssm-command-context.js +0 -52
  984. package/dist/lib/lanes/store.d.ts +0 -91
  985. package/dist/lib/lanes/store.js +0 -1822
  986. package/dist/lib/lanes/stories.d.ts +0 -23
  987. package/dist/lib/lanes/stories.js +0 -92
  988. package/dist/lib/lanes/story-ledger.d.ts +0 -80
  989. package/dist/lib/lanes/story-ledger.js +0 -815
  990. package/dist/lib/lanes/story-switch.d.ts +0 -21
  991. package/dist/lib/lanes/story-switch.js +0 -75
  992. package/dist/lib/lanes/text-scan.d.ts +0 -11
  993. package/dist/lib/lanes/text-scan.js +0 -103
  994. package/dist/lib/lanes/throttle.d.ts +0 -116
  995. package/dist/lib/lanes/throttle.js +0 -437
  996. package/dist/lib/lanes/timestamp.d.ts +0 -3
  997. package/dist/lib/lanes/timestamp.js +0 -26
  998. package/dist/lib/lanes/tracker-checks.d.ts +0 -77
  999. package/dist/lib/lanes/tracker-checks.js +0 -134
  1000. package/dist/lib/lanes/tracker-report-state.d.ts +0 -10
  1001. package/dist/lib/lanes/tracker-report-state.js +0 -124
  1002. package/dist/lib/lanes/tracker-report.d.ts +0 -203
  1003. package/dist/lib/lanes/tracker-report.js +0 -522
  1004. package/dist/lib/lanes/tracker-store.d.ts +0 -18
  1005. package/dist/lib/lanes/tracker-store.js +0 -106
  1006. package/dist/lib/lanes/types.d.ts +0 -1030
  1007. package/dist/lib/lanes/types.js +0 -418
  1008. package/dist/lib/lanes/wait.d.ts +0 -39
  1009. package/dist/lib/lanes/wait.js +0 -159
  1010. package/dist/lib/lanes/watch.d.ts +0 -39
  1011. package/dist/lib/lanes/watch.js +0 -249
  1012. package/dist/lib/lanes/watcher-main.d.ts +0 -11
  1013. package/dist/lib/lanes/watcher-main.js +0 -108
  1014. package/dist/lib/lanes/watcher.d.ts +0 -287
  1015. package/dist/lib/lanes/watcher.js +0 -1972
  1016. package/dist/lib/mesh/denial-codes.d.ts +0 -5
  1017. package/dist/lib/mesh/denial-codes.js +0 -14
  1018. package/dist/lib/mesh/live/daemon/config.d.ts +0 -36
  1019. package/dist/lib/mesh/live/daemon/config.js +0 -120
  1020. package/dist/lib/mesh/live/daemon/legacy-listen.d.ts +0 -43
  1021. package/dist/lib/mesh/live/daemon/legacy-listen.js +0 -89
  1022. package/dist/lib/mesh/live/daemon/live-cache.d.ts +0 -26
  1023. package/dist/lib/mesh/live/daemon/live-cache.js +0 -116
  1024. package/dist/lib/mesh/live/daemon/mqtt-events.d.ts +0 -7
  1025. package/dist/lib/mesh/live/daemon/mqtt-events.js +0 -2
  1026. package/dist/lib/mesh/live/daemon/mqtt-events.test-d.d.ts +0 -2
  1027. package/dist/lib/mesh/live/daemon/mqtt-events.test-d.js +0 -10
  1028. package/dist/lib/mesh/live/daemon/version-drift.d.ts +0 -5
  1029. package/dist/lib/mesh/live/daemon/version-drift.js +0 -47
  1030. package/dist/lib/mesh/live/daemon/work-subscribe.d.ts +0 -32
  1031. package/dist/lib/mesh/live/daemon/work-subscribe.js +0 -262
  1032. package/dist/lib/mesh/live/report-summary.d.ts +0 -45
  1033. package/dist/lib/mesh/live/report-summary.js +0 -234
  1034. package/dist/lib/mesh/live/session-seq.d.ts +0 -4
  1035. package/dist/lib/mesh/live/session-seq.js +0 -33
  1036. package/dist/lib/mesh/project-board.d.ts +0 -65
  1037. package/dist/lib/mesh/project-board.js +0 -181
  1038. package/dist/lib/mesh/story-status.d.ts +0 -22
  1039. package/dist/lib/mesh/story-status.js +0 -49
  1040. package/dist/lib/monitor.d.ts +0 -149
  1041. package/dist/lib/monitor.js +0 -519
  1042. package/dist/lib/node-binary.d.ts +0 -50
  1043. package/dist/lib/node-binary.js +0 -133
  1044. package/dist/lib/notify-recipient.d.ts +0 -7
  1045. package/dist/lib/notify-recipient.js +0 -11
  1046. package/dist/lib/onboarding/checkpoint.d.ts +0 -13
  1047. package/dist/lib/onboarding/checkpoint.js +0 -44
  1048. package/dist/lib/onboarding/cli/onboard.d.ts +0 -53
  1049. package/dist/lib/onboarding/cli/onboard.js +0 -135
  1050. package/dist/lib/onboarding/cli/prompts.d.ts +0 -28
  1051. package/dist/lib/onboarding/cli/prompts.js +0 -83
  1052. package/dist/lib/onboarding/errors.d.ts +0 -34
  1053. package/dist/lib/onboarding/errors.js +0 -59
  1054. package/dist/lib/onboarding/index.d.ts +0 -13
  1055. package/dist/lib/onboarding/index.js +0 -13
  1056. package/dist/lib/onboarding/orchestrator.d.ts +0 -47
  1057. package/dist/lib/onboarding/orchestrator.js +0 -569
  1058. package/dist/lib/onboarding/types.d.ts +0 -79
  1059. package/dist/lib/onboarding/types.js +0 -8
  1060. package/dist/lib/policy-validator.d.ts +0 -7
  1061. package/dist/lib/policy-validator.js +0 -187
  1062. package/dist/lib/process-flag-company-context.d.ts +0 -8
  1063. package/dist/lib/process-flag-company-context.js +0 -67
  1064. package/dist/lib/report-publish.d.ts +0 -175
  1065. package/dist/lib/report-publish.js +0 -421
  1066. package/dist/lib/report-run.d.ts +0 -62
  1067. package/dist/lib/report-run.js +0 -123
  1068. package/dist/lib/report-snapshot.d.ts +0 -12
  1069. package/dist/lib/report-snapshot.js +0 -135
  1070. package/dist/lib/report-templates.d.ts +0 -9
  1071. package/dist/lib/report-templates.js +0 -21
  1072. package/dist/lib/scaffold-cli-floor.d.ts +0 -8
  1073. package/dist/lib/scaffold-cli-floor.js +0 -50
  1074. package/dist/lib/search-index/collection-path-repair-flag.d.ts +0 -4
  1075. package/dist/lib/search-index/collection-path-repair-flag.js +0 -7
  1076. package/dist/lib/search-index/embed-lock.d.ts +0 -34
  1077. package/dist/lib/search-index/embed-lock.js +0 -295
  1078. package/dist/lib/search-index/load-gate.d.ts +0 -57
  1079. package/dist/lib/search-index/load-gate.js +0 -270
  1080. package/dist/lib/search-index/max-doc-bytes.d.ts +0 -219
  1081. package/dist/lib/search-index/max-doc-bytes.js +0 -463
  1082. package/dist/lib/search-index/qmd-exit-diagnostics.d.ts +0 -5
  1083. package/dist/lib/search-index/qmd-exit-diagnostics.js +0 -40
  1084. package/dist/lib/search-index/reindex-single-flight-flag.d.ts +0 -5
  1085. package/dist/lib/search-index/reindex-single-flight-flag.js +0 -8
  1086. package/dist/lib/service-manager/index.d.ts +0 -42
  1087. package/dist/lib/service-manager/index.js +0 -105
  1088. package/dist/lib/service-manager/launchd.d.ts +0 -81
  1089. package/dist/lib/service-manager/launchd.js +0 -212
  1090. package/dist/lib/service-manager/systemd.d.ts +0 -19
  1091. package/dist/lib/service-manager/systemd.js +0 -72
  1092. package/dist/lib/service-manager/types.d.ts +0 -34
  1093. package/dist/lib/service-manager/types.js +0 -26
  1094. package/dist/lib/test-utils/isolated-flag-company-context.d.ts +0 -3
  1095. package/dist/lib/test-utils/isolated-flag-company-context.js +0 -18
  1096. package/dist/lib/work-context/bind-best.d.ts +0 -66
  1097. package/dist/lib/work-context/bind-best.js +0 -344
  1098. package/dist/lib/work-context/bind-calling-session.d.ts +0 -26
  1099. package/dist/lib/work-context/bind-calling-session.js +0 -63
  1100. package/dist/lib/work-context/company-rebind.d.ts +0 -23
  1101. package/dist/lib/work-context/company-rebind.js +0 -59
  1102. package/dist/lib/work-context/default-company.d.ts +0 -43
  1103. package/dist/lib/work-context/default-company.js +0 -83
  1104. package/dist/lib/work-context/outbox-quarantine-status-flag.d.ts +0 -4
  1105. package/dist/lib/work-context/outbox-quarantine-status-flag.js +0 -7
  1106. package/dist/lib/work-context/prd-sync.d.ts +0 -56
  1107. package/dist/lib/work-context/prd-sync.js +0 -197
  1108. package/dist/lib/work-context/preflight-contract.d.ts +0 -28
  1109. package/dist/lib/work-context/preflight-contract.js +0 -85
  1110. package/dist/lib/work-context/prompt-rebind.d.ts +0 -25
  1111. package/dist/lib/work-context/prompt-rebind.js +0 -85
  1112. package/dist/lib/work-context/windows-acl.d.ts +0 -123
  1113. package/dist/lib/work-context/windows-acl.js +0 -425
  1114. package/dist/lib/workers-registry/read.d.ts +0 -15
  1115. package/dist/lib/workers-registry/read.js +0 -17
  1116. package/dist/native-fast-route.d.ts +0 -7
  1117. package/dist/native-fast-route.js +0 -45
  1118. package/dist/node-network-compat-core.d.ts +0 -12
  1119. package/dist/node-network-compat-core.js +0 -41
  1120. package/dist/node-network-compat-fast.d.ts +0 -7
  1121. package/dist/node-network-compat-fast.js +0 -23
  1122. package/dist/secrets-env-fast-path.d.ts +0 -5
  1123. package/dist/secrets-env-fast-path.js +0 -16
  1124. package/dist/secrets-env-fast-route.d.ts +0 -18
  1125. package/dist/secrets-env-fast-route.js +0 -54
  1126. package/dist/utils/checkpoint-stamp-write-error.d.ts +0 -28
  1127. package/dist/utils/checkpoint-stamp-write-error.js +0 -99
  1128. package/dist/utils/cli-network-lifecycle.d.ts +0 -4
  1129. package/dist/utils/cli-network-lifecycle.js +0 -11
  1130. package/dist/utils/cognito-refresh-sentry.d.ts +0 -3
  1131. package/dist/utils/cognito-refresh-sentry.js +0 -49
  1132. package/dist/utils/console-origin.d.ts +0 -9
  1133. package/dist/utils/console-origin.js +0 -28
  1134. package/dist/utils/core-eval-trigger.d.ts +0 -4
  1135. package/dist/utils/core-eval-trigger.js +0 -88
  1136. package/dist/utils/exclusive-lock.d.ts +0 -32
  1137. package/dist/utils/exclusive-lock.js +0 -75
  1138. package/dist/utils/fast-stream-errors.d.ts +0 -12
  1139. package/dist/utils/fast-stream-errors.js +0 -18
  1140. package/dist/utils/files-browse-acl.d.ts +0 -5
  1141. package/dist/utils/files-browse-acl.js +0 -11
  1142. package/dist/utils/hq-core-yaml.d.ts +0 -10
  1143. package/dist/utils/hq-core-yaml.js +0 -40
  1144. package/dist/utils/hq-root-resolver.d.ts +0 -13
  1145. package/dist/utils/hq-root-resolver.js +0 -103
  1146. package/dist/utils/redact-url.d.ts +0 -14
  1147. package/dist/utils/redact-url.js +0 -218
  1148. package/dist/utils/scaffold-fast-import-guard.d.ts +0 -2
  1149. package/dist/utils/scaffold-fast-import-guard.js +0 -40
  1150. package/dist/utils/scaffold-packlist-guard.d.ts +0 -7
  1151. package/dist/utils/scaffold-packlist-guard.js +0 -23
  1152. package/dist/utils/scaffold-sibling-references.d.ts +0 -22
  1153. package/dist/utils/scaffold-sibling-references.js +0 -156
  1154. package/dist/utils/secret-load-availability.d.ts +0 -8
  1155. package/dist/utils/secret-load-availability.js +0 -54
  1156. package/dist/utils/staged-install.d.ts +0 -34
  1157. package/dist/utils/staged-install.js +0 -346
  1158. package/dist/utils/staged-npm-install.d.ts +0 -16
  1159. package/dist/utils/staged-npm-install.js +0 -264
  1160. package/dist/utils/sync-log-sources.d.ts +0 -15
  1161. package/dist/utils/sync-log-sources.js +0 -36
  1162. package/dist/utils/table-width.d.ts +0 -7
  1163. package/dist/utils/table-width.js +0 -15
  1164. package/dist/utils/update-command-supervisor.cjs +0 -247
  1165. package/dist/utils/upload-author.d.ts +0 -15
  1166. package/dist/utils/upload-author.js +0 -39
  1167. package/dist/utils/version-report.d.ts +0 -27
  1168. package/dist/utils/version-report.js +0 -105
  1169. package/dist/version-request.d.ts +0 -14
  1170. package/dist/version-request.js +0 -36
  1171. package/scripts/mesh-daemon-if-stale.mjs +0 -20
  1172. package/templates/reports/blank.md +0 -3
  1173. package/templates/reports/daily-digest.md +0 -11
  1174. package/templates/runbooks/update-report.md +0 -21
package/CHANGELOG.md CHANGED
@@ -2,4306 +2,7 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
- ## [5.313.0] — 2026-10-02
6
- - Gate live-only lane hire-grant counting by company; blocked and awaiting-input children no longer occupy slots when enabled, and their resume is checked against current capacity.
7
- - Add company-gated lane low-disk admission protection and Codex rollout retention.
8
-
9
- ## [5.312.1] — 2026-10-02
10
- - Fix checkpoint Stop hook-state creation and the jq-absent early exit to match the bundled shell.
11
- - Add native `hq core eval-trigger`, `migrate-policy-triggers`, `register-project`, and `work-mesh-live-rebind` on the fast route behind the default-off `core-native-hook-helpers` flag.
12
- - Prevent concurrent QMD reindex workers from replacing each other's lock owner record.
13
- - Add a default-off `hq company rename <new name>` command to update a cloud-backed company's display name.
14
- - Preserve HTTP status and safe server denial codes in work-mesh registration diagnostics.
15
-
16
- ## [5.312.0] — 2026-10-02
17
- - The desktop app can turn event-driven daemon sync on or off with its Instant Sync setting. The daemon stores the preference and restarts when a running daemon needs to apply it.
18
- - `hq dm channel` now explains empty channels and displays a readable fallback for bodyless system notifications.
19
-
20
- - Personal vault browsing now treats slash and dot paths as the root and normalizes leading slashes on nested paths.
21
- - Personal and company file browsing normalize root markers before listing.
22
- - Schedule the first eligible lead keep-alive check from the lane terminal watcher when the opt-in flags are enabled.
23
- - Add default-off KPI freshness reporting and deduplicated re-measurement nudges to lane autopilot.
24
- - Add company-scoped Outpost owner lookup for hostless lane ULIDs used by `hq lanes message`.
25
- - Add opt-in autopilot nudges and operator escalation for missed lead deadlines.
26
- - Report the bounded host BASH_ENV class for hook telemetry so HQ-CLI-2C startup timing can be distinguished accurately.
27
- - Add gated `hq vault retention get|set` commands for the per-vault default retention period.
28
-
29
- ## [5.311.4] — 2026-10-02
30
- - Preserve existing local company starter files during cloud provisioning by having the CLI request that hq-pro skip blank starter seeding; older servers are detected before company creation.
31
-
32
- ## [5.311.3] — 2026-10-01
33
- - Match company file access checks against the company-anchored paths printed by `hq files browse`.
34
- - Record a placement resolved to the current host as local so the lane starts without dispatching back through Outpost pickup.
35
-
36
- ## [5.311.2] — 2026-10-01
37
- - Reduce fast-path startup work by loading network compatibility only on routes that need it.
38
- - Make envelope `next_check_at` an unconditional keep-alive hold and remove its completed rollout flag.
39
- - Lead autopilot no longer asks a lead to review its own lane as a finished worker, or to relaunch a worker for a story assigned to the lead itself.
40
- - Lead autopilot counts a story's current `lane` together with its `lanes` history, so `lanes: []` no longer hides the assigned lane.
41
- - Keep the CLI company seed fixture byte-matched to the hq-core starter golden, including the session sentinel ignore rule.
42
- - Record lane-watcher continuations as `watcher` resumes and label their prompt source accurately; record monitor-event and system-notice message sources distinctly in lane resume history.
43
-
44
- ## [5.311.1] — 2026-10-01
45
- - Preserve shell-compatible diagnostics when delegate pickup receives a malformed manifest.
46
- - Print URLs returned by `hq integrations call` without redacting their paths or query values. Other integration JSON output keeps its existing URL redaction.
47
-
48
- ## [5.311.0] — 2026-10-01
49
- - Add native `hq core hq-session` and `checkpoint-stop-gate` handlers on the fast route behind the default-off `core-native-session` flag, retaining bundled shell rollback companions.
50
-
51
- - Claude lane account selection now skips accounts held for the lane's model and preserves the quota reset details when no eligible account is available.
52
- - Require a latency regression to recur across benchmark rounds before failing the fast-route gate.
53
- - Detect inline private keys when validating job definitions.
54
- - Deliver each Outpost its own lead autopilot registry rows from the primary reconcile pass, and report a missing or stale registry on the Outpost.
55
- - Add an opt-in, default-off hq-flags gate that lets the first keep-alive retry after a done turn run after a 30-second settle while preserving later backoff.
56
- - Add the default-off cli.personal-connector-settings flag to store imported local connector manifests in the personal vault instead of the company vault.
57
-
58
- ## [5.310.0] — 2026-10-01
59
- - Move directly controlled Linux CI checks to ARM runners where their tools support ARM.
60
- - Lead autopilot resolves a lead's company through its project when the lane record does not carry a company, and skips project paths registered to a different company.
61
- - Install-tree recovery errors now report bounded sibling, target, version-gate phase, and updater-liveness enums.
62
-
63
- ## [5.309.1] — 2026-10-01
64
- - Fixed `hq agents rm` to remove external agents through revoke rather than the hosted-agent teardown path.
65
-
66
- - Wait for asynchronous integration approvals to reach a terminal queue state and report pending work accurately.
67
-
68
- - Add privacy-safe qmd exit diagnostics to Sentry reports.
69
-
70
- - `hq files delete` help now explains exact-key and wildcard-prefix matching.
71
- - Add native `hq core worker lint` and `hq core worker share` behind the default-off `core-native-worker-skills` gate.
72
-
73
- - Port `hq core dm-bind` and `hq core work-mesh-bind-trusted` to native TypeScript behind `core-native-utilities`, retaining the bundled-script fallback.
74
-
75
- - Move directly controlled Linux CI checks to ARM runners where their tools support ARM.
76
- - Lead autopilot resolves a lead's company through its project when the lane record does not carry a company, and skips project paths registered to a different company.
77
- - Install-tree recovery errors now report bounded sibling, target, version-gate phase, and updater-liveness enums.
78
-
79
- ## [5.309.0] — 2026-10-01
80
- - `hq lanes autopilot run` now evaluates leads based on lane ownership rather than a host label, and reports registered leads assigned to another host as skipped.
81
- - Allow non-overlapping story-prefix teams to share a project in lane checks and reports.
82
-
83
- ## [5.308.0] — 2026-10-01
84
- - Added native `hq core audit-log`, `git-pack-extension-check`, `pin`, and `refresh-vault-access` commands behind the default-off `core-native-utilities` flag.
85
- - CI now cancels superseded pull-request benchmarks and reserves the additional Windows and macOS checks for changes that affect those platform paths. Main pushes retain all platform checks.
86
- - `hq lanes list` now settles legacy failed-dispatch mirrors as undispatched only after a successful strict owner snapshot returns no row; snapshot errors and mirrors with a host report remain unverified.
87
- - Outpost pickup and remote database requests now time out, and failed pending DM lookups are reported.
88
-
89
- ## [5.307.0] — 2026-10-01
90
- - Add native `hq core resolve-company` on the fast route behind the default-off `core-native-utilities` gate.
91
-
92
- - Stop immediately when hq-deploy repeats an app-list cursor while resolving apps.
93
-
94
- - Added native `hq core audit-log`, `git-pack-extension-check`, `pin`, and `refresh-vault-access` commands behind the default-off `core-native-utilities` flag.
95
- - CI now cancels superseded pull-request benchmarks and reserves the additional Windows and macOS checks for changes that affect those platform paths. Main pushes retain all platform checks.
96
- - `hq lanes list` now settles legacy failed-dispatch mirrors as undispatched only after a successful strict owner snapshot returns no row; snapshot errors and mirrors with a host report remain unverified.
97
- - Outpost pickup and remote database requests now time out, and failed pending DM lookups are reported.
98
-
99
- ## [5.306.0] — 2026-10-01
100
- - End long install-tree waits early when a named retired npm sibling's deep activity scan is incomplete, report the recovery as unverified, and give safe wait-and-repair guidance.
101
-
102
- ## [5.305.0] — 2026-10-01
103
-
104
- - Work Mesh project discovery skips projects whose matching local lifecycle state is archived or retired.
105
-
106
- - `hq lanes show` now treats a newer terminal primary mirror as authoritative when an Outpost owner snapshot is behind, avoiding a misleading refresh warning while preserving warnings for nonterminal conflicts.
107
- - Self-updates detect an unwritable npm global prefix before install, show the command to repair that install, and report the handled permission state as a rate-limited warning.
108
- - Keep Work Mesh held events unique by event ID across retries, including interrupted overflow recovery.
109
- - Added `hq mcp list` as an alias for the existing MCP status command. `hq version` can show cached CLI update guidance on stderr when the default-off `cli.version-update-nudge` flag is enabled. Bare `hq --version` prints only the installed CLI semver and starts no flag or network work.
110
- - Keep-alive no longer lets a newer terminal lane or a same-profile lane under a distinct lane senior supersede a running lane.
111
- - With `cli.company-errors-sdk-warning` enabled, `hq people` uses shared active-company guidance when local metadata is missing, and files commands show the AWS SDK Node-version notice only with verbose diagnostics.
112
- - Remove the unrelated secret-sharing hint from active member listings.
113
-
114
- ## [5.304.0] — 2026-10-01
115
- - `hq lanes show` skips owner refresh only when a failed Outpost dispatch explicitly recorded `pickup_persisted: false` and no owner heartbeat; it reports `remote_refresh: "skipped_undispatched"` in that case.
116
-
117
- ## [5.303.0] — 2026-10-01
118
- - Fixed bundled shell scripts failing on Windows when Git Bash is installed but `bash` is not on `PATH`.
119
- - The bundled token usage script now reads Claude sessions from `CLAUDE_CONFIG_DIR/projects` and the standard Claude project directories, including nested session folders (subagent transcripts are skipped), when no project directory is given.
120
-
121
- ## [5.302.0] — 2026-10-01
122
-
123
- - Generate company project indexes while preserving hand-written content unless `--accept` is used.
124
-
125
- - Follow all hq-deploy app-list pages when resolving apps for comments and report publishing.
126
- - Let a senior message or resume an `awaiting_input` lane when its pending question is gone or cannot be reached from the senior's host. Pending questions remain answer-first, including across registered Outpost routes.
127
- - A senior can resume or send a fallback message to an `awaiting_input` lane when its pending questions are addressed to another audience. Once the resume is accepted, those questions are cancelled on their owner; unreachable owners are reported while the lane continues.
128
- - When a blocker escalation targets a session without a registered monitor inbox, record the reason and deliver it through the lane's existing inbox instead of retrying the failed escalation every watcher pass.
129
- - `hq integrations disconnect` can now remove company integrations that were created outside the app catalog.
130
- - Lead envelopes can set `next_check_at` to defer automatic keep-alive resumes
131
- until a scheduled check, with pending work continuing to resume immediately.
132
- - Reconcile records deduplicated keep-alive skip reasons in each lane's watcher event log.
133
- - Add a company-scoped reconcile gate that closes local interrupted worker lanes after 24 hours when all carried project stories are done or dropped and no pending work remains.
134
- - Skip refreshing failed-dispatch lane mirrors that never reached their Outpost owner.
135
- - Keep lane keep-alive, retry-context, and monitor history readers moving past torn JSONL records.
136
- - Refresh primary mirror heartbeats from fresh running Outpost reports before dead-host reconciliation.
137
- - Report answerable awaiting-input questions as the `hq lanes show` delivery path, and retry blocker-freshness fallback messages after a failed append.
138
- - Let `hq integrations connect` send an API key in a custom HTTP header.
139
- - Bound `hq rescue` GitHub release and tag lookups to 30 seconds with a clear timeout error.
140
- - hq-cli now logs live-board refresh failures and recovery while continuing to retry.
141
- - On Windows, background jobs started by `/handoff` and search indexing no longer open console windows.
142
-
143
- ## [5.301.0] — 2026-10-01
144
- - `hq meetings transcript` and `hq meetings notes` stop a stalled document download after two minutes and say so, instead of waiting forever.
145
-
146
- - Keep `hq access` from reporting a denied vault path as missing or exposing matching paths.
147
- - Fix self-updates for npm installs whose global prefix contains spaces.
148
- - `hq files acl companies/<slug>` and `hq files unshare companies/<slug> --with ...` now handle ACL rows at that exact company path instead of treating it as the vault root.
149
- - Add native hq core job notify and remediate commands behind core-native-jobs, retaining bundled shell companions.
150
- - Allow owners to disconnect custom Factory connections without installation records, and send the company UID required by the revoked-connection purge endpoint.
151
- - Fail company provisioning when its initial sync reports per-file upload failures, while retaining the successful upload count in failure details.
152
- - Treat plan-limited files as initial-sync failures and keep provisioning progress snapshots updated.
153
- - Preserve story attribution after a message is durably queued by lane admission or an account move.
154
- - The token usage report accepts `--project-dir <path>` to read one Claude activity folder instead of the default folders.
155
-
156
- ## [5.300.0] — 2026-09-30
157
- - `hq files unshare --with agt_...` removes a grant made to an agent. Before, agent uids were rejected as invalid principals.
158
- - `hq daemon` no longer drops remote-control sessions when claude or codex is reinstalled at the same version or when hq-cli is released. The daemon's plan leaves out the tool's path (the host finds it when it starts), the host restarts a session only for a new tool version, and a tool that looks missing for one plan read does not pause the session. On outpost primary, a long-running Claude session's auto-updater reinstalled claude every few minutes and each reinstall restarted remote-control two or three times.
159
- - With the default-off hq-flags gate `files.share-empty-prefix-warning`, `hq files share` warns when a granted prefix has no files. A failed or timed-out list check does not block the grant.
160
- - Recognize pnpm v11+ global installs and handle Windows drive-path tar archives without waiting for the asynchronous feature-flag snapshot.
161
- - Self-update failure reports now include the npm error code and a sanitized reason.
162
-
163
- ### Fixed
164
-
165
- - `hq core rebuild-index companies --company <slug>` scopes the generated write to that company (behind the default-off `cli.rebuild-index-company-scope` flag), and `--help` exits without reading or writing company indexes. The unscoped run also ignores orchestrator state tied to another company's PRD.
166
-
167
- - Lane messages and resumes that switch project or story attribution now tell the provider which story is active. Reused completion artifacts no longer close the new story.
168
- - Make signed-out `hq sync` commands fail fast with `hq login` guidance when stdin or stdout is not a terminal, while keeping browser login in a terminal.
169
-
170
- ## [5.299.0] — 2026-09-30
171
- - Add `hq lanes accounts clear-quota` and clear future quota marks after successful lane turns.
172
- - On macOS, `hq daemon` retires a loaded legacy mesh LaunchAgent even when its plist is missing, and daemon uninstall boots the job out before deleting its plist. Mesh-owner wait logs now repeat at most every ten minutes.
173
- - Restore npm command links after a failed hq-cli self-update and repair or report missing links after successful installs.
174
-
175
- ## [5.298.0] — 2026-09-30
176
- - [feedback_d4a080e9-de79-4290-81c3-06ba26990a38] Preserve raw substring matches while normalizing company path searches.
177
- - `hq agents` now prints the Slack app settings link and the console paste link whenever an agent is waiting on its Slack app-level token, and follows the pending actions and paste URL the server returns.
178
- - When an app install is already running, `hq integrations connect` tells you to wait instead of showing a generic conflict error.
179
- - Validate policy trigger expressions when loading worker policies (feedback_3982db47-ceb8-4148-8ee0-4dd533f5138b).
180
-
181
- ## [5.297.0] — 2026-09-30
182
- - When enabled by hq-flags, show the quarantined work-context outbox count and latest reason in hq doctor and mesh daemon status.
183
- - `hq daemon` now exits after shutdown when handles remain open, and its mesh service waits when another live mesh daemon owns the process lock.
184
-
185
- ## [5.296.0] — 2026-09-30
186
- - Upgrade varlock to 1.21.1. `hq run` skips Varlock cache setup and reports malformed env files promptly without sending them to Sentry.
187
- - Record bounded actor and trigger history for lane worker starts and expose it through `hq lanes show --json`. Preserve history through conflict merges and envelope repair, and record answered-question callers for immediate and queued resumes.
188
- - `hq lanes` no longer lets a late terminal lane envelope change a story the senior already marked done or dropped, and `hq lanes story review <lane> <story>` moves a carried story to review before senior verification (feedback_d0164732-22b0-4426-9b66-c9758ba205e3).
189
-
190
- ## [5.295.0] — 2026-09-30
191
- - Add native `hq core job run` behind the default-off `core-native-jobs` gate, retaining its bundled shell rollback companion.
192
-
193
- - Remove the unused direct client-health Sentry route; the existing server-side reporting path remains unchanged.
194
-
195
- - Add native `hq core job probe` behind the existing default-off `core-native-jobs` gate.
196
- - Self-update supervisor copy and cleanup failures now log their error class.
197
- - Report failed and ineffective self-updates to Sentry with bounded context.
198
-
199
- - hq-cli release notes now use per-branch fragments that are folded into the next version section, reducing conflicts between parallel pull requests.
200
- - Claude keep-alive resume events now retain a compact account-load selection snapshot, including when the lane stays on its current account.
201
- - After a successful missing-envelope repair reports unfinished work, the watcher can queue one automatic continue behind the default-off `lanes.envelope-repair-continue` flag. The repair prompt now gives the required unfinished-story envelope fields.
202
- - Add a private machine-session token-file command for supported machine-auth handoffs.
203
- - Apply the 5x fast-route speedup gate only when the base p95 is at or above the 200 ms target; retain the p95 latency and base/PR regression gates.
204
- - The changelog fragment check runs only on pull requests again, so pushes to main no longer fail it.
205
- - Refresh terminal Outpost lane mirrors before applying `hq lanes list` state filters, so a lane whose owner is still running is listed as running.
206
- - Remove the unused Outpost snapshot cache flag and its cache-first lane-list path.
207
- - The mesh daemon logs spool watcher failures and continues flushing on its polling interval instead of exiting on an unhandled watcher error.
208
- - Make the manager status gate always active and remove its rollout flag lookup.
209
- - Compare fast-route latency with a PR-build full-graph baseline so the 5x gate remains valid after the base build gains fast routing.
210
-
211
- ## [5.294.0] — 2026-09-30
212
- - Record automatic keep-alive resumes in each lane's durable, bounded history and expose it in `hq lanes show --json` and `hq lanes list --json`.
213
-
214
- ### Fixed
215
-
216
- - Outpost `hq lanes message` now reaches primary-hosted lanes through the
217
- primary owner command, which checks sender rights and includes the
218
- destination in JSON output.
219
- - Split the lane story command handlers into a dedicated module without changing behavior.
220
- - On a box, `sudo hq daemon migrate --apply` now finds the login user's own systemd user units (hq-mesh-daemon, hq-lanes-reconcile and the rest) and stops them through that user's systemd manager. `sudo hq daemon uninstall --restore-legacy` restarts them the same way. Before, root looked only in its own home and could not reach the login user's manager.
221
-
222
- ## [5.293.0] — 2026-09-30
223
- - [HQ-CLI-HOOK-TIMEOUT-KIND] Group hook timeout events by normalized kind (`warning` or `exceeded`) across scripts; keep script and platform tags for triage. Existing per-script issues will stop receiving new events, and the lead handles their status.
224
- - [HQ-CLI-2C] Label unmeasured SessionStart delay as entry Bash startup when BASH_ENV is set; doctor follows the env-prefixed hook command.
225
- - `hq lanes move` now reports an already-on-target no-op without dispatching or changing the queued lane.
226
- - Keep bundled scheduled-job reconciliation units on the live scaffold runner, and preserve caller spelling in job-validation paths.
227
- - On Linux, `hq daemon run` sets XDG_RUNTIME_DIR for its services when the system unit left it unset, so `systemctl --user` from jobs-reconcile no longer fails with "Failed to connect to bus: No medium found".
228
-
229
- - With the default-off lanes.keep-alive-resume-blocked gate enabled, reconcile
230
- resumes an opted-in blocked lead after 15 minutes when it has open stories and
231
- no pending question. After two blocked resumes, it records another blocked
232
- episode for operator review.
233
- - Lead autopilot dry runs no longer start workers, append repeat wakes, or write escalation records. Passed stories count as closed and canonical story-ledger lane objects are accepted.
234
- - Autopilot checks status paths against the lead company, scopes escalation deduplication to each lead, includes carried stories in stale-worker checks, and recovers locks left by reused PIDs.
235
- - The lead autopilot adds prompts for available grant slots, flat KPI reports, stale blockers, completed projects, stale worker ledgers, and stories without live lanes, with escalation after two unanswered wakes.
236
-
237
- - Preserve empty directory paths and modes in recorded corpus cases. The recorder rejects tree entries the case format cannot replay, and CI checks committed snapshots after a clean Git archive extraction.
238
- - Cross-Outpost resume and hire-grant dispatch verify the senior from the
239
- senior's owning Outpost before signing the caller's grant context.
240
- - Run the no-Hermes source guard with the required Changelog gate in one runner job.
241
-
242
- ### Added
243
-
244
- - Add the read-only `hq lanes autopilot report` metrics command for operator nudges, review latency, idle capacity with ready work, and nudge defects.
245
-
246
- - Add `hq lanes ask --priority P0|P1|P2` and show question urgency in the queue; warn when omitted during the compatibility release.
247
- - Route ported native hq core commands through the fast-startup gate while preserving each family's bundled shell fallback.
248
-
249
- ### Fixed
250
-
251
- - Skip malformed remote lane mirrors with a lane and field warning while
252
- keeping local lane validation strict. Refresh mirror queue reason and details
253
- from one owner snapshot.
254
- - Primary-side Outpost question show and answer skip the current Outpost during owner lookup. Remote answers require the lane senior; when the owner is reachable, an unrelated unavailable Outpost is returned as `lookup_errors` without blocking the answer.
255
- - CI-only: keep the same-binary Node control case measured without applying performance regression thresholds.
256
- - Fix npm global self-updates, which have failed with MODULE_NOT_FOUND since 5.290.0. The update moved the hq-cli package aside and then started its installer through a supervisor script inside that package. It now runs the installer through a copy of the supervisor outside the package.
257
-
258
- ## [5.292.0] — 2026-09-30
259
- - Add native `hq core jobs reconcile` behind `core-native-jobs`, retaining the bundled shell rollback and scheduled-job helpers.
260
- - Behind the default-off `cli.staged-self-update` flag, an npm global self-update installs the new version beside the running package, checks that it answers `--version`, then swaps it in with two renames. The running `hq` stays on disk for the whole install, so services the daemon starts during an update no longer fail with "hq: command not found" or MODULE_NOT_FOUND. pnpm, Bun, Windows and linked installs keep the in-place update.
261
-
262
- - Disable Git auto-maintenance, auto-gc, and detached gc during CM-W2b corpus
263
- creation so fixture snapshots cannot race lock files.
264
-
265
- ### Added
266
-
267
- - `hq core ontology merge-copies --listed --only <file>` (flag `checkpoint.ontology.merge-listed-pairs`, default off) merges exactly the copy -> original pairs in the file, including pairs whose names differ, such as a company listed under two names. Each pair must name two entities of one type; a copy listed twice, or listed as both a copy and an original, is skipped as `listed_conflict`. Signal and link holds apply as for other pairs.
268
- - `hq core ontology drop-aliases --only <file>` (flag `checkpoint.ontology.drop-aliases`, default off) removes reviewed wrong aliases, given as `{ entity, alias }` pairs, from entity files. It is a dry run unless `--apply` is given, and it writes through the multi-writer outbox so sync uploads the change.
269
-
270
- ### Fixed
271
-
272
- - `hq core ontology merge-copies --rewrite-refs` no longer edits signal or source files, which sync cannot upload. A pair whose copy a signal or source still names is now held as `server_owned_refs`, and its copy is kept.
273
- ### Added
274
-
275
- - Add `hq core delegate bundle`, `grant`, `publish`, `send`, and `verify` as
276
- native TypeScript handlers behind the default-off `core-native-delegate`
277
- flag, with their shell companions retained as rollback assets.
278
- - Match native handoff open-steps JSON nulls and invalid-JSON exit codes, and sync zero-change handoffs to the calling session's bound company after mirroring the thread.
279
-
280
- ## [5.291.0] — 2026-09-29
281
- - Add native `hq core jobs schedule-parse` and `validate` commands behind the default-off `core-native-jobs` gate, retaining their shell rollback companions.
282
-
283
- - Offline mesh reconcile does not refresh person tokens or start interactive sign-in; valid cached tokens still validate device defaults.
284
- - Retry daemon state replacement briefly when Windows reports transient rename contention, while keeping the previous state file intact on failure.
285
- - When a lane has no Board story ID, `hq lanes` records the lane event without sending a story PATCH.
286
- - `hq core policy age-report` now matches the legacy script when a missing reference has no hidden sibling under a dot directory.
287
- - Keep bundled scaffold scripts current with staging and check their pinned source revision in CI.
288
- - Starter plan-limit refusals now show why and how to fix them. The CLI reads
289
- hq-pro's hard-stop 402 body (and the older shapes) and prints the server
290
- message, the usage, the fix options, the free-month offer when one stands,
291
- and the upgrade link, including in non-interactive runs. `hq secrets set`,
292
- `hq secrets generate-link`, `hq members invite` and `hq integrations connect`
293
- all use this renderer and exit non-zero.
294
- - `hq sync push`, `hq sync push --all`, `hq sync now`, `hq sync now --all` and
295
- `hq skill create` no longer print a success line when a plan limit refused a
296
- file. They list the refused files the runner names, show the upgrade link and
297
- exit non-zero. `hq sync push --json` adds `planLimitRefused` to its `complete`
298
- event instead.
299
-
300
- ## [5.290.0] — 2026-09-29
301
- - Ignore stale but well-formed worker-profile queue details when another valid queue reason is stored, and remove them on the lane's next write.
302
-
303
- ### Added
304
-
305
- - Gate `hq sync push --personal <paths>` behind the default-off `cli.personal-targeted-push-paths` flag; explicit paths are normalized and checked against personal-vault scope and exclusions before upload.
306
- - `hq core ontology merge-copies --rewrite-refs` (flag `checkpoint.ontology.merge-rewrite-refs`, default off) re-points signal refs, invoice and bill links, source and knowledge links from a merged copy to its survivor and carries the copy's external ids and web domains; a pair whose files hold different values for one external id stays held (`external_id_conflict`).
307
- - A `--only` entry can carry `resolve_external_ids: { <provider>: { primary, namespace, object_type? } }`. With `--rewrite-refs`, a conflicting provider id then keeps `primary` in `external_ids` and moves the pair's other id to the survivor's `external_refs` (`system`, `namespace`, `objectType`, `recordId`), so no id is dropped. A `primary` that matches neither id still holds the pair.
308
-
309
- ### Fixed
310
-
311
- - `hq core ontology merge-copies --variants` no longer counts a copy's own `# Name` heading as unmerged text, so a merged variant copy can be deleted.
312
- - `merge-copies` no longer moves a copy's links to itself or to its original into the original, and does not count them or the `## Relationships` heading as unmerged text.
313
- - `merge-copies` now finds signal `entity_refs` written with a `.md` suffix, so it holds (or, with `--rewrite-refs`, re-points) them instead of deleting a copy they still name.
314
- - `merge-copies --rewrite-refs` no longer holds a survivor as `merge_invalid` when it gains external ids but has no `web_domains` key (or the reverse).
315
- - `merge-copies` treats an annotation list item whose first key is `path:` as a link to the copy, so it no longer deletes a copy such an annotation still names.
316
-
317
- ## [5.289.0] — 2026-09-29
318
- - A failed `hq update` restores the previous working hq-cli install when it could be backed up, instead of leaving the CLI partially updated.
319
-
320
- ## [5.288.0] — 2026-09-29
321
-
322
- ### Added
323
-
324
- - Add lead autopilot prompts to the lanes reconcile pass behind
325
- `lanes.lead-autopilot` (off by default) and expose
326
- `hq lanes autopilot run --dry-run --json`. It asks registered leads to review
327
- finished, blocked, or missing workers or fill unused grant slots, starts a
328
- ready worker after an
329
- unanswered fill prompt ages 15 minutes, and relies on keep-alive to resume
330
- completed leads with open work.
331
-
332
- ### Fixed
333
-
334
- - Retry daemon state replacement briefly when Windows reports transient rename
335
- contention, while keeping the previous state file intact on failure.
336
-
337
- ## [5.287.0] — 2026-09-29
338
- - Group hook-timeout events by script while preserving triage diagnostics.
339
- - Preserve safe slow-child script basenames in hook-timeout diagnostics.
340
- - Cloud provisioning and retirement now stop after 15 seconds when a Vault API request stalls, with a clear timeout error.
341
- - In the HQ desktop app, clicking "Explain HQ first" in the setup bot now shows the fixed explanation of HQ at once, with no model turn. The setup worker ships that text in `skills/explain-hq.md`, and the bot reads the same file when someone asks in their own words.
342
- - Add native TypeScript implementations for four `hq core` worktree and
343
- handoff scripts behind the default-off `core-native-handoff` flag. The
344
- original shell assets remain bundled as the rollback path.
345
- - Add default-off native `hq core handoff finalize`, `post`, and `open-steps` commands with the staging scripts retained as the rollback path.
346
- - Add a default-off `core-native-jobs` rollout gate for native `hq core jobs
347
- schedule-parse` and `validate` commands.
348
-
349
- ### Fixed
350
-
351
- - `hq team-sync` keeps its successful no-team result, reports which company
352
- directories are cloud-backed, and points to `hq sync pull --all` and
353
- `hq sync status` for cloud-backed companies.
354
- - An unconfirmed Outpost pickup acknowledgement keeps its mirror queued with
355
- `outcome_unknown` and its command id. Reconcile uses a strict owner snapshot;
356
- it marks the mirror `remote_lost` only after the 15-minute grace when the
357
- owner confirms the lane is missing. Unreachable owners remain counted.
358
-
359
- ### Fixed
360
-
361
- - Confirm primary-dispatched Outpost profile recovery when it is queued for
362
- reconcile, and sync the cleared recovery state to the primary lane mirror.
363
- - Cache-first `hq lanes list` now allows one detached Outpost summary refresh
364
- per HQ root at a time, avoiding duplicate work from overlapping list calls.
365
-
366
- ### Fixed
367
-
368
- - The lanes hook reads only transcript bytes appended since its last check.
369
- It still replays compaction messages and resets the offset when a transcript
370
- is replaced or truncated.
371
-
372
- ### Added
373
-
374
- - `hq core ontology merge-copies --only <file>` handles only the copy -> original pairs listed in a JSON file and reports every other found pair as skipped (`not_listed`).
375
-
376
- ### Changed
377
-
378
- - The checkpoint ontology step always applies its ten quality rules (company
379
- brief, annotation stripping on grok, grok-first backend, no link aliases,
380
- first-name people, ambiguous concept links, dominant sibling link, hub
381
- mention floor, concept-project link, named evidence). Their
382
- `checkpoint.ontology.*` flags, on for everyone since 2026-09-29, are no
383
- longer read.
384
-
385
- ### Added
386
-
387
- - Record company-scoped exposure for printed CLI plan-limit notices when the default-off `billing.limit-at-action-prompt` flag is enabled; count an upgrade engagement only after the user confirms opening the link.
388
-
389
- ### Fixed
390
-
391
- - `hq secrets` and other noninteractive person-token callers reuse a fresh same-principal session written by another process while a stale refresh is rejected.
392
-
393
- ## [5.286.0] — 2026-09-29
394
-
395
- ### Changed
396
-
397
- - On Linux the daemon's sync runner writes its protocol output to a named
398
- pipe, `~/.hq/daemon/protocol/sync.fifo`, instead of an anonymous pipe. With
399
- `daemon.supervisor-handoff` on, an outpost daemon restart now hands sync to
400
- the next daemon like the other services instead of stopping and restarting
401
- it, and output the old daemon had not read reaches the new one. Other
402
- platforms keep the anonymous pipe.
403
-
404
- ## [5.285.0] — 2026-09-29
405
-
406
- - Route eligible Linux CI jobs onto ARM runners while retaining existing test and platform gates.
407
-
408
- ## [5.284.0] — 2026-09-29
409
- - The existing Work Mesh MQTT subscriber can signal agent inbox wakes through a private local marker without persisting MQTT message contents.
410
- - Add `hq agents jobs resume <uid> <jobId>` to re-enable paused agent job schedules.
411
-
412
- ### Fixed
413
-
414
- - Recover a queued Outpost lane held for `worker_profile_changed` with its
415
- printed `hq lanes resume <id> --worker <profile>` command. The lane owner's
416
- profile copy is authoritative: the command records an authorized re-pin in
417
- history, leaves the lane queued for normal reconcile admission, and syncs the
418
- cleared recovery state back to the primary mirror. Other queued lanes still
419
- require `hq lanes admit`.
420
-
421
- - A remote `hq lanes list` read no longer dispatches owner hire summaries,
422
- capacity probes, or mirror snapshots to other Outposts. Two Outposts that
423
- each held a lane placed on the other ran `hq lanes list --json` on each other
424
- without end, which filled both boxes with SSM commands.
425
- - `hq doctor` labels the detected agent runtime value as `Agent platform` in human output. The JSON platform field and schema are unchanged.
426
-
427
- ### Fixed
428
-
429
- - Refresh remote lane mirrors on hosts with an Outpost identity, while excluding
430
- mirrors owned by that host. Resolve company attribution before checking the
431
- mirror gate for refreshes and remote logs; unresolved lanes stay local.
432
- Remote-read invocations skip refresh to prevent reciprocal Outpost fan-out.
433
-
434
- ## [5.283.0] — 2026-09-29
435
-
436
- ### Added
437
-
438
- - `hq core ontology merge-copies --variants` merges two-file duplicate entity
439
- groups whose names differ only in case, spacing or punctuation, keeping the
440
- spaced name. Behind `checkpoint.ontology.merge-variants` (off by default).
441
-
442
- ## [5.282.0] — 2026-09-29
443
-
444
- ### Added
445
-
446
- - Add native TypeScript handlers for `hq core knowledge-prefs` and `hq core
447
- policy age-report`, `retire`, and `frontmatter`, gated by the default-off
448
- `core-native-policy` flag. Bundled shell assets remain available for rollback
449
- during the first release.
450
-
451
- ### Changed
452
-
453
- - Pin the third-party package setup action in the fast-route benchmark workflow to its resolved commit.
454
- - When the default-off `lanes.outpost-snapshot-cache` flag is enabled,
455
- `hq lanes list` returns the last cached Outpost hire summaries immediately
456
- and refreshes stale or missing summaries in the background. JSON rows show
457
- snapshot age and stale/loading markers; text output includes a short stale or
458
- loading note. `--fresh` waits for current owner summaries. Validated Outpost
459
- snapshots live for three seconds; failed reads or lock acquisition are not
460
- cached.
461
-
462
- ### Fixed
463
-
464
- - `hq lanes reconcile` admits every queued lane that fits its caps in one pass
465
- once CPU throttle clears or the starvation bound is reached.
466
- - Reconcile compares cumulative CPU counters between passes and records the
467
- measurement source; a queued Outpost lane with a changed worker profile now
468
- reports the expected and actual hashes plus the senior re-pin command without
469
- blocking later eligible lanes.
470
-
471
- ## [5.281.0] — 2026-09-29
472
-
473
- ### Added
474
-
475
- - Add native TypeScript handlers for six `hq core ontology` commands. The new path is gated by `core-native-ontology`, which defaults off; the original scripts stay bundled for rollback.
476
-
477
- ### Fixed
478
-
479
- - The default-off `lanes.remote-done-mirror` hq-flags gate refreshes nonterminal
480
- Outpost mirrors before hire admission and during reconcile. It copies the
481
- owner's terminal state and envelope summary to the primary. Unreachable
482
- mirrors stay counted and are reported as unverified. `hq lanes logs` reads
483
- logs from the owning Outpost.
484
-
485
- ## [5.280.0] — 2026-09-29
486
-
487
- ### Fixed
488
-
489
- - Single-lane commands for Outpost-hosted lanes use a configurable pickup wait,
490
- defaulting to 120 seconds. `hq lanes list` capacity probes use a separate
491
- 15-second timeout. A lane ID with a registered host suffix routes to that
492
- Outpost first.
493
- - hq group-grants outbound help now makes --group required. hq auth status
494
- displays token expiry as a UTC time and relative duration.
495
-
496
- ## [5.279.0] — 2026-09-29
497
-
498
- ### Fixed
499
-
500
- - Claude keep-alive resumes use the same account selection as manual resumes,
501
- including profile pins and the optional recent-use tiebreak. If no eligible
502
- account can be selected, the lane resumes on its current account and records
503
- the failure.
504
-
505
- ## [5.278.0] — 2026-09-29
506
-
507
- ### Changed
508
-
509
- - The CI and no-hermes pull request checks use read-only repository access, and CI pins its third-party actions to fixed commits. The fast-route benchmark workflow is pinned in a follow-up.
510
-
511
- ### Added
512
-
513
- - Reconcile can stop an over-budget same-user search process descended from a
514
- running lane when `rg`, `grep`, `ugrep`, or `ag` disables ignores on a broad
515
- HQ root, or `find` searches a broad root without a shallow-depth or prune
516
- exemption. The `lanes.runaway-tool-guard` hq-flags key is off by default. A
517
- stopped search records its command and duration, then gets a notice to narrow
518
- the search.
519
-
520
- - Add the default-off `checkpoint.ontology.hub-mention-floor` hq-flags key.
521
- When it is on, checkpoint ontology apply rejects a knowledge link to a
522
- non-person entity that 50 or more other entity files link to when the input
523
- names it fewer than 2 times in the text the model read (the chunk's line
524
- range of the annotation-stripped copy when there is one). Concept links
525
- redirected to a project are checked the same way. The rejection is reported
526
- as `hub_under_mentioned`.
527
-
528
- ## [5.277.0] — 2026-09-29
529
-
530
- ### Fixed
531
-
532
- - `hq lanes accounts list` and `accounts balance` now report a Claude account
533
- whose home is missing on the current host and show the `set-home` repair
534
- command. Balance exits non-zero for an enabled account in that state. On
535
- Linux, account login stores a host-specific home and requires `--home` when
536
- an existing account only has a shared home.
537
- - Claude account balancing can use the default-off
538
- `lanes.claude-account-balance-signals` hq-flags key to break equal live-lane
539
- counts by the age of each account's latest completed lane run when provider
540
- percentage data is unavailable.
541
-
542
- ### Added
543
-
544
- - Add a default-off `cli.secrets-env-fast-path` hq-flags route for `hq secrets
545
- env`. It skips the full CLI graph while reusing the existing credential,
546
- usage-audit, server authorization, and offline-cache behavior.
547
- - `hq lanes list --json` accepts repeatable `--lane` filters, `--active`, and
548
- owner-only hire-hierarchy snapshots. Remote lane lookup now requests the
549
- needed hierarchy once per Outpost invocation and falls back to an unfiltered
550
- list when an older owner CLI rejects a new filter. Internal snapshot switches
551
- stay out of normal help and the generated command catalog.
552
- - Add the default-off `checkpoint.ontology.dominant-sibling-link` hq-flags key.
553
- When it is on, checkpoint ontology apply moves a knowledge link from an entity
554
- whose name another type also holds to the same-name entity that other entity
555
- files link to most. The move needs at least three times the inbound links and
556
- at least five. An example is project Build Your Own AGI moving to the concept,
557
- or the numbered copy `hq-core 2` moving to `hq-core`. Moves are reported
558
- under `dominant_sibling_redirects`, and no entity file is written.
559
- - Add the default-off `lanes.running-superseded-message-delivery` hq-flags key
560
- so messages can reach otherwise messageable superseded lanes outside the done
561
- and interrupted states. Accepted messages include a warning; done and
562
- interrupted lanes keep the existing senior and successor checks.
563
- - `hq core delegate resolve`, `pickup`, `repo`, `secrets`, and `transfer` are
564
- available through native implementations when the default-off
565
- `core-native-delegate` flag is enabled; the bundled scripts remain as the
566
- rollback path.
567
-
568
- - `hq lanes set <lane> --model <model> --effort <level> [--reason <text>]`
569
- changes the model or effort a lane uses from its next resume, including the
570
- keep-alive resume of a done lead. Before, keep-alive always resumed on the
571
- recorded values, so a lead's model could not change without racing it. The
572
- lane itself or its senior may run it; each change is kept in
573
- `settings_history` and shown by `hq lanes show`.
574
- - `hq daemon sync` reports runner ownership and health, starts an immediate sync pass, pauses or resumes sync, and sets per-company sync mode. The daemon waits for an existing desktop runner to release its lease before starting its own.
575
- - `hq lanes interrupt <lane-id>` stops a running lane's turn and leaves it
576
- `interrupted` (reason `operator_interrupt`) with its provider session, so
577
- `hq lanes resume` continues it. Keep-alive does not resume it. The command
578
- records the session id from the interrupted turn's output, holds the
579
- provider's admission lock until the worker has stopped, and reports
580
- `resumable: false` with a stderr warning when the turn produced no session id.
581
- - An operator `hq lanes resume` clears keep-alive's `terminal_state` block, so
582
- keep-alive can continue the lane after that turn.
583
-
584
- ### Changed
585
-
586
- - `hq lanes stop` on a running lane warns on stderr that the lane is killed and
587
- cannot be resumed, names `hq lanes interrupt`, and adds `terminal: true` and
588
- `resumable: false` to its JSON output, including for Outpost lanes stopped
589
- from the primary.
590
- - The lane drain hook avoids loading the lanes module graph when no lane is
591
- resolved or its drop box is empty, while continuing to record tool activity
592
- and using the full drain path whenever delivery or replay may be needed.
593
-
594
- ### Fixed
595
-
596
- - Doctor command tests use temporary home and state directories and skip the
597
- live integrations inventory, so their results do not depend on a developer's
598
- local HQ state.
599
- - Outpost resume account moves forward the primary's hire-grant context through
600
- the owner-side session move. The owner checks the current senior and hire
601
- capacity before starting the worker.
602
- - Security: `hq dm inbox --json` and agent-side raw message output omit the delegated `actingContext` object.
603
-
604
- ## [5.276.0] — 2026-09-28
605
-
606
- ### Added
607
-
608
- - Suggest inviting a teammate after the billing link in an over-limit Starter
609
- notice for a one-member company, behind the default-off
610
- `cli.limit-invite-teammate-v1` flag.
611
- - Add a default-off native route for `hq core timeout-guard`, backed by a
612
- private company flag snapshot and a paired CI latency benchmark.
613
-
614
- ### Changed
615
-
616
- - Starter setup guidance now says it includes one integration.
617
-
618
- ### Fixed
619
-
620
- - `hq core checkpoint` no longer loses the company files of a checkpoint that
621
- was queued behind a busy sibling, behind the `checkpoint.ontology.queued-touches`
622
- flag (off by default). The queued checkpoint records its company files, and
623
- the next sibling run adds them to the ontology plan. A run whose own
624
- checkpoint names no company takes the ontology step for the company whose
625
- files have waited longest.
626
- - `hq feedback bug|feature` validates report content and the serialized request
627
- size before uploading screenshots or logs, avoiding orphaned attachments when
628
- the server would reject the submission.
629
-
630
- - Reconcile clears a stale `superseded` keep-alive block when no active successor
631
- remains; the five-minute minimum retry delay still applies. The block is
632
- cleared even when the lead then waits on backoff or a full queue, and the
633
- clear does not move a done lead's retry clock past its done envelope.
634
-
635
- ## [5.275.0] — 2026-09-28
636
-
637
- ### Fixed
638
-
639
- - `hq lanes` accepts full Claude model ids such as `claude-sonnet-5-5` and
640
- `claude-opus-5-5` (spawn, `resume --from-failed`, account moves) when
641
- `claude --help` names only the aliases. Before, the model check refused them
642
- with `model_unsupported`.
643
-
644
- ### Added
645
-
646
- - Track CLI feature events behind the default-off `cli.feature-used-telemetry-v1`
647
- hq-flags key with a separate one-time disclosure.
648
-
649
- - Outpost daemons can take over running services after a CLI update instead
650
- of restarting all of them, behind the `daemon.supervisor-handoff` flag (off
651
- by default). On Linux, the updated daemon adopts the services the previous
652
- one left running and replaces only the ones whose command changed, one at a
653
- time. Bots finish their running turns first. hq-cloud services keep running,
654
- and the remote-control hosts restart their session once it is quiet. This
655
- needs the systemd unit from this release: run `sudo hq daemon install` again
656
- on each outpost.
657
- - Company owners can turn the checkpoint Stop gate off or on for their company:
658
- `hq company settings set --checkpoint-gate-enabled false|true`. Any member can
659
- read the value with `hq company settings get`. The Stop gate reads a local
660
- cache (`~/.hq/cache/checkpoint-gate/<company>.json`, refreshed in the
661
- background at most every ten minutes by `hq core checkpoint-gate-setting
662
- --refresh`) and skips the checkpoint block only when the session's company has
663
- the gate turned off. Unset, unreachable with no cache, and sessions with no
664
- company keep today's behaviour; `HQ_CHECKPOINT_GATE` still wins. Gated by the
665
- hq-flag `checkpoint.gate.company-setting` (default off).
666
-
667
- ### Changed
668
-
669
- - The systemd system unit now uses `KillMode=process`, so systemd signals only
670
- the daemon. The daemon still stops its services on `systemctl stop`, and it
671
- stops any service left over from a crashed daemon before starting new ones.
672
-
673
- ### Fixed
674
-
675
- - `hq lanes create --placement auto` now runs on the caller when it is the best
676
- capacity candidate. It matches the host id, machine identity or registered
677
- Outpost id. Explicit `--outpost` self-targets still return
678
- `outpost_self_target`.
679
- - `hq sync status` validates an explicit `--hq-root` and continues to read
680
- journals from the configured state directory, which it now prints.
681
- - Root daemon tests use a temporary system adopted-record file; the CLI still
682
- defaults to `/var/lib/hq/daemon/adopted.json`.
683
-
684
- ## [5.274.1] — 2026-09-28
685
-
686
- ### Fixed
687
-
688
- - With lineage-aware supersession enabled, same-profile workers under the same
689
- session senior no longer supersede each other. The recorded senior can
690
- message its worker if it is later superseded.
691
-
692
- ## [5.274.0] — 2026-09-28
693
-
694
- ### Fixed
695
-
696
- - `hq lanes grant` and other senior-authorized actions treat a missing `senior`
697
- key in valid session metadata as `user`; explicit non-user values still refuse
698
- authorization with a reason.
699
- - Native Outpost message and resume routes now carry the owner's hire hierarchy,
700
- authorize local-host resume contexts on their owner, and continue lane lookup
701
- when another registered Outpost is unavailable.
702
-
703
- ### Added
704
-
705
- - Guide interactive CLI users to their first work-bearing sync and confirm it
706
- once, behind the `cli.first-sync-next-step` HQ flag.
707
- - Add `hq core commands --json` for the registered command catalog and guard the fast path, sibling references, and packaged assets.
708
- - Add a corpus recorder and differential runner for scaffold migration scripts.
709
- - Add `hq deploy comments list` and `read` for comments on apps in the caller's org.
710
- - Checkpoint ontology: behind `checkpoint.ontology.named-evidence` (off by
711
- default), a knowledge link to the company's own company entity, or a
712
- concept linked to its same-name project, needs evidence that names it as a
713
- word. A name that only appears inside a path, domain, handle or tag, such as
714
- `indigoai-us/hq` or `scope: company:indigo`, is rejected as
715
- `unnamed_in_evidence` (CO-57).
716
-
717
- ### Fixed
718
-
719
- - Add byte-for-byte checks for files fetched by `hq files get` and for
720
- `company.yaml` after cloud demotion, using hq-core-staging's company seed.
721
-
722
- ### Changed
723
-
724
- - Internal: moved the move, move-target and placement subcommands out of
725
- `src/commands/lanes.ts`; no behaviour change.
726
-
727
- ## [5.273.0] — 2026-09-28
728
-
729
- ### Fixed
730
-
731
- - `hq doctor --fix` rechecks after each repair and applies newly found fixes
732
- for up to three passes. It reports each repair's pass and lists every backup
733
- restore command.
734
- - `hq doctor --fix --json` includes each repair's pass and backup, and its
735
- restore command now undoes changes from every repair pass.
736
- - Wrapped merge commands now pass through both hold and review checks. If a
737
- merge command cannot be parsed, it is allowed with an unresolved repository
738
- when no enabled hold or review check applies.
739
- - A superseded worker still accepts messages from its recorded senior or a
740
- successor lead in the same company and project. Company identity is resolved
741
- from the lane or its project when the lane record has no company.
742
- - `hq lanes orphans` resolves null-company lanes through their senior chain and
743
- can list unresolved lanes with `--unscoped`. Idle user-senior lanes without
744
- open stories are reported after `--user-idle-hours` (default 72).
745
-
746
- ### Added
747
-
748
- - `hq doctor` checks whether the installed CLI meets the scaffold's declared
749
- `requiresHqCli` version floor.
750
-
751
- ### Removed
752
-
753
- - Removed the dead `lanes.tracker` record and import commands. Existing project
754
- tracker files stay in place; `hq lanes checks` and `hq lanes report` retain
755
- read-only access to the records they use.
756
-
757
- ## [5.272.0] — 2026-09-28
758
-
759
- ### Added
760
-
761
- - Add `hq core ontology merge-copies`, gated by
762
- `checkpoint.ontology.merge-copies`. It merges each `<name> N.md` entity copy
763
- into its own original (aliases, back-references, relationship links and
764
- signal count), repoints links to the copy, and with `--delete` removes merged
765
- copies from the vault. Dry run by default.
766
-
767
- ## [5.271.0] — 2026-09-28
768
-
769
- ### Fixed
770
-
771
- - `hq lanes create --outpost` reads `lanes.outpost-load-balancing` for the
772
- resolved company, so enabled personal worker profiles can run on an Outpost.
773
- - Resolve host-suffixed lanes created on a registered Outpost for grant,
774
- message, and resume commands while keeping senior authorization on the primary.
775
- - `hq lanes move-target` keeps the company placement gate, and unfiltered
776
- `hq lanes list` resolves the active company for host capacity.
777
-
778
- ## [5.270.0] — 2026-09-28
779
-
780
- ### Fixed
781
-
782
- - Company billing links in CLI plan-limit notices no longer depend on the
783
- rollout flag.
784
-
785
- ### Removed
786
-
787
- - Removed stale gate language from hire-grant command help. Enforcement remains
788
- unconditional; backfill remains dry-run only.
789
-
790
- ### Fixed
791
-
792
- - `hq files unshare --with` now accepts the same person UID principals as direct grants.
793
- - The update gate no longer retries failed Windows installs through `sudo -n`.
794
-
795
- ## [5.269.0] — 2026-09-28
796
-
797
- ### Fixed
798
-
799
- - Keep-alive no longer treats cancelled, killed, or failed project workers as
800
- replacement leads, and recognizes descendants whose session senior belongs
801
- to the lead.
802
- - Company-scoped lane flags resolve ownership from a complete lane company,
803
- then a complete mesh company, then the lane's unique project company.
804
-
805
- - Merge hold and review checks unwrap commands through common shell wrappers.
806
- Unparseable merge commands are blocked only when an enabled hold or review
807
- enforcement applies.
808
-
809
- ### Added
810
-
811
- - Add `hq lanes review` records and optional reviewed-head checks to
812
- `hq lanes hold check` for senior lanes.
813
-
814
- ## [5.268.0] — 2026-09-28
815
-
816
- ### Fixed
817
-
818
- - `hq core ontology duplicates` now proposes the original entity file as the
819
- survivor when it ties with its numbered copies (`hq-core 2.md`). Before, the
820
- path tiebreak picked the copy, which it did for 129 of 530 Indigo groups.
821
-
822
- ## [5.267.0] — 2026-09-28
823
-
824
- - Company billing links opened by CLI plan-limit flows now carry cli_limit attribution into checkout telemetry.
825
-
826
- ### Fixed
827
-
828
- - Local bots now read the idle inbox backoff flag with a 2 s budget. The
829
- 150 ms budget timed out from home networks, so bots kept polling every 2 s
830
- even when the flag was on for them.
831
-
832
- ## [5.266.0] — 2026-09-28
833
-
834
- ### Added
835
-
836
- - `hq daemon run --host desktop` lets the HQ desktop app run the daemon as its
837
- own child process. The daemon then runs sync even though the app is open, and
838
- records the app as its host in `state.json`. Older per-service installers
839
- such as `hq mesh daemon install` treat a hosted daemon as installed and hand
840
- their service to it.
841
-
842
- ## [5.265.0] — 2026-09-28
843
-
844
- ### Added
845
-
846
- - The `lanes.kr-freshness` flag tracks each manager KPI in a runtime-owned
847
- ledger and queues one corrective resume for each stalled KPI set. The
848
- freshness window defaults to six hours and can be set with
849
- `kr_freshness_hours` in the lanes config.
850
-
851
- ### Fixed
852
-
853
- - Reconcile resolves a missing lane company for keep-alive and supersession
854
- flag reads, and watch applies the same resolution to keep-alive checks.
855
- Unusable project ownership remains unresolved; reconcile reports
856
- `keep_alive_company_unresolved` or `keep_alive_flag_off` instead of silently
857
- skipping those candidates.
858
-
859
- ## [5.264.0] — 2026-09-28
860
-
861
- ### Removed
862
-
863
- - The `checkpoint.ontology.entity-hints` flag and its per-input `known_entities`
864
- list. It was never turned on outside measurement runs.
865
-
866
- ## [5.263.0] — 2026-09-28
867
-
868
- ### Fixed
869
-
870
- - The version gate compares offers with the running CLI and recognizes
871
- generated global shims before reporting a PATH shadow.
872
-
873
- ## [5.262.0] — 2026-09-28
874
-
875
- ### Added
876
-
877
- - The `checkpoint.ontology.concept-project-link` flag (off by default) lets
878
- checkpoint ontology link a knowledge concept whose alias is ambiguous to the
879
- one project with the same canonical name, such as HQ. It writes nothing.
880
-
881
- ### Fixed
882
-
883
- - `hq doctor --live-runtimes` uses a Windows `.cmd` shim only when the sibling file exists.
884
- - Flag reads validate company UIDs before registry requests while preserving local
885
- override precedence; Work Mesh ignores malformed UID overrides.
886
-
887
- ## [5.261.0] — 2026-09-28
888
-
889
- ### Fixed
890
-
891
- - Standing keep-alive leads now resume stories that remain open. Completed
892
- stories resume only on standing leads with queued work, and reconcile reports
893
- why other completed lanes stay idle.
894
-
895
- ## [5.260.0] — 2026-09-28
896
-
897
- ### Added
898
-
899
- - The `lanes.blocker-freshness` flag checks manager blockers after each turn.
900
- It resumes once for stale blockers, then alerts the senior on a repeated
901
- stale set. The window defaults to four hours and can be set with
902
- `blocker_freshness_hours` in the lanes config.
903
-
904
- ### Fixed
905
-
906
- - Blocker-freshness escalations now reach session seniors through the existing
907
- monitor-session inbox. Work Mesh is an optional signal, not delivery, and a
908
- failed delivery is retried on a later stale turn.
909
-
910
- ## [5.259.0] — 2026-09-28
911
-
912
- ### Fixed
913
-
914
- - The checkpoint stop gate now recognizes path-qualified `hq core checkpoint`
915
- commands without treating lookalike text as a checkpoint.
916
- - `hq doctor --live-runtimes` now invokes Windows npm shims through their `.cmd`
917
- entry points.
918
-
919
- ## [5.258.0] — 2026-09-28
920
-
921
- ### Fixed
922
-
923
- - Envelope repair runs through the currently installed CLI so a long-lived
924
- watcher cannot use stale worker-profile validation.
925
- - Updated the external-agent CLI guide to match the kit services, probe checks,
926
- shipped skills, and MCP tools.
927
- - Fixed the Docker agent-kit launcher to supervise configured services through
928
- `hq agent kit run all`.
929
- - `hq packages list` and `hq packs list` return an error when run outside an HQ tree.
930
- - `hq index collections` prints a summary when no collections are expected or registered.
931
-
932
- ## [5.257.0] — 2026-09-28
933
-
934
- ### Added
935
-
936
- - Add `hq lanes hold` to record company-scoped repository merge holds and
937
- refuse recognized merge commands while the `lanes.repo-merge-hold` gate is
938
- enabled. Hold history and release reasons stay in the local record. Checks
939
- fail open with a named error when they cannot parse a command or read a hold,
940
- and recognize pull-request URLs plus assignment, `env`, and `timeout` forms.
941
-
942
- ## [5.256.0] — 2026-09-28
943
-
944
- ## [5.255.0] — 2026-09-28
945
-
946
- ### Changed
947
-
948
- - Internal: moved watch, monitor-check, and wait handlers to src/commands/lanes-watch.ts; behavior is unchanged.
949
-
950
- ## [5.254.0] — 2026-09-28
951
-
952
- ### Added
953
-
954
- - The `lanes.manager-status-gate` flag checks a manager lane's declared
955
- status file after each provider turn. It queues at most one corrective
956
- resume if the file was not updated. An invalid or out-of-boundary mapping
957
- disables the gate for that lane and lets the lane start.
958
-
959
- ### Fixed
960
-
961
- - The end-of-session work report is no longer dropped when the background
962
- transcript watcher polls late or adopts a session after a restart. A
963
- synthesized `turn_end` now carries the transcript time, capped at now, and
964
- is never earlier than the last event sent for the session.
965
- - `hq db sql --remote` is hidden because remote SQL is not available in this
966
- CLI build. Existing scripts get a clear error, and local SQL remains
967
- available without `--remote`.
968
- - `hq secrets` and `hq run` now use cached secrets during a temporary server outage, up to each secret’s configured cache lifetime. The default is three hours; revoked and high-security secrets still fail closed.
969
-
970
- ## [5.253.0] — 2026-09-27
971
-
972
- ### Added
973
-
974
- - `hq publish --handle <handle>` publishes a pack under one of the creator handles your
975
- account owns, for accounts that own more than one. The server refuses a handle you do
976
- not own with a plain message. `--as` is unchanged and cannot be combined with `--handle`.
977
-
978
- ## [5.252.0] — 2026-09-27
979
-
980
- ### Added
981
-
982
- - `hq report publish` takes a snapshot of the finished page and publishes it as the report's preview image, using a browser already installed on the computer. A page that names its own preview image keeps it. If no browser is found the report publishes without a preview.
983
-
984
- ## [5.251.0] — 2026-09-27
985
-
986
- ## [5.250.0] — 2026-09-27
987
-
988
- ### Fixed
989
-
990
- - A Work Mesh session bound to a project and task keeps the binding episode the
991
- - An enrolled agent that sets `HQ_AGENT_DIR` now acts as that agent in every
992
- command, not only under `hq agent`. `hq dm` and `hq secrets` used to look
993
- for a person's session instead, find none, and open a browser sign-in. On
994
- the Runneth pilot that hung the first reply for four minutes. Only the
995
- explicit variable counts, so a bot living beside its owner on the owner's
996
- computer never takes over the owner's commands.
997
- - On an agent host (Linux, no terminal, no display), a missing session now
998
- fails at once with the fix instead of opening a browser sign-in that
999
- nobody can complete.
1000
- - `hq agent enroll --name` no longer overrides `HQ_AGENT_DIR`. A bot that
1001
- pointed its identity at persistent storage had it written under `$HOME`
1002
- instead, where a rebuild erases it, with a message claiming a person was
1003
- signed in when nobody was.
1004
- - `wake.log` no longer records the wake command's standard output. A wake
1005
- command's normal output (a routine record, an echoed prompt) is not
1006
- diagnostic, and on a share without permissions the log is readable by
1007
- anything with access to the share. Errors are still logged.
1008
- - Bots now reply in the group or channel a message came from. Their inbox
1009
- shows the channel id, `hq dm <channelId>` and the `hq_dm_send` tool post by
1010
- that id (including unnamed group DMs), and the wake and inbox instructions
1011
- say to answer there. Before, a bot answered a group message with a private
1012
- DM to the sender, so the group never heard back. The instructions also tell
1013
- bots not to answer another bot's greetings or sign-offs, so two bots stop
1014
- acknowledging each other in a loop.
1015
- - An agent whose identity files were moved or copied no longer goes silent an
1016
- hour later. The credentials file records where the host key lives; when that
1017
- path is gone and the key sits beside the credentials file, the CLI now points
1018
- at it before running any agent command. `hq agent probe` also fails when the
1019
- host key is missing, instead of passing on a cached token and leaving the
1020
- agent to fail at its next refresh.
1021
-
1022
- ## [5.249.1] — 2026-09-27
1023
-
1024
- ## [5.249.0] — 2026-09-27
1025
-
1026
- ### Fixed
1027
-
1028
- - Lanes flags with no registry row now quietly resolve off. Actual registry
1029
- read failures still emit their `flag_read_failed` event.
1030
- - Plan-limit notices prefer the current usage-limits upgrade URL and can use
1031
- the company console billing page as a default-off hq-flags fallback.
1032
-
1033
- ## [5.248.0] — 2026-09-27
1034
-
1035
- ### Changed
1036
-
1037
- - Internal: moved the message and resume subcommands out of src/commands/lanes.ts; no behaviour change
1038
-
1039
- ## [5.247.1] — 2026-09-27
1040
-
1041
- ### Fixed
1042
-
1043
- - `hq core hq-session set company_slug` accepts case-sensitive ASCII company
1044
- IDs that match company directory names and writes the same value to the
1045
- session scope capability.
1046
- - `hq bot create setup` stops before creating a bot when the reserved setup slug exists but its record cannot be verified.
1047
-
1048
- ## [5.247.0] — 2026-09-27
1049
- ### Changed
1050
-
1051
- - The default-off `lanes.supersession-lineage-aware` flag lets a worker's lane
1052
- keep-alive and message delivery continue when its newer lane senior or a
1053
- same-profile sibling under that senior would otherwise look like a replacement.
1054
- - Keep-alive setup reads lineage settings before provider locks, and message
1055
- eligibility rechecks lane and retirement state after that read.
1056
-
1057
- ### Changed
1058
-
1059
- - `hq agent kit install` no longer implies the `@reboot` crontab entry is
1060
- enough on its own. The entry is installed and does restart the kit on an
1061
- ordinary host, but on a container whose root filesystem is rebuilt each boot
1062
- both cron and the CLI are erased along with it. The line now says so and
1063
- says what to do instead.
1064
-
1065
- ## [5.246.0] — 2026-09-27
1066
-
1067
- ### Fixed
1068
-
1069
- - Every file the agent kit writes now works on storage that has no file
1070
- permissions. A bot whose agent home is a CIFS/SMB share (Azure Files) gets
1071
- EPERM from `chmod`, and the writes were hitting that one at a time: the wake
1072
- config could not be saved, so the bot could never be told mail had arrived,
1073
- and any message carrying an attachment failed on download. All of them now
1074
- go through one writer that asks for owner-only permissions, reports whether
1075
- they actually took, and carries on either way. The same writer makes those
1076
- writes atomic, so the inbox mirror, the seen/handled id lists, the kit
1077
- config, the heartbeat record and saved attachments can no longer be read
1078
- half-written by a concurrent poller. A chmod refused for any reason other
1079
- than a missing capability is still a real error.
1080
- - Picks up hq-cloud 6.18.10, which publishes the token refresh lock without
1081
- hard links so a bot on a network share can mint a token at all.
1082
-
1083
- ## [5.245.0] — 2026-09-27
1084
-
1085
- ### Fixed
1086
-
1087
- - Work Mesh sessions registered without a bound project (unresolved,
1088
- needs_project, needs_task) no longer store the register receipt as their
1089
- binding episode, and `hq mesh context bind-project` clears it. The server
1090
- dropped every session-event batch carrying that id, so turn and session ends
1091
- never landed and no work report posted. Existing state files are repaired on
1092
- the next flush.
1093
-
1094
- ## [5.244.0] — 2026-09-27
1095
-
1096
- ### Fixed
1097
-
1098
- - A bot whose agent home is on a network share can now mint a token. The
1099
- refresh lock was a POSIX hard-link lock, and CIFS/SMB shares — Azure Files
1100
- again — do not implement `link()` at all, so every mint failed with
1101
- ENOTSUP and took the whole probe down with it: no heartbeat ever posted
1102
- and the inbox poller retried and failed every 15 seconds. The lock now
1103
- falls back to an exclusive create, which gives the same guarantee and
1104
- works there. Contention still surfaces as EEXIST on both paths, so
1105
- stale-owner reclamation is unchanged, and a link that fails for any other
1106
- reason is still a real error.
1107
-
1108
- ### Changed
1109
-
1110
- - The setup bot no longer posts "This one takes a minute. I'll reply here as
1111
- soon as it's done." when a step runs long. Other bots keep their notice.
1112
- - After the bundled setup bot connects its first app, it says "Great, <Tool> is
1113
- connected" with a link to the company's integrations page on hq.computer.
1114
- - The bundled setup bot invites teammates through the new-hire flow when HQ
1115
- has it, and tells the person to have the invitee check their spam folder.
1116
-
1117
- ## [5.243.0] — 2026-09-27
1118
- ### Added
1119
-
1120
- - `hq auth login` remembers the last provider used on this computer and shows the Cognito provider choice page on first login. Only the provider name is stored locally.
1121
-
1122
- ### Changed
1123
-
1124
- - Internal: moved the accounts, sessions and questions subcommands out of src/commands/lanes.ts; no behaviour change
1125
-
1126
- ### Fixed
1127
-
1128
- - Removed the unused `cli.network.force-ipv4` hq-flags lookup and forced IPv4
1129
- startup path. The existing Node family-attempt timeout remains unchanged.
1130
- - `hq auth login` continues when it cannot read or save the remembered provider. It prints a dim warning with the state path and error code; a save failure does not turn a successful sign-in into a login failure.
1131
- - `hq doctor`, client health metadata, and feedback attachments now use the
1132
- newest sync-log source from the desktop app or configured daemon directory.
1133
- Daemon `HQ_DAEMON_DIR` overrides and log rotations are supported, and
1134
- numeric runner error levels count in health metadata.
1135
-
1136
- ## [5.242.0] — 2026-09-27
1137
-
1138
- ### Changed
1139
-
1140
- - Removed the completed `lanes.message-compaction-replay`,
1141
- `lanes.outpost-question-visibility`, and
1142
- `lanes.host-scoped-account-homes` gates. Their shipped behaviors now run
1143
- unconditionally.
1144
- - Account-home login and `set-home` no longer require an unrelated active
1145
- company selection when `--company` is omitted; explicit `--company` values
1146
- remain validated.
1147
-
1148
- ### Fixed
1149
-
1150
- - The `cli.install-path-compatibility` hq-flags key enables pnpm v11+ global-path recognition. On Windows, it also passes drive-path tarballs to tar by filename from the archive directory. The flag defaults to off.
1151
-
1152
- ## [5.241.0] — 2026-09-27
1153
-
1154
- ### Fixed
1155
-
1156
- - A bot whose only persistent storage is a network share can now enroll.
1157
- Enrollment wrote its credentials and then locked them to the owner, and on
1158
- a CIFS/SMB share mounted with a fixed file mode — Azure Files is the one
1159
- that found this — that last step fails outright. Enrollment died there,
1160
- left a temp file holding the private key behind, and offered no way
1161
- forward: the only writable alternative was storage a container rebuild
1162
- erases.
1163
-
1164
- The write now reports whether owner-only permissions actually took, rather
1165
- than assuming they did, and `hq agent enroll` says plainly when they did
1166
- not: the credential is readable by anything else with access to that
1167
- share. The file is still requested owner-only, the result is read back
1168
- from the filesystem instead of trusted, a refused chmod on ordinary
1169
- storage still fails loudly, and a failed write no longer leaves the secret
1170
- behind in a temp file.
1171
- - Resume can keep a lane on its recorded account when it uses a CLI-selected
1172
- model, even if that account's configured default differs. A lane without an
1173
- account allowlist may use any otherwise eligible account.
1174
- - With a worker-profile account pin, resume keeps a healthy recorded account
1175
- that is allowed by the pin even when the pin includes other accounts and the
1176
- recorded account's default differs from the lane's CLI-selected model.
1177
-
1178
- ## [5.240.0] — 2026-09-27
1179
-
1180
- ### Added
1181
-
1182
- - `hq lanes` worker profiles can pin a registry persona from `worker.yaml`.
1183
- The composed prompt includes the worker's instructions, skill paths, done
1184
- criteria, and stop checkpoints. Registry approval requirements are passed to
1185
- workers, enforced on external-action envelopes, and recorded through the new
1186
- senior-only `hq lanes approve` command.
1187
-
1188
- ## [5.239.0] — 2026-09-27
1189
-
1190
- ### Added
1191
-
1192
- - `hq core checkpoint` can skip a knowledge link to a concept entity whose
1193
- name is also the name of an entity of another type, such as a concept
1194
- `hq-secrets` beside a project `HQ Secrets`. The report lists the skipped
1195
- link as rejected with reason `ambiguous_type`. Signal and session inputs,
1196
- other links and new entities are unchanged. Behind the hq-flags flag
1197
- `checkpoint.ontology.skip-ambiguous-concept-links`, off by default.
1198
-
1199
- ## [5.238.0] — 2026-09-27
1200
-
1201
- ### Added: Lane orphan reporting
1202
-
1203
- - `hq lanes checks` includes an orphaned-lane check. The company-scoped
1204
- `hq lanes orphans` report lists candidates without changing their state. Add
1205
- `--stop --reason <text>` to stop candidates that remain orphaned on recheck
1206
- and record the reason in lane history.
1207
-
1208
- ## [5.237.0] — 2026-09-27
1209
-
1210
- ### Added
1211
-
1212
- - Lane-store creates and updates record their hq-cli version. User-invoked
1213
- writes from older CLIs are refused, while background writers preserve newer
1214
- stamps and record Outpost owner versions separately. `hq lanes checks` warns
1215
- about newer stamps, and `HQ_LANES_ALLOW_OLDER_WRITE=1` provides a one-command
1216
- override with a warning.
1217
-
1218
- ## [5.236.0] — 2026-09-27
1219
-
1220
- ### Changed
1221
-
1222
- - The bundled setup bot introduces itself by the name the desktop app gives
1223
- it. For someone who started their own company it offers, once, to put a copy
1224
- of itself in Slack (on the Workforce plan, checked rather than guessed), and
1225
- flags its finish card so the card offers it too. It never offers this to
1226
- someone who joined an existing company.
1227
-
1228
- - The bundled setup bot now starts by asking whether you want HQ explained
1229
- before setup or want to jump straight in. Its explanation puts the agents
1230
- you already use first (Claude Code, Codex, Cursor, agents in Slack, and
1231
- other agents connected in the HQ console), then your team, then bots. It
1232
- can walk you through a Slack agent, an outside agent, inviting a teammate,
1233
- and sharing a connected app or a key. It checks your company's plan before
1234
- talking about limits or prices instead of guessing, and it no longer says
1235
- inviting or sharing needs a paid plan. Same change as the setup worker in
1236
- hq-core.
1237
- - The bundled setup bot can end a message with two to four suggested replies
1238
- (likely answers to a closed question, or clear next steps) that the desktop
1239
- app shows as reply buttons. It leaves them out when the answer is something
1240
- only you can type, like a name or an email. Needs a desktop app that renders
1241
- them.
1242
-
1243
- ### Added
1244
-
1245
- - `hq bot create --display-name <name>` gives a bot the human name people see
1246
- in HQ (the DM list and how the bot introduces itself), up to 35 characters.
1247
- The handle stays the key for every `hq bot` command, and the server slug is
1248
- pinned to the handle, so the reserved setup bot and restore keep matching.
1249
-
1250
- ### Fixed
1251
-
1252
- - The setup bot no longer posts its notes to itself ("Now write the worker.")
1253
- into the chat. A message it writes right before a tool call is dropped; only
1254
- messages a turn ends on reach the person. When a step runs past 30 seconds
1255
- it now says "This one takes a minute. I'll reply here as soon as it's done."
1256
- - Bots no longer post a stray "(no reply)" right after a real message. The
1257
- fallback counted only posts whose delivery had finished, so a message still
1258
- being sent when the turn ended looked like silence.
1259
-
1260
- ## [5.235.0] — 2026-09-27
1261
-
1262
- ### Changed
1263
-
1264
- - `hq lanes` blocker, KPI, OKR, and directive commands, checks, imports, and
1265
- reports read and write records in each project's local `tracker/` directory.
1266
- The retired Work Mesh tracker path and question index were removed. KPI and
1267
- OKR approvals also verify and save any supplied answered question ID.
1268
-
1269
- ### Fixed
1270
-
1271
- - Removed the unused `cli.network.force-ipv4` hq-flags lookup and forced IPv4
1272
- startup path. The existing Node family-attempt timeout remains unchanged.
1273
-
1274
- ## [5.234.2] — 2026-09-27
1275
-
1276
- ### Fixed
1277
-
1278
- - The flag-registry worker now uses source embedded in the CLI, so package
1279
- updates can no longer cause startup failures by removing its script.
1280
-
1281
- ## [5.234.1] — 2026-09-27
1282
-
1283
- ### Fixed
1284
-
1285
- - A primary resume now confirms and syncs an Outpost lane queued during
1286
- owner-side admission. (#926)
1287
- - Outpost messages and account moves for children of primary-hosted lanes now
1288
- carry the bounded hire-grant context required by the owner. (#926)
1289
- - Outpost message resumes, moves, and admission queues now sync the returned
1290
- owner lane record back to the primary. (#926)
1291
-
1292
- ## [5.234.0] — 2026-09-27
1293
-
1294
- ### Added
1295
-
1296
- - A lane's senior can explicitly resume a failed lane's recorded provider
1297
- session with `hq lanes resume --from-failed --reason`; the secret-scanned
1298
- reason and recovered failure are recorded in lane history. Failed lanes
1299
- continue to refuse ordinary messages. (#927)
1300
-
1301
- ### Fixed
1302
-
1303
- - `hq agents stop` says the stop was accepted and shows the status the API returns, instead of saying the agent has already stopped. (#922)
1304
-
1305
- ## [5.233.0] — 2026-09-27
1306
-
1307
- ### Added
1308
-
1309
- - `hq lanes wait` exits on the first selected envelope, pending-question, or
1310
- state change across the requested lanes. It uses a startup baseline and a
1311
- bounded two-second poll interval.
1312
-
1313
- ## [5.232.0] — 2026-09-27
1314
-
1315
- ### Added
1316
-
1317
- - `checkpoint.ontology.sync-gated` (off by default) turns the checkpoint
1318
- ontology step on like `checkpoint.ontology`. Older CLI builds do not read it,
1319
- so it can be turned on widely without them. With either flag on, the step runs
1320
- only when the hq-cloud bundled with this CLI and the one the hq daemon runs
1321
- are both 6.18.7 or later; otherwise it skips and says which copy is older.
1322
- It also skips while the daemon's sync still runs from before its hq-cloud
1323
- copy was installed. `hq core ontology apply` checks again before it writes and
1324
- reports `sync_client_old` with the reason. Earlier hq-cloud releases pushed
1325
- stale copies of deleted entities.
1326
-
1327
- ## [5.231.1] — 2026-09-27
1328
-
1329
- ### Fixed
1330
-
1331
- - `hq crm entity upsert` checks CRM settings first and prints the enable hint without sending a write when CRM is disabled.
1332
-
1333
- ## [5.231.0] — 2026-09-27
1334
-
1335
- ### Added
1336
-
1337
- - Behind the off-by-default `checkpoint.ontology.first-name-people` flag, the
1338
- checkpoint ontology instructions tell the model to name a person by their
1339
- first name when neither the input nor the company's entities give more,
1340
- instead of leaving them out. With the flag on, apply also defers a one-word
1341
- person whose word starts an existing person's fuller name or alias (`John`
1342
- when `John Smith` exists), since the model cannot see the entity tree. With
1343
- the flag off the instructions and apply are unchanged.
1344
-
1345
- ## [5.230.2] — 2026-09-27
1346
-
1347
- ### Fixed
1348
-
1349
- - Resuming a terminal Outpost lane whose senior lives on the primary now checks
1350
- hire-grant capacity on both hosts using the primary hierarchy, then syncs the
1351
- running owner record back to the primary. An owner CLI that rejects the
1352
- hierarchy context now fails with an upgrade-required error instead of retrying
1353
- without the grant check.
1354
-
1355
- ## [5.230.1] — 2026-09-27
1356
-
1357
- ### Fixed
1358
-
1359
- - A queued account move keeps its pending resume without reserving a running slot.
1360
-
1361
- ## [5.230.0] — 2026-09-27
1362
-
1363
- ### Added
1364
-
1365
- - Behind the off-by-default `checkpoint.ontology.no-link-aliases` flag, a
1366
- checkpoint ontology candidate that links to an existing entity no longer adds
1367
- aliases to that entity's file. The plan records `link_aliases: false` and
1368
- apply reports the link without writing. New entities keep their aliases.
1369
- Most aliases written through links were other names the text mentioned next
1370
- to the entity, such as `Publisher` on `indigo`.
1371
-
1372
- ## [5.229.2] — 2026-09-27
1373
-
1374
- ### Fixed
1375
-
1376
- - Standing keep-alive leads now wait after done turns for drop-box messages,
1377
- undelivered answers, or pending resumes; queued answers are included in the
1378
- next turn.
1379
- - An unreadable question record no longer aborts reconciliation of other lanes.
1380
-
1381
- ## [5.229.1] — 2026-09-27
1382
-
1383
- ### Fixed
1384
-
1385
- - An authorized `hq lanes resume --worker` on an Outpost re-pins a changed
1386
- worker profile before spawn, preserves the provider session, records the
1387
- hash change in lane history, and syncs the resulting lane record to primary.
1388
-
1389
- ## [5.229.0] — 2026-09-27
1390
-
1391
- ### Added
1392
-
1393
- - Behind the off-by-default `checkpoint.ontology.entity-hints` flag, each
1394
- knowledge input in the checkpoint ontology plan lists up to 25 existing
1395
- entities whose name appears in the text the model reads
1396
- (`known_entities`). The model is told to use those names instead of naming a
1397
- new entity, and to skip glossary or translation table rows, paths and names
1398
- built from tags or slugs.
1399
-
1400
- ## [5.228.4] — 2026-09-27
1401
-
1402
- ### Fixed
1403
-
1404
- - Account history now distinguishes automatic moves caused by a quota hold, an
1405
- unavailable or logged-out account, or uneven load.
1406
-
1407
- ## [5.228.3] — 2026-09-27
1408
-
1409
- ### Fixed
1410
-
1411
- - Work Mesh tracker rows use the local record fields. Missing blocker
1412
- `opened_at` values use `createdAt`, and invalid mesh rows identify Work Mesh
1413
- as their source.
1414
- - KPI and OKR records retain their status when read from Work Mesh, including in
1415
- `kpi list`, `okr list`, and `team --json` output.
1416
-
1417
- ## [5.228.2] — 2026-09-27
1418
-
1419
- ## [5.228.1] — 2026-09-27
1420
-
1421
- ### Fixed
1422
-
1423
- - Reparenting an Outpost lane from the primary now dispatches to the owner,
1424
- where the hierarchy, tenant, depth, and enabled hire-grant checks are repeated.
1425
- The primary syncs the changed lane and each descendant whose depth changed.
1426
- `hq lanes show <lane-id>` refreshes that Outpost lane and its descendants
1427
- from the owner, including senior history, depth, and grants. Lane sessions
1428
- now share their lane's depth, and an SSM owner dispatch can change a
1429
- user-senior lane's grant without allowing a lane caller to impersonate the
1430
- user.
1431
-
1432
- ## [5.228.0] — 2026-09-27
1433
-
1434
- ### Changed
1435
-
1436
- - Lane hire grants and Claude account balancing are always active.
1437
- `backfill-grants --apply` refuses to write; dry-run output remains available.
1438
-
1439
- ## [5.227.1] — 2026-09-27
1440
-
1441
- ### Fixed
1442
-
1443
- - `hq files browse` and `hq files search` no longer crash on vaults with many objects.
1444
-
1445
- ## [5.227.0] — 2026-09-27
1446
-
1447
- ### Added
1448
-
1449
- - `hq lanes tracker`, `checks`, `import`, and `report` use the Work Mesh tracker
1450
- store when `lanes.tracker-mesh` is enabled. Company questions are indexed and
1451
- shared across hosts; reconcile polls for remote answers, wakes the owning lane,
1452
- and stamps delivery once.
1453
-
1454
- ## [5.226.0] — 2026-09-26
1455
-
1456
- ### Added
1457
-
1458
- - `hq staff reset-test-account <email>` wipes a designated test account through
1459
- the hq-pro admin API. Defaults to a dry-run that lists what would be deleted;
1460
- `--execute` prompts for the typed email confirmation before wiping, and
1461
- `--yes` skips the prompt. Refuses to run for callers whose stored email is
1462
- not on the staff list.
1463
- - `hq staff test-account add|remove|list` manages the designated-test-account
1464
- registry through the same admin API. `add` and `remove` require staff
1465
- callers; `list` returns the current registry entries.
1466
-
1467
- ### Fixed
1468
-
1469
- - `hq lanes message` now probes the worker PID and start time before queueing.
1470
- Watcher and reconcile recover accepted inbox messages through the same
1471
- resume path after classifying an exited worker; undrained messages on done,
1472
- killed, retired, or superseded lanes are archived as undeliverable.
1473
- - Failed queued-message recovery restores unaccepted claims to the inbox and
1474
- records the failure. Recovery also sees leftover draining and inflight files,
1475
- and synchronous classification shares watcher ownership to prevent duplicate
1476
- repair and resume work.
1477
- - `hq agent enroll --name <bot>` now works on a computer where a person is signed in. It enrolls into `~/.hq-agent/<bot>/` and refuses only if that folder already holds an agent. Before, it refused because of the person's login and told you to pass `--name`, which you already had. Enrolling with no name on such a computer (the default local folder) had the same bug.
1478
- - Pushes made as an agent now record the agent as the uploader. Before, on a computer where a person was also signed in, the files were stamped with the person's email and id.
1479
- - When the server refuses some paths in a push (for example, another member's file in a private folder `foo/`), the warning now says the server refused them, in `hq sync push`, `hq sync now` and `hq sync push --all`. Before, it said the files were outside your write access and to ask an admin for a grant.
1480
-
1481
- ## [5.225.0] — 2026-09-26
1482
-
1483
- ### Changed
1484
-
1485
- - Local bots can use the default-off `agents.inbox-poll-backoff-local-cli`
1486
- gate to increase idle inbox polling from 2 seconds to a capped 30-second
1487
- backoff. New messages and completed turns reset the cadence.
1488
-
1489
- ## [5.224.0] — 2026-09-26
1490
-
1491
- ### Added
1492
-
1493
- - `hq lanes import --company <slug> --dry-run` previews tracker records from
1494
- the mapped team ledgers and status files. `--apply` writes stable, proposed
1495
- records; later runs update changed imports and leave unchanged records alone.
1496
-
1497
- ### Fixed
1498
-
1499
- - When `hq daemon pin-hq-cloud` names a version that is not installed yet, the
1500
- daemon keeps running the newest installed hq-cloud instead of falling back
1501
- to the older copy bundled with the CLI, and logs a warning naming the
1502
- missing version. The updater then installs the pinned version and the
1503
- daemon switches to it. Before, a pin that did not match the installed copy
1504
- silently ran the bundled copy, which on one outpost meant a months-old sync
1505
- runner without recent fixes.
1506
-
1507
- ## [5.223.0] — 2026-09-26
1508
-
1509
- ### Fixed
1510
-
1511
- - Manual resume and explicitly opted-in keep-alive reconcile can move a lane
1512
- off a disabled or logged-out Claude account on the same host, preserving the
1513
- provider session, provider, and model. `hq lanes watch` reports each
1514
- logged-in-to-logged-out transition once with the affected lane ids. The
1515
- watcher stops polling terminal keep-alive lanes when no resume can run and
1516
- shares one local account probe across matching lanes per poll. Quota and
1517
- model failures keep their existing account-selection path and reason.
1518
-
1519
- - Client-health flag checks refresh expired person identity and use machine
1520
- identity when available. Identity refresh has a separate bound, and failed
1521
- lookups keep the existing doctor fallback path.
1522
-
1523
- ## [5.222.0] — 2026-09-26
1524
-
1525
- - Checkpoint ontology, behind `checkpoint.ontology.multi-writer` (off by
1526
- default): entity versions that sync set aside after losing a push race are
1527
- merged back at the start of each plan (aliases, back-references, the higher
1528
- `signal_count`, the later `last_updated`). Any other difference keeps both
1529
- and leaves the set-aside copy, and an entity deleted since is not
1530
- re-created. Every entity file the step writes is recorded in
1531
- `.hq/ontology-outbox/<company>.json`. The apply report counts duplicate
1532
- entity groups, and `hq core ontology duplicates --company <slug> [--json]`
1533
- lists them.
1534
-
1535
- ## [5.221.0] — 2026-09-26
1536
-
1537
- ### Added
1538
-
1539
- - `hq lanes report` prints the company-scoped owner report and `hq lanes team
1540
- <slug>` shows OKRs, KPI trends, work, blockers, and questions. Successful
1541
- reports save their per-company report time for the next report and team page.
1542
- PR, release, and deployment references on stories may be strings, integers,
1543
- or objects. Only timestamped objects count as activity. Invalid rows appear
1544
- under their team's errors, set exit status 2, and leave the saved report time
1545
- unchanged.
1546
- ## [5.220.0] — 2026-09-26
1547
-
1548
- ### Fixed
1549
-
1550
- - Lane questions now resolve their company from the lane's project before using
1551
- the active HQ company. Project ownership is used only when unique; otherwise
1552
- active-company selection applies without choosing a project owner. Legacy
1553
- questions can be answered with `--company <slug>` when lane or project
1554
- ownership cannot be resolved.
1555
-
1556
- - CLI updates no longer interrupt background flag refreshes when the
1557
- self-contained worker rollout is enabled.
1558
-
1559
- ## [5.219.0] — 2026-09-26
1560
-
1561
- ### Added
1562
-
1563
- - `hq lanes checks` reports six company-scoped tracker checks, prints the
1564
- records that need attention, and exits with status 2 when any check fails.
1565
- Input errors return a path-bearing error envelope with status 1. Teams come
1566
- from `juniors.json` mappings or projects with blocker, KPI, OKR, or directive
1567
- tracker records, so unrelated project PRDs are not read. Thresholds can be
1568
- adjusted in `personal/lanes/config.json`.
1569
-
1570
- ### Fixed
1571
-
1572
- - `hq lanes` questions now record their company and `delivered_at` when a lane
1573
- receives an answer. Secret-shaped question text and answer notes are rejected
1574
- before storage. Existing questions without a company remain readable.
1575
-
1576
- - Legacy personal-store answer notes continue to load from personal storage
1577
- after their lane gains mesh-company attribution.
1578
-
1579
- ## [5.218.0] — 2026-09-26
1580
-
1581
- ### Fixed
1582
-
1583
- - The reconcile summary now lists opted-in lanes it could not resume and why.
1584
- Stderr provides reason-specific guidance and recommends reapplying opt-in only
1585
- when that can help.
1586
-
1587
- ## [5.217.0] — 2026-09-26
1588
-
1589
- ### Fixed
1590
-
1591
- - Keep-alive resumes a lane interrupted by `exited_with_partial_output` when
1592
- the interruption followed its explicit opt-in. Quota and host-loss
1593
- interruptions, login failures, and stopped lanes remain ineligible.
1594
-
1595
- ## [5.216.0] — 2026-09-26
1596
-
1597
- ### Fixed
1598
-
1599
- - Lane watchers keep valid questions from a malformed `ask` envelope when
1600
- repair is skipped, cannot start, or still produces invalid output. The lane
1601
- stores the validation errors, and recovered question context includes them.
1602
- Repair spawns ignore unknown profile metadata and log the field names.
1603
- `hq lanes create` and `hq lanes resume --worker` keep strict validation.
1604
-
1605
- - `hq lanes` stops sending status updates for stories missing from the project
1606
- board. The watcher reports the refusal once per lane run and keeps appending
1607
- lane events.
1608
-
1609
- ## [5.215.0] — 2026-09-26
1610
-
1611
- ### Fixed
1612
-
1613
- - hq-cli 5.211.0 could resume a retired lead from its worker profile's
1614
- `keep_alive` value. Reconcile now requires an explicit lane opt-in written
1615
- after the latest envelope, and skips retired or superseded leads.
1616
-
1617
- ## [5.214.0] — 2026-09-26
1618
-
1619
- ### Added
1620
-
1621
- - `hq lanes keep-alive <lane-id> --on|--off` lets a lane's senior opt in on
1622
- the host that owns the lane.
1623
-
1624
- - `hq doctor` now checks the last hour of the sync runner log for stuck
1625
- realtime lag, cloud permission refusals, runner restart loops, device-limit
1626
- backoff, and repeated conflicts. Client health reports send these to Sentry
1627
- as reason codes and counts only.
1628
-
1629
- ### Fixed
1630
-
1631
- - The desktop app's first sync push now uploads files inside private folders.
1632
- The credentials the app hands to `hq sync push --creds-from-stdin` cannot
1633
- write there directly, so the push also passes the vault config to hq-cloud
1634
- 6.18.5, which sends those files through presigned uploads.
1635
-
1636
- ## [5.213.0] — 2026-09-26
1637
-
1638
- ### Fixed
1639
-
1640
- - `hq lanes accounts set-home` and `login` return
1641
- `company_selection_failed` for company-selection errors without a stack
1642
- trace. Other resolver failures remain `internal` and include a stack trace.
1643
-
1644
- ## [5.212.0] — 2026-09-26
1645
-
1646
- ### Changed
1647
-
1648
- - `checkpoint.ontology.ignore-annotations` now strips annotator entity lists from the ontology inputs only when the checkpoint sibling runs on grok. On a machine that falls back to claude or codex the model reads the annotated inputs as before, because Claude on stripped inputs lost 0.139 recall on the gold-v2 set.
1649
-
1650
- ## [5.211.0] — 2026-09-26
1651
-
1652
- ### Fixed
1653
-
1654
- - Reconcile now applies `keep_alive` from a recorded worker profile to older
1655
- lanes whose lane field is unset. An explicit lane value wins, unreadable
1656
- profiles fail closed and are reported, and `lanes show --json` identifies
1657
- the source of its effective value.
1658
-
1659
- ## [5.210.0] — 2026-09-26
1660
-
1661
- ### Fixed
1662
-
1663
- - Lane messages delivered during a provider turn are replayed after transcript
1664
- compaction when `lanes.message-compaction-replay` is enabled, limited to that
1665
- provider turn. Monitor events keep their data framing.
1666
-
1667
- ## [5.209.0] — 2026-09-26
1668
-
1669
- ### Added
1670
-
1671
- - Behind the off-by-default `checkpoint.ontology.grok-backend` flag, `hq core checkpoint --backend auto` tries grok first for the payload company and falls back to the usual order when grok is missing or crashed last time. The detached ontology plan reads the flag and records it in the company state directory, so the foreground checkpoint makes no network call; a flag change applies from the checkpoint after the next plan.
1672
- - Behind the off-by-default `checkpoint.ontology.ignore-annotations` flag, the checkpoint ontology plan gives the model a copy of each knowledge input without the old cloud annotator's `entities:` front-matter list and entity links, which were mostly wrong and which the model copied.
1673
-
1674
- ## [5.208.0] — 2026-09-26
1675
-
1676
- ### Fixed
1677
-
1678
- - `hq lanes accounts set-home` and `login` accept `--company <slug|uid>` and
1679
- scope the host-account-home flag read to that company.
1680
- - The `hq daemon` updater now installs new hq-cloud patch releases. It looks up the newest release in the bundled major version and installs that exact version. Before, `npm install` with a version range kept an installed copy that already matched the range, so the updater stayed on 6.18.1 after 6.18.2 was published. A failed lookup is reported as a failed update and installs nothing.
1681
-
1682
- ## [5.207.0] — 2026-09-26
1683
-
1684
- ### Added
1685
-
1686
- - The SessionStart hook can send client health reports straight to Sentry when
1687
- the company enables `client-health.sentry-direct`. Reports exclude doctor
1688
- text and company names. With the flag off, the hook keeps using the existing
1689
- feedback route.
1690
-
1691
- ## [5.206.0] — 2026-09-26
1692
-
1693
- ### Fixed
1694
-
1695
- - Startup recovery no longer waits the full install deadline when an unchanged retired hq-cli package remains beside the install. Node 24 ESM loader file-read `ENOENT` errors also enter the existing recovery path and receive a report tag.
1696
-
1697
- ## [5.205.0] — 2026-09-26
1698
-
1699
- ### Added
1700
-
1701
- - `hq lanes create` and `hq lanes resume` accept `--keep-alive`. When the
1702
- default-off `lanes.lead-keep-alive` flag is enabled, an opted-in lead lane
1703
- resumes after a `done` turn that leaves its story open. The first resume
1704
- waits at least five minutes; later attempts back off to an hour and stop
1705
- after 24 consecutive attempts.
1706
- `hq lanes show --json` reports the counter and next eligible time.
1707
- - Worker profiles accept boolean `keep_alive`. Add this key only after the
1708
- hq-cli release with this change is installed; older CLIs reject unknown
1709
- profile metadata.
1710
-
1711
- ### Fixed
1712
-
1713
- - Claude result text that says `Not logged in` or `Please run /login` now marks
1714
- a lane failed with `account_not_logged_in` when no envelope was written.
1715
-
1716
- ## [5.204.0] — 2026-09-26
1717
-
1718
- ### Added
1719
-
1720
- - `hq lanes accounts set-home` adds a host-specific home to the synced lane
1721
- account registry. Account status and Claude balancing now distinguish a
1722
- missing home from a signed-out account.
1723
-
1724
- ## [5.203.0] — 2026-09-26
1725
-
1726
- ### Added
1727
-
1728
- - `hq monitor` runs a script in the background and delivers each line it prints to a lane or to a Claude, Codex, or Grok session, marked as monitor data. `--persistent` keeps it running past the 30-minute limit of Claude's Monitor tool and cannot be combined with `--timeout`. An idle target gets a check-in every 55 minutes so its next turn still reads from the prompt cache. The command is off unless the `monitor.enabled` flag is on.
1729
- - `hq lanes message` and `hq lanes resume` now reach a Grok lane that has finished or is blocked. The lane records Grok's session id when it exits, and the follow-up continues that session with `grok --single --resume`. A Grok lane still cannot move to another Grok account.
1730
-
1731
- ## [5.202.1] — 2026-09-26
1732
-
1733
- ### Fixed
1734
-
1735
- - Security: `hq integrations` now masks credentials in MCP endpoint URLs in
1736
- text, JSON, connect hints, errors, and `hq doctor` integration remediation.
1737
- API requests still use the original endpoint URL.
1738
-
1739
- ## [5.202.0] — 2026-09-26
1740
-
1741
- ### Added
1742
-
1743
- - Behind the off-by-default checkpoint.ontology.company-brief flag, the checkpoint ontology plan writes company-brief.md from the local entities, signals and source index, with no model call; recent signals are dated through their source.
1744
-
1745
- ## [5.201.4] — 2026-09-25
1746
-
1747
- ### Fixed
1748
-
1749
- - Claude account balancing on lane resume now respects the attached worker
1750
- profile's account pin, skips accounts pinned to a different model, and treats
1751
- `--account` naming the current account as a keep request for message/resume.
1752
-
1753
- ## [5.201.3] — 2026-09-25
1754
-
1755
- ### Fixed
1756
-
1757
- - A flag-registry worker whose startup fails because the working directory was deleted or its package files were being replaced no longer creates a Sentry issue. Other flag-registry worker errors remain visible with a worker tag.
1758
-
1759
- ## [5.201.2] — 2026-09-25
1760
-
1761
- ### Changed
1762
-
1763
- - The checkpoint ontology plan tells the model to name a person by the full name the input or the company's entities give, not a first name alone.
1764
-
1765
- ## [5.201.1] — 2026-09-25
1766
-
1767
- ### Fixed
1768
-
1769
- - Outpost grant checks now include child lanes from the owning Outpost. Owner
1770
- records take precedence over duplicate primary records, and each grant
1771
- command reads the owner lane list once.
1772
- - Outpost grant checks re-read owner lanes under the hire lock and use the
1773
- validated Outpost CLI override for the lane-list probe.
1774
-
1775
- ## [5.201.0] — 2026-09-25
1776
-
1777
- ### Added
1778
-
1779
- - `hq daemon pin-hq-cloud <version>` pins the daemon-managed hq-cloud version to an exact semver within the bundled major, including prereleases; `--clear` removes the pin.
1780
-
1781
- ### Fixed
1782
-
1783
- - The daemon carries `Environment=` assignments from Linux `outpost-sync.service` drop-ins into its sync unit.
1784
-
1785
- ## [5.200.1] — 2026-09-25
1786
-
1787
- ### Fixed
1788
-
1789
- - `hq lanes questions show` and `answer` preserve `question_not_found` when
1790
- Outpost question visibility is disabled, even if an owned Outpost lane has
1791
- no company. `questions list --all-hosts` also omits the company-unavailable
1792
- error while the gate is off.
1793
-
1794
- ## [5.200.0] — 2026-09-25
1795
-
1796
- ### Fixed
1797
-
1798
- - `hq lanes list` now fetches Outpost hire summaries once per host and reuses
1799
- them for 60 seconds. Missing or invalid owner rows keep the local summary and
1800
- include a warning.
1801
-
1802
- ## [5.199.0] — 2026-09-25
1803
-
1804
- ### Added
1805
-
1806
- - `hq lanes questions list --all-hosts` reads questions from Outposts that own
1807
- this primary's lanes. Rows include the host, and an unavailable Outpost is
1808
- named in `errors` while local questions remain available. Remote rows use the
1809
- audience computed by the owner, and eligible Outpost reads run with bounded
1810
- concurrency. The primary can show and answer an Outpost-only question, then
1811
- save the owner's confirmed answer locally. Cross-host lookup requires the
1812
- company-scoped `lanes.outpost-question-visibility` hq-flags gate. Use
1813
- `--company` to limit a list or answer to one company.
1814
-
1815
- ### Fixed
1816
-
1817
- - Registry-backed hq-flags readers now use the central registry endpoint when
1818
- `HQ_FLAGS_API_URL` is unset or blank. Explicit endpoints and local overrides
1819
- keep precedence, and process-wide gates retain their legacy fallback until a
1820
- registry snapshot is ready.
1821
-
1822
- ## [5.198.1] — 2026-09-25
1823
-
1824
- ### Fixed
1825
-
1826
- - Session questions stay with live or unknown sessions until their configured
1827
- unanswered timeout; only a positive `session_end` advances immediately. When
1828
- there is no Work Mesh entry, hq-cli checks Claude transcript metadata in
1829
- configured account homes without opening transcript contents, using the
1830
- newest matching mtime. Metadata errors remain visible and do not block the
1831
- independent timeout. The timeout defaults to 600 seconds. A running-lane
1832
- answer reports `awaiting_next_tool_call` after its durable dropbox append.
1833
-
1834
- ## [5.198.0] — 2026-09-25
1835
-
1836
- ### Added
1837
-
1838
- - `hq lanes blocker`, `kpi`, `okr`, and `directive` commands record project
1839
- tracker data locally when the company-scoped `lanes.tracker` gate is enabled.
1840
- KPI and OKR sets remain proposals until explicitly approved, and resolved
1841
- blockers are hidden unless listed with `--all`.
1842
-
1843
- ### Fixed
1844
-
1845
- - A local bot no longer posts "I didn't finish that — I was restarted while I
1846
- was working on it" into a room on messages nobody addressed to it. An
1847
- unmentioned room turn interrupted by a restart or owner stop is now acked
1848
- and cleared silently on the next start; a saved final answer for that turn
1849
- is still posted, and DMs and @-mentioned room turns still get the notice
1850
- (2026-09-25 hq-launch-ga-testing incident). Markers written by older
1851
- versions without the new `silenceable` field keep today's behaviour.
1852
- - A grok turn that exits non-zero with a whole-stdout pretty-printed JSON
1853
- envelope (rather than NDJSON events) now logs the real error text —
1854
- `result` / `error.message` / `subtype` — instead of the last characters of
1855
- the JSON tail (`"costUsdTicks" | } | "numTurns" | }`). Log only; never
1856
- posted to a person.
1857
-
1858
- ## [5.197.0] — 2026-09-25
1859
-
1860
- ### Fixed
1861
-
1862
- - Concurrent QMD reindex runs after sync and `hq index sync` are serialized behind the shared lock when the default-off `qmd.reindex-single-flight` hq-flags canary is enabled. A skipped sync reports no successful update.
1863
- - Process-wide hq-flags gates now resolve with the active company's identifier when a company is bound.
1864
- - Concurrent `hq lanes` updates now wait for an in-progress project story-ledger
1865
- lock receipt, avoiding transient `story_ledger_lock_invalid` errors.
1866
-
1867
- ## [5.196.0] — 2026-09-25
1868
-
1869
- ## [5.195.1] — 2026-09-25
1870
-
1871
- ### Fixed
1872
-
1873
- - Local bots can no longer loop with each other in a room. Three guards close
1874
- - A checkpoint run from inside an HQ lane no longer passes the lane's identity
1875
- (`HQ_LANE_ID`, `HQ_PROJECT_ID`, `HQ_STORY_ID`, `HQ_POLICY_WORKER_DIR`) to the
1876
- background sibling. Before, the lane drop-box hook delivered the lane's
1877
- operator messages to the sibling instead of the lane.
1878
-
1879
- ## [5.195.0] — 2026-09-25
1880
-
1881
- ### Fixed
1882
-
1883
- - Work Mesh transcript-watch quiet `session_end` for hook-covered sessions now
1884
- uses the shared sequence and counts hook turns (#818).
1885
-
1886
- ## [5.194.1] — 2026-09-25
1887
-
1888
- ### Fixed
1889
-
1890
- - `hq core ontology apply` no longer creates a new entity that is probably an
1891
- existing one. A candidate whose alias is already another entity's name or
1892
- alias, or a person whose name contains every word of an existing person's
1893
- full name (for example "Chaudhry Hassaan Saleem" and "Hassaan Saleem"), is
1894
- held back and reported as a suspect duplicate.
1895
-
1896
- - `hq auth` and other CLI fetches can opt into IPv4-first networking through the
1897
- default-off `cli.network.force-ipv4` hq-flags gate. The canary is bounded and
1898
- keeps explicit Node network options in control.
1899
-
1900
- ## [5.194.0] — 2026-09-25
1901
-
1902
- ### Added
1903
-
1904
- - `hq core checkpoint` can now maintain the company ontology, the job the
1905
- cloud ontology gardener did. It is off unless the hq-flags flag
1906
- `checkpoint.ontology` is on for the checkpoint's company
1907
- (`HQ_FLAG_CHECKPOINT_ONTOLOGY` is the local override). When a checkpoint
1908
- names a company, the background sibling runs `hq core ontology plan`, which
1909
- checks the flag and lists the company knowledge and signal files that
1910
- changed since the last run, within a fixed input and token budget. The
1911
- sibling writes entity candidates for those files, and
1912
- `hq core ontology apply` validates them and writes them. It updates an
1913
- existing entity rather than creating a duplicate, and keeps entity ids in
1914
- the cloud's format. It writes only to the checkpoint's own company and never
1915
- follows a symlink. It adds a back-reference to each signal that names an
1916
- entity, skipping signals the gardener already linked, and a rerun changes
1917
- nothing. Files under `@{key}` audience folders are not read.
1918
-
1919
- ## [5.193.1] — 2026-09-25
1920
-
1921
- ### Fixed
1922
-
1923
- - Work Mesh project sync maps ledger states (`todo` to `queued`, `in_progress` to
1924
- `in_progress`, `in_review`/`verification`/`blocked` to `review`, and `done`/`dropped`
1925
- to `done`), with explicit `status` taking precedence and `passes` preserved. PRD
1926
- sync emits review transitions; Board readers preserve unknown status strings and
1927
- ignore unknown ledger states. `hq mesh project ensure --dry-run` previews merged
1928
- Board statuses without writing.
1929
- - Claude lane balance reports now normalize Outpost lane-list and queued show
1930
- views before strict lane-record validation, including `no_story_reason: null`.
1931
-
1932
- ## [5.193.0] — 2026-09-25
1933
-
1934
- ### Fixed
1935
-
1936
- - `hq secrets set` now handles a closed stdin descriptor during terminal cleanup.
1937
-
1938
- ### Improved
1939
-
1940
- - Sentry reports for failed skill-wrapper replacement now include bounded ownership-state tags.
1941
-
1942
- ## [5.192.2] — 2026-09-25
1943
-
1944
- ### Fixed
1945
-
1946
- - Create, resume, automatic repair, and apply now read
1947
- `lanes.claude-account-balance` from hq-flags. `HQ_FLAG_*` remains the local
1948
- override, and a registry read failure keeps the gate off. The
1949
- `accounts balance --json` report includes `balance_gate_enabled`.
1950
- - `hq lanes accounts balance --apply` now honors each lane's company-scoped
1951
- gate, skips disabled company lanes, and rechecks the gate before moving.
1952
-
1953
- ## [5.192.1] — 2026-09-25
1954
-
1955
- ### Fixed
1956
-
1957
- - `hq lanes questions answer` now resumes an asking lane as soon as its final
1958
- pending question is answered. When capacity or throttling prevents a start,
1959
- hq-cli queues the lane with an `answered_questions` resume and the answer
1960
- timestamp. It sends Outpost answers to the lane's owner and reports any
1961
- unanswered sibling questions or a named wake error. After the owner confirms
1962
- the answer, the primary's question copy is marked answered as well.
1963
-
1964
- ## [5.192.0] — 2026-09-25
1965
-
1966
- ### Added
1967
-
1968
- - `hq agents models` lists cloud-agent catalog entries by provider and supports JSON output.
1969
- Provision and update validate model IDs against the catalog. They use the cached
1970
- catalog when the endpoint is unavailable, and rely on server validation if no cache exists.
1971
-
1972
- ### Fixed
1973
-
1974
- - `hq report adopt` checks whether scheduled jobs are enabled for the company before creating a cloud job, and explains when the server rejects a disabled job.
1975
-
1976
- ## [5.191.0] — 2026-09-25
1977
-
1978
- ### Fixed
1979
-
1980
- - `hq agents provision` now rejects an invalid `--slug` before sending the agent create request.
1981
-
1982
- ## [5.190.0] — 2026-09-25
1983
-
1984
- ### Added
1985
-
1986
- - `hq lanes` validates story references against project `prd.json` files and records
1987
- explicit `--no-story` reasons. When `lanes.story-ledger` is enabled, lane state,
1988
- blockers, questions, and PR links sync back to project stories. Terminal history
1989
- writes are atomic and retry-safe. Stale-lock cleanup reclaims abandoned ownerless
1990
- locks after their directory ages while preserving fresh replacements.
1991
- `hq lanes status --project` summarizes workers, PRs, blockers, questions, and story
1992
- counts.
1993
-
1994
- ### Fixed
1995
-
1996
- - `hq bot promote` accepts server-signed upload URLs without SSE headers when the bucket supplies encryption. SSE header names are checked case-insensitively, and any supplied encryption must be a complete SSE-KMS pair.
1997
- - Company slug lookup errors now point to the supported `hq sources entities` command.
1998
-
1999
- ### Added
2000
-
2001
- - QMD native-binding startup failures after sync can emit an actionable warning
2002
- when the `qmd.reindex-startup-warning` hq-flags canary is enabled. The flag
2003
- defaults off, and sync still succeeds when indexing cannot run.
2004
-
2005
- ## [5.189.0] — 2026-09-25
2006
-
2007
- ### Added
2008
-
2009
- - `hq lanes resume` and `hq lanes message` accept `--effort <level>` for the next resumed provider turn. Attaching a worker profile applies its configured effort when the command has no effort flag. With neither option, the lane keeps its recorded effort. Outpost commands forward the flag and report `outpost_effort_unsupported` when the remote CLI rejects it.
2010
-
2011
- ## [5.188.1] — 2026-09-25
2012
-
2013
- ### Fixed
2014
-
2015
- - `hq lanes grant` now applies grants for Outpost-hosted lanes on their owner.
2016
- The primary sends a bounded hierarchy snapshot and its evaluated hq-flags
2017
- decision; the owner revalidates the authorized senior, applies carve,
2018
- occupancy, and terminal-parent checks, then syncs the changed record to the
2019
- primary. Dispatched lane errors include sanitized owner details.
2020
-
2021
- ## [5.188.0] — 2026-09-25
2022
-
2023
- ### Added
2024
-
2025
- - `hq lanes accounts balance --provider claude` reports per-host account load,
2026
- login state, and proposed moves. `--apply` moves only sessions between turns
2027
- and requires the default-off `lanes.claude-account-balance` hq-flags gate.
2028
- Claude lane creation now considers live lane counts across readable hosts,
2029
- including lanes whose real host identity is local on an Outpost. It checks
2030
- login on the target host, reports unknown login state separately, and records
2031
- the selection and any host gaps on the lane. Explicit `--account` choices
2032
- remain in effect. Automatic resume repair runs only while the balance gate is
2033
- enabled; with the gate off, disabled and logged-out accounts keep their usual
2034
- refusal behavior without reading other hosts.
2035
-
2036
- ## [5.187.0] — 2026-09-25
2037
-
2038
- ### Fixed
2039
-
2040
- - `hq mesh context prd-sync` sends only stories whose Board status changed (a first snapshot of already-done stories is not re-emitted). Quiet `session_end` summaries read Claude Code `result` lines and Codex/Grok `item.completed` agent messages, not only `type=assistant` turns.
2041
-
2042
- ## [5.186.0] — 2026-09-25
2043
-
2044
- ### Changed
2045
-
2046
- - A local bot's scheduled jobs now live with the bot. `hq bot jobs` stores them in the bot's folder (`jobs.json`) and the running bot fires them itself, through the same path as a cloud-fired job. No cloud setting is involved. A run missed while the computer slept or the bot was stopped runs once as a catch-up; a job never overlaps itself. The 25-job cap per bot is unchanged.
2047
-
2048
- ## [5.185.1] — 2026-09-25
2049
-
2050
- ### Fixed
2051
-
2052
- - `lanes.hire-grants` resolves its company-scoped hq-flags value before gating.
2053
- A valid local override wins; missing rows or failed reads leave enforcement
2054
- off. Backfills check the unscoped value and each target company's value
2055
- before writing. `hire_grant_exhausted` names the grantor and includes the
2056
- same recovery message in JSON and on stderr.
2057
-
2058
- ## [5.185.0] — 2026-09-25
2059
-
2060
- ### Fixed
2061
-
2062
- - Local bots no longer post their no-reply signal, narration, blank messages, or raw model errors into rooms. On a room message that does not mention the bot, in-between messages and the working notice are held until the turn ends, and nothing is posted when the reply is the `{"action":"no_reply"}` signal or empty. Any model failure on such a turn (not only a Grok `reasoning_only` empty response, but every model error) is now silent instead of leaking "I didn't finish that — <model> stopped with an error: <raw excerpt>" into the room. When the turn does produce content, the held in-between messages are posted alongside the final answer, so a bot that answers mid-turn and ends with a short sign-off (claude/codex) no longer loses the answer; a Grok final that just concatenates the in-between messages still posts once with no duplication. The signal is never posted as progress anywhere. DMs and @-mentions still stream and still get a reply; a `reasoning_only` failure there now says "the model returned no answer" instead of the raw internal error, and other failures there keep the existing "did not finish" message. The room prompt also tells the model to produce no output rather than explain that it is staying silent.
2063
-
2064
- ## [5.184.0] — 2026-09-25
2065
-
2066
- ### Fixed
2067
-
2068
- - Work Mesh transcript-watch now emits `session_end` for hook-covered sessions that have already been quiet for 10 minutes when first seen (the live skip path that left `skippedHook=411 ended=0`). Held/spool rescans stamp last hook activity from each event's `at`, not the scan clock, so leftover `held.jsonl` lines cannot reset the quiet timer.
2069
- - Quiet `session_end` (and SessionEnd flush) send an optional one-sentence summary of the last assistant reply (~140 chars, tokens and secrets-file paths redacted), plus git repo, branch, and PR URLs when cheap.
2070
-
2071
- ### Added
2072
-
2073
- - `hq lanes` validates story references against project `prd.json` files and records
2074
- explicit `--no-story` reasons. When `lanes.story-ledger` is enabled, lane state,
2075
- blockers, questions, and PR links sync back to project stories. Terminal history
2076
- writes are atomic and retry-safe. Stale-lock cleanup reclaims abandoned ownerless
2077
- locks after their directory ages while preserving fresh replacements.
2078
- `hq lanes status --project` summarizes workers, PRs,
2079
- blockers, questions, and story counts.
2080
-
2081
- - `hq doctor --json` includes stable sync `reasonCode` enums. Client-health reports add `checkId: reasonCode` pairs only when the company-scoped `client-health-sync-reason-codes` hq-flags gate is enabled. `hq doctor --fix --json` reports refresh-sync outcomes without raw error details.
2082
-
2083
- - Repair known stale QMD collection paths behind the default-off `qmd.collection-path-repair` hq-flags canary while preserving collection metadata.
2084
-
2085
- ## [5.183.0] — 2026-09-25
2086
-
2087
- ### Added
2088
-
2089
- - `hq core sentry report` can attach bounded hook-timeout timing context to Sentry events when the company-scoped `hook-timeout-debug-context` flag is enabled. The flag defaults off.
2090
-
2091
- ## [5.182.0] — 2026-09-24
2092
-
2093
- ### Fixed
2094
-
2095
- - `hq mesh daemon status` now asks the service manager whether the daemon is loaded (`launchctl print` on macOS, `systemctl --user is-active` on Linux). Before, it never probed and always reported "installed (not loaded)" or "installed (inactive)", even while the daemon was running.
2096
-
2097
- ## [5.181.0] — 2026-09-24
2098
-
2099
- ### Changed
2100
-
2101
- - `hq daemon` runs the session host from the hq-cloud copy it keeps up to date (hq-cloud's `hq-outpost-session-host`, when that copy has it), the same way it already runs sync and the outpost heartbeat, and restarts it after an hq-cloud update. Session-host fixes, such as starting on an Outpost that signs in with machine credentials, now reach boxes without an hq CLI release.
2102
-
2103
- ## [5.180.0] — 2026-09-24
2104
-
2105
- ## [5.179.1] — 2026-09-24
2106
-
2107
- ### Added
2108
-
2109
- - `hq dm send` now takes `--audience <human|agent|both>` so a bot or operator
2110
- can declare who a DM is for, and the `hq_dm_send` bot tool accepts the same
2111
- optional field. Local bot turns tag in-between progress messages as `agent`
2112
- and the final reply as `human` by default, so status chatter stays out of a
2113
- person's inbox while the answer they need still reaches them. `hq dm inbox`
2114
- and `hq dm thread` mark agent-audience messages with an `[agent]` tag.
2115
-
2116
- ### Fixed
2117
-
2118
- - Windows checkpoint stamps now use atomic replacement and bounded retries for
2119
- transient filesystem errors, so a brief lock does not abort the checkpoint.
2120
-
2121
- ## [5.179.0] — 2026-09-24
2122
-
2123
- ### Fixed
2124
-
2125
- - `hq integrations connect --client-id` with a Google OAuth client (`*.apps.googleusercontent.com`) now warns that the client must be of type "Web application" and prints the redirect URI to register. A "Desktop app" client cannot accept HQ's hosted callback, and Google reports that only after the browser is open.
2126
-
2127
- ## [5.178.0] — 2026-09-24
2128
-
2129
- ### Fixed
2130
-
2131
- - Work Mesh transcript-watch still tracks hook-covered sessions (interactive Claude/Codex) and enqueues `session_end` after 10 minutes of quiet. Hooks keep owning start/turn events; the quiet `session_end` is the channel work-report trigger those sessions were missing. Resume (transcript mtime or a later hook event) resets the timer. A SessionEnd hook within 60s of that emit is not treated as resume, so `/exit` does not double-fire.
2132
- - Reloading a macOS LaunchAgent (`hq mesh daemon install`, including `--if-stale` and the post-update restart, `hq daemon install`, `hq agent kit` services, and bot agents) now waits for `launchctl bootout` to finish before bootstrapping. Before, bootstrap could race the old job's teardown, fail with "Bootstrap failed: 5: Input/output error", and leave the service unloaded with nothing running. Bootstrap now polls `launchctl print` for up to 10 seconds, retries EIO with backoff (0.5s to 8s), and on final failure either restarts the still-loaded previous job or reports that the service is NOT loaded with the `launchctl bootstrap` command to fix it.
2133
-
2134
- ## [5.177.0] — 2026-09-24
2135
-
2136
- ### Added
2137
-
2138
- - `hq lanes create --hire-grant`, `hq lanes grant`, and `hq lanes backfill-grants`
2139
- manage alive child-lane grants. `lanes.hire-grants` defaults off; lane list and
2140
- show include grant and alive-child counts. Terminal child resume, message, and
2141
- account-move paths recheck occupancy and remaining grant allocation. The
2142
- backfill defaults to dry-run.
2143
- - When `lanes.hire-grants` is enabled, `hq lanes list` and `hq lanes show` use counts
2144
- from the owning Outpost for active remote lanes. If the Outpost does not return
2145
- counts, both commands show local counts and a warning.
2146
-
2147
- ## [5.176.0] — 2026-09-24
2148
-
2149
- ### Fixed
2150
-
2151
- - `hq bot create setup` restores the account's existing setup bot when the local copy is missing.
2152
-
2153
- ## [5.175.0] — 2026-09-24
2154
-
2155
- ### Fixed
2156
-
2157
- - `hq agent kit` now shows missing external credentials at a home-relative path and reports the missing enrollment as an actionable precondition.
2158
- - Missing external agent credentials show an actionable error without creating a Sentry fault.
2159
-
2160
- ## [5.174.0] — 2026-09-24
2161
-
2162
- ### Fixed
2163
-
2164
- - Outpost worktree pruning now tolerates cwd `EACCES` only for the verified
2165
- same-user systemd `(sd-pam)` helper. Other same-user cwd failures and all fd
2166
- scan failures remain fail-closed. This entry was listed under 5.173.0 by
2167
- mistake: 5.173.0 was tagged before the change merged, so it first ships here.
2168
-
2169
- ## [5.173.0] — 2026-09-24
2170
-
2171
- ### Fixed
2172
-
2173
- - `hq bot stop <name>` run from inside that bot's own turn now lets the turn finish: it signals the bot to drain (finish the running turn, post the reply, exit 0), which launchd leaves stopped. Before, it booted out the bot's own launchd job, which killed the bot, the turn, and the stop command itself (exit 137), so no reply was posted. `hq bot restart <name>` from inside the bot's own turn is refused with instructions, and `hq bot start` from inside the bot skips the agent reload.
2174
- - Bot LaunchAgents and systemd units, the Work Mesh daemon unit, the `hq daemon` unit, and the lanes and agent-kit units now name node by its upgrade-stable path (`/opt/homebrew/bin/node` or `/opt/homebrew/opt/<formula>/bin/node`, or nvm's `current` link) instead of the versioned `/opt/homebrew/Cellar/node/<version>/bin/node`. Before, `brew upgrade node` deleted that path and launchd could no longer start the bots. The stable path is used only when it resolves to the same node binary; otherwise the unit keeps the resolved path as before.
2175
- - Installed bot LaunchAgents that still name a versioned or missing node are repaired: `hq bot start` rewrites and reloads the agent, a bot started by launchd rewrites its own agent and reloads it from a detached shell before it takes any message, and `hq doctor` reports it (`bots.<name>.daemon-node`), with `hq doctor --fix` rewriting only the plist file and not reloading launchd. `hq bot list` and `hq bot status` flag a missing node binary. `hq mesh daemon install --if-stale` also reinstalls a same-version unit whose node path is missing or versioned.
2176
-
2177
- ## [5.172.0] — 2026-09-24
2178
-
2179
- ### Changed
2180
-
2181
- - The `hq daemon` updater keeps hq-cloud current as well. Every 6 hours it
2182
- installs the newest hq-cloud with the same major version into
2183
- `~/.hq/daemon/hq-cloud`, and it restarts sync and the outpost heartbeat
2184
- right after an update. The daemon runs sync, and the heartbeat when that
2185
- hq-cloud has `hq-outpost-heartbeat`, from whichever copy is newer: this one
2186
- or the one bundled with the CLI.
2187
- - `hq daemon` sync pushes local changes as they happen (`--event-push`), the
2188
- same as outpost sync does today.
2189
-
2190
- ## [5.171.0] — 2026-09-24
2191
-
2192
- ### Fixed
2193
-
2194
- - Local bots (`hq bot run`) now restart onto an updated hq-cli install. A
2195
- running bot checks the installed package behind its launch path every
2196
- minute. When a complete, valid, different version is seen on two checks in a
2197
- row, it stops taking new inbox items, lets running turns finish (queued items
2198
- stay un-acked for the next process), logs
2199
- `hq-cli updated <old> -> <new>; restarting to load it`, and exits 75 so
2200
- launchd, systemd, or `hq daemon` starts it again. A bot with no supervisor
2201
- starts its own replacement first. The new process logs its version at
2202
- startup and whether the update converged. A restart that comes back on the
2203
- old version blocks that target for 6 hours, and update restarts are capped
2204
- at 4 per hour. `hq bot status` shows the hq-cli version a bot is running.
2205
- Set `HQ_BOT_NO_CLI_UPDATE_RESTART=1` to turn this off.
2206
-
2207
- ## [5.170.0] — 2026-09-24
2208
-
2209
- ### Fixed
2210
-
2211
- - Switching the HQ session company (including `hq-session.sh set company_slug`) clears the Work Mesh project and task, posts `session_end` to the previous company, and holds a personal target as `needs_company`.
2212
-
2213
- ## [5.169.0] — 2026-09-24
2214
-
2215
- ### Fixed
2216
-
2217
- - `hq lanes create` and `hq lanes story <add|start|block|done>` keep story work
2218
- local when an existing Work Mesh Board rejects a missing story. The
2219
- `story_warning` identifies the project and story and suggests:
2220
- `hq mesh project ensure <projectId> --company <slug> --stories-file prd.json`.
2221
-
2222
- ## [5.168.0] — 2026-09-24
2223
-
2224
- ### Fixed
2225
-
2226
- - `hq mesh project set --stories-file` keeps live Board story status and
2227
-
2228
- - `hq mesh` ignores nonpositive, malformed, and expired `Retry-After` hints.
2229
-
2230
- ### Added
2231
-
2232
- - `hq daemon` keeps the hq CLI, Claude, Codex and Grok up to date on every machine type, desktops included, every six hours. It updates the login user's own copy of each tool through that tool's npm package or its own `update` command, and leaves a copy the user cannot write (for example one root installed in /usr) alone. On outposts the daemon also runs Codex remote control (the box's Codex runner) next to Claude remote control, keeps the session name the box's runner used, and restarts either one onto a newly installed Claude or Codex once the session has been quiet for 10 minutes, or after 2 hours at the latest. `hq daemon install` never sets the daemon up to run as root: a box runs it as the login user from `/etc/hq/machine-type`, the outpost runner unit, `--user` or `sudo`, and an outpost without the marker file is recognised from its runner unit. `hq daemon migrate --apply` also takes over the outpost runner watchdogs and the Codex update timer.
2233
- - Added outpost worktree cleanup commands for dry runs and pruning clean, aged
2234
- worktrees. Lane, session, and process references keep their worktrees. Pressure
2235
- and daily timers use the `outpost.worktree-pruner` hq-flags key, which starts off.
2236
- Live-lane `worker.out` files and matching Claude session transcripts are read in
2237
- bounded chunks. Transcript lookup reads only the file matching the lane's
2238
- provider session ID under `.claude*/projects/*`. An unresolved lane keeps
2239
- worktrees whose root, linked Git index, or linked Git `HEAD` changed at or after
2240
- its `created_at`; a missing or invalid start time keeps every candidate. A
2241
- never-spawned queued lane without a provider session does not hold a worktree.
2242
-
2243
- ## [5.167.0] — 2026-09-24
2244
-
2245
- ### Fixed
2246
-
2247
- - `hq lanes stop` sends Outpost-hosted stops to the owning host and updates the
2248
- local record after confirmation. If the Outpost already finished the lane,
2249
- the CLI syncs its terminal state.
2250
- - Story updates, reparenting, admission, question creation, and active answer
2251
- delivery return `lane_remote` when another host owns the lane. Message, resume,
2252
- and move keep their Outpost dispatch paths.
2253
-
2254
- ## [5.166.0] — 2026-09-24
2255
-
2256
- ### Changed
2257
-
2258
- - The setup bot can explain what HQ is: the shared context layer for a whole
2259
- team, their coding tools (Claude Code, Codex, Cursor) and every bot. It no
2260
- longer repeats the finish card in replies after setup ends.
2261
-
2262
- ## [5.165.0] — 2026-09-24
2263
-
2264
- ### Fixed
2265
-
2266
- - Codex lane starts and resumes now pass the assigned worker policy directory to
2267
- policy hooks.
2268
-
2269
- ## [5.164.0] — 2026-09-24
2270
-
2271
- ### Fixed
2272
-
2273
- - When a startup import fails, hq-cli checks for an update lock, a retired package
2274
- directory, or install-tree changes for 1.5 seconds. If none appears, it exits
2275
- with `npm install -g @indigoai-us/hq-cli@latest` instead of waiting 90 seconds.
2276
- Sentry context replaces the home-directory prefix with `~`.
2277
- - Sentry keeps the `guarded`, `unsettled`, `reexec-failed`, and `lock-held`
2278
- outcomes, adds `stale_tree` and `tree_state`, and tags `updater_source` when
2279
- known. The fingerprint remains `["InstallTreeTornError", "outcome:<token>"]`,
2280
- so the four existing outcome groups keep their keys.
2281
-
2282
- ## [5.163.0] — 2026-09-24
2283
-
2284
- - Workforce plan refusals in the CLI keep direct checkout for eligible companies.
2285
- The server upgrade URL stays visible; personal refusals and checkout failures can
2286
- open it. Non-TTY and JSON runs print only the URL and exit non-zero.
2287
-
2288
- - `hq mesh` sends at most 25 replayed events for a session in one flush. It honors `Retry-After` on 429 and 503 responses and stops waiting when the daemon shuts down.
2289
-
2290
- ### Added
2291
-
2292
- - `hq daemon` now also runs the `updater` (hq CLI and Codex updates every six hours, then restarts the daemon onto the new version), `remote-control` (`claude remote-control` in a private tmux session on outposts) and `jobs-reconcile` (the outpost jobs reconcile script every ten minutes). `hq bot`, `hq mesh daemon install` and `hq lanes reconcile install` hand their service to the daemon when it is installed instead of adding their own background unit. `hq daemon migrate --apply` stops the older HQ background units and moves their definitions aside so the daemon runs those services, and `hq daemon uninstall --restore-legacy` puts them back; The desktop app's own sync agent is never taken over.
2293
- - `hq daemon` runs all of a machine's HQ background services under one supervisor. `hq daemon install` works out whether the machine is a desktop, self-hosted server, outpost, agent box or agent kit, installs one background service, and starts that machine type's default services (sync, mesh, heartbeat, bots, lanes cleanup, search indexing and log rotation, depending on the type). `hq daemon enable|disable <service>` changes the list for one machine. `status`, `logs`, `restart` and `trigger` manage the running services. A service that an older background unit already runs is left to that unit, and `hq daemon migrate` only lists what it would take over. The command is hidden from `hq --help` while it rolls out. It needs no feature flag.
2294
-
2295
- ## [5.162.0] — 2026-09-24
2296
-
2297
- ### Fixed
2298
-
2299
- - An invalid envelope that remains after its repair turn no longer leaves a
2300
- lane inaccessible. Operators can resume or message a failed lane with a
2301
- recorded provider session, and the next envelope slot gets one new repair
2302
- attempt with the validation errors in the prompt.
2303
-
2304
- ## [5.161.0] — 2026-09-24
2305
-
2306
- ### Fixed
2307
-
2308
- - No-reader flag gates now honor only `true` and `false` in `HQ_FLAG_<KEY>`
2309
- overrides when the registry endpoint is unset or its reader is unavailable.
2310
-
2311
- ## [5.160.0] — 2026-09-24
2312
-
2313
- ### Added
2314
-
2315
- - Worker profiles can deliver validated policy files through an installed HQ
2316
- hook or include them in the prompt when the hook is unavailable. Resume and
2317
- message can attach a profile, and resume can attach a mesh company. Bot-owned
2318
- Claude profiles may rely on provider configuration for optional model,
2319
- account, effort, and fast-mode values.
2320
-
2321
- - Added `hq agents login-code`, which submits a Claude subscription code from
2322
- an argument or stdin. Provisioning help shows the Agents v2 command and
2323
- account requirement. Claude subscription creates print the console URL and
2324
- login-code command.
2325
-
2326
- ### Fixed
2327
-
2328
- - If a Codex or Claude worker exits without writing this run's envelope, hq lanes
2329
- gives its session one resume turn to write the expected file. The watcher and
2330
- dead-host recovery ignore earlier envelopes. If the repair still writes no
2331
- valid envelope, the lane remains interrupted.
2332
-
2333
- ## [5.159.0] — 2026-09-24
2334
-
2335
- ### Fixed
2336
-
2337
- - Hook timeout reports now identify the slow child hook and group concurrent
2338
- session-wide slowness together. Update checks have bounded network calls, and
2339
- the core-write guard avoids repeated subprocess work.
2340
- - Machine-wide hook warnings and exceeded timeouts now keep separate Sentry
2341
- groups, and per-script rate limits no longer suppress a later machine-wide
2342
- report from the same session.
2343
-
2344
- ## [5.158.0] — 2026-09-24
2345
-
2346
- ### Added
2347
-
2348
- - `hq lanes create --placement auto` selects a host with room for the provider and account. Managers can set `--default-placement` for their workers, `hq lanes list` shows capacity by host while `lanes.outpost-load-balancing` is enabled, and `hq lanes move` can relocate a queued lane that has not started. Remote worker profiles must match the creator's content hash.
2349
- - `hq lanes outpost-identity backfill --id <id>` fills a missing Outpost marker without replacing another value. New Outposts write their id to `/etc/outpost/outpost-id` so lane commands can identify the host.
2350
-
2351
- ## [5.157.0] — 2026-09-24
2352
-
2353
- ### Fixed
2354
-
2355
- - Local bots (`hq bot run`) now receive HQ chat attachments. The runner reads
2356
- `attachments` on each inbox item, downloads every file with the bot's own
2357
- machine identity through the same checks `hq_attachment_fetch` uses (chat
2358
- attachment path only, DM must include the bot, company must be one of the
2359
- bot's own, 26 MiB cap), and saves it under `~/.hq/bots/<name>/attachments/`
2360
- (dir 0700, files 0600). The turn text lists each file's name, type, size and
2361
- local path, with small text files inlined; a file that could not be fetched
2362
- gets a one-line reason, which is also logged. A message that is only an
2363
- attachment is answered instead of being acked and dropped. Claude turns get
2364
- `--add-dir` for the attachments folder so gated permission modes can read it.
2365
- The MIME type is also read from the server's `kind` field.
2366
-
2367
- ## [5.156.0] — 2026-09-24
2368
-
2369
- ### Fixed
2370
-
2371
- - Project-thread lookup treats an omitted server `kind` as the project thread,
2372
- preventing duplicate project threads when a newer lane thread is present.
2373
- - Lane admission reservations are refreshed after Work Mesh lane-thread
2374
- registration so slow registration cannot age the reservation before spawn.
2375
-
2376
- ### Added
2377
-
2378
- - `hq mesh project register --channel` and `project set --channel` can bind an
2379
- existing channel to project events. `hq mesh check --project` shows lane
2380
- identity and status, including terminal lane threads.
2381
- - Lane mesh threads keep a stable lane id across resume and account moves.
2382
- Events include the worker profile, model, account, parent lane, and senior
2383
- owner. Stop and dead-host recovery events close terminal threads.
2384
-
2385
- ### Tests
2386
-
2387
- - Cover server-shaped project-thread results and reservation timing after
2388
- lane-thread registration.
2389
-
2390
- ## [5.155.0] — 2026-09-24
2391
-
2392
- ### Fixed
2393
-
2394
- - Lane respawns keep their recorded account to preserve provider sessions and
2395
- prompt caches. Automatic moves now record why they happened and are limited
2396
- to model changes, usage limits, and unavailable or logged-out accounts.
2397
- - Account retries share the provider admission lock and the host-scoped provider,
2398
- account, and profile checks used by normal admission. Active reservations and
2399
- earlier eligible queue entries keep their place; blocked retries remain queued
2400
- for normal admission. Retries skip accounts already rejected for login and
2401
- retain message, resume, and answer context when queued.
2402
- - Watcher retries resolve the current process hostname and Outpost identity, so
2403
- local-kind and Outpost-kind lanes on one Outpost share admission caps.
2404
- - Account enable and registration now require a positive login check. Provider
2405
- startup messages for logged-out accounts trigger failover to another eligible
2406
- account or a named `account_not_logged_in` failure.
2407
-
2408
- ### Added
2409
-
2410
- - Provider config can list accounts in preference order for a lane's first
2411
- assignment. Disabled, logged-out, usage-limited, and capped accounts are
2412
- skipped. If no preferred account is eligible, hq-cli chooses the least-loaded
2413
- eligible account. Running and resumed lanes keep their recorded account.
2414
-
2415
- ## [5.154.0] — 2026-09-24
2416
-
2417
- ### Fixed
2418
-
2419
- - Local bots can now open files attached in HQ chat. The new `hq_attachment_fetch` agent tool downloads a chat or DM attachment into a private folder under the bot's agent directory and returns its local path, content type, and size (text files also come back inline). It accepts only the scope-relative `chat/attachments/...` paths that `hq_inbox_read` reports, fetches only from the bot's own company or from a DM the bot is part of, refuses files over 26 MiB, and uses the API the bot enrolled against. Because the attachment reference comes from the sender, any other vault path (for example `knowledge/...`, or a folder) is refused and the bot is pointed at `hq_files_read`. Previously `hq_files_read` rejected those paths and could not read binary files such as .xlsx.
2420
-
2421
- ## [5.153.0] — 2026-09-23
2422
-
2423
- ### Fixed
2424
-
2425
- - `hq mesh context prd-sync` rebinds a session to the PRD's project when that project is in the same company, then emits `task_status` against the new project so the Board and channel line land there. A PRD in another company is still skipped and does not rebind.
2426
-
2427
- ### Tests
2428
-
2429
- - Cover Outpost admission when account a is at its Codex cap and account b
2430
- has queued work with available capacity.
2431
- - Cover fresh pending resumes and answered-lane resumes against provider
2432
- capacity.
2433
-
2434
- ## [5.152.1] — 2026-09-23
2435
-
2436
- ### Fixed
2437
-
2438
- - Windows bot runtimes resolve provider binaries through PATH and PATHEXT, safely launch npm .cmd and .bat shims, pass multiline and long prompts through stdin or Grok ACP, and stop the full process tree.
2439
-
2440
- ## [5.152.0] — 2026-09-23
2441
-
2442
- ### Fixed
2443
-
2444
- - `hq mesh daemon install` (plain and `--if-stale`) now bootouts, bootstraps, and kickstarts the LaunchAgent after writing the plist. Bootstrap retries launchd `5: Input/output error` up to five times, one second apart. After a CLI upgrade, a loaded job whose program no longer matches the plist is reloaded the same way.
2445
-
2446
- ## [5.151.0] — 2026-09-23
2447
-
2448
- - `hq report publish` no longer fails when another app it cannot see holds the report's address. It publishes at the next free address (`<slug>-2`, then `-3`) and saves that address on the report.
2449
-
2450
- ## [5.150.0] — 2026-09-23
2451
-
2452
- ### Fixed
2453
-
2454
- - `hq lanes` now admits queued lanes by priority, then queue age, as provider, account, profile, or throttle capacity opens. Auto-balanced lanes can move to another eligible account when that account frees first. Create, message, resume, and pickup use the same admission checks. `hq lanes admit <lane-id>` reports the blocker, and authorized `--force` records `operator_force`. Reconcile refreshes queued reasons, and Outpost-hosted queued lanes appear as remote.
2455
-
2456
- ## [5.149.1] — 2026-09-23
2457
-
2458
- ### Fixed
2459
-
2460
- - The package now ships `scripts/mesh-daemon-if-stale.mjs`, which its postinstall step runs; a failure in that step never fails the install.
2461
-
2462
- ### Added
2463
-
2464
- - Lanes can carry several project stories with a warning for parallel active
2465
- work. Story commands now add, start, block, list, and complete carried work.
2466
- - Mesh lifecycle events include the story id, and board status moves through
2467
- `in_progress`, `blocked`, `review`, and senior-verified `done`. Missing
2468
- project views are repaired before a status patch is retried.
2469
-
2470
- ### Fixed
2471
-
2472
- - `hq mesh context prd-sync` adds missing Board stories before it emits, and
2473
- records a snapshot only for stories the server accepted or left unassigned.
2474
- A rejected story stays changed so the next `prd.json` write sends it again.
2475
- - The checkpoint Stop gate now accepts any non-whitespace reply by default.
2476
- `HQ_CHECKPOINT_REPLY_MIN` can still require a longer reply or disable the check.
2477
- - `hq lanes message` and text resumes now reach the lane's Outpost through the existing exec transport and report failure when delivery is not confirmed. Resumes keep the last known provider session id and recover its transcript from registered account homes before spawning.
2478
-
2479
- ## [5.148.0] — 2026-09-23
2480
-
2481
- ## [5.147.0] — 2026-09-23
2482
-
2483
- ### Fixed
2484
-
2485
- - Reinstalling an MCP server now updates its definition when the existing
2486
- Claude or Codex entry belongs to the same HQ pack. Unmarked and other-pack
2487
- entries still refuse replacement.
2488
- - `hq mesh context prd-sync` now moves the Board. Its task_status events carry the session's company and project, and take sequence numbers from the session's shared counter (the same file the hooks use), so the server no longer rejects them as duplicates. Rejections print their codes.
2489
- - The mesh daemon no longer treats a missing company slug, a membership timeout, or a lookup error as proof that the device owner is not a member. A device-default session that was cleared to `needs_company` is checked once against the configured default company and, when that membership is active, the company is put back and held events flush. The same cleared session is not counted as a new denial on every later flush.
2490
- - `hq mesh daemon install` records the absolute path of the CLI that ran it (realpath of `process.argv[1]`) and the absolute node binary. It does not look up `hq` on `PATH`. The daemon logs `daemon version=<x> entry=<path>` at start and stores both in `daemon/state.json`. `hq mesh doctor` and `hq mesh daemon doctor` say when that record does not match this CLI and name `hq mesh daemon install` as the fix, and they list every `hq` on `PATH`. `hq mesh daemon install --if-stale` reinstalls and restarts only when this CLI is newer. The package postinstall runs that flag.
2491
- - `hq mesh project ensure` no longer fails when the server refuses to close the extra genesis thread; it leaves that thread open and prints one line. Registration and the calling session's binding complete.
2492
- - The mesh daemon re-checks a `needs_project` or unresolved session when it flushes that session's events. If the project Board is now an exact or clear catalog match, the batch is posted with that project and the session file is bound. A tie or near miss stays `needs_project`. The check runs at most once a minute per session.
2493
-
2494
- ## [5.146.0] — 2026-09-23
2495
-
2496
- ### Fixed
2497
-
2498
- - The mesh daemon asks for presence in the device-default company and the companies with a session updated in the last day (at most five), and asks again within a minute when that set changes. `hq mesh doctor` says when a company was left out because presence is off or because one credential cannot cover every company.
2499
- - `hq mesh project ensure` closes a genesis thread only when that same call created it and register returns a different server `proj-` thread. An already-open project thread stays open on a re-run. The register route does not accept a client thread id.
2500
- - `hq mesh project ensure` on a new project closes the client genesis thread when register returns the server `proj-` thread, so the project has one open thread. The register route does not accept a client thread id.
2501
- - A session that registers or creates a project is bound to it. `hq mesh project ensure` and `hq mesh project set --create` bind the calling session when it is the same company and still `needs_project` or unresolved, and they leave a session that is already on a different project alone. The next prompt re-checks `needs_project` against the current catalog. `hq mesh context prd-sync --session <sid> --file <prd.json>` emits `task_status` when a bound session's story `passes` or `status` changes (`passes: true` is done, `in_progress` is in progress) and does not call the network when nothing changed.
2502
- - `hq report publish` now fills a report's missing company from its channel and keeps it across updates. Before, a report saved without a company was published under a personal access policy and the deploy refused it.
2503
-
2504
- ## [5.145.0] — 2026-09-23
2505
-
2506
- - `hq files` now preserves a trailing-slash private-folder pattern such as
2507
- `foo/` rather than rewriting it to `foo/*`, identifies private folders in
2508
- ACL and discovery output, and explains the conflict with an existing shared
2509
- glob. Quote a shared glob such as `'foo/*'` when invoking it from a shell.
2510
- - `hq report` now finds reports on project channels. It listed only personal channels and treated only company-wide channels as valid, so every publish from a bot on a project channel failed with a generic deploy error. Channel lookup errors now say what went wrong.
2511
-
2512
- ## [5.144.0] — 2026-09-23
2513
-
2514
- - Worker-profile models now use the same provider catalog validation as
2515
- `--model` during creation and before every later provider launch. The error
2516
- names the profile when its model is unsupported.
2517
- - Worker resolution continues to use the existing personal, core, installed
2518
- package, and company worker sources. hq-cli does not ship starter profiles.
2519
-
2520
- ## [5.143.0] — 2026-09-23
2521
-
2522
- ### Fixed
2523
-
2524
- - `hq dm` and report commands now reject non-recipient and non-company channel
2525
- requests locally, and report updates retry one fresh revision after a
2526
- conflict.
2527
- - `hq mesh project register` now verifies the company's Board view before
2528
- registering and reports an actionable local error when the Board is missing.
2529
-
2530
- ## [5.142.0] — 2026-09-23
2531
-
2532
- ### Added
2533
-
2534
- - Added reusable personal worker profiles for `hq lanes create --worker`, with
2535
- strict `meta.yaml` validation, content hashes, profile-default precedence,
2536
- provider-specific prompt/settings carriers, and reapplication on every fresh,
2537
- resumed, moved, repaired, and compaction spawn.
2538
- - Personal lanes can now use explicit `--mesh-company` attribution so their
2539
- project thread, presence, and lifecycle events appear in Work Mesh after
2540
- membership validation.
2541
-
2542
- ### Fixed
2543
-
2544
- - Account login now reuses a registered account home when `--home` is omitted.
2545
- Codex account login also accepts `--device-auth` for remote boxes without a
2546
- localhost browser callback.
2547
- - Checkpoint Stop-gate reply detection now uses the Stop payload when the
2548
- transcript has not flushed yet, and fails open with an ambiguity log when
2549
- neither reply source is reliable.
2550
-
2551
- ## [5.141.0] — 2026-09-23
2552
-
2553
- - `hq bot jobs` now checks the bot's configured agent ID against the machine credential before calling the jobs API. A mismatch reports both IDs and explains how to fix the bot configuration or re-mint its credentials.
2554
-
2555
- ## [5.140.0] — 2026-09-23
2556
-
2557
- ### Fixed
2558
-
2559
- - `hq lanes monitor-check` now recognizes a live Claude Monitor task launched through the CLI's shell/node process wrapper, so active lanes are not reported as uncovered.
2560
-
2561
- - A session hint now binds to the best existing project. An exact Board is used as-is. An exact local PRD gets a Board through the same genesis-thread, view, then register path as `project ensure`, and is bound. A single clear match is bound with a recorded reason. When nothing matches, or two candidates are close, the session stays `needs_project` and the start hook lists the candidates. `hq mesh context bind-project` applies the answer. A flush HTTP 404 downgrades that session, holds its events, and logs one line instead of dead-lettering them. `hq mesh doctor` lists `needs_project` sessions.
2562
-
2563
- ## [5.139.0] — 2026-09-23
2564
-
2565
- ### Added
2566
-
2567
- - `hq mesh project ensure <projectId> --company <slug> --stories-file prd.json` registers a missing Board view, merges an existing one without replacing live story status or assignee, then checks the company, project id, story ids, and repo paths. `hq mesh project set --create` writes a view when the GET is a 404.
2568
-
2569
- ### Fixed
2570
-
2571
- - `hq report` now resolves report ids through local channel context and channel report lists instead of probing every channel with a report GET that can produce avoidable 404s.
2572
-
2573
- ## [5.138.0] — 2026-09-23
2574
-
2575
- ### Fixed
2576
-
2577
- - `hq dm accept`, `decline`, and `block` now resolve pending requests to the
2578
- server's `personUid` field instead of sending unsupported action body fields.
2579
-
2580
- ## [5.137.0] — 2026-09-23
2581
- ### Added
2582
-
2583
- - Added `hq channels members <channel>` to print channel members for human and machine-principal sessions, with a `--json` format for scripts.
2584
-
2585
- ## [5.136.0] — 2026-09-23
2586
-
2587
- ### Added
2588
-
2589
- - Your local bots can now do work on a repeating schedule. Ask a company bot for something regular — "check the overnight errors every weekday morning" — and it sets the schedule up itself; you can also see and remove its schedules with `hq bot jobs <name>`. The schedule is kept in the cloud, not on your computer. If the Mac is asleep when a run is due, the run happens as a catch-up when it wakes, as long as that is within about an hour, and the bot's report says it ran late; after a longer outage that run is skipped and the job carries on at its next scheduled time. Personal bots can't schedule work yet.
2590
-
2591
- ## [5.135.0] — 2026-09-23
2592
-
2593
- ### Added
2594
-
2595
- - Claude lanes now set Claude Code's `CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`
2596
- control on fresh launches and session resumes.
2597
- `providers.claude.auto_compact_tokens` sets a positive-integer override, and
2598
- Codex and Grok launch environments are unchanged.
2599
-
2600
- - Added `hq lanes watch` for bounded state and question polling, plus
2601
- `hq lanes monitor-check` for Claude Monitor coverage with distinct exit codes
2602
- for uncovered lanes and unreadable evidence. The reminder text is available
2603
- from `hq lanes monitor-check --reminder`.
2604
- - Corrected watch JSONL output and question status transitions, bounded Monitor
2605
- recommendations to the watch limit, and made stale or unreadable Monitor
2606
- evidence fail closed.
2607
-
2608
- - Lanes can opt selected Codex model ids into fast mode with
2609
- `providers.codex.fast_mode_models`. Matching fresh and resumed runs pass
2610
- Codex's `service_tier="fast"` and `fast_mode` settings and record the
2611
- decision in the lane record and `spawn.json`.
2612
-
2613
- ## [5.134.0] — 2026-09-22
2614
-
2615
- ### Fixed
2616
-
2617
- - Agent-kit and local-bot heartbeat loops now stop after the server reports an
2618
- agent identity mismatch instead of retrying indefinitely. `hq doctor` shows
2619
- the configured and token agent IDs for the mismatch.
2620
-
2621
- ## [5.133.0] — 2026-09-22
2622
-
2623
- ### Fixed
2624
-
2625
- - Lane follow-ups now probe all enabled, logged-in accounts for an unpinned
2626
- model, preserve the later quota reset and its source, expire abandoned pickup
2627
- validation markers with a terminal reason, and parse Codex's ordinal
2628
- `try again at` reset time.
2629
-
2630
- - `hq sync push` no longer fails every file when the target vault was
2631
- provisioned on or after 2026-09-19. Those vaults carry an S3 Object Lock
2632
- default retention rule, and S3 refuses a PutObject into them unless the
2633
- request carries a content checksum; the CLI's declared `@indigoai-us/hq-cloud`
2634
- range still allowed a client that sends none, so an affected push reported
2635
- `400 InvalidRequest: Content-MD5 OR x-amz-checksum- HTTP header is required
2636
- for Put Object requests with Object Lock parameters` on every file. The
2637
- dependency floor now starts at the release that attaches the checksum, so no
2638
- install can resolve a client that cannot write to a locked vault. A CI guard
2639
- holds the floor.
2640
-
2641
- - Lane creation and re-parenting now allow depth 3. A depth-3 caller and any
2642
- derived depth 4 lane are refused with `max_lane_depth`.
2643
-
2644
- - Question ageing now derives its two-advance cap from the depth-3 lane cap, so
2645
- an unanswered worker-lane question reaches the user after two hourly hops.
2646
-
2647
- ## [5.132.0] — 2026-09-22
2648
-
2649
- ### Added
2650
-
2651
- - `hq lanes resume <lane-id> --account <id>` and `hq lanes message <lane-id>
2652
- --account <id>` move a lane's provider session to another account of the
2653
- same provider and continue it there, with its full history. The claude
2654
- transcript (`projects/<encoded cwd>/<session>.jsonl`, plus the session's
2655
- subagent directory) or the codex rollout
2656
- (`sessions/YYYY/MM/DD/rollout-*-<session>.jsonl`) is copied into the target
2657
- account's home; the source copy stays, and a copy the target already holds
2658
- is refreshed when it differs, so a lane moved back resumes the turns it ran
2659
- elsewhere. Every check runs before anything is copied or written: the lane must not be running (`lane_running`), the
2660
- target must be an account of the lane's provider
2661
- (`account_provider_mismatch`), exist, be enabled, be logged in, hold no
2662
- quota hold (`account_quota_held`), and know the lane's model; a target that
2663
- pins a different model needs `--model <id>` (new on both commands, accepted
2664
- only with `--account`). Grok lanes are refused with
2665
- `provider_session_not_portable`; a missing transcript or rollout with
2666
- `provider_session_missing`, naming the path searched. The record's
2667
- `account` moves, `account_history` gains an `operator_move` entry,
2668
- `last_resume.account` names the account the run started on, and
2669
- `hq lanes show` prints them; a record that changed after the move was
2670
- prepared is refused with `account_move_conflict`. The capacity decision
2671
- runs under the target account's admission lock, and a moved lane holds its
2672
- slot (`pending_resume`) until its spawn claims it, so two moves cannot share
2673
- one free slot. A target at its running cap queues the lane there with
2674
- `pending_resume`, and the reconcile pass resumes the session on the target,
2675
- honouring `--no-compact`. Mesh events for a moved lane carry `account` and
2676
- `account_move`. Credential files are never copied.
2677
-
2678
- - A provider-level turn failure is a named lane failure. When the worker's
2679
- stdout carries a codex `turn.failed` event, a Claude error result with an
2680
- HTTP status, or a grok error object, the watcher classifies the lane
2681
- `failed` with `terminal_reason: provider_rejected` and writes the
2682
- provider's message (capped), status, error class, `retryable`, and the
2683
- model and account the run used to `terminal_details`. Such an exit is never
2684
- `interrupted` and never spawns the envelope repair turn. A 429 stays on the
2685
- quota path. `hq lanes show` prints `terminal_reason` and
2686
- `terminal_details`.
2687
- - `hq lanes create --model` is validated against the provider's own model
2688
- list before anything is written: codex from the account home's
2689
- `models_cache.json`, grok from `grok models`, claude from the aliases and
2690
- full-name prefix in `claude --help`. An unknown id is refused with
2691
- `model_unsupported` naming the provider, the value, the source and the
2692
- accepted ids. A provider whose list cannot be read (missing, corrupt, or
2693
- unreadable cache; failed probe) is not validated. Validation runs before
2694
- the mesh thread is ensured and before the admission lock is taken, so a
2695
- refusal leaves nothing behind and a slow provider probe never holds the
2696
- lock. An unpinned create reads the list of every enabled account the
2697
- balanced choice could land on before the lock; the account is still chosen
2698
- under the lock, restricted to the accounts whose list accepted the model,
2699
- so nothing is refused once the mesh thread exists and no probe or catalog
2700
- read runs while the lock is held. A `grok models` or `claude --help` probe that exits nonzero
2701
- is not a catalog, whatever it printed, and skips validation. Every outpost
2702
- lane is validated at pickup on the executing host, after its account
2703
- binds, and fails with `model_unsupported` there; a lane cancelled during
2704
- the pickup probe stays cancelled and is not spawned. A picked-up lane is
2705
- stored ineligible for admission (`pickup_validation_pending`) until its
2706
- account binds, so the reconcile pass cannot spawn it while the probe is
2707
- out, and the failure write refuses an already-terminal or running record
2708
- inside its compare-and-swap.
2709
- - A codex `turn.failed` or grok error with status 429, or with no status and
2710
- a usage-limit or rate-limit message, now reaches the quota path (reset time
2711
- and account hold recorded) instead of ending `interrupted`, and skips the
2712
- envelope repair turn so the hold applies at once; an explicit non-429
2713
- status wins over quota-sounding text. The reconcile pass applies the same
2714
- routing when it recovers a lane whose worker and watcher both died. The
2715
- provider's output is scanned from the tail one line at a time, so a long
2716
- run's events are never all parsed and held at once. A 429 whose message
2717
- names no reset time holds the account for the provider's
2718
- `quota_default_hold_ms` (fifteen minutes unless configured), recorded with
2719
- `reset_source: default_hold`; a message with a reset time keeps that time.
2720
-
2721
- ### Fixed
2722
-
2723
- - `hq lanes reconcile install` no longer copies the installing shell's PATH
2724
- into the systemd unit. The unit PATH is, per resolved provider, the
2725
- directory holding the command name and the real binary's directory when a
2726
- symlink points elsewhere, then the hq binary's directory, then the node
2727
- binary's directory, then `/usr/local/bin:/usr/bin:/bin`, deduplicated; directories synced from
2728
- another machine's profile are left out.
2729
-
2730
- ## [5.131.0] — 2026-09-22
2731
-
2732
- ### Added
2733
-
2734
- - `hq files share` can post the share record to a project channel instead of a
2735
- DM: `--channel <name>` names the channel and `--mention <person>` (repeatable)
2736
- tags people in it. Using `--mention` without `--channel` is an error. If you
2737
- or a mentioned person are not members of that channel, access is still
2738
- granted and the record falls back to a DM, with a short note on the CLI.
2739
- - Offline preflight results the CLI can emit are published at
2740
- `contracts/preflight/v1/schema.json` and `fixtures.json` (included in the
2741
- package). `hq mesh contract preflight --print-fixtures` prints the same
2742
- document. A test fails if the committed fixtures drift from the emitter.
2743
- contractVersion stays pinned at 1 until hq-core's vendored copy moves with it.
2744
-
2745
- ### Fixed
2746
-
2747
- ## [Unreleased]
2748
-
2749
- ### Fixed
2750
-
2751
- - `hq mesh daemon install` and `hq mesh daemon run` unload and remove the
2752
- legacy `ai.getindigo.hq-work-mesh-listen` unit (LaunchAgent, systemd user
2753
- unit, or Scheduled Task) so only the daemon subscribes. The daemon writes
2754
- `~/.hq/work-mesh/live-cache.json` and bumps its cursor once per project-view
2755
- push. MQTT reconnect logs once per transition into reconnecting instead of
2756
- on every close. `hq mesh daemon doctor` reports "legacy listener still
2757
- installed" while that unit remains (US-006).
2758
-
2759
- ## [Unreleased]
2760
-
2761
- - Held-event repair no longer treats a later event timestamp as proof that
2762
- metadata belongs to the current session instance. A reused session id stays
2763
- unresolved when the held event's binding episode does not match the current
2764
- one. A CLI self-update now records the verified HQ root and rewrites a
2765
- legacy daemon unit (no `HQ_ROOT`, or `Restart=on-failure`) before restarting
2766
- it, so the new process does not come up with an empty root allowlist.
2767
-
2768
- ## [Unreleased]
2769
-
2770
- - A machine credential (fleet box or local bot) no longer posts mesh events
2771
- with no company. `HQ_SPAWN_COMPANY`, the bot's company, or the identity
2772
- file is sent with the event. When none of those is set, the event is held
2773
- as `needs_company` and `hq mesh daemon doctor` shows the held count.
2774
- A membership probe that a machine token cannot answer leaves the company
2775
- in place and retries, instead of clearing it.
2776
-
2777
- ## [Unreleased]
2778
-
2779
- - Expected caller errors from company resolution, membership, and qmd lookups
2780
- no longer create Sentry issues. Windows filesystem failures remain visible
2781
- and now include redacted path context plus a sync-aware diagnostic.
2782
-
2783
- - An acknowledged Work Mesh register keeps the company on the session even
2784
- when there is no project, or a project and no task. The next flush posts a
2785
- held event for that session instead of leaving it held for lack of a company.
2786
- Tests cover each acked-register branch.
2787
-
2788
- - `hq mesh project set` sends the project version it just read (`If-Match` and
2789
- `expectedVersion`). A 409 prints "The Board changed while you were editing.
2790
- Re-run to pick up the latest." and exits non-zero. `--json` includes
2791
- `VERSION_CONFLICT`.
2792
-
2793
- - `hq mesh session` prints each rejected event's server code (and `--json`
2794
- includes `rejections`). A flush dead-letter row for a per-event rejection
2795
- stores that code next to `reason`.
2796
-
2797
- - A Cognito refresh that comes back for a different subject is refused and the
2798
- active `cognito-tokens.json` is left unchanged. `hq mesh daemon doctor`
2799
- prints the whoami subject and the subject the daemon is using.
2800
-
2801
- ### Changed
2802
-
2803
- - Local bots can reply to other people and bots in direct messages and in
2804
- connected rooms without an owner-only sender restriction. Each DM
2805
- correspondent has a separate conversation, and the owner's private context
2806
- stays out of other people's conversations. Bots retain their configured
2807
- owner and check suspicious requests before taking sensitive actions.
2808
-
2809
- ## [5.130.0] — 2026-09-22
2810
-
2811
- ### Fixed
2812
-
2813
- - Hook-timeout reports remain visible as warning events with stable grouping and
2814
- diagnostic tags. Repeated reports are rate-limited while the next capture
2815
- records the suppressed count.
2816
-
2817
- ## [5.129.0] — 2026-09-22
2818
-
2819
- ### Added
2820
-
2821
- - `hq report` publishes a channel report folder to a fixed hq-deploy slug,
2822
- injects a strict Content-Security-Policy, and writes the run back onto the
2823
- report record. The same command group covers draft publish, promote,
2824
- discard-draft, access, adopt (install the bot's own job), and decommission.
2825
-
2826
- - `hq report templates --json` lists the shipped report templates
2827
- (`daily-digest`, `blank`). The cloud job prompt is the `update-report`
2828
- runbook stored in `templates/runbooks/update-report.md`.
2829
-
2830
- ## [5.128.0] — 2026-09-22
2831
-
2832
- ### Fixed
2833
-
2834
- - Expected hook-timeout warnings are counted as Sentry metrics, so a slow hook
2835
- does not create its own Sentry issue. Genuine timeouts use stable grouping.
2836
-
2837
- ## [5.127.0] — 2026-09-22
2838
-
2839
- ### Added
2840
-
2841
- - Every composed lane brief and every resume turn carries a foreground-only
2842
- rule after the standing authorization: run every command, test suite and
2843
- check in the foreground and wait for it; a turn that ends before the envelope
2844
- is written is classified interrupted.
2845
- - The spec §4 envelope repair turn now runs for grok as well. A provider with
2846
- no session resume gets one fresh single-turn invocation on the same account
2847
- carrying the schema, the parser error and the raw failed output. The lane
2848
- records `envelope_repair.mode` as `resume` (claude, codex) or `fresh_turn`
2849
- (grok) and `hq lanes show` prints it as `envelope_repair_mode`.
2850
- - Lane records now reject omissions of required `hq-lane.v1` fields, and lane
2851
- mutations enforce the durable field-writer ownership map at the store boundary.
2852
- The map grants `reconcile` the quota fields it writes during dead-host
2853
- recovery, the outpost pickup account bind carries the `spawn` writer, and
2854
- `terminal_details` and `outpost_command_id` are typed and owned. The writer
2855
- argument is a required writer name; the function-form call that skipped the
2856
- ownership check is gone. The updater receives a deep clone and the check
2857
- compares against the pre-update snapshot, so mutating the argument in place
2858
- cannot bypass ownership.
2859
- - Answer notes reach a resumed lane: `answered-questions.json` carries the
2860
- operator's `--notes` text read from the lane's own body store, and the resume
2861
- prompt renders each answer as its choice followed by the notes.
2862
- - Every lane brief and every resume turn carries a standing authorization
2863
- paragraph: the brief authorises completing every item it lists, and a
2864
- `decision: ask` envelope is only for a decision the brief does not settle.
2865
- - A question whose options are only continue and stop is recorded with
2866
- `question_kind: "continue"` and `hq lanes questions list` prints it with
2867
- `flag: "continue-loop"`. Nothing answers it automatically.
2868
- - `hq lanes list` reports `senior_lost: true` for a running lane whose senior
2869
- session is absent, ended, or lost, without mutating the lane.
2870
- - `hq lanes questions answer --freeform <text>` answers a question that offered
2871
- options with free text and records `answer_kind: freeform`.
2872
- - `hq lanes resume <lane-id> [--text <message>]` resumes an `interrupted`,
2873
- `done` or `blocked` lane on its recorded provider session and records
2874
- `resumed_from`. Codex lanes record their session id at spawn and resume with
2875
- `codex exec resume`, so `hq lanes message` and the envelope repair turn now
2876
- work for exited Codex lanes as they do for Claude.
2877
- - Lanes now report to the work mesh from the watcher, not only at create. A
2878
- lane that finishes posts a completion event and moves its story to review;
2879
- one that stops to ask posts the question ids; one that is blocked posts the
2880
- reason. While a lane is working, the watcher posts a progress event when it
2881
- sees a new tool call or new output, at most once per five minutes per lane
2882
- (`providers.<provider>.progress_event_min_interval_ms` in
2883
- `personal/lanes/config.json`), and never for silence. The watcher signs in
2884
- the same way the session hooks do and never opens a browser; when it cannot
2885
- reach the mesh it writes `mesh_event_failed` to the lane's watcher log and
2886
- the lane's state is unchanged. On the wire, lane events use the mesh's
2887
- existing activity, question, and note kinds, because the server rejects
2888
- unknown kinds.
2889
- - A lane whose final output is not a valid envelope gets one repair turn: the
2890
- same session is resumed with the schema, the parser error, and the raw text,
2891
- and asked for the corrected JSON only. If that also fails the lane is
2892
- `failed` with reason `envelope_invalid`, and `envelope_repair` on the record
2893
- carries both errors. Codex and Grok lanes cannot be resumed after exit, so
2894
- they still fail on the first parse error; the record says why no repair ran.
2895
- - A worker with `verification.approval_required` or `human_checkpoints` now
2896
- briefs its lane to stop at each checkpoint with a `decision: ask` envelope
2897
- naming the checkpoint. The resume prompt after the answer carries the answer
2898
- inline as well as naming the answers file.
2899
- - `hq lanes ask` retries delivery three times, waiting 5 s then 15 s, when the
2900
- CLI is being replaced under it. On final failure it writes
2901
- `ask_delivery_failed.json` and returns `ask_delivery_failed`; the lane's
2902
- state is never changed.
2903
- - You can hand a piece of work off to run on its own, and it keeps going after
2904
- you close the window. If it hits something only you can decide, it stops and
2905
- asks instead of guessing, and picks up again the moment you answer — you no
2906
- longer have to sit and watch it. If it goes quiet for twenty minutes, you are
2907
- told. Work sent to a second machine that would have landed back on the one
2908
- that asked is stopped before it starts.
2909
- - `hq lanes create --model` records the model on the lane and passes the
2910
- provider's own flag (`--model` for Claude, `-m` for Codex and Grok).
2911
- Account and provider `model` keys in `personal/lanes/config.json` are
2912
- defaults; `--model` wins. An empty `--model` is refused.
2913
- - Lane envelopes may include `story_complete` and `story_complete_reason`.
2914
- `story_complete true` requires `story_status done`; `false` forbids it.
2915
- Both are copied onto the lane record when an envelope is ingested.
2916
- - `hq lanes create --effort <level>` sets reasoning effort per provider
2917
- (`--effort` for Claude, `-c model_reasoning_effort` for Codex,
2918
- `--reasoning-effort` for Grok), validated against each provider's own set.
2919
- `effort` on an account or provider in `personal/lanes/config.json` is the
2920
- default; with nothing set, an Opus or Fable model runs at `low`.
2921
- - A resumed Claude lane whose last message is older than `compact_after_ms`
2922
- (default one hour) is compacted with `/compact` before the resume, and the
2923
- lane records the outcome and the before/after context size. `hq lanes
2924
- message --no-compact` skips it once. `accounts list` and `show` report
2925
- model, effort and the last compaction.
2926
- - `--worker` resolves workers from `core/workers`, `personal/workers`,
2927
- `companies/<co>/workers`, and packages mounted by `hq core scan-packages`.
2928
- A worker id present in two trees is refused; a pack worker that is declared
2929
- but not mounted is `package_workers_unmounted`.
2930
- - A provider 429 is recorded per account and model in
2931
- `personal/lanes/quota.json` (`account_quota_exhausted` with the reset time,
2932
- or `account_model_unavailable` when a model needs credits). The balancer
2933
- skips only what cannot run and never rewrites the operator's `enabled`.
2934
- - `hq mesh story` accepts `--assignee <uid|me|none>` with or without `--status`.
2935
- `me` uses the authenticated person or agent and refuses the synthetic session
2936
- identity. `none` clears the assignee. The command does not send an actor.
2937
- - `hq mesh project set <projectId> --company <slug>` now reads and merges the
2938
- current Board view before replacing it, so a name or description update keeps
2939
- existing stories and repository bindings. It accepts repository bindings from
2940
- PRD `metadata.repos`, `--repos-json`, or repeatable `--repo <path[@branch]>`.
2941
- `hq mesh project register <projectId> --company <slug>` registers the Board's
2942
- deterministic project channel and genesis thread without raw API calls.
2943
- - A work-context session-state lock or directory creation failure is reported
2944
- as not tracking (exit 3) instead of an uncaught filesystem error.
2945
- - The Work Mesh daemon now distinguishes an explicit device-default membership
2946
- revocation from malformed or unavailable membership lookups. Temporary
2947
- failures preserve attribution and retry later; explicit denials clear only
2948
- the unchanged device-default binding through the shared session-state lock,
2949
- so concurrent rebinds are preserved. Transcript-start discovery also leaves
2950
- unavailable lookups unstarted and retries with bounded backoff.
2951
-
2952
- ### Fixed
2953
-
2954
- - `hq agents status` no longer tells you to sign in to a brain that is already
2955
- signed in. A device pairing file can outlive the sign-in it started, so the
2956
- box sign-in probe now decides whether the prompt is shown. Grok and Codex
2957
- prompts are matched to their own brain slot; a Claude prompt has no slot and
2958
- is unaffected.
2959
- - Lane watcher mesh calls now time out, progress events only follow new
2960
- activity, and a persisted progress timestamp prevents duplicate events after
2961
- a watcher restart. Invalid-envelope repair is limited to one attempt even
2962
- when the repair writes a different envelope filename.
2963
- - Completion mesh delivery attempts the thread event and story review update
2964
- independently. Repair prompts cap inlined malformed JSON while retaining the
2965
- raw envelope path.
2966
-
2967
- - `hq lanes reconcile install --enable` now enables the systemd user timer; the
2968
- generated unit uses `KillMode=process` so admitted lanes survive the pass, and
2969
- its PATH carries the directories of the resolved provider binaries. A provider
2970
- binary missing from PATH at spawn leaves the lane `queued` with
2971
- `provider_binary_missing` instead of failing it.
2972
- - A provider binary missing from PATH re-queues a lane only on admission. An
2973
- answered-question or operator-message resume keeps the lane's recorded state
2974
- and returns `provider_binary_missing` with the searched PATH, so the next
2975
- reconcile resumes the recorded session instead of starting a fresh run and
2976
- the operator message is not lost.
2977
- - `hq lanes reconcile install` succeeds on a box with only one provider
2978
- installed. The unit PATH carries the providers that resolve; the result lists
2979
- `providers_resolved`, `providers_unresolved`, and a `warnings` line per
2980
- missing provider. It refuses with `provider_binary_unresolved` only when no
2981
- enabled provider resolves.
2982
- - `hq lanes questions answer` treats a whitespace-only `--freeform` as absent,
2983
- so `--choice` is validated against the options and recorded as an option
2984
- answer instead of an empty freeform answer.
2985
- - A synced question conflict sidecar whose `answer_history` is not an array is
2986
- skipped like any other unreadable sidecar instead of failing every read of
2987
- the question.
2988
- - `hq lanes resume` now keeps terminal lanes terminal when account binding
2989
- fails, records project or story attribution without requiring `--text`, and
2990
- rejects a concurrent resume that has already become running. Blocked mesh
2991
- notes use the accepted `audit` note kind and include their reason in text so
2992
- the server preserves the marker.
2993
-
2994
- - `hq agents list` shows an agent whose removal is under way as `removing`
2995
- rather than the runtime status it had before the removal started. An agent
2996
- that never finished setting up and is then removed used to keep reading
2997
- `provisioning` until the teardown completed, so a removal that stalled
2998
- looked like a removal that was never accepted. A finished teardown reads
2999
- `removed`; every other agent is unchanged.
3000
- - `hq lanes accounts list` treats Claude as logged in when
3001
- `.credentials.json` exists. Missing Claude credentials are reported as
3002
- unknown, not logged out. Codex and Grok still use `auth.json`.
3003
- - With no `--account`, a lane is assigned the least-loaded enabled
3004
- logged-in account rather than `default_account`.
3005
- - A lane watcher now writes a JSON line to `logs/watcher.out` for each
3006
- decision that changes what it believes: a liveness transition, a silence
3007
- deadline, an envelope appearing, the exit classification, and the
3008
- terminal record write. `hq lanes logs` reports each stream's path, size
3009
- in bytes, and lines, so an empty log file is distinguishable from a
3010
- missing lane. `watcher.out` is capped at 256 KiB by dropping the oldest
3011
- complete lines. `hq lanes message` refuses a lane that will never read
3012
- the drop box (`awaiting_input`, `blocked`, and every terminal state) and
3013
- still accepts a queued lane. After the HQ root is resolved, `hq lanes`
3014
- chdirs into it; relative `--brief-file` and `--payload-file` paths still
3015
- resolve against the caller's original directory.
3016
- - `hq lanes` no longer treats a git worktree's `.claude` folder as the HQ
3017
- root, and it honours `$HQ_ROOT` the same way the watcher and reconcile
3018
- timer already did. Listing or creating a lane from a worktree talks to
3019
- the real store, or fails out loud — it does not return an empty success
3020
- against a directory nothing else reads.
3021
- - Creating a lane with `--outpost` now pushes it through `hq outposts exec`
3022
- instead of leaving a queued row that no machine will pick up. If the
3023
- Outpost is unreachable, the lane is failed, not queued.
3024
- - A lane that finishes by asking a question now actually queues that question,
3025
- so someone can answer it and the lane can continue. Stopping a lane now
3026
- stops the process, not only the record. The drain hook that delivers
3027
- mid-run answers is installed into the account home instead of sitting unused
3028
- in the package. The periodic reconcile timer now names this HQ tree, so it
3029
- does not wander into `$HOME/.claude`. A live lane heartbeats from its
3030
- watcher; a dead watcher is started again; a reused PID is not treated as
3031
- the worker still running; a malformed drop-box line no longer wedges every
3032
- tool call.
3033
- - `hq mesh start` now resolves its claimant from the token that authenticates
3034
- the request before considering a same-identity cache entry. This prevents an
3035
- agent from claiming work as a cached human and stops locally before creating
3036
- a thread when no authenticated claimant can be established.
3037
-
3038
- - `hq mesh context backfill-held` no longer reports `reconciled: 0` when
3039
- `--dry-run` predicts non-zero reconcilable sessions. The check that decides
3040
- whether reconcile produced a durable company binding now recognises a
3041
- persisted `companySlug` as sufficient — the daemon resolves the uid on its
3042
- next retry — instead of requiring `companyUid`, which is absent when the
3043
- reconciler runs without a network membership call. Sessions that have no
3044
- company evidence at all now appear in a separate `noEvidence` counter so
3045
- operators can tell them apart from sessions that were genuinely reconciled
3046
- as slug-only bindings.
3047
-
3048
- ## [5.126.0] — 2026-09-21
3049
-
3050
- ### Fixed
3051
-
3052
- - `hq mesh start` works for people again. It was sending your email address as
3053
- the claimant, and the server compares that to your person id, so every human
3054
- start failed with "claimedBy must match the authenticated author" and left
3055
- the thread unclaimed. Claims now carry your resolved person id (bots keep
3056
- their agent id).
3057
-
3058
- ### Changed
3059
-
3060
- - On Windows, the mesh daemon's Scheduled Task now names the HQ root it was
3061
- installed for right in the task command (`mesh daemon run --hq-root <path>`)
3062
- instead of relying on a remembered list of roots. Install only wraps the
3063
- daemon in `conhost.exe --headless` when the machine is new enough to support
3064
- it (Windows 10 1809 or later) and says which mode it chose. `hq mesh daemon
3065
- status` now reports when the task's last start failed, and reminds you that
3066
- the task only runs while you are logged on. macOS and Linux are unchanged.
3067
-
3068
- - `hq mesh daemon install` no longer mistakes a code repo for your HQ. It
3069
- accepts `--hq-root <path>`, otherwise uses `HQ_ROOT`, otherwise walks up
3070
- from the current folder to the nearest real HQ tree (one with
3071
- `companies/manifest.yaml` and `core/`, `.claude/`, or `personal/`). A folder
3072
- that only has `.claude/` does not count. If nothing qualifies, install stops
3073
- and tells you to pass `--hq-root` instead of recording the wrong root. The
3074
- install confirmation now leads with the root it chose and how, and `hq mesh
3075
- daemon status` prints the root the task actually carries and warns when that
3076
- folder has since moved or been deleted.
3077
-
3078
- - The setup bot now recognises when you have joined a company that someone
3079
- else already built. Instead of asking what kind of business you own and
3080
- offering to connect apps your team connected months ago, it shows you what
3081
- is already there in real names and counts, answers one real question from
3082
- your company's own memory, asks what you do there, and offers only what is
3083
- missing for you. Things only an owner can do now name the owner instead of
3084
- failing.
3085
-
3086
- - The setup bot asks which tools you actually use and connects each one
3087
- however that tool needs it, after recommending the few things a business
3088
- like yours should set up. It no longer works from a fixed list of apps.
3089
-
3090
- - Setup no longer asks for your name when you are already signed in, and no
3091
- longer offers to skip itself.
3092
-
3093
- ### Fixed
3094
-
3095
- - The desktop grok bot talks to grok 0.2.56 again. That CLI dropped
3096
- `--output-format streaming-messages-json` (only `plain`, `json`, and
3097
- `streaming-json` remain). The bot now reads the value from `grok --help`
3098
- once and caches it, retries with `streaming-json` if grok rejects the old
3099
- flag, and concatenates `streaming-json` text deltas for the reply instead
3100
- of treating them as Anthropic Messages events.
3101
-
3102
- - `hq core scan-packages` writes pack-mount symlinks relative to the host
3103
- directory, so they survive a tree moving between machines. A leftover
3104
- absolute link from another host, or an absolute link that still points at
3105
- this pack's payload, is rewritten to the relative form on the next scan; a
3106
- correct relative link is left alone.
3107
-
3108
- - Work Mesh reconcile now owns company attribution explicitly on the acked
3109
- path for every register where `resolvedCompany.uid` is set, not only fully
3110
- bound sessions. Previously the non-bound acked path had no reconcile-owned
3111
- attribution write and relied on an incidental side effect of
3112
- `writeAckedRegisterState` → `writeAcknowledgedRegisterBinding`; that side
3113
- effect already wrote `companyUid`/`companySlug` for ops carrying a uid, so
3114
- the tenant was not dropped in practice, but any future acked path that
3115
- preceded or skipped that call would silently lose it. The fix makes
3116
- attribution explicit: a company-only ack is projected as `needs_project`
3117
- with its tenant intact, the write reflects the true classification, and no
3118
- `projectId`, `taskId`, or binding episode is fabricated on partial paths.
3119
- Note: a company resolved by slug only (no uid) is still not attributed on
3120
- either path. Tests disable each of those two writers in turn
3121
- (`writeAckedRegisterState`, and the post-ack `writeSessionState`) and
3122
- require the other one to still land the company for a company-only ack
3123
- and a company-plus-project ack. The production write itself landed in
3124
- `28aee9e` (#670).
3125
-
3126
- - The setup bot no longer posts the same question twice when a turn takes a
3127
- while: a question asked in an interim update is held back if the final
3128
- answer repeats it.
3129
-
3130
- - On Windows, the work-context config safety check now inspects the file's
3131
- Windows ACL instead of POSIX mode bits, so `hq mesh context reconcile` no
3132
- longer refuses every run with "unsafe permissions 666" and session state and
3133
- register operations are written again. The config file and its directory must
3134
- be writable only by the current user, SYSTEM, and Administrators; any other
3135
- principal with write access is rejected, matched by SID so localized account
3136
- names do not matter, and named in the error. When the ACL cannot be read
3137
- at all (icacls missing, non-NTFS volume), the check follows a documented
3138
- reduced-guarantee path: it prints one diagnostic that the config is
3139
- unprotected on this platform and continues rather than blocking. macOS and
3140
- Linux behaviour is unchanged.
3141
-
3142
- ### Added
3143
-
3144
- - `hq mesh daemon install` now works on Windows. It registers a per-user
3145
- Scheduled Task (`ai.getindigo.hq-mesh-daemon`) that starts the mesh daemon at
3146
- logon, hidden, with no execution time limit and a restart-on-failure policy,
3147
- and starts it right away. `hq mesh daemon status` reports whether the task is
3148
- registered and running, `hq mesh daemon uninstall` ends and removes it, and a
3149
- CLI update restarts it like the macOS and Linux services. Before this the
3150
- three commands answered "No service manager integration on this platform",
3151
- so the session-event spool never drained on Windows. The task definition is
3152
- written as XML under `~/.hq/work-mesh/daemon/` and registered with
3153
- `schtasks.exe`; no new dependencies. macOS and Linux behaviour is unchanged.
3154
-
3155
- - `hq bot list --json` reports `busy` and `busySince` for each bot on this
3156
- computer, and `hq bot status` shows an `answering:` line. Apps use this to
3157
- keep a "thinking" indicator up for a whole turn, rather than ending it the
3158
- moment the bot posts a progress note.
3159
-
3160
- - Library layer for `hq lanes` (`src/lib/lanes/`): lane/question record store
3161
- with compare-and-set writes, provider-account resolution, CPU/memory throttle,
3162
- session liveness from the work-mesh spool, and path-keyed worker tenancy.
3163
-
3164
- - `hq lanes` command surface: create/list/show/message/reparent/logs/stop,
3165
- non-blocking ask, questions list/show/answer/escalate/cancel, accounts
3166
- list/login/enable/disable, and sessions list/show. Create admits against
3167
- provider caps, the bounded queue, and the host throttle, then leaves the
3168
- lane queued — process spawn is an explicit not-implemented seam.
3169
-
3170
- ## [5.125.0] — 2026-09-20
3171
-
3172
- ### Fixed
3173
-
3174
- - Work Mesh now preserves an acknowledged company binding through later
3175
- company-less hook writes, preventing repeated registrations and held events.
3176
- Held recovery accepts only durable registrations, canonical metadata under a
3177
- verified HQ root, or manifest-backed repository ownership; conflicting or
3178
- event-only hints stay unresolved. Its batch cursor rotates across restarts.
3179
- Both legacy and direct-mode daemons detect an upgraded CLI, and systemd units
3180
- use `Restart=always` so the installed service reloads the new code.
3181
-
3182
- - Held-session recovery now accepts session metadata only from the daemon's
3183
- configured HQ root, requires current-session evidence before restoring an
3184
- acknowledged registration, and retains batch position when held records are
3185
- compacted. Repeated hook activity no longer re-registers an unchanged binding.
3186
- CLI updates report installed system units that need their host service manager
3187
- to restart them. Daemon installs persist verified HQ-root allowlists, inject
3188
- the primary root into service environments, and rewrite/reload existing user
3189
- units so upgraded daemons restart reliably.
3190
-
3191
- ### Added
3192
-
3193
- - Work Mesh now activates a device default company automatically when a signed-in
3194
- person has exactly one active membership. Devices with several memberships ask
3195
- for a choice in interactive CLI paths and show the stored state in `hq mesh
3196
- context default get --json`. Clearing the default is a durable opt-out until
3197
- the person explicitly sets one again. Historical held sessions remain unchanged
3198
- unless `hq mesh context backfill-held --use-device-default` is supplied; those
3199
- repaired records are labeled lower-confidence and counted by daemon doctor.
3200
-
3201
- ## [5.124.0] — 2026-09-20
3202
-
3203
- ### Added
3204
-
3205
- - `hq billing sponsor` — ask a company to cover your $50/mo HQ Individual plan
3206
- from the terminal, and answer those requests if you run the company.
3207
- `request <company>` asks, `list` shows the queue you can answer or — if you
3208
- are not an admin there — your own single status for that company, and
3209
- `approve` / `decline` / `revoke` / `withdraw` resolve one. Pass `--company`
3210
- to `list` when you are asking about your own state.
3211
-
3212
- Approving does not always finish the job: if the company has no card on file,
3213
- HQ accepts the yes but nothing is covered yet, and `approve` says so with the
3214
- link to add one. This is off until HQ turns it on; until then the commands
3215
- say it is not available yet rather than failing with a validation error.
3216
-
3217
- ## [5.123.2] — 2026-09-19
3218
-
3219
- ### Fixed
3220
-
3221
- - Company slug lookup no longer prints `Failed to resolve company slug '…':`
3222
- with nothing after the colon. Transient failures (timeouts, 429, 5xx) are
3223
- retried once, and the error names the HTTP status and says it is a temporary
3224
- lookup failure rather than a missing company.
3225
-
3226
- ## [5.123.1] — 2026-09-19
3227
-
3228
- ### Fixed
3229
-
3230
- - Work Mesh now preserves an acknowledged company binding through later
3231
- company-less hook writes, preventing repeated registrations and held events.
3232
- Held recovery accepts only durable registrations, canonical metadata under a
3233
- verified HQ root, or manifest-backed repository ownership; conflicting or
3234
- event-only hints stay unresolved. Its batch cursor rotates across restarts.
3235
- Both legacy and direct-mode daemons detect an upgraded CLI, and systemd units
3236
- use `Restart=always` so the installed service reloads the new code.
3237
-
3238
- - Held-session recovery now accepts session metadata only from the daemon's
3239
- configured HQ root, requires current-session evidence before restoring an
3240
- acknowledged registration, and retains batch position when held records are
3241
- compacted. Repeated hook activity no longer re-registers an unchanged binding.
3242
- CLI updates report installed system units that need their host service manager
3243
- to restart them. Daemon installs persist verified HQ-root allowlists, inject
3244
- the primary root into service environments, and rewrite/reload existing user
3245
- units so upgraded daemons restart reliably.
3246
-
3247
- ## [5.123.0] — 2026-09-19
3248
-
3249
- ### Fixed
3250
-
3251
- - `hq mesh check --project` lists that project's open threads. The CLI queries
3252
- `/v1/work-mesh/threads` with `projectId` (and `status=open`) and merges the
3253
- result with the status listing, because the status index can omit project
3254
- threads.
3255
-
3256
- - First signed-in interactive run prints a one-line telemetry disclosure on
3257
- stderr (once per machine). `HQ_TELEMETRY=0` (also `false` or `off`) disables
3258
- CLI telemetry posts. After the notice has been shown, events send
3259
- `consentBasis: "disclosed"` instead of `"no-consent"`.
3260
-
3261
- ### Added
3262
-
3263
- - Channel messages can now be posted as thread replies: `hq dm <channel>
3264
- --thread <eventId> "…"` sends `rootEventId` on the POST, and `--thread last`
3265
- replies to your most recent top-level message in that channel. `hq dm channel
3266
- <name>` prints each root's eventId and indents replies under their root
3267
- (`--json` is still the ungrouped oldest-first array). `@name` mentions were
3268
- already resolved against the roster into the structured `mentions` array;
3269
- unknown names still fail the send and list the roster (`--no-mentions` posts
3270
- the text literally).
3271
-
3272
- ### Changed
3273
-
3274
- - `hq whoami --company` and the bind notice no longer read `planLock`. They
3275
- render the Starter over-limit nag from `GET /v1/billing/usage-limits`
3276
- (including the top-level `freeMonth` CTA). Customer copy does not say
3277
- "locked" or "read-only".
3278
-
3279
- ### Fixed
3280
-
3281
- - Work Mesh board snapshots now read live story status from ProjectView before
3282
- falling back to the vault board, and `hq mesh daemon doctor` warns when a
3283
- presence credential omitted companies.
3284
-
3285
- ## [5.122.2] — 2026-09-19
3286
-
3287
- ### Fixed
3288
-
3289
- - Local bots no longer retry inbox polls and heartbeats every couple of seconds
3290
- after HQ returns 429. They honour Retry-After when present and otherwise back
3291
- off, so a rate limit can clear instead of being held forever. `hq bot status`
3292
- now says unreachable / cannot receive when those calls are failing, instead of
3293
- HQ online from the last attempt, and `hq doctor` checks the same.
3294
-
3295
- - `hq bot start` / `restart` rewrites a LaunchAgent that still points at the
3296
- old toolchain `node/bin/hq` path after an HQ update moved the CLI to
3297
- `npm-global/bin/hq`, which previously failed with MODULE_NOT_FOUND until
3298
- someone ran `hq bot daemon install` by hand.
3299
-
3300
- ## [5.122.1] — 2026-09-19
3301
-
3302
- ### Fixed
3303
-
3304
- - `hq cloud provision company` no longer silently accepts a server-suffixed
3305
- slug. When another owner already holds the requested name, the vault assigns
3306
- `<slug>-<tag>` and used to write local config as if the original name had
3307
- been granted — sync then cannot push, because it looks for a folder matching
3308
- the cloud slug. Provision now fails before writing, and retires the
3309
- just-created entity so it does not leave a suffixed orphan.
3310
-
3311
- - Work Mesh now keeps the company you selected when its session context is
3312
- acknowledged or recovered after a restart. Mesh activity stays attached to
3313
- the right company instead of being held for missing attribution.
3314
-
3315
- ## [5.122.0] — 2026-09-18
3316
-
3317
- ### Added
3318
-
3319
- - A bot can now join HQ from the computer its owner already uses. Before,
3320
- `hq agent enroll` refused on such a machine — the owner is signed in there,
3321
- and an agent identity must not share a host account with a person's login —
3322
- which left two bad options: a second user account, or `--replace`.
3323
-
3324
- Enrollment now moves the bot into its own directory instead of refusing:
3325
- `~/.hq-agent/<name>/`, with its own credentials, key, state and logs. The
3326
- owner's session file is never read, moved, or changed. `hq agent probe`,
3327
- `hq agent kit`, `hq agent inbox` and `hq agent mcp` all find that directory
3328
- on their own, so the bot is itself without anyone exporting environment
3329
- variables. Use `--name <bot>` to choose the directory, or to run a second
3330
- bot on the same computer.
3331
-
3332
- Two or more local bots are deliberately ambiguous: `hq agent` commands then
3333
- ask for `HQ_AGENT_DIR` rather than guessing which identity to act as.
3334
-
3335
- ## [5.121.2] — 2026-09-18
3336
-
3337
- ### Added
3338
-
3339
- - `hq cloud retire company <slug>` soft-tombstones a cloud company (owner
3340
- only, confirm unless `--yes`) so `hq cloud demote company` can run without
3341
- `--propagate-deletes`. Vault files stay; local folders are not touched.
3342
-
3343
- ## [5.121.1] — 2026-09-18
3344
-
3345
- ### Fixed
3346
-
3347
- - `hq --version` prints only the CLI version again. The labelled HQ vs CLI vs
3348
- latest hq-core report stays on `hq version` (and `--json`). Older updaters
3349
- compare the whole `--version` output to the CLI they just installed; reading
3350
- the HQ line made every successful update look like a second install was
3351
- shadowing it.
3352
-
3353
- ### Documentation
3354
-
3355
- - The 2026-09-18 fleet-bots GA notes group the published CLI changes for plan
3356
- notices, DM attachments, staged skills, version reporting, knowledge-index
3357
- protection, and ambiguous people resolution (#634, #636, #641, #642, #643,
3358
- #644, #645, #647, #648, #649).
3359
-
3360
- ## [5.121.0] — 2026-09-18
3361
-
3362
- ### Changed
3363
-
3364
- - The agent kit no longer installs a work-mesh doorbell listener, and
3365
- `hq agent probe` no longer checks one. The doorbell was never what made a
3366
- bot reachable — messages arrive over the inbox either way — but it was the
3367
- loudest part of setup: it needed a realtime connection that restricted bot
3368
- hosts routinely intercept, so a perfectly healthy bot reported a failure it
3369
- could do nothing about.
3370
-
3371
- The probe's `work-mesh` line becomes `presence`: the agent's own inbox
3372
- answers and its heartbeat is fresh. That is what the check was really
3373
- proving. `hq mesh` remains available to a bot that is asked to use it; the
3374
- kit simply no longer runs a listener or ships a skill telling it to.
3375
-
3376
- One trade-off: an inbox doorbell used to trigger an immediate poll. Without
3377
- it, incoming messages are picked up by the inbox poller on its own interval
3378
- (15 seconds by default) rather than instantly.
3379
-
3380
- ## [5.120.1] — 2026-09-18
3381
-
3382
- - A local bot no longer replaces your own sign-in. Bots that run on your
3383
- computer (the setup bot included) keep their session in their own folder
3384
- now, instead of the file HQ uses to know who you are. Before, a bot could
3385
- overwrite that file and HQ would then treat the bot as you: its name in
3386
- place of yours, no companies, a profile that would not save, and sync
3387
- failing. If that already happened on your computer, `hq` now ignores the
3388
- bot's session there and asks you to sign in as yourself. (hq-cloud 6.16.60)
3389
-
3390
- ## [5.120.0] — 2026-09-18
3391
-
3392
- ### Added
3393
-
3394
- - `hq agents provision` can reuse an existing Slack bot token through flags,
3395
- environment variables, or stdin. Socket Mode agents can also accept their
3396
- app-level token. HQ validates both tokens and the bot's required Slack scopes
3397
- before it creates the agent.
3398
-
3399
- ## [5.119.15] — 2026-09-18
3400
-
3401
- ### Fixed
3402
-
3403
- - `hq people resolve <name>` now reports ambiguity when the name matches more
3404
- than one person instead of selecting the first match.
3405
-
3406
- ## [5.119.13] — 2026-09-18
3407
-
3408
- ### Added
3409
-
3410
- - `hq version` (and `hq --version`) print the installed HQ version, the CLI
3411
- version labelled as CLI, and the latest hq-core release. If a newer HQ is
3412
- out it says to run `/update-hq`; if the lookup cannot reach the network it
3413
- says so instead of going quiet. `hq version --json` prints the same payload.
3414
-
3415
- ### Fixed
3416
-
3417
- - `hq core rebuild-index company-knowledge` no longer silently replaces a
3418
- hand-written company knowledge INDEX. If the file is not the last generated
3419
- output, the command refuses, prints a short diff, and asks for `--accept`.
3420
- `<!-- hq:keep -->` opts the whole file out; `<!-- hq:keep -->` … `<!-- /hq:keep -->`
3421
- fences are kept while the table regenerates. Subdirectory README headings
3422
- are projected into the description column so the generated index is usable
3423
- without hand edits.
3424
-
3425
- ## [5.119.12] — 2026-09-18
3426
-
3427
- ### Fixed
3428
-
3429
- - `hq files cat … --company prs_<person-uid>` now reads the file instead of
3430
- refusing with "No company found for slug". Reading a DM attachment needs the
3431
- sender's vault as the scope, and `cat` resolved that value as a company slug
3432
- of its own, after the same fix landed on the presign path.
3433
-
3434
- ## [5.119.11] — 2026-09-18
3435
-
3436
- ### Added
3437
-
3438
- - On a personal account, My Telemetry is part of the paid Individual plan
3439
- ($50/mo). When the server withholds it, the CLI now prints a short notice
3440
- naming the plan and where to upgrade, instead of the raw refusal. Company
3441
- plans are unaffected, and the notice has nothing to do with the plan-limit
3442
- nags — it is a plan fact, printed once, where it happened.
3443
-
3444
- ### Fixed
3445
-
3446
- - `hq files … --company prs_<person-uid>` now reaches that person's vault
3447
- instead of failing with "Company slug ... was not found". This is how a DM
3448
- recipient reads a file attached to a message: the attachment lives in the
3449
- sender's personal vault, so naming the sender is the only scope that works.
3450
-
3451
- ## [5.119.10] — 2026-09-18
3452
-
3453
- ### Added
3454
-
3455
- - `hq skill register` reserves a company skill UID from a proposal-lane
3456
- source and writes the server-stamped bytes only to `--stamped-output`.
3457
- It does not write `companies/<company>/skills/`, create a discovery
3458
- wrapper, or sync. `hq skill promote` copies those exact bytes into the
3459
- canonical skill path only after `--expected-sha256` matches and the
3460
- stamped `skill_uid` matches the server registration. A differing
3461
- canonical file requires `--reviewed-update`. Use `--no-sync` to leave
3462
- upload to a later steward command.
3463
-
3464
- ## [5.119.9] — 2026-09-17
3465
-
3466
- ### Added
3467
-
3468
- - The CLI now prints a one-time notice when your workspace crosses a plan
3469
- threshold — reaching 80% of a Starter limit, or going past one. The server
3470
- decides when a threshold has been crossed and sends it with the response, so
3471
- a session you already have open surfaces the notice on its next API call
3472
- rather than on its next launch. Each `{resource}:{band}` is printed exactly
3473
- once per episode, remembered in `~/.hq/plan-limit-nag.json`; a dimension that
3474
- drops back under the threshold and climbs again is announced again.
3475
- `HQ_NO_PLAN_LIMIT_NAG=1` silences it along with the other plan-limit lines.
3476
-
3477
- ### Fixed
3478
-
3479
- - A file attached to a DM is now visible to a bot reading its mail. `hq dm
3480
- inbox`, `hq dm thread`, `hq dm channel` and `hq agent inbox` print each
3481
- attached file's name, type and vault path under the message body; the JSON
3482
- forms carry an `attachments[]` field. Previously only the body text was
3483
- rendered, so an agent sent a screenshot answered "no image came through".
3484
-
3485
- ## [5.119.8] — 2026-09-17
3486
-
3487
- ### Fixed
3488
-
3489
- - Channel posts that mention people by full name no longer show the parsing
3490
- quotes in the room. `@"Jacob Posel"` is still how a multi-word name is
3491
- typed, but the message is posted as `@Jacob Posel`, the way a person would
3492
- have written it. The structured mention itself is unchanged.
3493
-
3494
- ## [5.119.7] — 2026-09-17
3495
-
3496
- ### Fixed
3497
-
3498
- - When the kit cannot install its `@reboot` entry because the host has no
3499
- `crontab` at all, the install now says so and names the package to install,
3500
- instead of reporting a raw ENOENT the operator cannot act on. A minimal
3501
- container image routinely ships without cron; the Muse pilot hit this the
3502
- first time the reboot entry was attempted.
3503
-
3504
- ## [5.119.6] — 2026-09-17
3505
-
3506
- ### Fixed
3507
-
3508
- - Slack token paste links now use the company's canonical Console slug. Links
3509
- built with an internal company ID redirected to the company home and lost the
3510
- agent setup form.
3511
-
3512
- ## [5.119.5] — 2026-09-17
3513
-
3514
- ### Fixed
3515
-
3516
- - When a new Slack agent is waiting for a Socket Mode app-level token, `hq
3517
- agents status` now shows a link to create the token and a direct link to the
3518
- HQ form where it can be pasted. The same links are included in JSON output.
3519
-
3520
- ### Changed
3521
-
3522
- - Starter now includes 1 integration instead of none, and the lock copy says
3523
- so. The notice reads "too many integrations", quotes "Integrations allowed
3524
- on Starter: 1", and tells you to "disconnect integrations until you are at 1
3525
- or fewer"; the per-turn line reads "over its 1-integration limit". Nothing in
3526
- the CLI says Starter has no integrations any more.
3527
- - Plan-limit messages now say what is actually happening. Going over a Starter
3528
- limit never stopped the workspace, and the copy no longer implies it did:
3529
- the words "locked" and "read-only" are gone from every line `hq` prints, and
3530
- the notice states the two things that do pause — adding new files and adding
3531
- new secrets — while everything else keeps working. A test scans every
3532
- rendered string for both words so the copy cannot drift back.
3533
- - The over-limit per-turn nag is one line instead of a box, and it repeats at
3534
- most once every 6 hours (was once a day). `HQ_NO_PLAN_LIMIT_NAG=1` still
3535
- silences it.
3536
-
3537
- ## [5.119.4] — 2026-09-17
3538
-
3539
- ### Fixed
3540
-
3541
- - On a host with no usable service manager, `hq agent kit install` now installs
3542
- the `@reboot` crontab entry that restarts the kit, instead of printing the
3543
- line and trusting it to be pasted. A supervisor that does not survive a
3544
- reboot is not a supervisor: on the Muse pilot the host restarted, the
3545
- supervisor died with it, nothing brought it back, and the agent silently
3546
- stopped seeing new messages while every surface still reported healthy. The
3547
- entry is marked and replaced on reinstall rather than stacked, and every
3548
- other crontab line is preserved. If the crontab cannot be written the install
3549
- still succeeds but says so in red, naming the consequence and printing the
3550
- line to add by hand.
3551
-
3552
- ## [5.119.3] — 2026-09-17
3553
-
3554
- ### Fixed
3555
-
3556
- - `hq agent inbox` now merges the agent's own server inbox with the kit's local
3557
- mirror instead of reading the mirror alone. The mirror is only as fresh as
3558
- the kit's poller, and when that process dies nothing says so — the listing
3559
- simply stops growing. On the Muse pilot the host rebooted, the kit supervisor
3560
- died with it and was never restarted, and the command kept confidently
3561
- answering with the eight messages from before the reboot while the server had
3562
- every newer one: no error, no empty result, no stale marker, just an agent
3563
- that had gone deaf and could not tell. When the server cannot be reached the
3564
- mirror is still returned, with a note saying it may be stale. `hq_inbox_read`
3565
- already merged; both now share one implementation.
3566
-
3567
- ## [5.119.2] — 2026-09-17
3568
-
3569
- ### Fixed
3570
-
3571
- - The work-mesh listener falls back to its periodic refetch when the MQTT
3572
- doorbell is unreachable, instead of retrying forever and reporting
3573
- `component-mesh=error` the whole time. The doorbell is an optimisation over a
3574
- REST source of truth, so a host that cannot reach AWS IoT has a slower
3575
- doorbell, not a broken agent. Some bot sandboxes sit behind an egress proxy
3576
- that intercepts the connection and answers with non-TLS bytes
3577
- (`tls_validate_record_header:wrong version number`). After five failed
3578
- attempts the listener says so once, keeps the cache current on the periodic
3579
- cadence, and retries MQTT every 30 minutes so a bot moved to an unrestricted
3580
- network recovers its instant doorbell on its own. Incoming DMs are
3581
- unaffected either way — the inbox poller is a separate service.
3582
-
3583
- ## [5.119.1] — 2026-09-17
3584
-
3585
- ### Fixed
3586
-
3587
- - A kit.json written before `syncFiles` existed now reads as NOT syncing, the
3588
- same as a fresh install. 5.119.0 read it as `true` to preserve the behaviour
3589
- it recorded, which was wrong twice over: the bots with such a file are
3590
- exactly the ones the mirror is failing on, and because a bare reinstall keeps
3591
- recorded settings, the documented fix — reinstall the kit — left the sync
3592
- loop running and `hq agent probe` still pulling the whole vault. A reinstall
3593
- now removes that loop. A bot that genuinely wants the local mirror passes
3594
- `--sync-files` once.
3595
-
3596
- ## [5.119.0] — 2026-09-17
3597
-
3598
- ### Changed
3599
-
3600
- - External agents no longer copy the company vault onto their own machine.
3601
- `hq agent kit install` used to install a sync loop that mirrored the whole
3602
- vault to disk; a bot reads and writes vault files on demand through the `hq`
3603
- MCP server and the `hq files` commands, so the copy bought nothing for the
3604
- common case and cost a full download of the company's assets. On a team with
3605
- a large brand library that is hundreds of megabytes, and on a sandboxed bot
3606
- host whose egress truncates large responses it could never finish at all —
3607
- every file retried three times and failed with `ERR_HQ_TRUNCATED_RESPONSE`,
3608
- which left the probe stuck and the agent reporting a sync error while it was
3609
- otherwise a healthy team member.
3610
-
3611
- Pass `--sync-files` if the bot genuinely needs files on disk for shell-based
3612
- work; a reinstall without it removes a sync loop an earlier install left
3613
- behind. An existing install is unchanged until it is reinstalled.
3614
-
3615
- - `hq agent probe` reports a `files` check in place of `team-sync`. Without a
3616
- local copy it proves the read path the bot actually uses — a vault listing
3617
- answers — instead of downloading the vault to prove a folder exists. With
3618
- `--sync-files` it checks the pull exactly as before.
3619
-
3620
- - The heartbeat reports only the components the kit runs. A component that was
3621
- never installed is omitted rather than reported as an error, so a bot with no
3622
- sync loop no longer looks broken.
3623
-
3624
- - `hq_search` no longer runs a local index search on an agent that has no local
3625
- copy, where it could only ever return nothing. It runs the server-side vault
3626
- search instead, and says plainly that content and semantic search need a kit
3627
- installed with `--sync-files`.
3628
-
3629
- ## [5.118.2] — 2026-09-17
3630
-
3631
- ### Changed
3632
-
3633
- - The locked-workspace notice now says what you can still do. A locked
3634
- workspace is read-only for new things, but deleting still works — which
3635
- matters, because every fix the notice lists (remove members, disconnect
3636
- integrations, delete secrets, deprovision agents) is a delete. The notice
3637
- states that outright instead of leaving "read-only" to be guessed at.
3638
-
3639
- - The plan-limit box names the plan: "HQ Starter plan limit exceeded" rather
3640
- than "HQ plan limit exceeded".
3641
-
3642
- ### Added
3643
-
3644
- - `hq agents provision --model` now sets the brain model during creation. A
3645
- model such as `gpt-5.5` or `grok-4.6` selects the agents-v2 runtime unless
3646
- `--provider` is specified, avoiding a later box recreation to change brains.
3647
-
3648
- ## [5.118.1] — 2026-09-17
3649
-
3650
- ### Fixed
3651
-
3652
- - The locked-workspace notice now names the real reason. A workspace locked
3653
- because of secrets or agents no longer reads "over its 5-member limit"; each
3654
- reason gets its own explanation, its own Starter cap and its own fix, and a
3655
- lock with no recognised reason says only that the workspace is over the
3656
- Starter limits. The plan-limit warning also names the dimension it is quoting
3657
- ("users at 9/10 (90%) (members)").
3658
-
3659
- - You can now remove an HQ Agents v2 agent from the CLI without bypassing its
3660
- safety check. `hq agents rm` accepts `--confirm-destroy-agents-v2
3661
- <instance-id>` alongside `--yes` and sends only the instance ID you name; HQ
3662
- still refuses an ID that does not match the live box.
3663
-
3664
- ## [5.118.0] — 2026-09-16
3665
-
3666
- ### Added
3667
-
3668
- - External agents can now be woken the moment an HQ message arrives. `hq agent kit wake set-url --stdin` points the kit at a webhook, such as a Grok Bot routine webhook trigger. `hq agent kit wake set-command -- <cmd>` runs a local command for frameworks with a CLI. The kit sends a short notice with no message text when mail is pending, and again every 10 minutes until it is handled. The webhook URL is stored privately and never logged.
3669
- - `hq agent inbox` lists an external agent's pending HQ messages and `hq agent inbox done <id>` marks them handled, so a woken bot never answers the same message twice. The MCP server gains a matching `hq_inbox_done` tool.
3670
-
3671
- ### Fixed
3672
-
3673
- - The `hq_inbox_read` MCP tool no longer fails with 403 AGENT_ROUTE_NOT_SUPPORTED. It reads the agent's own inbox instead of the person-only DM inbox, and by default returns only messages not yet handled.
3674
- - The HQ direct-message skill shipped to external agents no longer tells them to use person-only read commands.
3675
-
3676
- ## [5.117.3] — 2026-09-16
3677
-
3678
- ### Fixed
3679
-
3680
- - `hq doctor --fix` no longer breaks Claude Code sessions. Since HQ moved to a single master hook, the doctor saw every hook script as unregistered. It then added one hook entry per script with no tool filter, so guards such as the Glob path check and core protection ran on every tool call and blocked Bash, Skill and Read with "Glob needs a path" or "Edit to locked path is not allowed". An HQ update could then move those entries into `.claude/settings.local.json`. The doctor no longer auto-registers orphan scripts. It now detects the stray entries in both settings files and `hq doctor --fix` removes them, keeping your permissions and any hooks you added yourself. Scripts listed in `.claude/hooks/hook-registry.json` also no longer show as orphans.
3681
-
3682
- ### Fixed
3683
-
3684
- - `hq doctor` now keeps its hook-health compatibility verdict in step with
3685
- `check-hq-hooks.sh` when either required command hook is missing.
3686
-
3687
- ## [5.117.2] — 2026-09-16
3688
-
3689
- ### Fixed
3690
-
3691
- - External agents: the work-mesh listener no longer fails every refresh with
3692
- "Agent callers may only use DM, channel comms, and reaction routes". It now
3693
- re-reads the agent's own inbox on each doorbell instead of the person-only
3694
- conversation routes.
3695
- - External agents: `hq agent probe` no longer waits for a DM to itself to show up
3696
- in the inbox, which the server never delivers. The dm check passes when the
3697
- send is accepted and the agent inbox is readable.
3698
- - External agents: kit service logs no longer write every line twice when the
3699
- services run under a supervisor.
3700
-
3701
- ### Changed
3702
-
3703
- - HQ now calls the paid plan by its real name everywhere you see it. If your
3704
- workspace went over its Starter limit, the notice, the error you got when you
3705
- tried to write something, and the upgrade prompt used to give three different
3706
- names for the same plan — "HQ Workforce", "HQ Team", and "Team" — which made
3707
- it genuinely unclear what you were being asked to buy. They all say HQ
3708
- Workforce now. The free plan is called Starter rather than "free plan", to
3709
- match the pricing page.
3710
-
3711
- ### Fixed
3712
-
3713
- - `hq doctor` now reports failed hook wiring when `.claude/settings.json` has
3714
- no usable command hook for `SessionStart` or `PreToolUse`. The file can still
3715
- be present and valid JSON, but it no longer reads as healthy when nothing runs.
3716
-
3717
- ## [5.117.1] — 2026-09-16
3718
-
3719
- ### Fixed
3720
-
3721
- - `hq agent probe` works for external agents. The work-mesh check no longer
3722
- reads the owner-only company roster (which answered "Not found" to an agent);
3723
- it passes when the realtime credential vend names the agent, the agent's own
3724
- inbox answers, and this host's heartbeat and mesh listener are live. The DM
3725
- check reads the probe message back from the agent's inbox instead of the
3726
- human-only thread view that refused agents. Output format is unchanged.
3727
- - The agent kit's mesh listener stays connected. It now asks for the personal
3728
- realtime credentials that cover the agent's own doorbell topics (the company
3729
- presence credentials it used made the connection drop before subscribing),
3730
- subscribes only to topics those credentials grant, and polls the inbox
3731
- immediately when an inbox doorbell rings.
3732
- - Inbox poll failures are diagnosable: the log names the method, full URL,
3733
- status and the first 300 characters of the response, and the inbox URL keeps
3734
- any base path from `apiBaseUrl` without doubling `/v1`.
3735
- - `hq dm inbox` works for agent identities by reading the agent inbox;
3736
- `hq dm thread` tells agents to use `hq dm inbox` instead of failing with a
3737
- server refusal.
3738
- - `hq agent kit install` works on hosts with no systemd user session or
3739
- launchd: it starts the services under one background `hq agent kit run all`
3740
- supervisor (restarting any service that exits), records its pid in
3741
- `~/.hq-agent/kit.pid`, and prints the `@reboot` crontab line that keeps it
3742
- running after a restart. `kit status` and `kit uninstall` understand this
3743
- mode.
3744
-
3745
- ## [5.117.0] — 2026-09-16
3746
-
3747
- ### Added
3748
-
3749
- - Your local bots can come back after a reinstall. A bot is an identity HQ
3750
- keeps for you plus the state that runs it on one computer; wiping that
3751
- computer's HQ folder, or moving to a new Mac, used to leave every bot dead
3752
- with no way back — making a new one was refused, because the old one still
3753
- existed. Now `hq bot restore` brings back every bot you own that is missing
3754
- from this computer, with its own settings, memory folder and startup agent,
3755
- keeping the same identity and the same conversation. `hq bot adopt <name>`
3756
- does one bot, `hq bot list --remote` shows every bot you own and which of
3757
- them are set up here, and trying to create a bot you already own now says so
3758
- and points at adopting it instead. Bots made before this shipped come back on
3759
- sensible defaults, and HQ tells you it did that.
3760
-
3761
- ### Fixed
3762
-
3763
- - `hq bot restore` no longer brings back a bot this Mac cannot run. A company
3764
- bot — one that acts for a company rather than as you — was being set up here
3765
- as a personal bot: it got credentials, a folder, a memory folder and a startup
3766
- entry, was counted as restored with nothing reported as failed, and then died
3767
- at every start and at every login, while the Mac offered "check that Claude
3768
- Code is signed in" as the remedy, which could never help. Restore, `hq bot
3769
- adopt` and `hq bot list --remote` now ask exactly the question the bot's own
3770
- startup asks, before anything is written or any password is rotated. A bot
3771
- that cannot run here is listed plainly, counted as skipped rather than
3772
- restored, and refused by adopt with one sentence saying where it does run —
3773
- and nothing is left behind on this computer.
3774
- - Bringing a bot back no longer leaves a second copy of it. A bot you created
3775
- here as `qa-x` is `qa-x-<your suffix>` in HQ, and bringing it back built a
3776
- whole second folder under that longer name: a second startup entry, a second
3777
- memory folder, and the original folder left behind holding the live password
3778
- of a bot nothing could reach any more. HQ now recognises the folder a bot
3779
- already has on this computer — by the identity inside it, even when a wipe
3780
- left only its credentials — and repairs that one in place. A bot that is not
3781
- here at all comes back under the name you created it with. If that name
3782
- already belongs to a different bot, both are kept, under names that tell them
3783
- apart.
3784
- - `hq bot list --remote --json` now says `ok: true` when it worked. Every
3785
- failure said `ok: false`, and the success document had no `ok` at all, so
3786
- anything that learned to check it read a good listing as a failure.
3787
- - A bot's long answer now reaches you, in several messages. HQ Cloud refuses any
3788
- single message over 4000 characters, and nothing split one up: an answer over
3789
- that length was refused, saved, and sent again unchanged on every check — a
3790
- test machine recorded the same rejection 231 times in eight minutes while the
3791
- person saw no reply and no error at all, and the bot's 44 seconds of work was
3792
- thrown away. A reply that is too long is now cut into numbered parts — on
3793
- paragraph breaks where it can, on sentences otherwise, and never leaving a
3794
- block of code half-open — and posted in order. If something goes wrong partway
3795
- through, only the parts you have not seen are sent again. And if a message
3796
- truly cannot be delivered, the bot stops after five tries and tells you so in
3797
- one short line, instead of asking the server to do the impossible for as long
3798
- as it runs.
3799
- - A bot's startup entry no longer outlives the bot. When a bot's local setup was
3800
- gone, the startup entry macOS keeps for it relaunched it every five seconds,
3801
- forever, filling its log with the same failure (one test machine recorded 267
3802
- of them in a row). HQ now says once what happened, tells you how to bring the
3803
- bot back, removes the startup entry it no longer needs, and stops cleanly so
3804
- nothing relaunches it. This works when macOS itself is the one running the
3805
- bot, which is the case that matters: the first version did its tidying in an
3806
- order that had macOS shut the bot down before it could finish, so the startup
3807
- entry survived and brought the same dead bot back at every login, and the
3808
- explanation never reached the bot's log. HQ now writes the explanation and
3809
- removes the entry first, and lets go of itself last.
3810
-
3811
- - You can remove a bot whose settings this computer has already lost. A wiped
3812
- HQ folder could leave a bot half-here — a folder and a startup entry, no
3813
- settings — and nothing could clear it: removing it said there was no such
3814
- bot and suggested creating one, and creating one said you already had it.
3815
- `hq bot rm <name>` now clears whatever is actually left on this computer, and
3816
- `hq bot rm <name> --remote` also removes the bot HQ still holds under that
3817
- name. It checks with HQ before it deletes anything local, so a service that
3818
- cannot answer leaves nothing half-done.
3819
-
3820
- - Removing a bot now tells the truth when HQ only gets part of the way. When
3821
- HQ's own teardown of a bot's cloud identity stopped half-way, the
3822
- machine-readable form said the removal had failed but gave no reason and no
3823
- explanation, reported success to anything checking the exit code, and printed
3824
- the raw cloud error — including internal infrastructure addresses — straight
3825
- at you. It now says one plain sentence, names the reason in the same
3826
- vocabulary as everything else, and exits non-zero, and no internal detail is
3827
- repeated anywhere. It also stops making you run the command twice for
3828
- nothing: when the part HQ could not finish would fail the same way every
3829
- time, the bot is removed from this computer and you are told the leftover is
3830
- HQ's to clear; when it is something HQ may yet finish, your settings are kept
3831
- exactly as they were so running the same command again picks the job back up.
3832
-
3833
- - Bringing bots back now fails in plain language when HQ Cloud is too old for
3834
- it. `hq bot adopt`, `hq bot restore`, and `hq bot list --remote` all ask HQ
3835
- which bots you own; against an HQ Cloud without that capability, the raw
3836
- network error was printed at you, and the machine-readable form printed
3837
- nothing at all — so the desktop app had nothing it could read. Each now says
3838
- one plain sentence, and `--json` always returns a result naming the reason,
3839
- so the app can quietly fall back to showing the bots that are on this
3840
- computer.
3841
-
3842
- ## [5.116.0] — 2026-09-16
3843
-
3844
- ### Added
3845
-
3846
- - External bots as team members (host side). `hq agent enroll <code>`
3847
- redeems a one-time enrollment code from the console: it generates an
3848
- Ed25519 host key at `~/.hq-agent/host-key` (0600), POSTs the public half to
3849
- `POST /v1/agents/enroll`, and writes `~/.hq-agent/machine-creds.json` (0600)
3850
- with `runtime: "external"`. It refuses to run on a host that already holds a
3851
- human session file or another machine identity unless `--replace`, and
3852
- never reads `~/.hq/cognito-tokens.json`. Every contract error (expired,
3853
- already redeemed, invalid, revoked, plan-gated, throttled, unreachable) maps
3854
- to a message that names the fix.
3855
- - `hq agent kit install|status|uninstall|run <service>`: user-level services
3856
- (LaunchAgent on macOS, systemd `--user` on Linux) for the company-vault sync
3857
- loop, a work-mesh doorbell listener (ids-only MQTT → REST refetch into
3858
- `~/.hq/work-mesh/cache`), an inbox poller that mirrors new items to
3859
- `~/.hq-agent/inbox/` (server ack opt-in via `--inbox-ack`), and a 60 s
3860
- heartbeat posting `{ components: { sync, mesh, inbox } }`. Each unit just
3861
- runs `hq agent kit run <service>`; logs land in `~/.hq-agent/logs/`. The
3862
- install also ships `~/.hq-agent/skills/{dm,search,files,secrets-exec,work-mesh-status}/SKILL.md`
3863
- (agentskills.io format). `docker/hq-agent-kit/` runs the same four
3864
- processes from a mounted creds volume.
3865
- - `hq agent probe`: whoami → vault sync → mesh presence → DM round trip to
3866
- self → secrets list, one PASS/FAIL line each, non-zero exit on any failure,
3867
- a final `heartbeat <age>` line (the recipe format), and the result POSTed to
3868
- `POST /v1/agents/{uid}/probe-result` so the console flips to Enrolled.
3869
- - `hq agent mcp`: a stdio MCP server (no SDK dependency; initialize / ping /
3870
- tools/list / tools/call) backed by the enrolled machine identity, exposing
3871
- `hq_whoami`, `hq_search`, `hq_files_list`, `hq_files_read`,
3872
- `hq_secrets_list`, `hq_secrets_exec` (exit code + output only, never
3873
- values), `hq_dm_send`, `hq_inbox_read`, `hq_work_mesh_status`. Console
3874
- recipes register it as `command: hq, args: [agent, mcp]`.
3875
- - `hq agents rotate <uid>` (fresh enrollment code, shown once) and
3876
- `hq agents revoke <uid> [--remove] --yes` for external agents. Both fail
3877
- closed under `HQ_API_KEY` (JWT-only routes).
3878
-
3879
- ### Changed
3880
-
3881
- - `@indigoai-us/hq-cloud` pinned to `~6.16.48`, whose machine mint signs the
3882
- server's nonce with the host key when creds carry `runtime: "external"`.
3883
-
3884
- ### Fixed
3885
-
3886
- - When a new agent needs an owner action, `hq agents provision` prints the
3887
- current Codex sign-in code or a link to finish setting up the Slack app. `hq agents status
3888
- <slug>` gets the current action again. The `--json` output adds a
3889
- `pendingActions` array, plus `slackInstallPending` and `slackInstallUrl` for
3890
- Slack installs.
3891
-
3892
- - `hq secrets` now fails promptly instead of waiting for a browser sign-in
3893
- that cannot be completed when stdin or stderr is not a terminal, or in CI.
3894
- Run `hq login` from an interactive shell first if no valid session exists.
3895
-
3896
- - hq gives both visible and quiet version-gated updates 30 minutes to finish.
3897
- When that limit expires, it tries to terminate the updater's process group
3898
- on POSIX or process tree on Windows. If the operating system denies that
3899
- request, hq reports it instead of waiting forever. Set `HQ_UPDATE_TIMEOUT_MS`
3900
- to another whole number of milliseconds up to 2,147,483,647. hq ignores an
3901
- invalid value and tells you it is using the 30-minute limit.
3902
-
3903
- - HQ's housekeeping pass now clears out add-on shortcuts that lead nowhere,
3904
- instead of warning about them forever. A pack that stops shipping one of its
3905
- files, or a pack whose folder was installed from a scratch directory someone
3906
- later deleted, used to leave shortcuts behind that nothing would ever remove.
3907
- HQ now clears a shortcut only when it sits in a folder the add-on system
3908
- manages, only when it points into the add-on folder, and only when the thing
3909
- it points at is definitely not there. A shortcut it cannot check, one leading
3910
- somewhere else, or a real folder with real files in it are all left alone. On
3911
- one real setup this cleared eight dead shortcuts that had been warning on
3912
- every run.
3913
-
3914
- - Add-on packs now repair their own shortcuts after your HQ folder moves to a
3915
- new machine. Those shortcuts point at a full path, so on a new computer they
3916
- all point somewhere that does not exist, and HQ used to leave them alone on
3917
- the grounds that something was already there. That made the breakage
3918
- permanent: every later tidy-up skipped them for the same reason. HQ now
3919
- repoints a shortcut that leads nowhere, while still refusing to touch one
3920
- that leads to real content. Repairing a tree this way fixed a batch of
3921
- long-broken pack shortcuts in one pass.
3922
-
3923
- ## [5.115.6] — 2026-09-16
3924
-
3925
- ### Fixed
3926
-
3927
- - `hq doctor --fix` can now refresh a company sync journal that is stale or
3928
- has never synced, when that company still has a folder under `companies/`.
3929
- It pulls that company only, keeps your local copy if there is a conflict,
3930
- and does not push. Company journals left over from memberships you do not
3931
- keep locally are reported as unused rather than broken, so a session-start
3932
- health check no longer files "could not repair" reports for folders that
3933
- were never on this machine. Personal journals are unchanged: they still
3934
- warn when stale, and `--fix` will not pull your personal vault on its own.
3935
- The repair pass also skips the integrations inventory, which it cannot
3936
- repair, so a slow connection check cannot stall the fix.
3937
-
3938
- ## [5.115.5] — 2026-09-15
3939
-
3940
- ### Fixed
3941
-
3942
- - The setting that turns the end-of-turn checkpoint requirement off,
3943
- `HQ_CHECKPOINT_GATE`, now works from `.claude/settings.json` on every runtime.
3944
- Before, only Claude Code passed that setting through to the checkpoint hook,
3945
- so if you work in Codex or Grok, writing it in the settings file did nothing
3946
- and there was no sign of why. hq now reads the file itself. As with the other
3947
- checkpoint settings, `settings.local.json` overrides it, anything you set in
3948
- your terminal overrides both, and `false` or `0` written as plain JSON works
3949
- as well as `"0"`. If the value is something the setting does not understand,
3950
- hq names it and leaves the requirement on rather than guessing.
3951
-
3952
- ## [5.115.4] — 2026-09-15
3953
-
3954
- ### Changed
3955
- - Search indexing now leaves qmd embeddings for a later pass when CPU or memory
3956
- use reaches 50%, while still updating the index. Set
3957
- `HQ_INDEX_MAX_LOAD_PERCENT` to another percentage, or to `0` or `off` to
3958
- disable this check. After 12 skipped passes or six hours, hq runs an embed
3959
- despite the load so search results do not fall behind forever.
3960
- - HQ's housekeeping pass (`hq reindex`, which runs after an agent finishes a
3961
- turn) is much faster on large setups. On a root with 21 companies it took
3962
- about two and a half minutes even with nothing to do. Two things were to
3963
- blame. The scan that finds your workers read every folder inside any source
3964
- code you keep under a company, `node_modules` and `.git` included, which on
3965
- that root meant reading 83,950 folders to find 126 worker files. It now skips
3966
- those folders instead of walking them, and takes 0.4 seconds instead of 22.
3967
- Separately, the hook health check ran every `hq doctor` check in order to
3968
- read six of them; it now asks only for the group those six live in.
3969
- - `hq doctor` takes `--only <families>`, so you can run one group of checks
3970
- instead of all of them: `hq doctor --only hooks`. A name it does not
3971
- recognise is refused rather than quietly checking nothing, and `--json`
3972
- records which groups ran, so a partial result cannot be read as a verdict on
3973
- the whole tree.
3974
-
3975
- ### Fixed
3976
-
3977
- - When Claude Code's saved login has stopped working, a local bot now says it needs a sign-in and keeps your message for when it works again. Before, the bot relayed Claude Code's own "Failed to authenticate" notice as if it were the model's answer, so HQ never showed the "Sign in again" button.
3978
-
3979
- ### Added
3980
-
3981
- - You can now switch off the background helper that tidies HQ after a
3982
- checkpoint, without giving up checkpoints themselves. Add
3983
- `"env": { "HQ_CHECKPOINT_AGENT": "0" }` to `.claude/settings.json` in your HQ
3984
- folder and the helper stops running; your checkpoint notes are still saved.
3985
- Set it back to `"1"` to turn it on again. It works the same whether you use
3986
- Claude Code, Codex or Grok, and `settings.local.json` overrides it if you
3987
- keep one. If the value is something the setting does not understand, hq says
3988
- so rather than quietly leaving the helper on.
3989
-
3990
- ## [5.115.3] — 2026-09-15
3991
-
3992
- ### Changed
3993
-
3994
- - The background helper that tidies HQ after a checkpoint now runs on cheaper
3995
- settings: Claude Sonnet 5 instead of Opus 5, Grok 4.6 instead of 4.5, and a
3996
- medium thinking effort on every engine (Codex and Grok were on high). It does
3997
- the same work; it just costs less while doing it.
3998
-
3999
- ## [5.115.2] — 2026-09-15
4000
-
4001
- ### Fixed
4002
-
4003
- - Search indexing no longer starts a second embedding rebuild when one is
4004
- already running. Two rebuilds could use much of a machine while writing to
4005
- the same local index, so hq now skips the duplicate and lets a later pass
4006
- finish any remaining work.
4007
- - Creating a company from the command line (`hq onboard create-company`), and from a bot's conversation, works again; it had been refused with "ownerUid must match the authenticated caller". A company you already created but never finished setting up is now picked up and completed instead of being refused as "already taken".
4008
-
4009
- ## [5.115.1] — 2026-09-15
4010
-
4011
- ### Fixed
4012
-
4013
- - `hq bot create --kind company` now sends the bot's companies with the create, as the cloud requires, so a company bot can actually be created; the cloud makes it a member of each company, and a company you are not an owner or admin of is refused before anything is created.
4014
-
4015
- ## [5.115.0] — 2026-09-15
4016
-
4017
- ### Added
4018
-
4019
- - Local bots now come in two kinds. A **personal bot** acts as you: everything
4020
- it does — in your direct messages, in rooms, and on its first task — runs
4021
- under your own account, so it reaches every company and file you can and
4022
- can create companies, bots, invites and shares for you. A **company bot**
4023
- acts as itself, like a cloud agent: it is a member of one or more companies
4024
- and reaches only those companies' files, memory and secrets; it never acts
4025
- as you and says so if asked to create something for you, suggesting you ask
4026
- a personal bot instead. `hq bot create <name> --kind personal|company
4027
- --company <slug>` (repeat `--company` for several) picks the kind; a
4028
- company bot is invited into each company as you create it, and the command
4029
- tells you exactly which invite did not go through. `hq bot companies
4030
- <name> --add/--remove <slug>` changes a company bot's memberships later.
4031
- `hq bot list --json` and `hq bot status` show each bot's kind and
4032
- companies, and every bot's instructions say which kind it is. Bots created
4033
- before this release keep working, as personal bots (including one created
4034
- from a company worker, and the setup bot). Removing a company bot with
4035
- `hq bot rm` also takes it out of its companies.
4036
- - A personal bot now runs `hq` commands as you in rooms too, not only in your
4037
- direct messages (before, its room turns used the bot's own identity).
4038
-
4039
- ### Fixed
4040
-
4041
- - When a local bot's coding tool (Claude Code, Codex or Grok) has lost its
4042
- sign-in, the bot no longer answers every message with "Failed to
4043
- authenticate". It says once that the tool needs you to sign in again, keeps
4044
- your message, and answers it on its own as soon as the sign-in works (right
4045
- away after `hq bot restart`). A setup bot's first step waits the same way.
4046
- `hq bot list --json` reports `runtimeSignIn` while this is the case.
4047
- - In your direct messages, a local bot now does what you ask under your own
4048
- account: creating a company, a bot, an invite or a share works directly,
4049
- instead of the bot explaining that the cloud refuses to let it act in your
4050
- name and asking you to run a command in a terminal. In rooms, bots still act
4051
- as themselves. A company you create this way now also adds that bot as a
4052
- member, so it can keep helping inside the new company.
4053
-
4054
- ## [5.114.0] — 2026-09-15
4055
-
4056
- ### Changed
4057
-
4058
- - Local bots now work on two conversations at once. A question in one
4059
- channel no longer waits for the bot to finish answering in another; messages
4060
- in the same conversation (your DMs with the bot, or one channel) are still
4061
- answered in order. A restart or stop during two turns reports each one that
4062
- did not finish.
4063
-
4064
- ### Fixed
4065
-
4066
- - The log bundle attached to `hq feedback` reports is now a zip instead of a
4067
- gzip. Slack refuses a gzip file from the HQ app at any size, so for several
4068
- weeks every report's logs were uploaded and then silently dropped before
4069
- anyone could read them. Nothing about what the bundle contains or how it is
4070
- redacted has changed.
4071
-
4072
- ## [5.113.1] — 2026-09-15
4073
-
4074
- ### Fixed
4075
-
4076
- - A bot can create a bot for its owner. `hq bot` commands (create, list, rm,
4077
- promote) always act as the signed-in person, even when a bot runs them; they
4078
- used the bot's own identity, which can own no bot, so the setup bot told
4079
- people to open a terminal to create their first bot.
4080
-
4081
- ## [5.113.0] — 2026-09-15
4082
-
4083
- ### Added
4084
-
4085
- - Search indexing now skips any file larger than 100 KB. HQ indexes every `.md`
4086
- and `.json` file under your project folders, which pulled in things nobody
4087
- searches as prose: browser trace dumps, perf captures, scraped datasets,
4088
- lockfiles. A few of those were large enough that indexing ran out of time
4089
- before it finished, so the search index never caught up. Set a different limit
4090
- with `HQ_INDEX_MAX_DOC_BYTES`, or `indexMaxDocBytes` in your HQ root's
4091
- `.hq/config.json`. Set it to `0` to index everything again.
4092
-
4093
- ## [5.112.0] — 2026-09-15
4094
-
4095
- ### Added
4096
-
4097
- - `hq core sentry report`: lets HQ hooks send one bounded diagnostic event to
4098
- Sentry through stdin. It is for hooks rather than everyday interactive use,
4099
- accepts only approved simple fields, and has a `--dry-run` mode that shows
4100
- the event it would send instead of sending it.
4101
-
4102
- ### Fixed
4103
-
4104
- - `hq` starts faster by loading only the command you run instead of every
4105
- command, and by avoiding an observability hook that delayed startup. Help
4106
- output and command behaviour are unchanged.
4107
- - Commands no longer wait as long for a network endpoint that accepts a
4108
- connection but does not answer. After a long-running command, hq still makes
4109
- time for error reporting and its version-cache refresh.
4110
- - CLI diagnostics now finish one release-health session with the correct final
4111
- state when a CLI run finishes or fails normally, including `hq-auth-refresh`,
4112
- instead of leaving a session open or competing sessions reporting the same
4113
- run.
4114
-
4115
- ## [5.111.2] — 2026-09-15
4116
-
4117
- ## [5.111.1] — 2026-09-14
4118
-
4119
- ### Fixed
4120
-
4121
- - A new bot's first message no longer tells its signed-in owner they are not
4122
- signed in. While the bot fetched its own sign-in, a check of the owner's
4123
- sign-in in the same process could read the bot's credentials instead and find
4124
- no account. Sign-in reads now wait for that to finish.
4125
- - When a bot cannot read its owner's account right away, it tries again before
4126
- answering, and never asks a signed-in owner to sign in or run a command. The
4127
- bot's log now records why an owner check failed.
4128
-
4129
- ## [5.111.0] — 2026-09-14
4130
-
4131
- ### Added
4132
-
4133
- - `hq skill delete <target>`: delete a company skill and all of its files for
4134
- everyone. Accepts a `skl_…` id, a SKILL.md path, or a skill slug; names the
4135
- skill and asks for confirmation (`--yes` skips it, and it refuses to run
4136
- unattended without `--yes`). Synced copies are removed on the next sync.
4137
- Requires access-admin rights on the skill.
4138
-
4139
- ## [5.110.0] — 2026-09-14
4140
-
4141
- ### Added
4142
-
4143
- - `hq bot`: personal local bots that run on your own computer under your Claude
4144
- Code, Codex, or Grok sign-in, with their own HQ identity and your permissions.
4145
- `hq bot create|list|status|start|stop|restart|rm|workers|set|logs` manage them;
4146
- each bot runs as a launchd agent, answers your DMs, can join group chats and
4147
- company channels, and can start from a company worker (`--worker`).
4148
- - The HQ setup bot: `hq bot create setup --worker setup` uses the setup worker
4149
- bundled with the CLI, so a fresh install can be walked through setup before
4150
- core workers have synced.
4151
- - Bots post their in-between messages while they work, have no turn time limit
4152
- (`HQ_BOT_TURN_TIMEOUT_MS` is opt-in), always reply, and never re-run a message
4153
- that already started.
4154
- - Per-bot model and thinking level (`hq bot set <name> --model --effort`),
4155
- read fresh on every turn.
4156
- - `hq bot promote`: move a local bot to the cloud as the same identity
4157
- (requires the matching backend release).
4158
-
4159
- ### Fixed
4160
-
4161
- - Bots no longer tell their owner they belong to no company: owner DM turns
4162
- carry the owner's companies, looked up with the owner's own sign-in, because
4163
- `hq` lookups a bot runs describe the bot itself.
4164
- - Stopping a bot's turn stops everything the model started, instead of waiting
4165
- for a child process that still holds the output open.
4166
-
4167
- ## [5.109.16] — 2026-09-14
4168
-
4169
- ### Changed
4170
-
4171
- - hq-cloud now uses 6.16.41, which reverts the phase-two resident journal change
4172
- that caused sync runners to spin.
4173
-
4174
- ## [5.109.15] — 2026-09-13
4175
-
4176
- ### Changed
4177
-
4178
- - hq-cli now bundles hq-cloud 6.16.39, reducing resident sync-journal memory
4179
- through the packed row store.
4180
-
4181
- ## [5.109.14] — 2026-09-13
4182
-
4183
- ### Fixed
4184
-
4185
- - Repeated "install tree was being rewritten" reports from a background reinstall
4186
- now collapse into one stable issue per outcome instead of spawning a fresh crash
4187
- report on every occurrence (Sentry HQ-CLI-21, HQ-CLI-22, HQ-CLI-23). hq already
4188
- groups these by their recovery outcome, but the grouping key led with a
4189
- placeholder that also told Sentry to fold in its own default grouping — and for
4190
- this error that default is the underlying loader failure, whose details differ
4191
- every time (which dependency file the reinstall happened to be rewriting, under
4192
- each machine's install path). So each occurrence minted a new issue and the
4193
- family never settled down. The key is now fully explicit and no longer inherits
4194
- that default, so future occurrences with the same outcome share one group. The
4195
- existing issues HQ-CLI-21/22/23 stay open as they are: a grouping change only
4196
- affects events reported after it ships.
4197
-
4198
- ## [5.109.13] — 2026-09-13
4199
-
4200
- ### Fixed
4201
-
4202
- - A background reinstall no longer turns into a crash report in the CommonJS twin
4203
- of the shape 5.109.12 fixed for ES modules (HQ-CLI-20). When another program
4204
- reinstalls hq globally while a command is starting, it rewrites hq's files one
4205
- by one over a few seconds. If a bundled CommonJS dependency (here `ajv`, reached
4206
- while `hq core timeout-guard` registers its commands) had just resolved one of
4207
- its own files and that file vanished before Node read it, the low-level `ENOENT …
4208
- open` came from inside Node's CommonJS module loader — a shape the recovery only
4209
- recognized for ES modules, so it was still filed as a crash. It is now recognized
4210
- as "your install was mid-update, not an hq bug": the command waits for the
4211
- reinstall to settle and re-runs once on the healed tree, and the same noise is
4212
- dropped on the routes that bypass the top-level handler. The gate is deliberately
4213
- narrow — it fires only when Node's own loader was reading a module's source (the
4214
- frame directly beneath the file read is a `cjs/loader` frame, never the
4215
- dependency's own code) — so a third-party package whose own startup code reads a
4216
- missing file, or a fault in hq's own shipped files, still reports exactly once
4217
- (Sentry HQ-CLI-20).
4218
-
4219
- ## [5.109.12] — 2026-09-12
4220
-
4221
- ### Fixed
4222
-
4223
- - A background reinstall no longer turns into a crash report in two more shapes
4224
- it was still slipping through (HQ-CLI-1S, HQ-CLI-1T). When another program
4225
- reinstalls hq globally while a command is starting, it renames hq's files aside
4226
- and rewrites them file by file over a few seconds. Two failure shapes from that
4227
- window were still filed as crashes instead of being recovered: (1) a file that
4228
- Node checked a moment earlier vanished between its two resolve steps, surfacing
4229
- as a low-level `ENOENT … lstat` from inside the module resolver (HQ-CLI-1S);
4230
- and (2) a dependency file that was found but only half-written, so loading it
4231
- returned an empty module and its own code threw `TypeError: … is not a
4232
- function` (HQ-CLI-1T). Both are now recognized as "your install was mid-update,
4233
- not an hq bug": the command waits for the reinstall to settle and re-runs once
4234
- on the healed tree instead of reporting an error. The half-written-file case
4235
- only ever waits when a reinstall is actually in progress — a genuine, lasting
4236
- defect in a third-party dependency still reports exactly once and never pays a
4237
- wait, and a fault in hq's own shipped files is still reported. (The two related
4238
- shapes HQ-CLI-1V and HQ-CLI-1W are already covered by 5.109.8 and #561.)
4239
-
4240
- ## [5.109.11] — 2026-09-12
4241
-
4242
- ### Fixed
4243
-
4244
- - A torn-install recovery no longer gives up after 90 seconds while another hq
4245
- updater is still legitimately installing hq-cli. When a command starts just as
4246
- the desktop app (or the box's `hq-cli-update` timer, or another `hq`) is
4247
- rewriting the install, the recovery waits for that writer to finish — bounded by
4248
- the shared install lock's own 10-minute staleness window rather than the 90-second
4249
- settle deadline — and then re-runs once on the healed tree, so the common case
4250
- (an install that finishes within the window) no longer fails at all. A short
4251
- second line explains the pause while it waits. If a writer holds the lock past
4252
- that ceiling, the command still fails once, but with a "let the update finish,
4253
- then re-run — do not reinstall while it is running" remedy and a distinct
4254
- `lock-held` outcome, instead of advice to reinstall over a live installer
4255
- (Sentry HQ-CLI-1Y, HQ-CLI-23). The ceiling is overridable with
4256
- `HQ_INSTALL_SETTLE_LOCK_TIMEOUT_MS`.
4257
-
4258
- ## [5.109.10] — 2026-09-12
4259
-
4260
- ### Fixed
4261
-
4262
- - A global reinstall that tears the install tree out mid-startup now recovers
4263
- even when the module that vanished is a RELATIVE sibling (for example
4264
- `@babel/runtime`'s `./typeof.js`, reached through the mqtt → worker-timers
4265
- chain). The torn-install classifier reduced a relative CJS specifier to the
4266
- package name `.`, producing a readiness probe that could never turn true — so
4267
- an affected command burned the entire 90-second settle budget, never re-ran on
4268
- the settled tree, and reported an error instead of recovering. Relative
4269
- specifiers are now re-resolved the way Node's CJS resolver does — from the
4270
- importer's directory, trying the file, its `.js`/`.json`/`.node` forms, and the
4271
- directory forms — so the command waits only as long as the reinstall actually
4272
- takes and then re-execs once on the healed tree. A genuinely missing sibling
4273
- still surfaces exactly one error naming the resolved path (Sentry HQ-CLI-1R).
4274
-
4275
- ## [5.109.8] — 2026-09-11
4276
-
4277
- ### Fixed
4278
-
4279
- - A background reinstall no longer turns into a crash report (HQ-CLI-1M,
4280
- HQ-CLI-1N). When another program reinstalls hq globally while a command is
4281
- running — the box's own update timer, the desktop app, or a second `hq` — it
4282
- renames hq's files aside and rewrites them file by file over a few seconds, and
4283
- a command already running can try to load a file that vanished in that window.
4284
- hq already knew to treat that as "your install was mid-update, not an hq bug"
4285
- and print a re-run/reinstall note instead of a crash, but it could only do so
4286
- while it could still find its own install directory on disk — which, in this
4287
- exact situation, it usually could not, because that directory is what just got
4288
- renamed away. That one blind spot silenced the recovery for two different crash
4289
- shapes: the ESM-loader `ENOENT` seen in production (HQ-CLI-1M) and a lazy
4290
- CommonJS `require('./sibling')` from a bundled dependency that resolves after
4291
- the tear (HQ-CLI-1N). hq now locates its own directory without reading the
4292
- disk, so the mid-update case is recognized for both: a registration-time tear
4293
- waits for the install to settle and re-runs once, and a tear anywhere else
4294
- prints the reinstall note. A genuine packaging fault in hq's own shipped files
4295
- (a miss under the install's own `dist/` or `assets/`) is still reported.
4296
-
4297
- ## [5.109.7] — 2026-09-10
4298
-
4299
- ### Fixed
4300
-
4301
- - Add `whoami --json`, structured `files acl --json` with explicit absence,
4302
- and `people resolve --membership-only` with canonical company/person IDs.
4303
- Delegation helpers can now verify exact grants without parsing display tables
4304
- or treating a missing ACL as a transport failure. Existing human output stays available.
5
+ ## [5.314.0] — 2026-10-02
4305
6
 
4306
7
  ## [5.109.6] — 2026-09-10
4307
8