clinkx 1.1.1 → 1.2.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 (199) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/README.md +97 -13
  3. package/clinkx-workflows/dist/allowed-roots.js +2 -0
  4. package/clinkx-workflows/dist/allowed-roots.js.map +1 -1
  5. package/clinkx-workflows/dist/architecture-comparison/admission.d.ts +5 -0
  6. package/clinkx-workflows/dist/architecture-comparison/admission.js +50 -0
  7. package/clinkx-workflows/dist/architecture-comparison/admission.js.map +1 -0
  8. package/clinkx-workflows/dist/architecture-comparison/contract.d.ts +995 -0
  9. package/clinkx-workflows/dist/architecture-comparison/contract.js +149 -0
  10. package/clinkx-workflows/dist/architecture-comparison/contract.js.map +1 -0
  11. package/clinkx-workflows/dist/architecture-comparison/runtime.d.ts +29 -0
  12. package/clinkx-workflows/dist/architecture-comparison/runtime.js +387 -0
  13. package/clinkx-workflows/dist/architecture-comparison/runtime.js.map +1 -0
  14. package/clinkx-workflows/dist/child-env.d.ts +3 -1
  15. package/clinkx-workflows/dist/child-env.js +6 -2
  16. package/clinkx-workflows/dist/child-env.js.map +1 -1
  17. package/clinkx-workflows/dist/config.d.ts +28 -5
  18. package/clinkx-workflows/dist/config.js +137 -20
  19. package/clinkx-workflows/dist/config.js.map +1 -1
  20. package/clinkx-workflows/dist/contained-file.js +10 -1
  21. package/clinkx-workflows/dist/contained-file.js.map +1 -1
  22. package/clinkx-workflows/dist/council-execution-policy.d.ts +4 -2
  23. package/clinkx-workflows/dist/council-execution-policy.js +5 -1
  24. package/clinkx-workflows/dist/council-execution-policy.js.map +1 -1
  25. package/clinkx-workflows/dist/dashboard/activity-contract.d.ts +72 -72
  26. package/clinkx-workflows/dist/dashboard/contracts.d.ts +1564 -122
  27. package/clinkx-workflows/dist/dashboard/contracts.js +4 -0
  28. package/clinkx-workflows/dist/dashboard/contracts.js.map +1 -1
  29. package/clinkx-workflows/dist/dashboard/progress-report-contract.d.ts +12 -12
  30. package/clinkx-workflows/dist/dashboard/progress-report-status-overlay.d.ts +8 -8
  31. package/clinkx-workflows/dist/dashboard/scanner.d.ts +3 -0
  32. package/clinkx-workflows/dist/dashboard/scanner.js +27 -0
  33. package/clinkx-workflows/dist/dashboard/scanner.js.map +1 -1
  34. package/clinkx-workflows/dist/dashboard/session-log-contract.d.ts +48 -48
  35. package/clinkx-workflows/dist/dashboard/session-log-identity.js +2 -1
  36. package/clinkx-workflows/dist/dashboard/session-log-identity.js.map +1 -1
  37. package/clinkx-workflows/dist/dashboard/session-log-redaction.d.ts +2 -0
  38. package/clinkx-workflows/dist/dashboard/session-log-redaction.js +4 -0
  39. package/clinkx-workflows/dist/dashboard/session-log-redaction.js.map +1 -1
  40. package/clinkx-workflows/dist/dashboard/verified-repair-contract.d.ts +191 -0
  41. package/clinkx-workflows/dist/dashboard/verified-repair-contract.js +28 -0
  42. package/clinkx-workflows/dist/dashboard/verified-repair-contract.js.map +1 -0
  43. package/clinkx-workflows/dist/dashboard-ui/assets/index-BdpmbPps.js +115 -0
  44. package/clinkx-workflows/dist/dashboard-ui/assets/style-Im5i1iAs.css +1 -0
  45. package/clinkx-workflows/dist/dashboard-ui/index.html +2 -2
  46. package/clinkx-workflows/dist/engine.d.ts +6 -0
  47. package/clinkx-workflows/dist/engine.js +78 -7
  48. package/clinkx-workflows/dist/engine.js.map +1 -1
  49. package/clinkx-workflows/dist/index.d.ts +3 -0
  50. package/clinkx-workflows/dist/index.js +3 -2
  51. package/clinkx-workflows/dist/index.js.map +1 -1
  52. package/clinkx-workflows/dist/reducers/index.d.ts +9 -1
  53. package/clinkx-workflows/dist/reducers/index.js +22 -0
  54. package/clinkx-workflows/dist/reducers/index.js.map +1 -1
  55. package/clinkx-workflows/dist/root-path-validation.d.ts +12 -0
  56. package/clinkx-workflows/dist/root-path-validation.js +63 -0
  57. package/clinkx-workflows/dist/root-path-validation.js.map +1 -0
  58. package/clinkx-workflows/dist/rosters.d.ts +1 -0
  59. package/clinkx-workflows/dist/rosters.js +16 -6
  60. package/clinkx-workflows/dist/rosters.js.map +1 -1
  61. package/clinkx-workflows/dist/server.js +5 -2
  62. package/clinkx-workflows/dist/server.js.map +1 -1
  63. package/clinkx-workflows/dist/state-schema.d.ts +13 -0
  64. package/clinkx-workflows/dist/state.d.ts +7 -1
  65. package/clinkx-workflows/dist/state.js +90 -19
  66. package/clinkx-workflows/dist/state.js.map +1 -1
  67. package/clinkx-workflows/dist/validators/architecture-comparison.d.ts +2 -0
  68. package/clinkx-workflows/dist/validators/architecture-comparison.js +12 -0
  69. package/clinkx-workflows/dist/validators/architecture-comparison.js.map +1 -0
  70. package/clinkx-workflows/dist/validators/index.js +4 -0
  71. package/clinkx-workflows/dist/validators/index.js.map +1 -1
  72. package/clinkx-workflows/dist/validators/verified-repair.d.ts +2 -0
  73. package/clinkx-workflows/dist/validators/verified-repair.js +12 -0
  74. package/clinkx-workflows/dist/validators/verified-repair.js.map +1 -0
  75. package/clinkx-workflows/dist/verification-proof.d.ts +254 -0
  76. package/clinkx-workflows/dist/verification-proof.js +195 -0
  77. package/clinkx-workflows/dist/verification-proof.js.map +1 -0
  78. package/clinkx-workflows/dist/verified-repair/admission.d.ts +72 -0
  79. package/clinkx-workflows/dist/verified-repair/admission.js +63 -0
  80. package/clinkx-workflows/dist/verified-repair/admission.js.map +1 -0
  81. package/clinkx-workflows/dist/verified-repair/contract.d.ts +1910 -0
  82. package/clinkx-workflows/dist/verified-repair/contract.js +127 -0
  83. package/clinkx-workflows/dist/verified-repair/contract.js.map +1 -0
  84. package/clinkx-workflows/dist/verified-repair/host.d.ts +32 -0
  85. package/clinkx-workflows/dist/verified-repair/host.js +2 -0
  86. package/clinkx-workflows/dist/verified-repair/host.js.map +1 -0
  87. package/clinkx-workflows/dist/verified-repair/prompts.d.ts +12 -0
  88. package/clinkx-workflows/dist/verified-repair/prompts.js +58 -0
  89. package/clinkx-workflows/dist/verified-repair/prompts.js.map +1 -0
  90. package/clinkx-workflows/dist/verified-repair/result.d.ts +16 -0
  91. package/clinkx-workflows/dist/verified-repair/result.js +102 -0
  92. package/clinkx-workflows/dist/verified-repair/result.js.map +1 -0
  93. package/clinkx-workflows/dist/verified-repair/runtime.d.ts +28 -0
  94. package/clinkx-workflows/dist/verified-repair/runtime.js +186 -0
  95. package/clinkx-workflows/dist/verified-repair/runtime.js.map +1 -0
  96. package/clinkx-workflows/dist/workflow-completion.d.ts +83 -0
  97. package/clinkx-workflows/dist/workflow-completion.js +250 -0
  98. package/clinkx-workflows/dist/workflow-completion.js.map +1 -0
  99. package/clinkx-workflows/dist/workflow-tools.d.ts +7 -3
  100. package/clinkx-workflows/dist/workflow-tools.js +487 -46
  101. package/clinkx-workflows/dist/workflow-tools.js.map +1 -1
  102. package/clinkx-workflows/dist/workflow-verification-contract.d.ts +539 -0
  103. package/clinkx-workflows/dist/workflow-verification-contract.js +52 -0
  104. package/clinkx-workflows/dist/workflow-verification-contract.js.map +1 -0
  105. package/clinkx-workflows/dist/workflow-verification.d.ts +15 -0
  106. package/clinkx-workflows/dist/workflow-verification.js +218 -0
  107. package/clinkx-workflows/dist/workflow-verification.js.map +1 -0
  108. package/clinkx-workflows/templates/architecture-comparison/candidate.txt +29 -0
  109. package/clinkx-workflows/templates/architecture-comparison/judge.txt +31 -0
  110. package/clinkx-workflows/templates/verified-repair/investigate.txt +20 -0
  111. package/clinkx-workflows/templates/verified-repair/repair.txt +11 -0
  112. package/clinkx-workflows/templates/verified-repair/review.txt +18 -0
  113. package/clinkx-workflows/workflows/architecture-comparison.yaml +133 -0
  114. package/clinkx-workflows/workflows/verified-repair.yaml +104 -0
  115. package/dist/allowed-roots.d.ts +1 -1
  116. package/dist/allowed-roots.js +128 -15
  117. package/dist/allowed-roots.js.map +1 -1
  118. package/dist/codex/app-server-client.d.ts +1 -0
  119. package/dist/codex/app-server-client.js +3 -2
  120. package/dist/codex/app-server-client.js.map +1 -1
  121. package/dist/context-builder/config.d.ts +1 -0
  122. package/dist/context-builder/config.js +21 -9
  123. package/dist/context-builder/config.js.map +1 -1
  124. package/dist/context-builder/diagnostics.d.ts +1 -0
  125. package/dist/context-builder/diagnostics.js +1 -1
  126. package/dist/context-builder/diagnostics.js.map +1 -1
  127. package/dist/context-builder/discovery.d.ts +18 -1
  128. package/dist/context-builder/discovery.js +69 -1
  129. package/dist/context-builder/discovery.js.map +1 -1
  130. package/dist/context-builder/handler.js +8 -1
  131. package/dist/context-builder/handler.js.map +1 -1
  132. package/dist/context-builder/lifecycle-contract.d.ts +24 -24
  133. package/dist/context-builder/mutation-lock.d.ts +4 -0
  134. package/dist/context-builder/mutation-lock.js +7 -1
  135. package/dist/context-builder/mutation-lock.js.map +1 -1
  136. package/dist/context-builder/refine-handler.js +16 -1
  137. package/dist/context-builder/refine-handler.js.map +1 -1
  138. package/dist/context-builder/secrets.d.ts +11 -0
  139. package/dist/context-builder/secrets.js +75 -0
  140. package/dist/context-builder/secrets.js.map +1 -1
  141. package/dist/context-builder/storage.d.ts +10 -2
  142. package/dist/context-builder/storage.js +213 -16
  143. package/dist/context-builder/storage.js.map +1 -1
  144. package/dist/context-builder/versions.d.ts +5 -2
  145. package/dist/context-builder/versions.js +5 -2
  146. package/dist/context-builder/versions.js.map +1 -1
  147. package/dist/dashboard-cli.d.ts +6 -0
  148. package/dist/dashboard-cli.js +18 -32
  149. package/dist/dashboard-cli.js.map +1 -1
  150. package/dist/dashboard-gateway/main.js +8 -3
  151. package/dist/dashboard-gateway/main.js.map +1 -1
  152. package/dist/index.d.ts +2 -0
  153. package/dist/index.js +8 -2
  154. package/dist/index.js.map +1 -1
  155. package/dist/project-verification/contract.d.ts +537 -0
  156. package/dist/project-verification/contract.js +40 -0
  157. package/dist/project-verification/contract.js.map +1 -0
  158. package/dist/project-verification/files.d.ts +23 -0
  159. package/dist/project-verification/files.js +80 -0
  160. package/dist/project-verification/files.js.map +1 -0
  161. package/dist/project-verification/process.d.ts +7 -0
  162. package/dist/project-verification/process.js +115 -0
  163. package/dist/project-verification/process.js.map +1 -0
  164. package/dist/project-verification/runner.d.ts +35 -0
  165. package/dist/project-verification/runner.js +185 -0
  166. package/dist/project-verification/runner.js.map +1 -0
  167. package/dist/project-verification/service.d.ts +37 -0
  168. package/dist/project-verification/service.js +151 -0
  169. package/dist/project-verification/service.js.map +1 -0
  170. package/dist/provider-doctor.d.ts +22 -0
  171. package/dist/provider-doctor.js +22 -0
  172. package/dist/provider-doctor.js.map +1 -0
  173. package/dist/registry.d.ts +1 -1
  174. package/dist/registry.js +5 -1
  175. package/dist/registry.js.map +1 -1
  176. package/dist/server.js +41 -6
  177. package/dist/server.js.map +1 -1
  178. package/dist/verification-tools.d.ts +90 -0
  179. package/dist/verification-tools.js +120 -0
  180. package/dist/verification-tools.js.map +1 -0
  181. package/dist/verified-repair/files.d.ts +22 -0
  182. package/dist/verified-repair/files.js +114 -0
  183. package/dist/verified-repair/files.js.map +1 -0
  184. package/dist/verified-repair/host.d.ts +14 -0
  185. package/dist/verified-repair/host.js +612 -0
  186. package/dist/verified-repair/host.js.map +1 -0
  187. package/docs/configuration.md +224 -12
  188. package/docs/engineering-recipes.md +415 -0
  189. package/docs/security.md +3 -0
  190. package/docs/verification/README.md +59 -0
  191. package/docs/verification/dashboard-real-disk.md +436 -0
  192. package/docs/verification/project-checks.example.json +14 -0
  193. package/docs/verification/project-checks.md +444 -0
  194. package/docs/verification/workflow-handoff.md +113 -0
  195. package/package.json +10 -2
  196. package/scripts/provider-doctor-core.mjs +380 -0
  197. package/scripts/provider-doctor-probe.mjs +34 -0
  198. package/clinkx-workflows/dist/dashboard-ui/assets/index-JPHQVtn9.js +0 -106
  199. package/clinkx-workflows/dist/dashboard-ui/assets/style-DOMHk-j6.css +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/verified-repair/host.ts"],"names":[],"mappings":"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"}
