@wardby/cli 0.6.0 → 0.7.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 (576) hide show
  1. package/deploy/local/docker-compose.quickstart-coding.yml +13 -0
  2. package/dist/claude-coding-worker/driver.d.ts +21 -3
  3. package/dist/claude-coding-worker/driver.js +125 -17
  4. package/dist/claude-coding-worker/main.js +34 -6
  5. package/dist/claude-coding-worker/sdk.js +12 -1
  6. package/dist/claude-coding-worker/tool-socket.d.ts +27 -0
  7. package/dist/claude-coding-worker/tool-socket.js +111 -0
  8. package/dist/claude-coding-worker/transcript.d.ts +18 -0
  9. package/dist/claude-coding-worker/transcript.js +77 -0
  10. package/dist/cli-help.d.ts +1 -1
  11. package/dist/cli-help.js +1 -0
  12. package/dist/cli.js +24 -10
  13. package/dist/coding/continuation-wording.d.ts +35 -0
  14. package/dist/coding/continuation-wording.js +73 -0
  15. package/dist/coding/linked-issue-note.d.ts +23 -0
  16. package/dist/coding/linked-issue-note.js +47 -0
  17. package/dist/coding/merge-wording.d.ts +28 -0
  18. package/dist/coding/merge-wording.js +78 -0
  19. package/dist/coding/pr-description-note.d.ts +9 -0
  20. package/dist/coding/pr-description-note.js +32 -0
  21. package/dist/coding/profile.d.ts +46 -126
  22. package/dist/coding/profile.js +45 -4
  23. package/dist/coding/protected-path-wording.d.ts +8 -0
  24. package/dist/coding/protected-path-wording.js +1 -1
  25. package/dist/coding/protocol.d.ts +264 -346
  26. package/dist/coding/protocol.js +235 -12
  27. package/dist/coding/redact.d.ts +3 -0
  28. package/dist/coding/redact.js +12 -0
  29. package/dist/coding/registry/allowlist.d.ts +12 -0
  30. package/dist/coding/registry/allowlist.js +14 -1
  31. package/dist/coding/registry/audit-mode.d.ts +153 -0
  32. package/dist/coding/registry/audit-mode.js +304 -0
  33. package/dist/coding/registry/lockfile-shared.d.ts +36 -0
  34. package/dist/coding/registry/lockfile-shared.js +128 -0
  35. package/dist/coding/registry/lockfiles.js +1 -1
  36. package/dist/coding/registry/npm-lockfile-formats.d.ts +11 -0
  37. package/dist/coding/registry/npm-lockfile-formats.js +41 -0
  38. package/dist/coding/registry/npm-lockfile.d.ts +8 -4
  39. package/dist/coding/registry/npm-lockfile.js +4 -6
  40. package/dist/coding/registry/npm.js +78 -8
  41. package/dist/coding/registry/pnpm-lockfile.d.ts +17 -0
  42. package/dist/coding/registry/pnpm-lockfile.js +189 -0
  43. package/dist/coding/registry/pypi-plan.d.ts +50 -0
  44. package/dist/coding/registry/pypi-plan.js +406 -0
  45. package/dist/coding/registry/pypi-requirements.d.ts +58 -0
  46. package/dist/coding/registry/pypi-requirements.js +155 -0
  47. package/dist/coding/registry/pypi.d.ts +3 -27
  48. package/dist/coding/registry/pypi.js +40 -154
  49. package/dist/coding/registry/refusal-hints.d.ts +20 -0
  50. package/dist/coding/registry/refusal-hints.js +61 -0
  51. package/dist/coding/registry/refusal-wording.d.ts +11 -0
  52. package/dist/coding/registry/refusal-wording.js +56 -0
  53. package/dist/coding/registry/report.d.ts +70 -8
  54. package/dist/coding/registry/report.js +112 -5
  55. package/dist/coding/registry/types.d.ts +58 -8
  56. package/dist/coding/registry/yarn-lockfile.d.ts +30 -0
  57. package/dist/coding/registry/yarn-lockfile.js +367 -0
  58. package/dist/coding/services/catalog.d.ts +37 -351
  59. package/dist/coding/transcript/claude-code.d.ts +13 -0
  60. package/dist/coding/transcript/claude-code.js +273 -0
  61. package/dist/coding/transcript/download-protocol.d.ts +30 -0
  62. package/dist/coding/transcript/download-protocol.js +18 -0
  63. package/dist/coding/transcript/format.d.ts +20 -0
  64. package/dist/coding/transcript/format.js +32 -0
  65. package/dist/coding/transcript/recorder.d.ts +51 -0
  66. package/dist/coding/transcript/recorder.js +225 -0
  67. package/dist/coding/transcript/resume/checkout.d.ts +31 -0
  68. package/dist/coding/transcript/resume/checkout.js +203 -0
  69. package/dist/coding/transcript/resume/command.d.ts +17 -0
  70. package/dist/coding/transcript/resume/command.js +176 -0
  71. package/dist/coding/transcript/resume/download.d.ts +20 -0
  72. package/dist/coding/transcript/resume/download.js +153 -0
  73. package/dist/coding/transcript/resume/launch.d.ts +38 -0
  74. package/dist/coding/transcript/resume/launch.js +128 -0
  75. package/dist/coding/transcript/resume/session-file.d.ts +13 -0
  76. package/dist/coding/transcript/resume/session-file.js +79 -0
  77. package/dist/coding/transcript/resume/stand-in.d.ts +11 -0
  78. package/dist/coding/transcript/resume/stand-in.js +49 -0
  79. package/dist/coding-worker/artifact.d.ts +8 -3
  80. package/dist/coding-worker/artifact.js +3 -1
  81. package/dist/coding-worker/debug-trace.d.ts +6 -5
  82. package/dist/coding-worker/debug-trace.js +13 -18
  83. package/dist/coding-worker/dependency-cache.d.mts +229 -0
  84. package/dist/coding-worker/dependency-cache.mjs +2123 -0
  85. package/dist/coding-worker/driver.d.ts +4 -3
  86. package/dist/coding-worker/driver.js +116 -38
  87. package/dist/coding-worker/errors.d.ts +1 -0
  88. package/dist/coding-worker/errors.js +32 -0
  89. package/dist/coding-worker/task-note.d.ts +11 -0
  90. package/dist/coding-worker/task-note.js +13 -0
  91. package/dist/coding-worker/types.d.ts +11 -0
  92. package/dist/config/dependency-cache.d.ts +23 -0
  93. package/dist/config/dependency-cache.js +32 -0
  94. package/dist/config/providers.d.ts +12 -3
  95. package/dist/config/providers.js +55 -5
  96. package/dist/config/test-simulators.d.ts +82 -0
  97. package/dist/config/test-simulators.js +305 -0
  98. package/dist/core/async-context.d.ts +2 -0
  99. package/dist/core/async-context.js +12 -0
  100. package/dist/core/budget-events.d.ts +108 -0
  101. package/dist/core/budget-events.js +346 -0
  102. package/dist/core/budget-groups.d.ts +50 -1
  103. package/dist/core/budget-groups.js +236 -27
  104. package/dist/core/budget-stopped-head.d.ts +46 -0
  105. package/dist/core/budget-stopped-head.js +81 -0
  106. package/dist/core/budget-topup.d.ts +51 -0
  107. package/dist/core/budget-topup.js +156 -0
  108. package/dist/core/budget-wording.d.ts +16 -2
  109. package/dist/core/budget-wording.js +40 -2
  110. package/dist/core/coding-queue.d.ts +2 -1
  111. package/dist/core/coding-queue.js +7 -0
  112. package/dist/core/cron.d.ts +19 -1
  113. package/dist/core/cron.js +17 -0
  114. package/dist/core/datastores.js +1 -1
  115. package/dist/core/deferred-coding.d.ts +14 -0
  116. package/dist/core/deferred-coding.js +62 -0
  117. package/dist/core/delegation-child.d.ts +25 -0
  118. package/dist/core/delegation-child.js +37 -0
  119. package/dist/core/dispatch.d.ts +42 -0
  120. package/dist/core/dispatch.js +131 -56
  121. package/dist/core/engine-native.js +1 -1
  122. package/dist/core/error-code.d.ts +38 -0
  123. package/dist/core/error-code.js +168 -0
  124. package/dist/core/grants.d.ts +19 -6
  125. package/dist/core/grants.js +55 -6
  126. package/dist/core/host-events.d.ts +18 -2
  127. package/dist/core/host-events.js +284 -24
  128. package/dist/core/host-status.d.ts +85 -3
  129. package/dist/core/host-status.js +298 -20
  130. package/dist/core/issue-bridge.d.ts +50 -6
  131. package/dist/core/issue-bridge.js +124 -33
  132. package/dist/core/issue-events.d.ts +1 -1
  133. package/dist/core/issue-events.js +4 -10
  134. package/dist/core/issue-status.d.ts +1 -1
  135. package/dist/core/issue-status.js +54 -26
  136. package/dist/core/logger.d.ts +5 -0
  137. package/dist/core/logger.js +14 -1
  138. package/dist/core/lost-run-children.d.ts +6 -0
  139. package/dist/core/lost-run-children.js +32 -0
  140. package/dist/core/mark-ready.d.ts +34 -0
  141. package/dist/core/mark-ready.js +152 -0
  142. package/dist/core/markdown-code.d.ts +8 -0
  143. package/dist/core/markdown-code.js +107 -0
  144. package/dist/core/memory-tools.js +7 -0
  145. package/dist/core/merge-order-check.d.ts +2 -1
  146. package/dist/core/merge-order-check.js +8 -1
  147. package/dist/core/notification-templates.d.ts +1 -7
  148. package/dist/core/notification-templates.js +36 -2
  149. package/dist/core/pull-request-state-sync.js +2 -2
  150. package/dist/core/reconciler.d.ts +4 -3
  151. package/dist/core/reconciler.js +8 -1
  152. package/dist/core/related-pull-requests.d.ts +11 -3
  153. package/dist/core/related-pull-requests.js +27 -14
  154. package/dist/core/reply-parts.d.ts +21 -0
  155. package/dist/core/reply-parts.js +73 -0
  156. package/dist/core/review-fix.d.ts +1 -1
  157. package/dist/core/review-fix.js +2 -1
  158. package/dist/core/review-host-checks.d.ts +1 -1
  159. package/dist/core/review-host-tools.d.ts +3 -0
  160. package/dist/core/review-host-tools.js +99 -13
  161. package/dist/core/review-reads.d.ts +55 -0
  162. package/dist/core/review-reads.js +233 -0
  163. package/dist/core/run-status.d.ts +12 -0
  164. package/dist/core/run-status.js +12 -0
  165. package/dist/core/runner.d.ts +80 -34
  166. package/dist/core/runner.js +439 -144
  167. package/dist/core/schedule-start.d.ts +12 -0
  168. package/dist/core/schedule-start.js +14 -0
  169. package/dist/core/secret-broker-config.d.ts +10 -74
  170. package/dist/core/secret-guard.d.ts +46 -0
  171. package/dist/core/secret-guard.js +104 -0
  172. package/dist/core/secret-guarded-stores.d.ts +12 -0
  173. package/dist/core/secret-guarded-stores.js +41 -0
  174. package/dist/core/secret-spans.d.ts +50 -0
  175. package/dist/core/secret-spans.js +94 -0
  176. package/dist/core/stop-run.d.ts +46 -0
  177. package/dist/core/stop-run.js +61 -0
  178. package/dist/core/workflow-events.d.ts +14 -2
  179. package/dist/core/workflow-events.js +4 -0
  180. package/dist/core/workflow-run-events.d.ts +5 -3
  181. package/dist/core/workflow-run-events.js +43 -8
  182. package/dist/core/zod-json-schema.d.ts +4 -0
  183. package/dist/core/zod-json-schema.js +39 -0
  184. package/dist/core/zod3-window.d.ts +35 -0
  185. package/dist/core/zod3-window.js +124 -0
  186. package/dist/generated/prisma/browser.d.ts +34 -3
  187. package/dist/generated/prisma/client.d.ts +34 -3
  188. package/dist/generated/prisma/commonInputTypes.d.ts +220 -60
  189. package/dist/generated/prisma/enums.d.ts +10 -0
  190. package/dist/generated/prisma/enums.js +8 -0
  191. package/dist/generated/prisma/internal/class.d.ts +44 -0
  192. package/dist/generated/prisma/internal/class.js +4 -4
  193. package/dist/generated/prisma/internal/prismaNamespace.d.ts +428 -9
  194. package/dist/generated/prisma/internal/prismaNamespace.js +92 -1
  195. package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +95 -0
  196. package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +92 -1
  197. package/dist/generated/prisma/models/Agent.d.ts +106 -8
  198. package/dist/generated/prisma/models/AgentRepository.d.ts +42 -1
  199. package/dist/generated/prisma/models/CodingAgentProfile.d.ts +229 -1
  200. package/dist/generated/prisma/models/CodingProxyRequest.d.ts +207 -3
  201. package/dist/generated/prisma/models/CodingProxySession.d.ts +114 -1
  202. package/dist/generated/prisma/models/CodingRun.d.ts +1637 -1
  203. package/dist/generated/prisma/models/DependencySnapshot.d.ts +1668 -0
  204. package/dist/generated/prisma/models/DependencySnapshot.js +1 -0
  205. package/dist/generated/prisma/models/IssuePullRequest.d.ts +6 -2
  206. package/dist/generated/prisma/models/LocalReview.d.ts +40 -1
  207. package/dist/generated/prisma/models/NativeGatewayCall.d.ts +39 -1
  208. package/dist/generated/prisma/models/NativeGatewaySession.d.ts +35 -1
  209. package/dist/generated/prisma/models/RegistryAllowance.d.ts +41 -1
  210. package/dist/generated/prisma/models/RegistryApprovedVersion.d.ts +75 -1
  211. package/dist/generated/prisma/models/RegistryAuditRecord.d.ts +1364 -0
  212. package/dist/generated/prisma/models/RegistryAuditRecord.js +1 -0
  213. package/dist/generated/prisma/models/Run.d.ts +738 -2
  214. package/dist/generated/prisma/models/RunBudgetEvent.d.ts +1211 -0
  215. package/dist/generated/prisma/models/RunBudgetEvent.js +1 -0
  216. package/dist/generated/prisma/models/RunTranscript.d.ts +1339 -0
  217. package/dist/generated/prisma/models/RunTranscript.js +1 -0
  218. package/dist/generated/prisma/models.d.ts +4 -0
  219. package/dist/help-index.json +1320 -69
  220. package/dist/import/create.js +32 -3
  221. package/dist/import/neutral-schema.d.ts +50 -281
  222. package/dist/import/neutral-schema.js +5 -4
  223. package/dist/knowledge/check.d.ts +1 -1
  224. package/dist/knowledge/cli.d.ts +11 -1
  225. package/dist/knowledge/cli.js +37 -4
  226. package/dist/knowledge/concept.d.ts +3 -19
  227. package/dist/knowledge/location.d.ts +31 -0
  228. package/dist/knowledge/location.js +78 -0
  229. package/dist/mcp/auth/access.d.ts +10 -2
  230. package/dist/mcp/auth/access.js +15 -1
  231. package/dist/mcp/auth/ownership.d.ts +7 -7
  232. package/dist/mcp/auth/self-hosted/credentials.d.ts +3 -3
  233. package/dist/mcp/auth/self-hosted/session.d.ts +2 -2
  234. package/dist/mcp/host-events/github-ingress.d.ts +2 -0
  235. package/dist/mcp/host-events/github-ingress.js +2 -1
  236. package/dist/mcp/index.d.ts +6 -0
  237. package/dist/mcp/index.js +58 -10
  238. package/dist/mcp/server.d.ts +13 -0
  239. package/dist/mcp/server.js +33 -14
  240. package/dist/mcp/tools/agents.d.ts +4 -0
  241. package/dist/mcp/tools/agents.js +198 -16
  242. package/dist/mcp/tools/datastore.js +17 -8
  243. package/dist/mcp/tools/grants.js +9 -3
  244. package/dist/mcp/tools/memory.js +11 -1
  245. package/dist/mcp/tools/notification-channels.js +2 -2
  246. package/dist/mcp/tools/packages.d.ts +2 -0
  247. package/dist/mcp/tools/packages.js +195 -0
  248. package/dist/mcp/tools/repositories.js +18 -5
  249. package/dist/mcp/tools/run-access.d.ts +16 -0
  250. package/dist/mcp/tools/run-access.js +25 -0
  251. package/dist/mcp/tools/run-transcript-download.d.ts +30 -0
  252. package/dist/mcp/tools/run-transcript-download.js +129 -0
  253. package/dist/mcp/tools/run-transcript.d.ts +19 -0
  254. package/dist/mcp/tools/run-transcript.js +70 -0
  255. package/dist/mcp/tools/runs.js +34 -12
  256. package/dist/mcp/tools/scheduling.js +3 -1
  257. package/dist/mcp/tools/secret-elicitation-form.js +5 -0
  258. package/dist/mcp/tools/secret-elicitation-server.d.ts +6 -0
  259. package/dist/mcp/tools/secret-elicitation-server.js +10 -61
  260. package/dist/mcp/tools/secrets.js +2 -2
  261. package/dist/mcp/tools/stop-run.d.ts +2 -0
  262. package/dist/mcp/tools/stop-run.js +82 -0
  263. package/dist/mcp/tools/subagents.js +2 -2
  264. package/dist/mcp/tools/tools.d.ts +1 -1
  265. package/dist/mcp/tools/tools.js +25 -9
  266. package/dist/mcp/transport/stdio-link-host.d.ts +20 -0
  267. package/dist/mcp/transport/stdio-link-host.js +67 -0
  268. package/dist/mcp/transport/streamable-http.d.ts +13 -0
  269. package/dist/mcp/transport/streamable-http.js +41 -1
  270. package/dist/native-worker/docker-launcher.d.ts +38 -2
  271. package/dist/native-worker/docker-launcher.js +65 -5
  272. package/dist/native-worker/gateway-server.d.ts +41 -3
  273. package/dist/native-worker/gateway-server.js +124 -27
  274. package/dist/native-worker/gateway.d.ts +27 -1
  275. package/dist/native-worker/gateway.js +70 -4
  276. package/dist/native-worker/http-server.d.ts +3 -1
  277. package/dist/native-worker/http-server.js +11 -7
  278. package/dist/native-worker/http-transport.js +1 -1
  279. package/dist/native-worker/kubernetes-launcher.d.ts +7 -3
  280. package/dist/native-worker/kubernetes-launcher.js +43 -3
  281. package/dist/native-worker/launch.d.ts +18 -1
  282. package/dist/native-worker/launch.js +6 -1
  283. package/dist/native-worker/ledger.d.ts +18 -2
  284. package/dist/native-worker/ledger.js +57 -4
  285. package/dist/native-worker/loopback.js +3 -8
  286. package/dist/native-worker/main.d.ts +2 -1
  287. package/dist/native-worker/main.js +14 -3
  288. package/dist/native-worker/protocol.d.ts +129 -577
  289. package/dist/native-worker/protocol.js +47 -1
  290. package/dist/native-worker/sandbox-executor.d.ts +17 -2
  291. package/dist/native-worker/sandbox-executor.js +78 -4
  292. package/dist/native-worker/stderr-redaction.d.ts +77 -0
  293. package/dist/native-worker/stderr-redaction.js +237 -0
  294. package/dist/native-worker/stdio.d.ts +1 -1
  295. package/dist/native-worker/stdio.js +6 -5
  296. package/dist/native-worker/warm-pool.d.ts +2 -2
  297. package/dist/native-worker/warm-pool.js +4 -4
  298. package/dist/native-worker/worker.js +28 -2
  299. package/dist/observability/metrics.js +6 -1
  300. package/dist/providers/auth/self-hosted.d.ts +1 -1
  301. package/dist/providers/coding-proxy/dependency-cache/eviction.d.ts +29 -0
  302. package/dist/providers/coding-proxy/dependency-cache/eviction.js +87 -0
  303. package/dist/providers/coding-proxy/dependency-cache/key.d.ts +33 -0
  304. package/dist/providers/coding-proxy/dependency-cache/key.js +86 -0
  305. package/dist/providers/coding-proxy/dependency-cache/model-request-seal.d.ts +18 -0
  306. package/dist/providers/coding-proxy/dependency-cache/model-request-seal.js +40 -0
  307. package/dist/providers/coding-proxy/dependency-cache/prisma-store.d.ts +25 -0
  308. package/dist/providers/coding-proxy/dependency-cache/prisma-store.js +131 -0
  309. package/dist/providers/coding-proxy/dependency-cache/service.d.ts +70 -0
  310. package/dist/providers/coding-proxy/dependency-cache/service.js +409 -0
  311. package/dist/providers/coding-proxy/dependency-cache/store.d.ts +85 -0
  312. package/dist/providers/coding-proxy/dependency-cache/store.js +95 -0
  313. package/dist/providers/coding-proxy/hold.d.ts +32 -0
  314. package/dist/providers/coding-proxy/hold.js +86 -0
  315. package/dist/providers/coding-proxy/interrupted.d.ts +70 -0
  316. package/dist/providers/coding-proxy/interrupted.js +104 -0
  317. package/dist/providers/coding-proxy/memory-ledger.d.ts +15 -2
  318. package/dist/providers/coding-proxy/memory-ledger.js +84 -8
  319. package/dist/providers/coding-proxy/metering.d.ts +16 -0
  320. package/dist/providers/coding-proxy/metering.js +27 -4
  321. package/dist/providers/coding-proxy/prisma-ledger.d.ts +15 -2
  322. package/dist/providers/coding-proxy/prisma-ledger.js +179 -67
  323. package/dist/providers/coding-proxy/proxy.d.ts +14 -1
  324. package/dist/providers/coding-proxy/proxy.js +166 -14
  325. package/dist/providers/coding-proxy/registry/audit.d.ts +53 -10
  326. package/dist/providers/coding-proxy/registry/audit.js +94 -17
  327. package/dist/providers/coding-proxy/registry/lockfile-parse-worker.d.ts +36 -0
  328. package/dist/providers/coding-proxy/registry/lockfile-parse-worker.js +67 -0
  329. package/dist/providers/coding-proxy/registry/lockfile-parse.d.ts +16 -0
  330. package/dist/providers/coding-proxy/registry/lockfile-parse.js +110 -0
  331. package/dist/providers/coding-proxy/registry/plan.d.ts +9 -0
  332. package/dist/providers/coding-proxy/registry/plan.js +201 -48
  333. package/dist/providers/coding-proxy/registry/prisma-store.d.ts +11 -5
  334. package/dist/providers/coding-proxy/registry/prisma-store.js +120 -17
  335. package/dist/providers/coding-proxy/registry/service.d.ts +97 -16
  336. package/dist/providers/coding-proxy/registry/service.js +579 -112
  337. package/dist/providers/coding-proxy/registry/store.d.ts +84 -9
  338. package/dist/providers/coding-proxy/registry/store.js +54 -1
  339. package/dist/providers/coding-proxy/runtime.d.ts +4 -0
  340. package/dist/providers/coding-proxy/runtime.js +78 -16
  341. package/dist/providers/coding-proxy/server.d.ts +6 -1
  342. package/dist/providers/coding-proxy/server.js +45 -1
  343. package/dist/providers/coding-proxy/types.d.ts +65 -1
  344. package/dist/providers/datastore/types.d.ts +5 -0
  345. package/dist/providers/engine/types.d.ts +17 -2
  346. package/dist/providers/engine/types.js +17 -0
  347. package/dist/providers/executor/composition.d.ts +10 -3
  348. package/dist/providers/executor/composition.js +47 -7
  349. package/dist/providers/executor/container.d.ts +361 -8
  350. package/dist/providers/executor/container.js +1136 -91
  351. package/dist/providers/executor/dbos-status.d.ts +31 -0
  352. package/dist/providers/executor/dbos-status.js +64 -0
  353. package/dist/providers/executor/dbos.d.ts +50 -1
  354. package/dist/providers/executor/dbos.js +207 -20
  355. package/dist/providers/executor/deferred.d.ts +12 -24
  356. package/dist/providers/executor/deferred.js +10 -29
  357. package/dist/providers/executor/in-process.d.ts +9 -1
  358. package/dist/providers/executor/in-process.js +14 -4
  359. package/dist/providers/executor/linked-issue-reader.d.ts +16 -0
  360. package/dist/providers/executor/linked-issue-reader.js +30 -0
  361. package/dist/providers/executor/routing.d.ts +2 -0
  362. package/dist/providers/executor/routing.js +4 -0
  363. package/dist/providers/executor/types.d.ts +13 -0
  364. package/dist/providers/index.d.ts +2 -1
  365. package/dist/providers/issue-tracker/types.d.ts +17 -0
  366. package/dist/providers/issue-tracker/types.js +39 -1
  367. package/dist/providers/jobs/claude-tool-setup.d.ts +4 -0
  368. package/dist/providers/jobs/claude-tool-setup.js +5 -2
  369. package/dist/providers/jobs/docker-isolation.d.ts +8 -0
  370. package/dist/providers/jobs/docker-isolation.js +17 -0
  371. package/dist/providers/jobs/docker.d.ts +1 -0
  372. package/dist/providers/jobs/docker.js +27 -2
  373. package/dist/providers/jobs/fake-kubernetes-api.d.ts +2 -0
  374. package/dist/providers/jobs/fake-kubernetes-api.js +3 -0
  375. package/dist/providers/jobs/kubernetes-api.d.ts +8 -0
  376. package/dist/providers/jobs/kubernetes-api.js +10 -0
  377. package/dist/providers/jobs/kubernetes-client.js +10 -1
  378. package/dist/providers/jobs/kubernetes-isolation.d.ts +2 -0
  379. package/dist/providers/jobs/kubernetes-isolation.js +17 -1
  380. package/dist/providers/jobs/kubernetes.d.ts +6 -1
  381. package/dist/providers/jobs/kubernetes.js +105 -16
  382. package/dist/providers/jobs/types.d.ts +33 -0
  383. package/dist/providers/jobs/types.js +13 -1
  384. package/dist/providers/llm/anthropic.js +5 -1
  385. package/dist/providers/llm/bedrock.d.ts +0 -12
  386. package/dist/providers/llm/bedrock.js +4 -0
  387. package/dist/providers/llm/claude-messages.d.ts +3 -1
  388. package/dist/providers/llm/claude-messages.js +4 -1
  389. package/dist/providers/llm/claude-provider.d.ts +2 -2
  390. package/dist/providers/llm/claude-provider.js +2 -2
  391. package/dist/providers/llm/openai.d.ts +2 -2
  392. package/dist/providers/llm/openai.js +6 -2
  393. package/dist/providers/llm/routing.d.ts +2 -2
  394. package/dist/providers/llm/routing.js +2 -2
  395. package/dist/providers/llm/types.d.ts +12 -2
  396. package/dist/providers/review-host/github-events.d.ts +9 -1
  397. package/dist/providers/review-host/github-events.js +34 -12
  398. package/dist/providers/review-host/github.d.ts +29 -2
  399. package/dist/providers/review-host/github.js +224 -29
  400. package/dist/providers/review-host/local.d.ts +8 -4
  401. package/dist/providers/review-host/local.js +49 -31
  402. package/dist/providers/review-host/patch-pages.d.ts +41 -0
  403. package/dist/providers/review-host/patch-pages.js +176 -0
  404. package/dist/providers/review-host/review-format.d.ts +19 -1
  405. package/dist/providers/review-host/review-format.js +38 -7
  406. package/dist/providers/review-host/types.d.ts +134 -2
  407. package/dist/providers/review-host/types.js +8 -0
  408. package/dist/providers/storage/gcs.d.ts +63 -0
  409. package/dist/providers/storage/gcs.js +69 -0
  410. package/dist/providers/storage/index.d.ts +15 -0
  411. package/dist/providers/storage/index.js +14 -0
  412. package/dist/providers/storage/local.d.ts +24 -0
  413. package/dist/providers/storage/local.js +92 -0
  414. package/dist/providers/storage/meter.d.ts +14 -0
  415. package/dist/providers/storage/meter.js +34 -0
  416. package/dist/providers/storage/s3.d.ts +41 -0
  417. package/dist/providers/storage/s3.js +107 -0
  418. package/dist/providers/storage/types.d.ts +37 -3
  419. package/dist/providers/storage/types.js +21 -4
  420. package/dist/providers/vcs/git.d.ts +33 -2
  421. package/dist/providers/vcs/git.js +324 -22
  422. package/dist/providers/vcs/github-remote.d.ts +26 -3
  423. package/dist/providers/vcs/github-remote.js +124 -14
  424. package/dist/providers/vcs/github.d.ts +214 -6
  425. package/dist/providers/vcs/github.js +447 -45
  426. package/dist/providers/vcs/index.js +8 -1
  427. package/dist/providers/vcs/pr-description.d.ts +127 -0
  428. package/dist/providers/vcs/pr-description.js +270 -0
  429. package/dist/providers/vcs/remote.d.ts +33 -1
  430. package/dist/providers/vcs/routing.d.ts +4 -2
  431. package/dist/providers/vcs/routing.js +6 -0
  432. package/dist/providers/vcs/types.d.ts +80 -3
  433. package/dist/quickstart/coding-seed.d.ts +14 -3
  434. package/dist/quickstart/coding-seed.js +213 -4
  435. package/dist/quickstart/reviewer-prompt.d.ts +1 -1
  436. package/dist/quickstart/reviewer-prompt.js +6 -6
  437. package/dist/quickstart-images.json +1 -1
  438. package/dist/sandbox/generated/zod.bundle.js +62 -1
  439. package/dist/sandbox/generated/zod3.bundle.js +5 -0
  440. package/dist/sandbox/host-functions.d.ts +1 -0
  441. package/dist/sandbox/host-functions.js +6 -11
  442. package/dist/sandbox/secret-broker.js +3 -4
  443. package/dist/sandbox/tool-capabilities.d.ts +10 -30
  444. package/dist/sandbox/zod-params.d.ts +37 -5
  445. package/dist/sandbox/zod-params.js +181 -26
  446. package/dist/serve.js +8 -1
  447. package/dist/viewer/api-schema.d.ts +349 -2627
  448. package/dist/viewer/api-schema.js +7 -0
  449. package/dist/viewer/build-schemas.js +6 -2
  450. package/dist/viewer/openapi.js +2 -4
  451. package/dist/wardby-bin.js +10 -0
  452. package/docs/agent-recipes.md +58 -20
  453. package/docs/code-review-agents.md +551 -41
  454. package/docs/coding-agent-setup.md +489 -7
  455. package/docs/coding-packages.md +1033 -90
  456. package/docs/coding-services.md +27 -12
  457. package/docs/coding-worker-byo-images.md +20 -0
  458. package/docs/coding-worker-isolation.md +105 -30
  459. package/docs/getting-started-gke.md +124 -137
  460. package/docs/getting-started-identity-provider.md +10 -1
  461. package/docs/getting-started.md +9 -0
  462. package/docs/jira-agents.md +17 -8
  463. package/docs/knowledge/blob-not-found-semantics.md +41 -0
  464. package/docs/knowledge/bounded-file-descriptor.md +52 -0
  465. package/docs/knowledge/delegation-admission-slots.md +52 -0
  466. package/docs/knowledge/http-dispatcher-bootstrap.md +61 -0
  467. package/docs/knowledge/import-rename-target.md +52 -0
  468. package/docs/knowledge/index.md +57 -0
  469. package/docs/knowledge/log.md +9 -0
  470. package/docs/knowledge/mcp-cancelled-task-precedence.md +41 -0
  471. package/docs/knowledge/mcp-http-prompt-discovery.md +41 -0
  472. package/docs/knowledge/mcp-schema-module-boundary.md +41 -0
  473. package/docs/knowledge/nullable-tool-uniqueness.md +52 -0
  474. package/docs/knowledge/overview-cli.md +74 -0
  475. package/docs/knowledge/overview-coding-proxy.md +72 -0
  476. package/docs/knowledge/overview-coding.md +72 -0
  477. package/docs/knowledge/overview-config.md +60 -0
  478. package/docs/knowledge/overview-core.md +72 -0
  479. package/docs/knowledge/overview-deploy.md +83 -0
  480. package/docs/knowledge/overview-mcp.md +61 -0
  481. package/docs/knowledge/overview-prisma.md +72 -0
  482. package/docs/knowledge/overview-providers.md +89 -0
  483. package/docs/knowledge/overview-sandbox.md +83 -0
  484. package/docs/knowledge/overview-surfaces.md +83 -0
  485. package/docs/knowledge/private-datastore-shared-boundary.md +54 -0
  486. package/docs/knowledge/proxy-settlement-projections.md +41 -0
  487. package/docs/knowledge/run-pricing-first-writer.md +43 -0
  488. package/docs/knowledge/schedule-claim-transaction.md +41 -0
  489. package/docs/knowledge/secret-entry-replica-contract.md +52 -0
  490. package/docs/knowledge/terminal-run-first-writer.md +41 -0
  491. package/docs/knowledge/transactional-agent-authorization.md +52 -0
  492. package/docs/knowledge/viewer-notify-write-isolation.md +30 -0
  493. package/docs/knowledge/warm-input-publication.md +30 -0
  494. package/docs/knowledge/workspace-staging-failure.md +54 -0
  495. package/docs/knowledge.md +54 -14
  496. package/docs/native-sandbox.md +119 -23
  497. package/docs/observability.md +4 -0
  498. package/docs/security-deployment.md +33 -2
  499. package/docs/slack-notifications.md +35 -19
  500. package/docs/tool-secrets.md +42 -10
  501. package/docs/viewer-api.openapi.yml +1 -1
  502. package/help/admin-viewer.md +24 -2
  503. package/help/architecture-agent.md +11 -6
  504. package/help/build-worker-image.md +3 -1
  505. package/help/builder-agent.md +19 -6
  506. package/help/code-review-agents.md +177 -6
  507. package/help/coding-packages.md +156 -6
  508. package/help/cost-attribution.md +9 -5
  509. package/help/creating-agents.md +14 -1
  510. package/help/dependency-cache.md +143 -0
  511. package/help/deploy-gke.md +15 -8
  512. package/help/errors/budget-exhausted.md +187 -0
  513. package/help/errors/budget-group-exhausted.md +5 -1
  514. package/help/errors/coding-stream-quota-exceeded.md +33 -0
  515. package/help/errors/coding-workspace-disk-exceeds-limit.md +39 -0
  516. package/help/errors/continuation-closed.md +9 -12
  517. package/help/errors/delegation-conflict.md +24 -0
  518. package/help/errors/file-list-truncated.md +45 -0
  519. package/help/errors/full-read-required.md +49 -0
  520. package/help/errors/github-account-not-allowed.md +4 -0
  521. package/help/errors/graph-incomplete.md +43 -0
  522. package/help/errors/graph-limit.md +43 -0
  523. package/help/errors/merge-conflict.md +49 -0
  524. package/help/errors/native-sandbox-gateway-error.md +20 -0
  525. package/help/errors/native-sandbox-launch-abandoned.md +21 -0
  526. package/help/errors/native-sandbox-worker-exited.md +3 -2
  527. package/help/errors/package-not-allowed-pending.md +52 -0
  528. package/help/errors/package-not-allowed.md +51 -0
  529. package/help/errors/package-refusals.md +43 -0
  530. package/help/errors/patch-cursor-malformed.md +31 -0
  531. package/help/errors/run-lost.md +39 -0
  532. package/help/errors/run-transcript-download.md +44 -0
  533. package/help/errors/secret-in-value.md +69 -0
  534. package/help/errors/target-merge.md +40 -0
  535. package/help/fix-merge-conflicts.md +73 -0
  536. package/help/github-app-setup.md +132 -0
  537. package/help/github.md +22 -0
  538. package/help/identity-and-access.md +2 -0
  539. package/help/jira.md +23 -6
  540. package/help/knowledge.md +16 -7
  541. package/help/local-repositories.md +1 -1
  542. package/help/low-power-mode.md +7 -1
  543. package/help/merge-order-check.md +5 -0
  544. package/help/native-capabilities.md +29 -1
  545. package/help/native-sandbox.md +15 -1
  546. package/help/operating-agents.md +5 -0
  547. package/help/package-audit-mode.md +91 -0
  548. package/help/related-pull-requests.md +10 -7
  549. package/help/resume-runs-locally.md +131 -0
  550. package/help/review-fix-rounds.md +33 -1
  551. package/help/sharing-agents.md +59 -0
  552. package/help/slack-notifications.md +19 -5
  553. package/help/status-comments.md +31 -0
  554. package/help/stop-run.md +58 -0
  555. package/help/troubleshooting/budgets.md +28 -0
  556. package/help/troubleshooting/coding-workers.md +78 -7
  557. package/package.json +17 -10
  558. package/prisma/migrations/20261016000000_registry_approved_accepted_advisories/migration.sql +3 -0
  559. package/prisma/migrations/20261016000001_mark_ready_when_passing/migration.sql +3 -0
  560. package/prisma/migrations/20261017000000_debug_trace_max_mb/migration.sql +4 -0
  561. package/prisma/migrations/20261018000000_dependency_cache/migration.sql +53 -0
  562. package/prisma/migrations/20261019000000_claude_max_output_tokens/migration.sql +5 -0
  563. package/prisma/migrations/20261021000000_pr_description_hash/migration.sql +4 -0
  564. package/prisma/migrations/20261022000000_dependency_snapshot_validation_metadata/migration.sql +4 -0
  565. package/prisma/migrations/20261023000000_package_audit_mode/migration.sql +27 -0
  566. package/prisma/migrations/20261024000000_budget_events/migration.sql +26 -0
  567. package/prisma/migrations/20261025000000_cache_aware_holds/migration.sql +9 -0
  568. package/prisma/migrations/20261026000000_budget_overrun/migration.sql +4 -0
  569. package/prisma/migrations/20261027000000_coding_run_request/migration.sql +1 -0
  570. package/prisma/migrations/20261028000000_native_gateway_review_reads/migration.sql +6 -0
  571. package/prisma/migrations/20261029000000_lead_survives_deploy/migration.sql +6 -0
  572. package/prisma/migrations/20261030000000_local_review_covered_sha/migration.sql +2 -0
  573. package/prisma/migrations/20261031000000_coding_run_budget_limit/migration.sql +9 -0
  574. package/prisma/migrations/20261101000000_run_transcripts/migration.sql +22 -0
  575. package/prisma/schema.prisma +311 -97
  576. package/dist/sandbox/generated/zod-to-json-schema.bundle.js +0 -5
