carthagent 1.0.7 → 1.1.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/README.md +140 -83
  2. package/bin/ctg.mjs +14 -732
  3. package/docs/beta-rewards-e2e-plan.md +48 -0
  4. package/docs/beta-rewards-e2e-results.md +84 -0
  5. package/docs/cloud-onboarding-acceptance.md +65 -0
  6. package/docs/glyph-review/host-chrome-glyph-compatibility-v4.md +83 -0
  7. package/docs/glyph-review/test-isolation-v1.md +26 -0
  8. package/docs/glyph-review/typecheck-base.log +1 -0
  9. package/docs/glyph-review/typecheck-v4.log +1 -0
  10. package/docs/glyph-review/unicode-inventory-v4.csv +402 -0
  11. package/docs/help-dispatch-review.md +69 -0
  12. package/docs/launch-readiness-live-results.md +65 -0
  13. package/docs/legacy-cli.md +150 -0
  14. package/docs/live-theme-plugin-api.md +18 -0
  15. package/docs/native-cli.md +102 -0
  16. package/docs/native-compatibility.md +16 -0
  17. package/docs/native-daily-quests.md +132 -0
  18. package/docs/native-glyph-pty.md +59 -0
  19. package/docs/native-manual-testing.md +336 -0
  20. package/docs/native-slash-acceptance-handoff.md +49 -0
  21. package/docs/native-terminal-paired-failure-2026-10-17.md +40 -0
  22. package/docs/native-terminal-performance.md +310 -0
  23. package/docs/native-terminal-semantics-evidence/README.md +25 -0
  24. package/docs/native-terminal-semantics-evidence/controlled-host-model-selftest.json +16 -0
  25. package/docs/native-terminal-semantics-evidence/current-acceptance-status.json +59 -0
  26. package/docs/native-terminal-semantics-evidence/final-binary-focused-85bb44a.json +154 -0
  27. package/docs/native-terminal-semantics-evidence/final-binary-full-incomplete-85bb44a.json +160 -0
  28. package/docs/native-terminal-semantics-evidence/final-binary-layout-85bb44a.json +149 -0
  29. package/docs/native-terminal-semantics-evidence/final-binary-layout-interactive-85bb44a.json +159 -0
  30. package/docs/native-terminal-semantics-evidence/final-binary-model-picker-escape-unchanged-85bb44a.json +44 -0
  31. package/docs/native-terminal-semantics-evidence/final-binary-model-picker-exact-identity-85bb44a.json +47 -0
  32. package/docs/native-terminal-semantics-evidence/final-binary-model-picker-unchanged-model-incomplete-85bb44a.json +58 -0
  33. package/docs/native-terminal-semantics-evidence/final-binary-model-selftest.json +16 -0
  34. package/docs/native-terminal-semantics-evidence/final-binary-picker-cancel-incomplete-85bb44a.json +62 -0
  35. package/docs/native-terminal-semantics-evidence/focused-clipboard-title-stale-binary.json +161 -0
  36. package/docs/native-terminal-semantics-evidence/layout-stale-binary-observation-not-accepted.json +153 -0
  37. package/docs/native-terminal-semantics-evidence/picker-latest-incomplete-attempt.json +62 -0
  38. package/docs/native-terminal-semantics-evidence/picker-previous-probe-pass.json +61 -0
  39. package/docs/native-terminal-semantics.md +89 -0
  40. package/docs/native-upgrade.md +175 -0
  41. package/docs/opencode-composed-source-review.md +89 -0
  42. package/docs/opencode-migration.md +225 -9
  43. package/docs/opencode-owned-runtime.md +241 -0
  44. package/docs/opencode-runtime.md +12 -0
  45. package/docs/opencode-theme-provider-proof/README.md +55 -0
  46. package/docs/opencode-theme-provider-proof/live-theme-api-base.patch +122 -0
  47. package/docs/opencode-theme-provider-proof/plugin-theme-provider.patch +107 -0
  48. package/docs/opencode-theme-provider-proof/session-ui-base.patch +1217 -0
  49. package/docs/owned-host-controls-proof.md +39 -0
  50. package/docs/owned-runtime-release-manifest.md +42 -0
  51. package/docs/owned-visual-clear-proof.md +40 -0
  52. package/docs/patches/opencode-v2.0.32-glyph-spinner-test-isolation-v1.patch +50 -0
  53. package/docs/patches/opencode-v2.0.32-glyphs.patch +3670 -0
  54. package/docs/patches/opencode-v2.0.32-help-dispatch.patch +156 -0
  55. package/docs/patches/opencode-v2.0.32-live-theme-api.patch +122 -0
  56. package/docs/patches/opencode-v2.0.32-session-ui-combined-v1.patch +5272 -0
  57. package/docs/patches/opencode-v2.0.32-session-ui-combined-v2.patch +6052 -0
  58. package/docs/patches/opencode-v2.0.32-session-ui-combined-v3.patch +8657 -0
  59. package/docs/patches/opencode-v2.0.32-session-ui-combined-v4.patch +9928 -0
  60. package/docs/patches/opencode-v2.0.32-session-ui-combined-v5.patch +13965 -0
  61. package/docs/patches/opencode-v2.0.32-session-ui.patch +5137 -0
  62. package/docs/release-notes-beta.1.md +60 -0
  63. package/docs/release-notes-beta.2.md +60 -0
  64. package/docs/release-notes-native-draft.md +73 -0
  65. package/docs/release-notes-preview.10.md +121 -0
  66. package/docs/release-notes-preview.11.md +76 -0
  67. package/docs/release-notes-preview.12.md +55 -0
  68. package/docs/release-notes-preview.13.md +68 -0
  69. package/docs/release-notes-preview.9.md +130 -0
  70. package/docs/source-preview.md +120 -0
  71. package/evaluate.mjs +28 -1
  72. package/lib/budget.mjs +1 -1
  73. package/lib/cloud/client.mjs +13 -7
  74. package/lib/codegraph.mjs +1 -1
  75. package/lib/delivery-review.mjs +19 -6
  76. package/lib/delivery.mjs +3 -2
  77. package/lib/environment.mjs +8 -0
  78. package/lib/guidance.mjs +1 -1
  79. package/lib/opencode/cli-runtime.mjs +1188 -0
  80. package/lib/opencode/cli.mjs +253 -0
  81. package/lib/opencode/credentials.mjs +63 -8
  82. package/lib/opencode/demo.mjs +53 -0
  83. package/lib/opencode/evaluation-budget-plugin/index.ts +3 -0
  84. package/lib/opencode/evaluation.mjs +32 -12
  85. package/lib/opencode/headless.mjs +22 -5
  86. package/lib/opencode/provider-policy.mjs +23 -0
  87. package/lib/opencode/review.mjs +37 -16
  88. package/lib/opencode/runtime-artifact.mjs +335 -0
  89. package/lib/opencode/runtime-github-transport.mjs +121 -0
  90. package/lib/opencode/runtime-release.json +36 -0
  91. package/lib/opencode/runtime.mjs +299 -20
  92. package/lib/opencode/service.mjs +77 -35
  93. package/lib/opencode/session-options.mjs +6 -2
  94. package/lib/opencode/update.mjs +222 -0
  95. package/lib/opencode/workspace.mjs +1 -1
  96. package/lib/planning-advice.mjs +2 -2
  97. package/lib/providers/experiential.mjs +2 -2
  98. package/lib/providers/names.mjs +1 -1
  99. package/lib/tui/framing.mjs +1 -80
  100. package/lib/tui/models.mjs +1 -1
  101. package/lib/update.mjs +10 -1
  102. package/package.json +33 -7
  103. package/plugins/carthagent/README.md +23 -0
  104. package/plugins/carthagent/src/bootstrap.ts +1 -1
  105. package/plugins/carthagent/src/daily-evidence.mjs +57 -0
  106. package/plugins/carthagent/src/daily-quests-rpc.ts +50 -0
  107. package/plugins/carthagent/src/daily-source-rpc.ts +52 -0
  108. package/plugins/carthagent/src/index.ts +71 -24
  109. package/plugins/carthagent/src/rpc.ts +51 -6
  110. package/plugins/carthagent/src/server/codegraph.ts +12 -5
  111. package/plugins/carthagent/src/server/daily-quests-rpc.ts +277 -0
  112. package/plugins/carthagent/src/server/daily-source-rpc.ts +243 -0
  113. package/plugins/carthagent/src/server/delivery.ts +227 -112
  114. package/plugins/carthagent/src/server/framing.mjs +80 -0
  115. package/plugins/carthagent/src/server/policy.ts +1 -1
  116. package/plugins/carthagent/src/server/providers.ts +65 -36
  117. package/plugins/carthagent/src/server/session-controls.ts +3 -1
  118. package/plugins/carthagent/src/server/ship-agents.ts +77 -0
  119. package/plugins/carthagent/src/server/ship-context.mjs +60 -0
  120. package/plugins/carthagent/src/server/ship-guidance.ts +41 -0
  121. package/plugins/carthagent/src/server/ship-rpc.ts +71 -0
  122. package/plugins/carthagent/src/server/voyages-rpc.ts +280 -0
  123. package/plugins/carthagent/src/testing.ts +5 -0
  124. package/plugins/carthagent/src/tui.tsx +506 -0
  125. package/plugins/carthagent/src/ui/client.ts +127 -0
  126. package/plugins/carthagent/src/ui/commands.ts +70 -0
  127. package/plugins/carthagent/src/ui/daily-editor-focus.mjs +52 -0
  128. package/plugins/carthagent/src/ui/daily-editor.mjs +4 -0
  129. package/plugins/carthagent/src/ui/daily-quests-events.mjs +18 -0
  130. package/plugins/carthagent/src/ui/daily-quests-state.mjs +218 -0
  131. package/plugins/carthagent/src/ui/daily-quests.tsx +235 -0
  132. package/plugins/carthagent/src/ui/host-state.ts +42 -0
  133. package/plugins/carthagent/src/ui/model-command.ts +32 -0
  134. package/plugins/carthagent/src/ui/native-navigation.ts +23 -0
  135. package/plugins/carthagent/src/ui/native-review.d.mts +33 -0
  136. package/plugins/carthagent/src/ui/native-review.mjs +159 -0
  137. package/plugins/carthagent/src/ui/resume-session.mjs +34 -0
  138. package/plugins/carthagent/src/ui/select-mouse.ts +17 -0
  139. package/plugins/carthagent/src/ui/session-preferences.d.mts +7 -0
  140. package/plugins/carthagent/src/ui/session-preferences.mjs +14 -0
  141. package/plugins/carthagent/src/ui/theme-provision.d.mts +3 -0
  142. package/plugins/carthagent/src/ui/theme-provision.mjs +134 -0
  143. package/plugins/carthagent/src/ui/voyages-navigation-state.mjs +56 -0
  144. package/plugins/carthagent/src/ui/voyages-navigation.tsx +131 -0
  145. package/plugins/carthagent/src/ui/voyages-state.mjs +165 -0
  146. package/plugins/carthagent/src/ui/voyages.tsx +131 -0
  147. package/plugins/carthagent/src/ui/workspace-live.ts +61 -0
  148. package/plugins/carthagent/src/ui/workspace.tsx +379 -0
  149. package/plugins/carthagent/src/voyages-rpc.ts +64 -0
  150. package/plugins/carthagent/src/workspace-rpc.ts +36 -0
  151. package/plugins/carthagent/tests/commands.test.ts +107 -0
  152. package/plugins/carthagent/tests/session-preferences.test.mjs +41 -0
  153. package/plugins/carthagent/tests/voyages-navigation.test.tsx +269 -0
  154. package/plugins/carthagent/themes/carthage.json +67 -0
  155. package/plugins/carthagent/tui.ts +26 -1
  156. package/script/ctg/build-owned-runtime.sh +166 -0
  157. package/tests/budget-engine.test.mjs +4 -3
  158. package/tests/cli.test.mjs +52 -96
  159. package/tests/cloud-client.test.mjs +2 -2
  160. package/tests/daily-evidence.test.mjs +62 -0
  161. package/tests/delivery-review.test.mjs +57 -2
  162. package/tests/delivery.test.mjs +22 -1
  163. package/tests/experiential-extension.test.mjs +2 -2
  164. package/tests/experiential.test.mjs +1 -1
  165. package/tests/fixtures/native-discovery-plugin/server.ts +15 -0
  166. package/tests/generate-owned-runtime-release.test.mjs +354 -0
  167. package/tests/installed-runtime-contract.test.mjs +43 -0
  168. package/tests/native-cli-host-smoke.mjs +457 -0
  169. package/tests/native-daily-editor-focus.test.mjs +213 -0
  170. package/tests/native-daily-editor.test.mjs +43 -0
  171. package/tests/native-daily-quests-layout.test.mjs +55 -0
  172. package/tests/native-daily-quests-rpc.test.mjs +456 -0
  173. package/tests/native-daily-quests-ui.test.mjs +778 -0
  174. package/tests/native-daily-source.test.mjs +525 -0
  175. package/tests/native-demo-ui.test.mjs +48 -0
  176. package/tests/native-evaluation-admission.test.mjs +24 -0
  177. package/tests/native-fixture-browser-cleanup.test.mjs +65 -0
  178. package/tests/native-fixture-runtime.test.mjs +111 -0
  179. package/tests/native-fixture-stop-diagnostics.test.mjs +67 -0
  180. package/tests/native-glyph-pty.test.mjs +107 -0
  181. package/tests/native-manual-projects.test.mjs +170 -0
  182. package/tests/native-model-command.test.mjs +67 -0
  183. package/tests/native-owned-runtime-env.test.mjs +140 -0
  184. package/tests/native-paired-guards.test.mjs +464 -0
  185. package/tests/native-provider-policy.test.mjs +33 -0
  186. package/tests/native-pty-invocation.test.mjs +114 -0
  187. package/tests/native-pty-runtime.test.mjs +45 -0
  188. package/tests/native-resume-session.test.mjs +46 -0
  189. package/tests/native-review-consumer.test.mjs +286 -0
  190. package/tests/native-runtime-identity.test.mjs +214 -0
  191. package/tests/native-select-mouse.test.mjs +23 -0
  192. package/tests/native-ship-guidance.test.mjs +16 -0
  193. package/tests/native-ship-parity.test.mjs +526 -0
  194. package/tests/native-ship-plan.test.mjs +85 -0
  195. package/tests/native-ship-rpc.test.mjs +83 -0
  196. package/tests/native-ui-commands.test.mjs +6 -0
  197. package/tests/native-voyages-layout.test.mjs +28 -0
  198. package/tests/native-voyages-navigation.test.mjs +169 -0
  199. package/tests/native-voyages-rpc.test.mjs +397 -0
  200. package/tests/native-voyages-ui.test.mjs +307 -0
  201. package/tests/opencode-atomic-write.test.mjs +55 -0
  202. package/tests/opencode-cli.test.mjs +1312 -0
  203. package/tests/opencode-codegraph-plugin.test.mjs +47 -0
  204. package/tests/opencode-delivery.test.mjs +16 -0
  205. package/tests/opencode-providers.test.mjs +248 -20
  206. package/tests/opencode-runtime.test.mjs +597 -8
  207. package/tests/opencode-session-controls.test.mjs +15 -0
  208. package/tests/opencode-ship-rpc.test.mjs +71 -0
  209. package/tests/opencode-update.test.mjs +475 -0
  210. package/tests/opencode-workspace.test.mjs +51 -2
  211. package/tests/owned-runtime-publish-workflow.test.mjs +477 -0
  212. package/tests/release-workflow.test.mjs +46 -0
  213. package/tests/runtime-artifact.test.mjs +269 -0
  214. package/tests/runtime-development-trust.test.mjs +231 -0
  215. package/tests/runtime-github-transport.test.mjs +132 -0
  216. package/tests/runtime-token-env.test.mjs +23 -0
  217. package/tests/server.test.mjs +3 -1
  218. package/tests/ship-telemetry.test.mjs +1 -1
  219. package/tests/source-preview.test.mjs +253 -0
  220. package/tests/test_native_terminal_probe.py +76 -0
  221. package/tests/test_native_terminal_semantics.py +232 -0
  222. package/tests/tui.test.mjs +2 -2
  223. package/tests/update.test.mjs +42 -5
  224. package/tests/verify-draft-runtime-gate.test.mjs +280 -0
  225. package/tests/verify-owned-runtime-release.test.mjs +371 -0
  226. package/tests/workspace-live.test.mjs +127 -0
  227. package/tools/benchmark/diagnose-request.mjs +59 -36
  228. package/tools/benchmark/eval-common.mjs +3 -3
  229. package/tools/benchmark/evaluators.test.mjs +4 -4
  230. package/tools/benchmark/guard.test.mjs +35 -2
  231. package/tools/benchmark/guard.ts +20 -7
  232. package/tools/benchmark/planning-startup.test.mjs +30 -34
  233. package/tools/benchmark/runner.mjs +12 -7
  234. package/tools/benchmark/runner.test.mjs +23 -7
  235. package/tools/benchmark/upstream-error.test.mjs +16 -2
  236. package/tools/generate-owned-runtime-release.mjs +217 -0
  237. package/tools/installed-runtime-contract.mjs +16 -0
  238. package/tools/manual-runtime-manifest.mjs +39 -0
  239. package/tools/native-fixture-browser-cleanup.mjs +59 -0
  240. package/tools/native-fixture-stop-diagnostics.mjs +45 -0
  241. package/tools/native-fixture.mjs +199 -40
  242. package/tools/native-glyph-helpers.py +127 -0
  243. package/tools/native-glyph-pty.py +144 -0
  244. package/tools/native-manual-projects.mjs +259 -0
  245. package/tools/native-manual.mjs +338 -0
  246. package/tools/native-model-picker-acceptance.py +306 -0
  247. package/tools/native-owned-runtime-env.sh +47 -0
  248. package/tools/native-paired-guards.mjs +282 -0
  249. package/tools/native-paired-manifest.mjs +72 -0
  250. package/tools/native-paired-orchestration.sh +51 -0
  251. package/tools/native-plugin-readiness.mjs +33 -0
  252. package/tools/native-plugin-readiness.test.mjs +53 -0
  253. package/tools/native-pty-invocation.mjs +26 -0
  254. package/tools/native-pty-runtime.mjs +83 -0
  255. package/tools/native-pty-smoke.py +147 -24
  256. package/tools/native-public-repo-shell-result.mjs +13 -0
  257. package/tools/native-public-repo-shell-result.test.mjs +28 -0
  258. package/tools/native-runtime-identity.mjs +201 -0
  259. package/tools/native-slash-acceptance-env.py +38 -0
  260. package/tools/native-terminal-semantics.py +882 -0
  261. package/tools/owned-shell-observer/index.ts +16 -0
  262. package/tools/owned-shell-observer/package.json +1 -0
  263. package/tools/owned-visual-clear-env.py +48 -0
  264. package/tools/owned-visual-clear-model.py +21 -0
  265. package/tools/pinned-owned-runtime-inputs.mjs +46 -0
  266. package/tools/prepare-native-manual.mjs +122 -0
  267. package/tools/run-native-terminal-paired.sh +403 -0
  268. package/tools/runtime-token-env.mjs +8 -0
  269. package/tools/seed-native-switch-fixture.mjs +79 -0
  270. package/tools/test-native-controls.mjs +3 -1
  271. package/tools/test-native-daily-quests.mjs +65 -0
  272. package/tools/test-native-default-cli.mjs +106 -0
  273. package/tools/test-native-delivery-host.mjs +102 -20
  274. package/tools/test-native-evaluation.mjs +7 -3
  275. package/tools/test-native-glyph-pty.mjs +94 -0
  276. package/tools/test-native-host.mjs +91 -65
  277. package/tools/test-native-outcomes.mjs +3 -1
  278. package/tools/test-native-package.mjs +206 -38
  279. package/tools/test-native-performance.mjs +26 -0
  280. package/tools/test-native-product.mjs +90 -0
  281. package/tools/test-native-pty.mjs +34 -9
  282. package/tools/test-native-public-repo.mjs +224 -0
  283. package/tools/test-native-refresh-reentry.mjs +106 -0
  284. package/tools/test-native-report.mjs +27 -20
  285. package/tools/test-native-review.mjs +75 -0
  286. package/tools/test-native-runtime.mjs +120 -0
  287. package/tools/test-native-ship-models.mjs +176 -0
  288. package/tools/test-native-ship-walkthrough.mjs +96 -0
  289. package/tools/test-native-slash-commands.mjs +125 -0
  290. package/tools/test-native-slash-commands.py +242 -0
  291. package/tools/test-native-swe-host.mjs +224 -55
  292. package/tools/test-native-tasks.mjs +77 -0
  293. package/tools/test-native-terminal-performance.py +887 -0
  294. package/tools/test-native-terminal-readiness.sh +85 -0
  295. package/tools/test-native-terminal-semantics-installed.mjs +38 -0
  296. package/tools/test-native-visual-clear-installed.mjs +48 -0
  297. package/tools/test-owned-host-controls.mjs +238 -0
  298. package/tools/test-owned-opencode-runtime.mjs +35 -0
  299. package/tools/test-owned-visual-clear-env.py +120 -0
  300. package/tools/test-owned-visual-clear.py +373 -0
  301. package/tools/verify-draft-runtime-gate.mjs +138 -0
  302. package/tools/verify-owned-runtime-release.mjs +114 -0
  303. package/tools/verify-release-version.mjs +21 -1