@@ -7,11 +7,75 @@ ClinkX is config-driven: you define one or more **CLI adapters** as JSON files.
7
7
  ClinkX discovers adapter JSON files in this order:
8
8
 
9
9
  1. `CLINKX_CONFIG_PATH` (file or directory) — **replaces** the search path entirely; shipped adapters are not loaded
10
- 2. `${XDG_CONFIG_HOME:-~/.config}/clinkx/adapters/*.json`
11
- 3. Packaged `conf/adapters/*.json` relative to the installed package (`import.meta.url`), **not** `process.cwd()`
10
+ 2. `${CLINKX_HOME:-~/.clinkx}/adapters/*.json` (first tier user overrides)
11
+ 3. `${XDG_CONFIG_HOME:-~/.config}/clinkx/adapters/*.json` (second tier user overrides)
12
+ 4. Packaged `conf/adapters/*.json` relative to the installed package (`import.meta.url`), **not** `process.cwd()`
12
13
 
13
14
  If the same adapter name appears more than once, ClinkX uses **first-wins**: the higher-precedence source (discovered earlier in the order above) is kept, and any later file with the same name is skipped with a log line naming the kept and skipped paths. ClinkX does not fail on a duplicate name. A leftover XDG file that fails schema validation aborts the whole load; with default-on workflow preflight that is a fatal `ConfigError`.