@@ -105,18 +105,18 @@ caller's principal id).
105
105
 
106
106
  An entry has:
107
107
 
108
- | Field | Meaning |
109
- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
110
- | `name`, `version` | What a repository declares. Unique together. |
111
- | `kind` | `sidecar`: a fresh instance next to each run. |
112
- | `image` | The image, pinned by digest. |
113
- | `port` | The port it listens on. |
114
- | `serviceEnv` | Environment for the service container. Per-run throwaway values only; never put a secret here. |
115
- | `testEnv` | Variables the agent's shells receive. Upper-case names; names wardby uses itself (`PATH`, `HOME`, `PIP_*`, `WARDBY_*`, proxy settings, ...) are refused. |
116
- | `readiness` | A command in the image that succeeds once the service accepts connections on `127.0.0.1`, with its period, timeout and failure threshold. |
117
- | `resources` | CPU (millicores), memory (MiB) and disk (MiB). Requests equal limits. |
118
- | `dataPath` | The directory the service writes its data to; an empty volume in every run (memory-backed on Docker). |
119
- | `writablePaths` | Other directories the image writes to (a socket directory, `/tmp`). The service's root filesystem is read-only. |
108
+ | Field | Meaning |
109
+ | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
110
+ | `name`, `version` | What a repository declares. Unique together. |
111
+ | `kind` | `sidecar`: a fresh instance next to each run. |
112
+ | `image` | The image, pinned by digest. |
113
+ | `port` | The port it listens on. |
114
+ | `serviceEnv` | Environment for the service container. Per-run throwaway values only; never put a secret here. |
115
+ | `testEnv` | Variables the agent's shells receive. Upper-case names. Names wardby uses itself are refused: `HOME`, `LANG`, `LC_ALL`, `PATH`, `SHELL`, `TMPDIR`, `USER`, `LD_PRELOAD`, `LD_LIBRARY_PATH`, `NODE_OPTIONS`, `NODE_PATH`, `PYTHONPATH`, `PYTHONHOME`, the proxy settings (`HTTP_PROXY`, `HTTPS_PROXY`, `NO_PROXY`, `ALL_PROXY`), `SSL_CERT_FILE`, `SSL_CERT_DIR`, and anything starting `WARDBY_`, `CODEX_`, `OPENAI_`, `ANTHROPIC_`, `PIP_`, `NPM_CONFIG_`, `UV_`, `GIT_`, `YARN_`, `PNPM_` or `COREPACK_`. |
116
+ | `readiness` | A command in the image that succeeds once the service accepts connections on `127.0.0.1`, with its period, timeout and failure threshold. |
117
+ | `resources` | CPU (millicores), memory (MiB) and disk (MiB). Requests equal limits. |
118
+ | `dataPath` | The directory the service writes its data to; an empty volume in every run (memory-backed on Docker). |
119
+ | `writablePaths` | Other directories the image writes to (a socket directory, `/tmp`). The service's root filesystem is read-only. |
120
120
 