@@ -0,0 +1,60 @@
1
+ # Carthagent 1.1.0-beta.1
2
+
3
+ The first 1.1 beta brings the native Projects, Ship, Voyages and daily-quest experience from preview.13 together with fixes verified through real DeepSeek work and account transactions.
4
+
5
+ ## Fixed
6
+
7
+ - **Ship reviews for nested apps:** capture the application's own tracked and new source even when its Git root is an ancestor directory. Workspace containment, excluded directories, symlink protection and snapshot freshness remain enforced.
8
+ - **Clear implementation-tool guidance:** Ship explains when planning unlocks direct write/edit/shell tools, the extra strict-workflow prerequisites, and how direct tools differ from code-mode discovery.
9
+ - **Long-running headless tasks:** reconnect the wait observer after an HTTP header timeout without resending an admitted task.
10
+ - **Useful shop errors:** unaffordable items show `insufficient_coins`; invalid and expired quotes have distinct errors.
11
+ - **Quest evidence preview:** use **Ctrl+G** instead of the command palette's Ctrl+P. Incomplete evidence is rejected locally before submission.
12
+
13
+ ## Verified-delivery rewards
14
+
15
+ From a completed Ship session, open Voyages and choose **Claim verified delivery
16
+ reward**. An eligible current required-check handoff earns **25 coins, 100 XP
17
+ and 1 km**, at most **three per UTC day**. Preview and confirmation are explicit;
18
+ duplicate run/project-snapshot claims cannot earn twice. Only digests are sent,
19
+ not source code or check output. The backend trusts the authenticated local
20
+ harness attestation; it does not independently rerun the repository.
21
+
22
+ The matching backend is deployed. Live earned claim, exact replay and native
23
+ service restart passed on the owner's account: 20 → 45 coins, 0 → 100 XP and
24
+ 0 → 1 km, preserving equipment. See [reward acceptance results](beta-rewards-e2e-results.md).
25
+
26
+ ## Verified in real use
27
+
28
+ - DeepSeek completed an accepted, snapshot-bound Ship delivery repairing Invest-With-Friends' existing build/type/lint failures. Independent checks confirmed **32 passing tests**, clean typecheck, lint with **0 errors / 13 existing warnings**, and a successful production build.
29
+ - Production HTTP checks rejected **25 invalid trade payloads**.
30
+ - A real 30-coin equipment purchase debited once, and ownership/equipment persisted through restart. Duplicate purchases, unowned equipment, locked items, stale profile writes and insufficient funds were rejected.
31
+ - Three distinct daily outcomes completed grading; one was assessed complete and two needed more evidence. Cross-quest duplicate claims were rejected. Ctrl+G validation and draft cancellation were checked in the live TUI.
32
+
33
+ ## Beta scope and known limitations
34
+
35
+ - Daily quests assess selected evidence; they are not independent verification. **Daily-assessment rewards are disabled:** no coins, XP, distance or equipment are granted for assessment alone. Verified-delivery claims are a separate path.
36
+ - Native friends/badges views are not implemented.
37
+ - Long quest summaries can overlap the actions heading in the terminal.
38
+ - The Invest-With-Friends delivery is a verification example, not a deployment of that application. Its full authenticated Google/database/trading flows remain unverified; its production environment needs an auth secret, and its existing trade endpoint checks market status before authentication.
39
+
40
+ See [the launch-readiness report](launch-readiness-live-results.md) for detailed results and limitations.
41
+
42
+ ## Install or upgrade
43
+
44
+ ```sh
45
+ ctg update --channel beta --check
46
+ ctg update --channel beta
47
+ ctg --version # 1.1.0-beta.1
48
+ ```
49
+
50
+ Or install the exact npm version:
51
+
52
+ ```sh
53
+ npm install -g carthagent@1.1.0-beta.1
54
+ ```
55
+
56
+ This is a GitHub prerelease, published to npm's `next` tag. Stable `latest` remains 1.0.7. The beta channel deliberately selects this beta even though SemVer orders the older `preview.13` label above `beta.1`; an explicit channel switch is supported. `ctg update --channel stable` returns to stable.
57
+
58
+ ## Runtime provenance
59
+
60
+ Five native runtime builds are produced by [prebuild run 41398315323](https://github.com/B-icy/Carthagent/actions/runs/41398315323), from source `7a027f0aa792d40802acc92e7d12630b510df241`. The runtime recipe remains combined-v5 on upstream `843a6c514e606b436a7fe713422ace0a93ad3d61`, compatibility `2.0.32`. The packaged `lib/opencode/runtime-release.json` pins the beta's archive and executable digests; release assets include that manifest and combined checksums.
@@ -0,0 +1,60 @@
1
+ # Carthagent 1.1.0-beta.2 — release candidate
2
+
3
+ This candidate simplifies Cloud sign-in and keeps billing recovery connected to
4
+ the task already open in your terminal. Publication and installed acceptance are
5
+ pending; these notes do not establish availability on npm.
6
+
7
+ ## Cloud sign-in and first use
8
+
9
+ - Hosted models are named **Carthagent Cloud**. **Ship mode** remains the verified
10
+ coding workflow. Existing provider IDs and login aliases continue to work.
11
+ - Fresh Cloud sign-in goes directly through browser authorization. Legacy import
12
+ and upstream-key methods require `CARTHAGENT_ADVANCED_AUTH=1`.
13
+ - The browser identifies the account and terminal being connected. Device codes
14
+ last 20 minutes, with continuation-preserving sign-in recovery.
15
+ - Successful CLI sign-in suggests one small project task and points Cloud users
16
+ to `/account` for identity and actual available usage.
17
+
18
+ ## Review billing, then continue explicitly
19
+
20
+ - `/billing checkout builder`, `pro` or `max` shows authenticated plan terms
21
+ before opening checkout. Eligible new Builder customers pay **$1 for the first
22
+ month, then $10/month**; Pro starts at **$25/month**, Max at **$50/month**.
23
+ - The separate one-time starter usage credit is attempted on first terminal
24
+ authorization. Browser signup alone does not grant it.
25
+ - Existing card subscribers review Stripe's prorated amount before confirming a
26
+ change. The renewal anchor and consumed/reserved usage are preserved. Existing
27
+ grandfathered subscriptions retain their documented allowance policy.
28
+ - After payment, run `/billing refresh` in the existing session, or
29
+ `ctg billing refresh` outside the TUI. Then explicitly continue the task.
30
+ Checkout does not automatically submit a prompt or restart work.
31
+
32
+ ## Acceptance and limitations
33
+
34
+ Backend onboarding and retention reporting are deployed through PRs #178 and
35
+ #179. Native onboarding PR #238 is merged; first-task guidance is in PR #239.
36
+ The original onboarding suite passed 1,131 tests with five skips; corrected
37
+ native CI passed on Linux, macOS and Windows. These results precede final
38
+ beta.2 installed-package and public-acquisition acceptance.
39
+
40
+ Stripe test-mode access remains unavailable; real decline/SCA, tax/discount and
41
+ the full financial-transition matrix are not verified. No new live purchase or
42
+ end-to-end paid task continuation is claimed. Browser screenshot capture remains
43
+ unavailable. Local terminal acceptance initially showed event-stream timing
44
+ failures; the subsequent full installed-package run passed all 28 probes/scenarios
45
+ with the pinned beta.1 runtime, as did CI package acceptance. Final beta.2 draft
46
+ acceptance against its own manifest and assets is still required.
47
+
48
+ Verified-delivery rewards remain 25 coins, 100 XP and 1 km per eligible claimed
49
+ delivery, up to three per UTC day. Daily classifier assessments remain unrewarded.
50
+
51
+ ## Planned release channel
52
+
53
+ The candidate targets npm `next` and the beta updater channel. Stable `latest`
54
+ remains 1.0.7. Exact installation and update instructions will be verified after
55
+ the immutable release and its five runtime archives are published.
56
+
57
+ Runtime prebuild: [41505735348](https://github.com/B-icy/Carthagent/actions/runs/41505735348),
58
+ source `d999644028ed0c0dc70bcaf58060db4018278e48`. The runtime recipe remains
59
+ combined-v5 on upstream `843a6c514e606b436a7fe713422ace0a93ad3d61`, compatibility
60
+ 2.0.32. The final package must pin the generated archive and executable digests.
@@ -0,0 +1,73 @@
1
+ # Draft release notes: native OpenCode migration
2
+
3
+ > **UNRELEASED — draft only.** Planned version: **1.1.0**. No tag or release
4
+ > has been published.
5
+ > This document is not a release announcement and does not imply that the
6
+ > native default switch or full product acceptance is complete. The packaged
7
+ > five-platform runtime manifest is a reviewed candidate; publishing assets
8
+ > and passing release gates are still pending.
9
+
10
+ ## Proposed highlights (subject to acceptance)
11
+
12
+ - Native OpenCode project, task, worktree, and session workflow with Carthagent
13
+ delivery status and workspace context.
14
+ - Carthagent-owned OpenCode runtime and profile, isolated from the user's normal
15
+ OpenCode configuration, service, credentials, data, and sessions.
16
+ - Headless execution with text output or selected-session JSONL lifecycle
17
+ events, plus workspace delivery status in JSON.
18
+ - Read-only access to legacy Pi transcripts through archive list, search, read,
19
+ and export commands. No transcript import or continuation is provided.
20
+ - Existing command names and aliases retained where supported by the native
21
+ CLI compatibility layer.
22
+
23
+ ## Migration and compatibility notes
24
+
25
+ - In this candidate, native execution remains opt-in with `CTG_NATIVE=1`.
26
+ Without the variable, the existing CLI remains the default. Making native
27
+ execution the default is pending UI tests and the remaining migration and
28
+ release acceptance gates; do not set the variable persistently unless that
29
+ routing is intentional.
30
+ - The native runtime uses the package-owned OpenCode 2.0.32 executable and CTG's
31
+ isolated profile. It does not update or reuse regular OpenCode installations
32
+ or credentials.
33
+ - Legacy Pi session files are read-only archives; they cannot be resumed,
34
+ continued, or imported as native OpenCode sessions.
35
+ - Unsupported options fail closed. In the current adapter, `--bash-cap` and
36
+ `--isolate` are unsupported, and budget or policy options require advertised
37
+ enforcement capabilities.
38
+ - Acceptance is not complete. See the [migration ledger](opencode-migration.md),
39
+ [compatibility matrix](native-compatibility.md), and
40
+ [terminal evidence status](native-terminal-semantics.md#evidence-status-pr-162)
41
+ for unresolved gates. Do not describe this migration as generally available
42
+ until release ownership confirms those gates and the installed product.
43
+
44
+ ## Install/update (for a future published release only)
45
+
46
+ After the planned release passes acceptance and is published, the
47
+ documented exact-tag npm installation form is:
48
+
49
+ ```sh
50
+ npm install -g --install-links=true github:B-icy/Carthagent#vX.Y.Z
51
+ ```
52
+
53
+ Replace the placeholder only with the real published release tag. Version
54
+ `1.1.0` is planned, but no final tag has been created. This candidate packages
55
+ the reviewed immutable owned-runtime manifest for five platforms, pinned to
56
+ OpenCode source revision `843a6c514e606b436a7fe713422ace0a93ad3d61` and runtime
57
+ identity `0.0.0-ctg.2.0.32`. The assets still need to accompany a draft release
58
+ and pass final release verification and installed acceptance. The composed
59
+ preview resolves upstream `@opencode/cli@2.0.32` through Node's package resolver,
60
+ including npm-hoisted layouts; that preview dependency is distinct from CTG's
61
+ owned runtime identity. Performance, UI tests, native-default acceptance, and
62
+ full installed acceptance remain open in the
63
+ [migration ledger](opencode-migration.md#delivery-ledger).
64
+ The shared native update operation supports npm-installed packages and clean
65
+ source clones: for a clone it fetches the selected origin tag into a private ref
66
+ before checking out its resolved commit, and refuses dirty clones. Do not infer
67
+ that every native command surface is wired to this operation. `ctg update`
68
+ updates Carthagent, not a user's regular OpenCode installation, and does not
69
+ change the native opt-in default. See the
70
+ [upgrade guide](native-upgrade.md#release-installation-and-update) for the
71
+ current command-path distinction. Native migration acceptance remains open; do
72
+ not infer completion of unrelated CLI, UI, or transport follow-ups not yet
73
+ composed here.
@@ -0,0 +1,121 @@
1
+ # 1.1.0-preview.10 release candidate
2
+
3
+ > **NOT YET PUBLISHED — candidate guidance, not a release announcement.**
4
+ > Published preview.9 remains immutable. This candidate still needs its final
5
+ > tag, draft/assets, exact-tag installed default-resolver acceptance, public
6
+ > release, and anonymous public default-resolver acceptance. No stable release
7
+ > or stable control-plane update is part of this candidate.
8
+
9
+ ## What changes
10
+
11
+ Native remains the default `ctg` interface; `ctg native` is a compatibility
12
+ alias. Ship retains approval, checks, review, repair, recovery and resume; Lite
13
+ remains direct execution. Stable 1.0.7 retains the legacy console, and legacy
14
+ Pi transcripts remain read-only archives. The owned native profile remains
15
+ separate from other coding-tool credentials and sessions.
16
+
17
+ **Native daily coding quests (PR #227)** are available through `/voyages` →
18
+ **Daily coding quests**, using normal Carthagent Ship device sign-in:
19
+
20
+ - Select a server assignment and individual evidence from an owned session's
21
+ exact active Ship report, or supply a clearly labeled manual claim. Nothing
22
+ is selected by default. Edit/redact sensitive text yourself; there is no
23
+ automatic secret-scrubbing guarantee or whole-project/transcript upload.
24
+ - Inspect the complete canonical outbound JSON. Editing invalidates that exact
25
+ preview. Submission requires fresh, explicit consent for this request and
26
+ disclosure of external **JEV** processing. Login or completing local delivery
27
+ is not consent; cancel does not send. Identity/connection/location invalidation
28
+ clears the draft/consent and returns the action selection to **Refresh**.
29
+ - The exact request and stable submission ID are durably journaled before send.
30
+ Recover an uncertain send by **GET/status first**; read-only refresh/poll never
31
+ replays. Any explicit replay uses the saved ID and exact body, not a new ID.
32
+ Journal failure fails closed; accepted IDs remain usable across restart.
33
+ - Acceptance is not completion. Local raw payloads are erased on known
34
+ acceptance; unknown-send payloads expire after up to 24 hours on journal
35
+ access, not a background timer. Explicit local erasure retains polling IDs
36
+ and cannot withdraw evidence already sent. Backend raw evidence is erased
37
+ on terminal processing (pending up to 24 hours; outages can delay cleanup);
38
+ metadata retention is 90 days. Immediate provider/backup deletion is not promised.
39
+ - Graded decisions assess submitted evidence, **not independent verification**.
40
+ Scores are not calibrated confidence. There are **no coins, XP, distance,
41
+ inventory or other rewards**; personal quests remain separate.
42
+
43
+ See [native daily quest guidance](native-daily-quests.md) for schema, privacy,
44
+ retention, consent and recovery details.
45
+
46
+ ## Candidate provenance
47
+
48
+ | Input | Exact value |
49
+ | --- | --- |
50
+ | Package candidate | `1.1.0-preview.10` |
51
+ | Feature source head | `5e759c4c4d21b1df10ecdcd130ad59cd377bcc15` |
52
+ | Original prebuild source | `7a9d49fe7e2dcc8358a4c28e3539479df5be55a1` |
53
+ | Prebuild workflow run | `40950483282` |
54
+ | Full manifest SHA-256 | `2d4adee543f5dec37abf8a67c677cecfc5de294031a1c37d23fea43bc90fe757` |
55
+ | Upstream revision | `843a6c514e606b436a7fe713422ace0a93ad3d61` |
56
+ | CTG patch SHA-256 | `b4238d77827d7ccf8f87fb0326551eaa62268d9387cd89e29bd0cf12bd6dafaa` |
57
+ | Lock SHA-256 | `9d78379cd264584a495440a217b9d2ecab524c9a56f7f8b4b5bed3926daa330d` |
58
+ | Runtime / compatibility | `0.0.0-ctg.2.0.32` / `2.0.32` |
59
+
60
+ All five prebuilds succeeded: Linux x64/arm64, macOS x64/arm64 and Windows x64.
61
+ The original **13-file bundle** was independently verified through the
62
+ production acquirer, with byte-identical manifest regeneration. Runtime,
63
+ upstream, patch and lock identities are unchanged, but this manifest pins the
64
+ **fresh five-platform archive and executable hashes**, not preview.9 hashes.
65
+ Prebuild provenance is not final package identity or installed acceptance.
66
+
67
+ ## Recorded evidence and limits
68
+
69
+ These are supplied source/development-runtime results, not tests rerun by this
70
+ version/docs preparation and not exact-candidate installed acceptance.
71
+
72
+ - **Source quality at `5e759c4`: 1,069 passed, 0 failed, 5 skipped.** The first
73
+ historical quality run had 1,068 passed, 1 failed, 5 skipped: a legacy
74
+ dashboard 401-versus-403 assertion of unknown cause. Isolated and serial runs
75
+ passed; that does not establish a causal fix. Feature-head normal
76
+ [PR CI40951839410](https://github.com/B-icy/Carthagent/actions/runs/40951839410)
77
+ and [push CI40951831992](https://github.com/B-icy/Carthagent/actions/runs/40951831992)
78
+ both passed all eight jobs. Release-candidate CI remains a separate gate.
79
+ - **Actual native daily flow:** one authorized provider attempt reached graded
80
+ `needs_evidence`, not quest completion or rewards. Raw-payload erasure and
81
+ read-only polling after an actual client restart passed. Genuine background
82
+ cancellation notice, reset to Refresh, and delayed Enter behavior passed.
83
+ Unknown network-send replay was not forced live; that coverage is offline only.
84
+ - **Actual native wallet flow:** fresh normal device approval; cancel made no
85
+ purchase and left 50 coins. One explicitly authorized 40-coin `bottoms:shorts`
86
+ purchase left 10 coins, owned items 9 → 10 and profile version v1 → v2.
87
+ Actual client restart preserved it; equipment was unchanged. This is not a
88
+ daily-quest reward or proof of live unknown-response purchase replay.
89
+ - **Website browser E2E blocked:** Chrome was missing and one install attempt
90
+ failed because Linux ARM64 was unavailable. Public Voyages HTTP 200 is not
91
+ signed-in browser proof.
92
+ - **Native-host CI caveat:** the initial `7a9d49f` PR macOS Node 24 service-stop
93
+ 5,000 ms timeout is not causally fixed. New failure-only diagnostics leave
94
+ deadlines and assertions unchanged; review returned no findings (`[]`) and
95
+ Linux native-host passed. Both later feature-head CI runs passed, including
96
+ macOS Node 22/24; that is gate evidence, not a causal shutdown fix or full
97
+ cross-platform interactive UI proof.
98
+
99
+ ## Trying it and remaining gates
100
+
101
+ Before publication, use only reviewed artifacts with the
102
+ [explicit manual-kit method](native-manual-testing.md); do not weaken hashes or
103
+ expect the public default resolver to find unpublished assets. No claim is made
104
+ that this exact candidate has passed installed-package acceptance.
105
+
106
+ Only **after publication** of the final tag and reviewed assets:
107
+
108
+ ```sh
109
+ npm install -g --install-links=true github:B-icy/Carthagent#v1.1.0-preview.10
110
+ # Or select published experimental releases (possibly a later preview):
111
+ ctg update --channel experimental --check
112
+ ctg update --channel experimental
113
+ ```
114
+
115
+ Drafts are not updates. Experimental releases never advance the stable pointer.
116
+ Final package/manifest review, final CI, tag/draft/assets, exact-tag installed
117
+ acceptance with the normal resolver, publication and anonymous public installed
118
+ acceptance remain release gates. See the [upgrade guide](native-upgrade.md) for
119
+ profile preservation and stable-channel recovery. Historical
120
+ [preview.9 notes](release-notes-preview.9.md) are retained unchanged, not current
121
+ candidate status or evidence that immutable preview.9 gains these changes.
@@ -0,0 +1,76 @@
1
+ # 1.1.0-preview.11 experimental release
2
+
3
+ Experimental preview. Install it explicitly with the experimental channel;
4
+ stable 1.0.7 is unchanged and published preview.10 remains immutable.
5
+
6
+ ## What changes
7
+
8
+ **Projects / Voyages left pane (PR #230).** On a wide enough terminal the left
9
+ rail has two modes, **Projects** (the existing session list) and **Voyages**.
10
+
11
+ - Switching modes keeps the current page. It does not create, interrupt, or
12
+ close a coding session, and it does not change the session or draft.
13
+ - The Voyages navigator shows read-only profile and daily assignment
14
+ summaries. Select an entry explicitly to open its detail page. Opening a
15
+ quest does not compose evidence or grant consent. **Return to coding** opens
16
+ the selected session, or Home when no session is selected.
17
+ - Each mode keeps its own selection and scroll position, and the chosen mode
18
+ is restored after a normal restart (without reopening a detail page).
19
+ - **Focus pane** (or the configured shortcut) moves keyboard focus into the
20
+ pane; `Escape` returns focus to the page. Clicking a page control while the
21
+ pane is focused keeps focus on that control.
22
+ - The compact rail uses `Q` (quests), `P` (profile), `E` (equipment),
23
+ `R` (refresh), `S` (sign in) and `B` (return to coding); numbered rows are
24
+ actual assignments. When the terminal is too narrow for the rail, use the
25
+ command palette, `/voyages`, or `/quests`.
26
+ - Badges and friends have no native views yet. The pane never invents links or
27
+ data the server did not return.
28
+
29
+ **Dialog resize fix.** Select dialogs no longer register one terminal-resize
30
+ listener per row, which produced `MaxListenersExceededWarning` in large lists.
31
+
32
+ Daily coding quests, Ship, Lite and the native default `ctg` interface behave
33
+ as in preview.10. Assessments still award no coins, XP, or other rewards.
34
+
35
+ ## Provenance
36
+
37
+ | Input | Exact value |
38
+ | --- | --- |
39
+ | Package | `1.1.0-preview.11` |
40
+ | Prebuild source | `47fe2a6d52492f5f614a704605486ec6e8ed9f79` |
41
+ | Prebuild workflow run | [41145521256](https://github.com/B-icy/Carthagent/actions/runs/41145521256) |
42
+ | Full manifest SHA-256 | `6afe56eff1d2d08e798c7e329e817a980f7184a47bbb771c2a3e231eb3687862` |
43
+ | Upstream revision | `843a6c514e606b436a7fe713422ace0a93ad3d61` |
44
+ | CTG patch (combined-v4) SHA-256 | `1f2309bb3a31dfb8e8a0827a6a1144a1f76a005abff58f6f48857639ec02478a` |
45
+ | Lock SHA-256 | `9d78379cd264584a495440a217b9d2ecab524c9a56f7f8b4b5bed3926daa330d` |
46
+ | Runtime / compatibility | `0.0.0-ctg.2.0.32` / `2.0.32` |
47
+
48
+ All five native prebuilds (Linux x64/arm64, macOS x64/arm64, Windows x64)
49
+ passed the full runtime typecheck and the build recipe's test list in one run.
50
+
51
+ Two tests that are timing-sensitive on CI were hardened. Neither change touches
52
+ product code:
53
+
54
+ - `navigation-rail`: waits for the pane's status text to refresh on the next
55
+ render pass instead of reading it immediately after a click.
56
+ - `plugin-source` (real watchers): confirms the helper watch is live before
57
+ the atomic save. On the current `macos-15-arm64` runner image, a macOS file
58
+ watcher can miss a write made immediately after it starts.
59
+
60
+ ## Trying it
61
+
62
+ ```sh
63
+ ctg update --channel experimental --check
64
+ ctg update --channel experimental
65
+ ctg --version # 1.1.0-preview.11
66
+ ```
67
+
68
+ Or install the exact tag:
69
+
70
+ ```sh
71
+ npm install -g --install-links=true github:B-icy/Carthagent#v1.1.0-preview.11
72
+ ```
73
+
74
+ `ctg update --channel stable` returns to stable 1.0.7 without `--force`. See
75
+ the [upgrade guide](native-upgrade.md) for profile preservation. Historical
76
+ [preview.10 notes](release-notes-preview.10.md) are retained unchanged.
@@ -0,0 +1,55 @@
1
+ # 1.1.0-preview.12 experimental release
2
+
3
+ Experimental preview. Install it explicitly with the experimental channel;
4
+ stable 1.0.7 is unchanged and published preview.11 remains immutable.
5
+
6
+ ## What changes
7
+
8
+ **npm package keeps the `ctg` command.** Preview.11 declared its command as
9
+ `./bin/ctg.mjs`. npm 11 treats that path as invalid and removes it during
10
+ `npm publish`, so a registry copy of preview.11 would have installed without a
11
+ `ctg` command. Preview.11 was therefore published on GitHub only. Preview.12
12
+ declares `bin/ctg.mjs` and normalizes the repository URL, so `npm publish` makes
13
+ no corrections to the manifest.
14
+
15
+ **Release check.** `tools/verify-release-version.mjs` (run by the release
16
+ workflow before anything is uploaded) now runs `npm publish --dry-run` and
17
+ fails if npm would auto-correct or remove any field, if `bin.ctg` is not a
18
+ plain relative path, or if the packed package lacks an executable
19
+ `bin/ctg.mjs`.
20
+
21
+ Product behaviour, the Projects / Voyages left pane, the native runtime source,
22
+ and the CTG patch are identical to
23
+ [preview.11](release-notes-preview.11.md). The runtime is rebuilt only because
24
+ each runtime manifest is bound to its exact package version.
25
+
26
+ ## Provenance
27
+
28
+ | Input | Exact value |
29
+ | --- | --- |
30
+ | Package | `1.1.0-preview.12` |
31
+ | Prebuild source | `5c2c8730e140435a5a4f003ff30089efec006453` |
32
+ | Prebuild workflow run | [41156564357](https://github.com/B-icy/Carthagent/actions/runs/41156564357) |
33
+ | Full manifest SHA-256 | `b29fb261d88d052593421a42d4100d515b6b48454ca687ebdeceef9b32743742` |
34
+ | Upstream revision | `843a6c514e606b436a7fe713422ace0a93ad3d61` |
35
+ | CTG patch (combined-v4) SHA-256 | `1f2309bb3a31dfb8e8a0827a6a1144a1f76a005abff58f6f48857639ec02478a` |
36
+ | Lock SHA-256 | `9d78379cd264584a495440a217b9d2ecab524c9a56f7f8b4b5bed3926daa330d` |
37
+ | Runtime / compatibility | `0.0.0-ctg.2.0.32` / `2.0.32` |
38
+
39
+ ## Trying it
40
+
41
+ ```sh
42
+ ctg update --channel experimental --check
43
+ ctg update --channel experimental
44
+ ctg --version # 1.1.0-preview.12
45
+ ```
46
+
47
+ Or install the exact version from npm or the exact tag:
48
+
49
+ ```sh
50
+ npm install -g carthagent@1.1.0-preview.12
51
+ npm install -g --install-links=true github:B-icy/Carthagent#v1.1.0-preview.12
52
+ ```
53
+
54
+ `ctg update --channel stable` returns to stable 1.0.7 without `--force`. See
55
+ the [upgrade guide](native-upgrade.md) for profile preservation.
@@ -0,0 +1,68 @@
1
+ # 1.1.0-preview.13 experimental release
2
+
3
+ Experimental preview. Install it explicitly with the experimental channel;
4
+ stable 1.0.7 is unchanged and published preview.12 remains immutable.
5
+
6
+ ## What changes
7
+
8
+ **Directory-first Projects rail.** The native left rail is organized around
9
+ folders: a current-folder card with Browse, New session and model controls,
10
+ distinct folder and group headings, and an active-session marker. A
11
+ folder-browser dialog adds Back, Forward, Up, Home, direct paths and
12
+ filtering, with async cancellation, exact path handling and preserved drafts.
13
+
14
+ **Shared folder/model setup for new sessions.** Global and per-folder New
15
+ session entries route through one setup flow. The session is created only on
16
+ the first send, keeping the chosen folder, agent, model and applicable
17
+ variant; unavailable selections are blocked instead of silently substituted.
18
+ Pre-session `/model` is supported.
19
+
20
+ **Isolated source-preview launcher.** `script/ctg/source-preview.sh` runs the
21
+ checked-in development patch against its own profile for verification without
22
+ touching the published runtime or its caches. The combined-v5 patch is a
23
+ replacement patch: it contains all of combined-v4 plus these sources and
24
+ their tests, and applies directly to the pinned upstream.
25
+
26
+ The upstream revision, lockfile and detached runtime identity are unchanged
27
+ from preview.12; the runtime is rebuilt because each runtime manifest is
28
+ bound to its exact package version.
29
+
30
+ **Ship and Voyages follow-up fixes.** Beam replay requests include the required
31
+ nonempty reasoning placeholder when earlier assistant messages have no recorded
32
+ reasoning. The delivery plan entry point stays visible in the code-mode catalog,
33
+ and final review accepts single-assertion aliases and assertion arrays. Voyages
34
+ and quest lists activate on mouse release so newly opened dialogs remain open;
35
+ rail clicks select the intended quest and respect modal focus.
36
+ Delivery tool guidance explicitly identifies JSON-text responses and requires
37
+ relative file paths for promised outputs, avoiding prose-as-filename contracts.
38
+
39
+ ## Provenance
40
+
41
+ | Input | Exact value |
42
+ | --- | --- |
43
+ | Package | `1.1.0-preview.13` |
44
+ | Prebuild source | `e5de273811a11c2f8678b54605c0068ab8cfcf38` |
45
+ | Prebuild workflow run | [41380550073](https://github.com/B-icy/Carthagent/actions/runs/41380550073) |
46
+ | Full manifest SHA-256 | `5083dbe10b6f4be2550ab0abb04c9299197dacabe4b9d3556bd3b03fc9f6151a` |
47
+ | Upstream revision | `843a6c514e606b436a7fe713422ace0a93ad3d61` |
48
+ | CTG patch (combined-v5) SHA-256 | `ec4bb182308ed8b311513aad5c9c7d57dcd0db103f0882f3dc3517d535b4c975` |
49
+ | Lock SHA-256 | `9d78379cd264584a495440a217b9d2ecab524c9a56f7f8b4b5bed3926daa330d` |
50
+ | Runtime / compatibility | `0.0.0-ctg.2.0.32` / `2.0.32` |
51
+
52
+ ## Trying it
53
+
54
+ ```sh
55
+ ctg update --channel experimental --check
56
+ ctg update --channel experimental
57
+ ctg --version # 1.1.0-preview.13
58
+ ```
59
+
60
+ Or install the exact version from npm or the exact tag:
61
+
62
+ ```sh
63
+ npm install -g carthagent@1.1.0-preview.13
64
+ npm install -g --install-links=true github:B-icy/Carthagent#v1.1.0-preview.13
65
+ ```
66
+
67
+ `ctg update --channel stable` returns to stable 1.0.7 without `--force`. See
68
+ the [upgrade guide](native-upgrade.md) for profile preservation.
@@ -0,0 +1,130 @@
1
+ # 1.1.0-preview.9 release candidate
2
+
3
+ > **UNPUBLISHED — candidate guidance, not a release announcement.** No tag,
4
+ > draft creation, asset upload, or publication is part of candidate preparation.
5
+ > Published-channel updates cannot install this prebuild. Final-tag acceptance
6
+ > and release-owner approval remain required before publication.
7
+
8
+ ## What this candidate contains
9
+
10
+ - **Native by default**, inherited from preview.8. `ctg native` remains a
11
+ compatibility alias; `CTG_NATIVE` no longer selects another console. Stable
12
+ 1.0.7 remains the legacy release. The owned runtime and private CTG profile
13
+ remain separate from regular OpenCode installations and credentials. Legacy
14
+ Pi sessions remain read-only archives, not resumable native sessions.
15
+ - **Ship versus Lite:** Ship retains approval, checks, review, repair, recovery,
16
+ and resume delivery workflow; Lite is direct execution. This is not a claim of
17
+ complete behavioral parity across all interfaces or platforms.
18
+ - **Native Voyages (PR #225):** `/voyages` exposes profile customization, wallet,
19
+ equipment and shop. Normal `/login` browser device approval binds the CLI to
20
+ the approving user's existing web player, which remains authoritative. There
21
+ is no separate CLI wallet, cookie import, paid-model requirement, or coding
22
+ coin award. Older account-only credentials may need a new device sign-in.
23
+ - **Explicit mutations:** customization and equipment changes require
24
+ confirmation. A paid purchase requires a server quote with price and expiry,
25
+ followed by explicit confirmation. Cancel does not purchase. Ownership,
26
+ funds, eligibility and profile version are checked by the server; refresh on
27
+ conflicts rather than overwriting another client. Equip separately after
28
+ purchase. An uncertain purchase retains its pending request across restart:
29
+ recover using the same quote and request key, not a new purchase or deleted
30
+ profile state. Signed-out/unavailable data is not a saved balance.
31
+ - **Credential refresh identity and coordination fixes** preserve account
32
+ identity boundaries and coordinate refreshed credentials rather than treating
33
+ unrelated identity or stale state as a successful refresh.
34
+ - **PTY and Windows cleanup fixes** preserve full-duplex terminal input and
35
+ coherent paint snapshots, and verify fixture browser cleanup against captured
36
+ process identities. Passing source tests is not proof
37
+ of every physical terminal or operating-system UI interaction.
38
+
39
+ ## Candidate provenance
40
+
41
+ | Input | Exact value |
42
+ | --- | --- |
43
+ | Package candidate | `1.1.0-preview.9` |
44
+ | Prebuild source | `c51c5ae11293e63b658df297abc732db88d9109a` |
45
+ | Prebuild workflow run | `40151970983` |
46
+ | Candidate manifest SHA-256 | `aa5de65b633219423d21b1cc645945028a2d5565714b71760cbcc18badc5f4e5` |
47
+ | Upstream revision | `843a6c514e606b436a7fe713422ace0a93ad3d61` |
48
+ | CTG patch SHA-256 | `b4238d77827d7ccf8f87fb0326551eaa62268d9387cd89e29bd0cf12bd6dafaa` |
49
+ | Lock SHA-256 | `9d78379cd264584a495440a217b9d2ecab524c9a56f7f8b4b5bed3926daa330d` |
50
+ | Detached runtime version | `0.0.0-ctg.2.0.32` (compatibility `2.0.32`) |
51
+
52
+ All five native builds (Linux x64/arm64, macOS x64/arm64, Windows x64) and
53
+ assembly succeeded. The **original 13-file prebuild bundle** was independently
54
+ verified through the production acquirer; manifest regeneration was
55
+ byte-identical. Upstream, patch, lock, and detached runtime identity are
56
+ unchanged from preview.8. The prebuild source above is not the final release
57
+ package commit: package/lock, complete generated manifest, and candidate docs
58
+ must be reviewed together before any final tag is selected.
59
+
60
+ Archive/provenance verification is not execution acceptance. The new Linux
61
+ ARM64 bytes passed isolated staged native-host and Ship-model probes, including
62
+ plugin/RPC contracts, device-flow start/cancel, model discovery, service stop,
63
+ and fixture cleanup. These use an explicit reviewed-artifact selector, not the
64
+ installed package's default resolver. Independent execution on the other four
65
+ targets and full final-tag installed acceptance remain pending. Earlier preview.8
66
+ source and artifact evidence remains historical and is not blanket acceptance
67
+ for preview.8 or preview.9.
68
+
69
+ ## Recorded acceptance and its limits
70
+
71
+ The following supplied source/development-runtime results precede final-tag
72
+ release acceptance; they are not a claim that candidate-document edits reran CI.
73
+
74
+ | Scope | Recorded outcome |
75
+ | --- | --- |
76
+ | Final source quality, Linux | 934 tests: 929 passed, 5 skipped |
77
+ | Windows-only cases | Four of the Linux-skipped cases actually passed Windows CI |
78
+ | Python | 28 passed |
79
+ | Local ARM full required-owned/default-resolver gate | 28 probes, 0 failures, 0 skips |
80
+ | Exact source PR CI and main CI | All eight checks passed in each |
81
+
82
+ The local ARM result does not establish independent execution of the new
83
+ preview.9 prebuild bundle or its future final-tag public assets.
84
+
85
+ Live **actual TUI development-runtime** testing covered browser device approval,
86
+ name cancellation and save, owned Beanie equip, restart, web persistence,
87
+ expiry recovery, and revocation. The web player was authoritative. The user's
88
+ wallet contained **10 coins**, with no affordable paid quote: **no live paid
89
+ debit or paid-request replay was proven**. Do not turn pending-recovery test
90
+ coverage into a claim of a real paid purchase.
91
+
92
+ Actual **60x12** terminal navigation was functional, not model-based visual
93
+ approval. Physical clipboard behavior is not proven. Full cross-OS UI and
94
+ controlled paired performance remain unknown. There is no full behavior-parity,
95
+ lower-token/cost, or paid-model benchmark claim.
96
+
97
+ ## Trying the candidate and remaining release gates
98
+
99
+ Before publication, use the matching prebuild archives and independently pinned
100
+ candidate manifest through the [explicit manual-kit artifact method](native-manual-testing.md).
101
+ Do not replace trust hashes to accept other bytes or expect the public default
102
+ resolver to find unpublished assets. Provider-free fixtures are scripted, not
103
+ model-quality evidence; live provider use requires deliberate credential and
104
+ spending authorization.
105
+
106
+ Only **after** `v1.1.0-preview.9` and its reviewed runtime assets are published:
107
+
108
+ ```sh
109
+ npm install -g --install-links=true github:B-icy/Carthagent#v1.1.0-preview.9
110
+ # Or, from an installation supporting channels:
111
+ ctg update --channel experimental --check
112
+ ctg update --channel experimental
113
+ ```
114
+
115
+ Experimental selection follows published semantic versions and may select a
116
+ later release; use the exact tag when reproducing preview.9. Drafts are never
117
+ updates, and prereleases do not advance the stable control-plane pointer.
118
+ See the [upgrade guide](native-upgrade.md) for non-destructive source checkout,
119
+ profile preservation, and stable-channel recovery.
120
+
121
+ Still pending: independently execute the other four platform outputs; review the final
122
+ package and manifest; obtain separate approval for the tag/draft/upload steps;
123
+ run full final-tag required-owned installed acceptance against the draft using
124
+ the normal resolver; obtain publication approval; then prove anonymous public
125
+ default-resolver installed acceptance. No backend edits or publication actions
126
+ are included in this version/pins/documentation candidate update.
127
+
128
+ The [older native migration draft](release-notes-native-draft.md) is preserved
129
+ unchanged as historical planning material, including its old opt-in routing and
130
+ unreleased-version assumptions. It is not current candidate installation guidance.