14
15
 
16
+ ## Provider Readiness Doctor
17
+
18
+ Configuration is not authentication. The npm-installed MCP server exposes
19
+ `provider_doctor`; an MCP client can check provider readiness without shell access
20
+ or a ClinkX checkout. Provider CLIs and their login remain your responsibility.
21
+ The doctor uses the same adapter discovery, environment, and execution pipeline
22
+ as the server.
23
+
24
+ Call the tool without authentication probes:
25
+
26
+ ```json
27
+ {"name":"provider_doctor","arguments":{}}
28
+ ```
29
+
30
+ To check authentication with one real provider request, explicitly name its adapter:
31
+
32
+ ```json
33
+ {"name":"provider_doctor","arguments":{"probes":["codex"]}}
34
+ ```
35
+
36
+ `probes` defaults to `[]` and accepts at most eight unique adapter names. Every
37
+ requested authentication probe can spend provider
38
+ tokens. No model request is made when it is omitted or empty. The response is a
39
+ JSON object containing `version`, `adapters`, `verdict`, and `blocked`; adapter
40
+ records distinguish the following readiness dimensions.
41
+
42
+ | Field | Values | Meaning |
43
+ |---|---|---|
44
+ | `config` | `ok` / `invalid` | The adapter parsed. For a startup-required adapter it also has the `json` role and is not `app_server`. A registry load failure produces an `adapter:null` record with a sanitized reason. |
45
+ | `executable` | `ok` / `missing` / `not_run` | The configured command was spawned with `--version`, `shell:false`, its sanitized subprocess environment, and a 10 s limit. `ok` means it spawned; a hanging or nonzero version check can still have `version:"unknown"`. |
46
+ | `version` | first output line (≤200 chars) / `unknown` | `unknown` when `--version` exits nonzero, prints nothing, or times out. |
47
+ | `auth` | `not_run` / `ok` / `failed` | `not_run` unless the adapter is in `probes`. A probe sends `Reply with OK` through the synchronous `clink` pipeline and requires an exit-zero stdout or validated result-contract-file response whose trimmed answer is exactly `OK`. Stderr fallback and tolerated nonzero exits cannot establish authentication. |
48
+ | `startup_required` | `curator`, `finalizer` | Default workflow context delegates, honoring `CLINKX_WORKFLOWS_CONTEXT_PREFLIGHT_ENABLED` and `CLINKX_WORKFLOWS_CONTEXT_DEFAULT_CURATOR`. Empty when preflight is disabled. A separate `CLINKX_WORKFLOWS_CHILD_CONFIG_PATH` registry adds records with `registry:"workflow_child"`. |
49
+
50
+ The verdict is `blocked` when a registry fails to load, workflow context defaults
51
+ are invalid, a startup-required adapter lacks valid configuration or an
52
+ executable, or a requested probe fails or cannot run. An unused adapter's missing
53
+ executable is reported but does not block. This can be stricter than server
54
+ startup: startup preflight checks configuration, while the doctor also checks
55
+ executable availability. A blocked tool result has `isError:true`. Malformed
56
+ arguments, an unknown probe adapter, or an unsupported app-server probe are
57
+ invalid parameters (`-32602`).
58
+
59
+ `ready` without probes means configured and executable, **not** authenticated.
60
+ Only `auth:"ok"` establishes that one real call completed. Probes enforce an
61
+ independent 120 s cancellation deadline; cleanup can take an additional grace
62
+ period. Request cancellation stops owned version-check process groups and
63
+ cancels an active authentication probe. An interrupted call cannot establish
64
+ readiness. Diagnostics are credential-redacted, scrubbed of configured
65
+ environment values and host secret-named variables, and stripped of absolute
66
+ paths. Tokens, environment values, and auth files are never returned.
67
+
68
+ The doctor and the two verification tools share one per-server operation slot.
69
+ An overlapping call returns a busy error immediately rather than queuing. Server
70
+ shutdown cancels and drains the admitted operation. Tool arguments do not accept
71
+ a client-selected timeout.
72
+
73
+ For source-checkout maintenance, `node scripts/provider-doctor.mjs` remains a
74
+ JSONL convenience wrapper around the same doctor core. It is not a separate npm
75
+ product command. For project tests and retained evidence, call
76
+ [`verification_run` and `verification_inspect`](verification/project-checks.md)
77
+ through the same MCP connection.
78
+
15
79
  ## Adapter JSON Reference