121
121
  ### Built-in services
122
122
 
@@ -233,6 +233,8 @@ Protected-path entries also accept a leading `!` for your own exceptions:
233
233
  | A service never became ready | Launch | failed, category `service_unready` | "The `<name>` service didn't become ready, so the run couldn't start." |
234
234
  | The run's changes touched a protected path | Collect | failed, category `protected_path` | "its changes include `<path>`, which this agent may not edit, so none of its changes were kept. Ask again without changing that file, or have the repository owner make that change." |
235
235
 
236
+ For a coding sub-agent of a sandboxed run, these refusals appear when the run starts instead of at dispatch, and the parent's delegation call receives the result.
237
+
236
238
  A refused run's `error` (from `get_run`) is the code followed by that sentence.
237
239
  The sentence reaches the requester on the run's status comment and, for a
238
240
  coding run started by another agent, in that agent's tool result. A
@@ -303,3 +305,16 @@ who maintain the catalog; see
303
305
  Existing agents are allowed no services until their owners add
304
306
  `codingProfile.services`, and every existing agent gets the `.wardby/`
305
307
  protected-path baseline without any change to its settings.
308
+
309
+ ### From 0.7.0: `YARN_*`, `PNPM_*` and `COREPACK_*` are reserved
310
+
311
+ From Wardby 0.7.0 a service's `testEnv` can't set a variable starting
312
+ `YARN_`, `PNPM_` or `COREPACK_`: the worker uses them to point yarn, pnpm and
313
+ corepack at the package registry (see
314
+ [pnpm and yarn](coding-packages.md#pnpm-and-yarn)). A custom catalog entry
315
+ that sets one fails to load after the upgrade, and so does a run that
316
+ declares it. Before you upgrade, list the catalog (`list_services`) and
317
+ remove those variables from any entry's `testEnv` with `update_service`.
318
+ After the upgrade such an entry can no longer be read or updated: delete it
319
+ with `delete_service` and create it again without those variables. The
320
+ built-in services set none.
@@ -285,6 +285,11 @@ These details explain the rules above.
285
285
  `/etc/profile` and the files in `/etc/profile.d/`, so that is where your own
286
286
  settings go. `/etc/profile` resets `PATH` to Debian's default, so add any
287
287
  other folder to `PATH` in your `/etc/profile.d/` file.
288
+ `/opt/wardby/bin` holds wardby's package-manager shim, linked as `npm`,
289
+ `pnpm` and `yarn`: it verifies the project's lockfile with the registry
290
+ before an install, then runs the image's own tool (or the release the
291
+ project pins, through corepack). Keep it first on `PATH`; see
292
+ [pnpm and yarn](coding-packages.md#pnpm-and-yarn).
288
293
  - **Network.** The tool runner reaches only wardby's package registry (npm and
289
294
  PyPI).
290
295
  - **Images on the Docker launcher are never pulled.** When wardby runs coding
@@ -322,6 +327,21 @@ current driver always disables. Rebuild any `workerImageRef` image on a
322
327
  current `driver-vN` digest (see "The driver image" above) before relying on
323
328
  either behavior.
324
329
 
330
+ ## The dependency cache needs a current driver
331
+
332
+ The [dependency cache](coding-packages.md#dependency-cache) adds keys to the run
333
+ input (`dependencyCache` and the workspace size). A worker built on an older
334
+ driver base validates its input with a strict schema, so with the cache on
335
+ for its agent every run fails at input (`worker_input_failed`) before the
336
+ agent starts. For a Claude Code agent, a tool runner built on an older tool
337
+ runner image doesn't fail the run, but it has no cache: its projects report
338
+ `tool_unavailable`. Rebuild a `workerImageRef` image `FROM` the driver image
339
+ (Codex) or tool runner image (Claude Code) of the release that includes the
340
+ cache before you set `dependencyCache: true` on an agent that uses it.
341
+ `create_agent` and `update_agent` return a warning when an agent has both.
342
+ Images built `FROM` that release carry the cache module at
343
+ `/opt/wardby/coding-worker/dependency-cache.mjs`; keep that path.
344
+
325
345
  ## What this doesn't cover
326
346
 
327
347
  wardby does not re-validate the contents of your built image beyond the
@@ -74,12 +74,22 @@ again.
74
74
  If the stream still fails, the run's diagnostic (in the control-plane log,
75
75
  under the run's `coding_diag_…` id) names the cause as a fixed code, never the
76
76
  error text: `job_coding_stream_proxy_denied` (401/403 from the proxy),
77
- `job_coding_stream_rate_limited` (429), `job_coding_stream_upstream_error`
77
+ `job_coding_stream_rate_limited` (429), `job_coding_stream_quota_exceeded`
78
+ (the provider account is out of credit or over its spend limit; OpenAI answers
79
+ that with a 429 too, and retrying never helps; see
80
+ [the error article](../help/errors/coding-stream-quota-exceeded.md)),
81
+ `job_coding_stream_upstream_error`
78
82
  (5xx), `job_coding_stream_timeout`, `job_coding_stream_proxy_unreachable`
79
83
  (the worker could not connect), `job_coding_stream_agent_exited` (the agent
80
84
  process exited without an HTTP error), or `job_coding_stream_failed` when none
81
85
  of these match. A refusal because the run's budget is used up ends the run as
82
86
  out of budget instead.
87
+ Claude Code reports most API failures as a failed turn rather than a dropped
88
+ stream; the Claude worker reads the error type its SDK reports and uses the
89
+ same codes (a rate limit, an exhausted credit balance, an overloaded or
90
+ failing provider, a refused credential, a timeout or an unreachable proxy). A
91
+ failed turn with no such error, or with one none of these codes covers (for
92
+ example an invalid request), is `job_coding_turn_failed`.
83
93
 
84
94
  The proxy side of the same request is in the coding proxy's log as
85
95
  `audit.*` events (`audit.request.reserved`, `audit.response.completed`,
@@ -240,21 +250,52 @@ expires on its own: each coding run dispatched before the expiry is traced for
240
250
  its whole life, and `get_run` shows `debugTrace: true` for it. Runs dispatched
241
251
  afterwards are not.
242
252
 
243
- A traced run's Codex worker writes every Codex stream event, and the full text
244
- of a stream failure (including the agent process's own error output and cause
245
- chain), to its **own log**, one JSON line each under a `debugTrace` key. On
253
+ A traced run's worker writes its whole agent stream, and the full text of a
254
+ stream failure (including the agent process's own error output and cause
255
+ chain), to its **own log**, one JSON line each under a `debugTrace` key
256
+ (`{ runId, at, kind, data }`, with `truncated: true` on a cut line). On
246
257
  Kubernetes that is the run pod's `worker` container log; on GKE, Cloud Logging
247
258
  keeps it after the pod is deleted. With the Docker launcher it is the worker
248
259
  container's log (`docker logs`), for as long as the container exists. Nothing from the trace goes to the database,
249
260
  GitHub, the run's error, or the control-plane log. Token-shaped values (the run
250
- capability, bearer tokens, API keys, GitHub tokens) are redacted, each line is
251
- capped at 16 KiB and each run at 2 MiB.
261
+ capability, the package-registry token derived from it, bearer tokens, API
262
+ keys, GitHub tokens) are redacted, and each line is capped at 16 KiB.
263
+
264
+ - **Codex** runs trace every Codex stream event (`event`), turn and error
265
+ events (`turn_failed`, `error_event`), and stream failures (`stream_error`).
266
+ - **Claude Code** runs (Wardby 0.7.0 or later) trace every Claude Agent SDK
267
+ message (`message`): the session's `system`/`init` message, each `assistant`
268
+ message, whose `tool_use` blocks carry the command given to `run_command`,
269
+ each `user` message, whose `tool_result` blocks carry that command's output
270
+ and error flag, and the final `result` message with its usage, cost and
271
+ duration. They also trace Claude Code's own error output (`sdk_stderr`) and
272
+ stream failures (`stream_error`). A command's duration is the difference
273
+ between the `at` of its `tool_use` message and that of its `tool_result`.
274
+ - Both write `worker_error` when the worker itself fails.
275
+
276
+ Each traced run's total is capped at 2 MiB by default. Once the cap is reached
277
+ the worker writes one `limit_reached` line and stops tracing that run. An admin
278
+ can raise or lower the cap for an agent, from 1 to 64 MiB, together with the
279
+ trace or separately (Wardby 0.7.0 or later):
252
280
 
253
- The trace can contain prompts, model output and repository content. Turn it on
254
- only while diagnosing a failure, for as short a time as you can, and treat the
255
- pod logs of traced runs as sensitive. Tracing needs a worker driver image that
256
- supports it; a worker that predates it rejects a traced run's input as
257
- invalid.
281
+ ```
282
+ update_agent { "id": "<agent id>", "codingProfile": { "debugTraceMinutes": 30, "debugTraceMaxMb": 20 } }
283
+ ```
284
+
285
+ `debugTraceMaxMb` needs `agents:admin` too, and `null` restores the default.
286
+ Changes are written to the same `coding.debug_trace.set` audit line. It is
287
+ fixed on each traced run at dispatch, and `get_run` shows it as
288
+ `debugTraceMaxMb` when it is not the default. A long trace can outgrow what
289
+ your log pipeline keeps: Kubernetes rotates container logs (often at about
290
+ 10 MiB per file), so `kubectl logs` may show only the newest part of a large
291
+ trace, while a log collector such as Cloud Logging on GKE keeps every line.
292
+
293
+ The trace can contain prompts, model output, commands, their output and
294
+ repository content. Turn it on only while diagnosing a failure, for as short a
295
+ time as you can, and treat the pod logs of traced runs as sensitive. Tracing
296
+ needs a worker image from a release that supports it (for Claude Code, 0.7.0
297
+ or later). A Codex worker that predates it rejects a traced run's input as
298
+ invalid; a Claude Code worker from 0.6.x runs the task but writes no trace.
258
299
 
259
300
  ## Container Policy
260
301
 
@@ -419,18 +460,20 @@ inert until an operator explicitly raises the ceiling above `CODING_DISK_MB`.
419
460
  A coding agent's profile carries an optional `workspaceDiskMb` (MiB; `null`
420
461
  means "use the deployment default `CODING_DISK_MB`"). It is snapshotted onto
421
462
  the `CodingRun` at dispatch time, so a later profile edit never changes an
422
- in-flight run's size, and it is capped by `CODING_MAX_DISK_MB`: a run whose
423
- snapshotted `workspaceDiskMb` exceeds the ceiling fails with
424
- `coding_workspace_disk_exceeds_limit`
425
- (`src/providers/executor/container.ts`, the `jobSpec()` check). This check
426
- runs after the workspace has already been cloned onto the control plane, so
427
- an over-ceiling agent still pays for a clone before failing, and the failure
428
- reaches the run record only as the sanitized `coding_failure_workspace:<id>`
429
- (the same generic bucketing every workspace/git-related failure gets) — not
430
- a distinctly labeled "refused" outcome, and not currently logged anywhere
431
- more diagnosable on the control plane. This is a known rough edge, not a
432
- security gap: no run ever exceeds the ceiling, it
433
- just fails less legibly than it could.
463
+ in-flight run's size, and it is capped by `CODING_MAX_DISK_MB`.
464
+ `create_agent` refuses a coding profile above the effective ceiling.
465
+ `update_agent` checks the ceiling when setting a numeric `workspaceDiskMb`
466
+ or changing an agent's kind to coding. Unrelated edits to an already-saved
467
+ over-cap coding agent remain allowed. The error names the requested MiB, the cap, and
468
+ `CODING_MAX_DISK_MB`, which the operator must raise to allow that size.
469
+ A value exactly at the cap is allowed; `null` restores the deployment default.
470
+
471
+ Agents already saved above the cap (including after an operator lowers it)
472
+ still fail at run time with `coding_workspace_disk_exceeds_limit`.
473
+ The run-time check runs after the workspace has been cloned onto the control
474
+ plane and before the worker starts; the run record shows the sanitized
475
+ `coding_failure_workspace:<id>`. Lower the profile's size or raise the
476
+ operator ceiling before running the agent again.
434
477
 