16
80
 
17
81
  Minimal adapter:
@@ -193,8 +257,8 @@ If `glm-5.3[1m]` 404s, fall back to the 200k pin: drop the `[1m]` suffix, set `C
193
257
 
194
258
  | Variable | Purpose | Default |
195
259
  | --- | --- | --- |
196
- | `CLINKX_CONFIG_PATH` | Override adapter config file/directory. Replaces XDG + packaged builtins entirely. | unset |
197
- | `CLINKX_ALLOWED_ROOTS` | Comma-separated allow-roots for `absolute_file_paths` / `images`. Fatal at startup only when cwd is filesystem root and this is unset. | `process.cwd()` |
260
+ | `CLINKX_CONFIG_PATH` | Override adapter config file/directory. Replaces the `CLINKX_HOME`, XDG, and packaged adapter tiers entirely. | unset |
261
+ | `CLINKX_ALLOWED_ROOTS` | Comma-separated allow-roots for file/image access and verification projects/evidence. Verification projects need a source root; artifact-only roots can host evidence. State and artifact roots are added even with an explicit workspace allowlist; see [Durable storage roots](#durable-storage-roots). An entry naming an existing regular file grants only that canonical file. An entry that is a dangling symlink, inaccessible (`EACCES`, `EPERM`, `ENOTDIR`, `ELOOP`), or neither a directory nor a regular file fails startup with `CLINKX_ALLOWED_ROOTS entry "<entry>" is unusable: <reason>. Fix or remove this entry from CLINKX_ALLOWED_ROOTS.`; a nonexistent entry is accepted. Fatal at startup also when cwd is filesystem root and this is unset. | `process.cwd()` |
198
262
  | `CLINKX_WORKFLOWS_WORKSPACE_ROOT` | Workflow workspace root (plan_file containment, relative `cb_*` / `context_files` resolution). Unset/empty warns and falls back to `process.cwd()`. | unset → cwd |
199
263
  | `CLINKX_WORKFLOWS_CONTEXT_PREFLIGHT_ENABLED` | Master switch for workflow context preflight. Unset/empty is enabled. Exactly `false` injects no runner and skips default-delegate startup validation. | `true` |
200
264
  | `CLINKX_TIMEOUT_SECONDS` | Default timeout (seconds) | `600` |
@@ -206,8 +270,9 @@ If `glm-5.3[1m]` 404s, fall back to the 200k pin: drop the `[1m]` suffix, set `C
206
270
  | `CLINKX_STRICT_FIDELITY` | When `true`, standalone clink returns `isError: true` if capture-layer truncation is detected on stdout-extracted (non-result-contract) calls. | `false` |
207
271
  | `CLINKX_MAX_RESPONSE_CHARS` | Max chars returned in tool result (post-parse) | `20000` |
208
272
  | `CLINKX_LOG_LEVEL` | Logger verbosity | `info` |
209
- | `CLINKX_WORKFLOWS_STATE_DIR` | Absolute workflow state root shared by the workflow server and dashboard. The dashboard scans its `runs/` child; launch both processes with the same value. Relative values fail at startup. | See precedence below. |
210
- | `XDG_STATE_HOME` | Absolute fallback base for workflow state when `CLINKX_WORKFLOWS_STATE_DIR` is unset or empty. Relative values fail at startup. | unset |
273
+ | `CLINKX_WORKFLOWS_STATE_DIR` | Absolute workflow state root shared by the workflow server and dashboard. The dashboard scans its `runs/` child; launch both processes with the same value. Relative values and filesystem roots fail at startup; see [Durable storage roots](#durable-storage-roots). | See precedence below. |
274
+ | `CLINKX_WORKFLOWS_ARTIFACTS_DIR` | Absolute disposable per-run artifacts root. Relative values and filesystem roots fail at startup. | `$TMPDIR/clinkx-workflows/artifacts` (`/tmp` when `TMPDIR` is unset) |
275
+ | `CLINKX_HOME` | Root directory for durable ClinkX data (workflow state, context-builder runs, user adapters and rosters). Absolute; its canonical identity must not be a filesystem root, the effective home directory, or an ancestor of that home. Per-area variables override it. | `~/.clinkx` |
211
276
  | `CLINKX_WORKFLOWS_DASHBOARD_PORT` | Dashboard listener port; local passkey mode binds both loopback families, while cloud passkey mode binds the private container interface. `0` selects an ephemeral local port. | `4180` |
212
277
  | `CLINKX_WORKFLOWS_DASHBOARD_AUTH_MODE` | Dashboard auth selector. `passkey` is the default. `bearer` is a temporary rollback until the real local and live Traefik proof gates pass. `none` disables authentication entirely for loopback-only local testing (rejected in remote/gateway mode; the cloud artifacts never set it). | `passkey` |
213
278
  | `CLINKX_WORKFLOWS_DASHBOARD_CREDENTIAL_DIR` | Optional absolute, non-root passkey credential directory. Overrides credential storage only, not workflow state. Containers pin it to the independent writable `/data/dashboard-credentials` volume. | `${CLINKX_WORKFLOWS_STATE_DIR}/dashboard/webauthn` |
@@ -226,7 +291,7 @@ If `glm-5.3[1m]` 404s, fall back to the 200k pin: drop the `[1m]` suffix, set `C
226
291
  | `CLINKX_SESSION_LOG_TOOL_ARGUMENTS_PERSISTENCE_ENABLED` | Reader-first activation for live tool arguments, derived summaries, and best-effort coverage metadata. Only exact `true` enables writes; read once per producer at creation. Readers always accept extended events; disabling never rewrites existing journals. | `false` |
227
292
  | `CLINKX_OBSERVED_INVOCATION_PERSISTENCE_ENABLED` | Reader-first activation for sibling `ObservedInvocationV1` writes (workflow call entries, Activity V3). Only exact `true` persists child-reported model/effort; every other value omits the field. Independent of the V2 gate. Readers always accept the envelope. | `false` |
228
293
  | `CLINKX_DIRECT_SESSION_LOGS_ENABLED` | Master opt-OUT for retaining activity-family session logs on direct `clink` single runs that did not supply their own owner. When on (default), structured-parser providers (`claude_stream_json`, `codex_jsonl`, `agy_stream_json`) write a session log that surfaces in the dashboard "Single calls" list. Set to `false` to disable synthesis — those runs then show "This session log was not retained." Workflow/context runs and callers that supply their own owner are unaffected. Text-parser providers are never retained regardless of this flag. | `true` |
229
- | `CLINKX_CONTEXT_BUILDER_RUNS_DIR` | Durable run directory for `context_builder` receipts, manifests, bundles, and candidate artifacts. The directory is created with private permissions where supported and must not be a broad root, home directory, workspace root, or ancestor of the workspace. | `${XDG_STATE_HOME:-~/.local/state}/clinkx/context-builder/runs` |
294
+ | `CLINKX_CONTEXT_BUILDER_RUNS_DIR` | Durable run directory for `context_builder` receipts, manifests, bundles, and candidate artifacts. The directory is created with private permissions where supported and must not be a broad root, home directory, workspace root, or ancestor of the workspace. | `${CLINKX_HOME:-~/.clinkx}/context-builder/runs` |
230
295
  | `CLINKX_CONTEXT_BUILDER_MAX_CONCURRENT` | Fail-fast concurrency limit for `context_builder`. Requests are rejected when the limit is saturated; they are not queued. | `1` |
231
296
  | `CLINKX_CONTEXT_ALLOW_SECRETS` | Environment-wide default for whether `context_builder` includes secret material (API keys, private keys, tokens, `.env`/`.pem`/`id_rsa`/`credentials.json`) verbatim in bundles, delegate packets, and downstream council/provider subprocesses. `false` restores fail-closed omission/redaction. Overridden per-call by `allow_secrets` and per-workflow by `cb_allow_secrets`. See "Context builder secret material". | `true` |
232
297
 
@@ -258,6 +323,10 @@ Permission errors from the parent probe are not evidence of death. The parent
258
323
  must own the MCP connection: a wrapper that exits while deliberately handing the
259
324
  connection to another process is not a supported lifetime handoff. A server
260
325
  already started under PID 1 cannot recover its previous parent's identity.
326
+ `SIGTERM` and `SIGHUP` are repeat-safe: a repeat joins the shutdown already in
327
+ progress. A second `SIGINT` force-quits. A shutdown that has not finished
328
+ within 10 seconds forces exit 1 only while something else keeps the process
329
+ alive, because the deadline timer does not hold the event loop open.
261
330
 
262
331
  Structured diagnostics use Node's stderr stream and stop after a stderr error.
263
332
  They are best-effort when the peer disconnects; teardown does not synchronously
@@ -284,18 +353,161 @@ These controls do not change adapter authentication, remove duplicate host MCP
284
353
  registrations, or replace host-side connection teardown. They apply to the STDIO
285
354
  executables, not to importing the workflow library or to the dashboard server.
286
355
 
356
+ ### Durable storage roots
357
+
287
358
  Workflow state resolves in this order: nonempty `CLINKX_WORKFLOWS_STATE_DIR`,
288
- nonempty `XDG_STATE_HOME` plus `/clinkx-workflows`, then nonempty `HOME` (or the
289
- OS account home when `HOME` is absent or empty) plus
290
- `/.local/state/clinkx-workflows`. Every selected root or base must be absolute;
291
- the OS account-home fallback must also be nonempty and non-root. Older relative
292
- configurations that resolved against the dashboard's cwd now fail explicitly.
359
+ nonempty `CLINKX_HOME`, then nonempty `HOME` (or the OS account home when `HOME`
360
+ is absent or empty) plus `/.clinkx`. Every selected root or base must be absolute;
361
+ the OS account-home fallback must also be nonempty and non-root. The effective
362
+ home is the configured absolute `HOME`, with account home used only as fallback.
363
+ The selected ClinkX home must differ from that home, from any ancestor of it
364
+ (such as `/Users`), and from a filesystem root after resolving symlinks,
365
+ including when the selected default is `HOME/.clinkx`.
366
+ Both STDIO servers validate it at startup even when all per-area overrides are
367
+ set or workflow context preflight is disabled. Older relative state overrides
368
+ that resolved against the dashboard's cwd now fail explicitly.
293
369
  Migrate a relative override by expanding it before launch:
294
370
 
295
371
  ```sh
296
372
  export CLINKX_WORKFLOWS_STATE_DIR="$(pwd)/.clinkx-state"
297
373
  ```
298
374
 
375
+ Storage-root policy for explicit values. The path getters, workflow child
376
+ runtime resolution, and both STDIO servers (root and standalone workflow) apply
377
+ it; only the servers log the warning, once per variable at startup. "Alias"
378
+ means a symlink that resolves to that path; "home" is the effective home above.
379
+
380
+ | Value | `CLINKX_HOME` | `CLINKX_WORKFLOWS_STATE_DIR` / `CLINKX_WORKFLOWS_ARTIFACTS_DIR` |
381
+ | --- | --- | --- |
382
+ | Filesystem root or alias | reject | reject |
383
+ | Home or alias | reject | accept, warn |
384
+ | Strict ancestor of home (for example `/Users`) | reject | accept, warn |
385
+ | Relative path | reject | reject |
386
+ | Path containing a comma | reject | reject |
387
+ | Narrow subdirectory, narrow symlink, or nonexistent path | accept | accept |
388
+
389
+ When `CLINKX_WORKFLOWS_ARTIFACTS_DIR` is unset or empty, the default
390
+ `${TMPDIR:-/tmp}/clinkx-workflows/artifacts` gets the same filesystem-root
391
+ rejection after resolving symlinks, at the same entrypoints; the error names the
392
+ TMPDIR-derived default and asks for an explicit absolute subdirectory.
393
+
394
+ The warning exists because state and artifact roots are auto-admitted as
395
+ artifact-only allowed roots, so a home-wide value has two consequences: any file
396
+ in that tree can be passed as a direct file reference that subprocess CLIs read,
397
+ and ClinkX child processes may write anywhere in that tree. Generic `CLINKX_ALLOWED_ROOTS` entries are not
398
+ subject to this table; the home directory stays a legal entry there.
399
+ `CLINKX_CONTEXT_BUILDER_RUNS_DIR` keeps its own rules: not a broad root, the home
400
+ directory, the workspace root, or an ancestor of the workspace.
401
+
402
+ Individual workspace, state, artifact and context-run roots must contain no
403
+ commas in their supplied spelling or canonical path because `CLINKX_ALLOWED_ROOTS`
404
+ uses commas as delimiters. For a root that does not exist yet, validation resolves
405
+ its existing ancestor and appends the missing suffix; a comma in that prospective
406
+ path is also rejected. This applies to per-area overrides as well as defaults.
407
+ Ordinary comma-separated lists remain supported; there is no escape syntax for
408
+ a directory name containing a comma.
409
+
410
+ Valid narrow symlinks and missing first-run directories remain supported.
411
+ Dangling symlinks, loops, inaccessible ancestors and non-directory components
412
+ fail with a configuration error. Validation is a filesystem snapshot and does
413
+ not prevent a symlink from being retargeted later. Accepted configuration path
414
+ spelling stays unchanged, including for allowed-root values used in resume
415
+ fingerprints.
416
+
417
+ The root server automatically admits workflow state and artifact roots even
418
+ when `CLINKX_ALLOWED_ROOTS` explicitly names only a workspace. Materialized
419
+ context artifacts are also admitted for handoff. These entries carry an
420
+ artifact-only marker that excludes them from `context_builder` source discovery;
421
+ direct `clink` file references can read them and do not receive the context-builder
422
+ secret filters. With the default consolidated state root, that grant includes
423
+ `adapters/` and `rosters/`, whose configuration may contain tokens. A separate
424
+ `CLINKX_WORKFLOWS_STATE_DIR` keeps that configuration outside the automatically
425
+ admitted state root. Writes matter too: `~/.clinkx/adapters` and `~/.clinkx/rosters`
426
+ are the first user discovery tiers, so with the opt-in app-server tools a
427
+ `clink_agent_run` whose `cwd` is inside the state tree and runs `workspace-write`
428
+ can modify adapter or roster configuration that ClinkX loads later; operators who need that
429
+ separation should set `CLINKX_WORKFLOWS_STATE_DIR` to a separate directory. For manual cleanup, remove the intended run, activity,
430
+ session-log or context-run directories: deleting the whole ClinkX home also
431
+ deletes user adapters and rosters.
432
+
433
+ Standalone workflow children receive resolved `CLINKX_HOME` and
434
+ `CLINKX_WORKFLOWS_STATE_DIR` after environment scrubbing. The parent's
435
+ `CLINKX_CONTEXT_BUILDER_RUNS_DIR` override is scrubbed; child context runs use
436
+ `CLINKX_HOME/context-builder/runs`. An explicit child adapter config still
437
+ replaces normal discovery. `XDG_STATE_HOME` no longer selects durable storage.
438
+
439
+ ### Migrating to `CLINKX_HOME`
440
+
441
+ There is no automatic migration. Builds before `CLINKX_HOME` wrote workflow
442
+ state to `${XDG_STATE_HOME:-~/.local/state}/clinkx-workflows` and context runs
443
+ to `${XDG_STATE_HOME:-~/.local/state}/clinkx/context-builder/runs`. User
444
+ adapters and rosters under `${XDG_CONFIG_HOME:-~/.config}/clinkx/` are still
445
+ read as the second discovery tier, so they need no move.
446
+
447
+ Before any option, finish or abandon unfinished resumable workflow runs. Runs
448
+ moved from the old default stay non-resumable because state paths enter the
449
+ resume fingerprint; `CLINKX_HOME` itself does not. Keeping an explicit state
450
+ path unchanged avoids that path-change boundary.
451
+
452
+ Choose one path:
453
+
454
+ 1. **Fresh start.** Upgrade and do nothing else. New data goes to `~/.clinkx`;
455
+ the old directories stay as a read-only archive you can delete later.
456
+ 2. **Copy workflow state only.** Stop every ClinkX server, workflow child, and
457
+ dashboard that uses the old directory, then merge the old state into the new
458
+ home without overwriting anything already there (an older test run may have
459
+ created `~/.clinkx/workflow-contexts`):
460
+
461
+ ```sh
462
+ old="${XDG_STATE_HOME:-$HOME/.local/state}/clinkx-workflows"
463
+ mkdir -p "$HOME/.clinkx"
464
+ rsync -a --ignore-existing "$old/" "$HOME/.clinkx/"
465
+ ```
466
+
467
+ This copies; the old directory stays as an archive. Do not move
468
+ `context-builder/runs`: old context runs stay where they are, and new ones
469
+ go to `~/.clinkx/context-builder/runs`.
470
+ 3. **Pin the old directories.** Keep everything in place by setting the same
471
+ values on every producer and the dashboard:
472
+
473
+ ```sh
474
+ export CLINKX_WORKFLOWS_STATE_DIR="${XDG_STATE_HOME:-$HOME/.local/state}/clinkx-workflows"
475
+ export CLINKX_CONTEXT_BUILDER_RUNS_DIR="${XDG_STATE_HOME:-$HOME/.local/state}/clinkx/context-builder/runs"
476
+ ```
477
+
478
+ Do not move a context-builder runs directory or its `wfctx-*` entries. Manifests
479
+ record absolute artifact paths, so a moved entry no longer matches its new
480
+ location. A moved workflow cache entry (`wfctx-*`) is renamed to
481
+ `.stale-<runId>-<epochms>-<hex>` on the next eviction pass or promotion
482
+ conflict and costs one rebuild; the next identical call hits, and the
483
+ quarantined directory is deleted after the temp TTL (`min(cache TTL, 3600s)`).
484
+ A moved standalone `ctx_*` run fails committed-run admission and is not
485
+ self-healed. If you already moved the directory, move it back and pin it as in
486
+ option 3, or leave it and remove the moved cache entries, which are rebuilt on
487
+ demand. List them first and delete only after reviewing the list:
488
+
489
+ ```sh
490
+ find "$HOME/.clinkx/context-builder/runs" -maxdepth 1 -type d -name 'wfctx-*' -print
491
+ find "$HOME/.clinkx/context-builder/runs" -maxdepth 1 -type d -name 'wfctx-*' -exec rm -rf {} +
492
+ ```
493
+
494
+ Then update the dashboard. A native `clinkx-workflows-dashboard` resolves the
495
+ same defaults as the server when started with the same environment. For the
496
+ Compose stacks, either remove the state and context overrides
497
+ (`CLINKX_LOCAL_STATE_DIR` / `CLINKX_LOCAL_CONTEXT_RUNS_DIR`, or
498
+ `CLINKX_COMPANION_STATE_DIR` / `CLINKX_COMPANION_CONTEXT_RUNS_DIR`) from `.env`
499
+ to use the new `${HOME}/.clinkx` defaults, or point them at the pinned
500
+ directories. Then recreate the container:
501
+
502
+ ```sh
503
+ docker compose -f compose.dashboard-local.yml up -d --force-recreate
504
+ docker compose --env-file deploy/dashboard-companion/.env \
505
+ -f compose.dashboard-companion.yml up -d --force-recreate
506
+ ```
507
+
508
+ If the dashboard shows only runs from before the upgrade, its state or context
509
+ mount still points at the old location.
510
+
299
511
  Dashboard passkey challenges use protected capacities of 96 login and 32
300
512
  registration entries, plus 8 concurrent verifications. Saturation returns 503
301
513
  `auth_busy` with `Retry-After: 1`; live challenges are not evicted. Local