435
478
  `CODING_MAX_CONCURRENT` (default `4`) caps coding runs that hold a slot at
436
479
  once, across every control-plane replica: the cap is enforced in Postgres
@@ -440,6 +483,12 @@ it starts, oldest first, when a slot frees (immediately in the process whose
440
483
  run finished, or on the scheduler leader's next tick). A newly dispatched run
441
484
  never takes a free slot ahead of an older queued run. A run still queued after
442
485
  `CODING_QUEUE_TIMEOUT_SEC` (default `3600`) fails with `coding_queue_timeout`.
486
+ To end a queued run sooner, or a running one, call `stop_run` with its id: a
487
+ queued run is recorded `cancelled` and never starts; a running run is recorded
488
+ `cancelled` first, then its proxy session is cancelled and its job is stopped
489
+ and removed. The cancelled state is checked again before anything is pushed,
490
+ so a stopped run opens or updates no pull request, even when its worker had
491
+ already finished (see [Stop or cancel a run](../help/stop-run.md)).
443
492
  Slot usage is derived from run state, so a crashed replica cannot leak slots:
444
493
  its runs are reconciled to `lost`, which frees them.
445
494
 
@@ -455,13 +504,33 @@ size (a service sidecar adds to a run's CPU and memory) and other pods share the
455
504
  quota. Set `KUBERNETES_RESOURCE_QUOTA` to the quota's name and the launcher
456
505
  checks, before a run claims a slot, whether the pod it would create fits the
457
506
  quota's free room. A run that doesn't fit is queued the same way as a run over
458
- `CODING_MAX_CONCURRENT`, and is retried when a run ends and on each leader tick;
459
- without the check, the API server refuses the pod and the run fails. The check
460
- reads one ResourceQuota by name (`get` on `resourcequotas` with that
507
+ `CODING_MAX_CONCURRENT`, and is retried when a run ends and on each leader tick.
508
+ The check reads one ResourceQuota by name (`get` on `resourcequotas` with that
461
509
  `resourceName` in the launcher's Role). If the quota is missing or can't be
462
510
  read, the launcher logs `kubernetes_resource_quota_missing` or
463
- `kubernetes_resource_quota_unreadable` once and launches as before. Size
464
- `CODING_MAX_CONCURRENT` to the quota too, so slots and quota agree.
511
+ `kubernetes_resource_quota_unreadable` once and launches as before.
512
+
513
+ The check can be stale: the quota may fill up between the check and the pod
514
+ create, or `KUBERNETES_RESOURCE_QUOTA` may be unset. When the cluster still
515
+ refuses the pod, the run does not fail. It returns to the coding queue (the
516
+ control plane logs `coding run waiting for capacity: the cluster refused its
517
+ pod`), keeps its place and its original queue clock, and is retried no sooner
518
+ than about a minute later. It fails only when `CODING_QUEUE_TIMEOUT_SEC`
519
+ expires, with `coding_queue_timeout`; a follow-up run on a pull request then
520
+ also finishes the in-progress status it posted there, as failed. The queue stays first in, first out, so
521
+ runs behind a refused run wait for it, and each retry happens about once a
522
+ minute while the quota is full. A refused run shows `running` briefly, then
523
+ `pending` again while it waits. When `KUBERNETES_RESOURCE_QUOTA` is unset and a
524
+ pod is refused by a ResourceQuota, the launcher logs
525
+ `kubernetes_resource_quota_unconfigured` once per process: set
526
+ `KUBERNETES_RESOURCE_QUOTA` to that quota and grant the launcher `get` on it, so
527
+ runs wait before they start instead of being refused at creation. The Docker
528
+ launcher has no quota, so none of this applies there. In low-power mode, a run
529
+ waiting in the coding queue keeps the coding proxy awake, as any queued run
530
+ does.
531
+
532
+ Size the quota for `CODING_MAX_CONCURRENT` times the run pod's requests, so
533
+ slots and quota agree.
465
534
 
466
535
  Operating the queue across replicas:
467
536
 
@@ -521,7 +590,9 @@ the model, and a tag that breaks it is normalized to a lowercase slug (or
521
590
  dropped) instead of failing an otherwise finished run. GitHub finalization
522
591
  re-validates the tag independently. Linking an issue is not the tag's job: put
523
592
  a closing keyword such as `Resolves #37` in the task so the worker includes it
524
- in the summary, which becomes the pull request body.
593
+ in the summary, which becomes the pull request body on every run,
594
+ including follow-ups (see
595
+ [How the pull request description is kept current](code-review-agents.md#how-the-pull-request-description-is-kept-current)).
525
596
 
526
597
  Some workspace folders are never collected from a run: `node_modules`, `.venv`,
527
598
  `venv`, `__pycache__`, `.pytest_cache`, `.ruff_cache`, `.mypy_cache`, `.tox`,
@@ -683,6 +754,10 @@ One pod per run, built by the canonical, deny-by-default policy in
683
754
  that points at the workspace's `.cache/tmp` on the disk-backed `storage`
684
755
  volume instead, so it scales with `workspaceDiskMb` rather than this tiny
685
756
  in-memory scratch.
757
+ - A Claude Code run with `sessionResume` on also gives the worker's Claude
758
+ Code config directory (`/tmp/claude-config`, where the session file grows)
759
+ its own 80 MiB `medium: Memory` `emptyDir` (a tmpfs of the same size under
760
+ Docker), so a long session never fills `/tmp`. Only the worker mounts it.
686
761
  - `dnsPolicy: None` with `dnsConfig.nameservers: ["127.0.0.1"]` — **no DNS is
687
762
  configured for worker/agent pods at all.** The proxy is reached by name
688
763
  (`WARDBY_PROXY_URL=http://wardby-proxy:8787` — `CODING_PROXY_ALIAS` in
@@ -1105,7 +1180,7 @@ values. The list is kept only when every entry matches
1105
1180
  - **No end-to-end backpressure or host-side archive-size cap** once the
1106
1181
  exec WebSocket for a seed/collect transfer is connected — pre-existing,
1107
1182
  documented, not a regression of this milestone.
1108
- - **An over-ceiling `workspaceDiskMb` fails late and generically** — see
1183
+ - **An already-saved over-ceiling `workspaceDiskMb` fails at run time** — see
1109
1184
  "Control Plane Configuration" above.
1110
1185
  - **Namespace handling must remain explicit in every overlay.**
1111
1186
  `deploy/kind-coding/manifests/base/kustomization.yaml`