carthagent 1.1.0-preview.12 → 1.1.0-preview.13

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 (46) hide show
  1. package/README.md +69 -13
  2. package/docs/native-manual-testing.md +27 -5
  3. package/docs/opencode-owned-runtime.md +3 -3
  4. package/docs/patches/opencode-v2.0.32-session-ui-combined-v5.patch +13965 -0
  5. package/docs/release-notes-preview.13.md +68 -0
  6. package/docs/source-preview.md +120 -0
  7. package/lib/delivery-review.mjs +11 -1
  8. package/lib/opencode/runtime-release.json +12 -12
  9. package/lib/opencode/runtime.mjs +5 -4
  10. package/lib/providers/experiential.mjs +2 -2
  11. package/package.json +1 -1
  12. package/plugins/carthagent/src/daily-source-rpc.ts +2 -2
  13. package/plugins/carthagent/src/server/daily-source-rpc.ts +18 -4
  14. package/plugins/carthagent/src/server/delivery.ts +10 -6
  15. package/plugins/carthagent/src/server/providers.ts +1 -1
  16. package/plugins/carthagent/src/server/ship-guidance.ts +4 -2
  17. package/plugins/carthagent/src/tui.tsx +17 -13
  18. package/plugins/carthagent/src/ui/daily-quests.tsx +5 -2
  19. package/plugins/carthagent/src/ui/model-command.ts +32 -0
  20. package/plugins/carthagent/src/ui/native-review.d.mts +2 -0
  21. package/plugins/carthagent/src/ui/native-review.mjs +7 -2
  22. package/plugins/carthagent/src/ui/select-mouse.ts +17 -0
  23. package/plugins/carthagent/src/ui/voyages-navigation.tsx +11 -2
  24. package/plugins/carthagent/src/ui/voyages.tsx +4 -2
  25. package/plugins/carthagent/tests/voyages-navigation.test.tsx +20 -9
  26. package/script/ctg/build-owned-runtime.sh +3 -3
  27. package/tests/delivery-review.test.mjs +11 -0
  28. package/tests/native-daily-source.test.mjs +27 -2
  29. package/tests/native-manual-projects.test.mjs +3 -3
  30. package/tests/native-model-command.test.mjs +67 -0
  31. package/tests/native-review-consumer.test.mjs +19 -0
  32. package/tests/native-select-mouse.test.mjs +23 -0
  33. package/tests/native-ship-plan.test.mjs +13 -3
  34. package/tests/opencode-delivery.test.mjs +16 -0
  35. package/tests/owned-runtime-publish-workflow.test.mjs +6 -6
  36. package/tests/runtime-development-trust.test.mjs +5 -5
  37. package/tests/server.test.mjs +3 -1
  38. package/tests/ship-telemetry.test.mjs +1 -1
  39. package/tests/source-preview.test.mjs +253 -0
  40. package/tests/update.test.mjs +6 -5
  41. package/tools/benchmark/planning-startup.test.mjs +1 -1
  42. package/tools/test-native-delivery-host.mjs +2 -2
  43. package/tools/test-native-host.mjs +4 -2
  44. package/tools/test-native-public-repo.mjs +1 -1
  45. package/tools/test-native-ship-walkthrough.mjs +1 -1
  46. package/tools/test-native-swe-host.mjs +4 -4
package/README.md CHANGED
@@ -72,6 +72,65 @@ persistence; see the [preview.10 candidate notes](docs/release-notes-preview.10.
72
72
  for its limits. Published preview.9 remains immutable and does not acquire
73
73
  changes from current main.
74
74
 
75
+ ### Projects sidebar source preview (development only)
76
+
77
+ The redesigned Projects sidebar (folder card, folder browser, and folder/model
78
+ setup for new sessions) exists only as source. It is **not** in any published
79
+ `ctg` release, and the steps below do not build or update the published native
80
+ runtime. The published runtime stays pinned to
81
+ `docs/patches/opencode-v2.0.32-session-ui-combined-v4.patch` and
82
+ `lib/opencode/runtime-release.json`.
83
+
84
+ Requirements: Git, a POSIX shell, `sha256sum` or `shasum`, Bun 1.4.2 (the
85
+ OpenCode `packageManager` pin), and this checkout with `npm ci` already run. No
86
+ native compilation is needed. The launcher is a POSIX `sh` script for Linux and
87
+ macOS; native Windows is not supported.
88
+
89
+ 1. Prepare a clean OpenCode checkout at the pinned upstream and apply the
90
+ development patch (v5 replaces v4 and applies directly to upstream):
91
+
92
+ ```sh
93
+ git clone https://github.com/anomalyco/opencode "$HOME/src/opencode preview"
94
+ git -C "$HOME/src/opencode preview" checkout 843a6c514e606b436a7fe713422ace0a93ad3d61
95
+ script/ctg/prepare-development-runtime.sh "$HOME/src/opencode preview"
96
+ (cd "$HOME/src/opencode preview" && /path/to/bun-1.4.2 install)
97
+ ```
98
+
99
+ 2. Launch from any directory with explicit paths (spaces are fine):
100
+
101
+ ```sh
102
+ /path/to/carthagent/script/ctg/source-preview.sh \
103
+ --source "$HOME/src/opencode preview" \
104
+ --profile "$HOME/.carthagent/source-preview" \
105
+ --bun /path/to/bun-1.4.2 \
106
+ --workspace "$HOME/projects/my project"
107
+ ```
108
+
109
+ The launcher runs `bun --no-env-file run src/index.ts --standalone <workspace>`
110
+ from `packages/cli` with only a private HOME, TMPDIR, XDG and OpenCode config
111
+ directory inside `--profile`. It disables project config and auto-update and
112
+ passes no inherited API keys. On first use it creates the profile (mode 0700)
113
+ with the Carthagent plugin, Carthage theme and CLI theme config. Existing
114
+ profile files are never rewritten. The private server listens on an ephemeral
115
+ loopback port and exits when the TUI exits.
116
+
117
+ 3. Sign in once inside the same profile. Enter secrets only at the terminal
118
+ prompt, never as arguments:
119
+
120
+ ```sh
121
+ script/ctg/source-preview.sh --source ... --profile ... --bun ... -- auth login
122
+ ```
123
+
124
+ In the TUI, the folder card at the top of Projects shows the current folder and
125
+ model. Use **Browse** (or `/browse`) to pick a folder and **Ctrl+S** to confirm.
126
+ **New session** (also Ctrl+X N or `/new`) opens folder and model setup; the session is created only when
127
+ you send the first message, with your current agent and the chosen model. If that agent or model is
128
+ unavailable when you send, the send is blocked and your text is kept until you choose another. Leave with `/exit` (or Ctrl+P, “Exit the app”); relaunch with
129
+ the same `--profile` and choose the session in Projects to continue it.
130
+
131
+ See [source preview](docs/source-preview.md) for testing, patch verification and
132
+ limits.
133
+
75
134
  ## Install and update
76
135
 
77
136
  The installer selects an exact published release and acquires its pinned native runtime; it never falls back to an unrelated system binary. See the [native upgrade guide](docs/native-upgrade.md) for source-checkout and profile-preservation instructions, or [legacy CLI instructions](docs/legacy-cli.md) for stable 1.0.7.
@@ -106,21 +165,18 @@ Experimental software may still contain bugs; read its release notes first.
106
165
 
107
166
  ## Release status
108
167
 
109
- 1.1.0-preview.12 is the current experimental release. It republishes
110
- preview.11 with an npm package that keeps the `ctg` command, plus a release
111
- check that blocks manifests npm would rewrite. Preview.11 added a Projects /
112
- Voyages mode switch to the native left rail, with read-only Voyages profile and
113
- daily assignment summaries, on top of preview.10's native daily coding quests
114
- (selected evidence, exact-payload preview, fresh per-submission consent, and
115
- durable recovery; assessments do not award rewards). Native remains the default
116
- `ctg` interface. Ship retains approval, checks, review, repair, recovery, and
117
- resume; Lite remains direct execution. Published previews are immutable.
118
- Experimental installation is explicit and selects published releases only;
119
- stable 1.0.7 retains the legacy console.
168
+ 1.1.0-preview.13 is the current experimental release. It promotes the
169
+ combined-v5 runtime patch: a directory-first Projects rail with a folder
170
+ browser, shared folder and model setup for new sessions, and an isolated
171
+ source-preview launcher, on top of preview.12's npm-publishable package.
172
+ Native remains the default `ctg` interface. Ship retains approval, checks,
173
+ review, repair, recovery, and resume; Lite remains direct execution.
174
+ Published previews are immutable. Experimental installation is explicit and
175
+ selects published releases only; stable 1.0.7 retains the legacy console.
120
176
 
121
177
  Each experimental release must pass its exact installed-package gate before
122
- publication. See the [preview.12 release notes](docs/release-notes-preview.12.md),
123
- [preview.11 notes](docs/release-notes-preview.11.md), and [preview.10 notes](docs/release-notes-preview.10.md); earlier migration findings and remaining platform caveats
178
+ publication. See the [preview.13 release notes](docs/release-notes-preview.13.md),
179
+ [preview.12 notes](docs/release-notes-preview.12.md), and [preview.11 notes](docs/release-notes-preview.11.md); earlier migration findings and remaining platform caveats
124
180
  are in the [Native migration ledger](docs/opencode-migration.md#delivery-ledger),
125
181
  [native compatibility matrix](docs/native-compatibility.md), and [terminal
126
182
  evidence status](docs/native-terminal-semantics.md#evidence-status-pr-162).
@@ -275,11 +275,33 @@ The explicit root is a development selector: its local checksum detects byte
275
275
  changes but does not independently establish a published binary's provenance.
276
276
 
277
277
  The update point for a reviewed local patch is
278
- `CTG_DEVELOPMENT_RUNTIME_PATCH_SHA256` in `lib/opencode/runtime.mjs`. Initially
279
- it equals the published patch digest; after generating and reviewing new patch
280
- bytes, update **only this development constant** and the build recipe's
281
- `EXPECTED_PATCH` to their actual SHA-256. The regression test in
282
- `tests/native-ship-plan.test.mjs` requires both to match the checked-in patch.
278
+ `CTG_DEVELOPMENT_RUNTIME_PATCH_SHA256` in `lib/opencode/runtime.mjs`. It pins
279
+ the development patch `docs/patches/opencode-v2.0.32-session-ui-combined-v5.patch`
280
+ (SHA-256 `ec4bb182308ed8b311513aad5c9c7d57dcd0db103f0882f3dc3517d535b4c975`),
281
+ a replacement patch containing the published combined-v4 changes plus the
282
+ folder-browser controller, the Browse folders dialog with its sidebar, compact
283
+ rail and command-palette entry points, the directory-first Projects rail (current
284
+ folder card with Browse, New session and model controls, distinct folder and
285
+ group headings, and an active-session marker), the folder and model setup for
286
+ new sessions (global and folder "New session here" entries; the session is
287
+ created only on the first send, with the chosen folder, agent, model and
288
+ variant), and their tests. It applies directly to a clean
289
+ checkout of upstream `843a6c514e606b436a7fe713422ace0a93ad3d61`; do not apply
290
+ it on top of v4:
291
+
292
+ ```sh
293
+ git clone https://github.com/anomalyco/opencode.git opencode-dev
294
+ git -C opencode-dev checkout 843a6c514e606b436a7fe713422ace0a93ad3d61
295
+ script/ctg/prepare-development-runtime.sh opencode-dev
296
+ ```
297
+
298
+ The preparation recipe checks the source revision, a clean checkout, and the
299
+ patch hash, then applies the patch. It does not install, compile, or publish.
300
+ After generating and reviewing new patch bytes, update **only this development
301
+ constant** and the preparation recipe's `EXPECTED_PATCH`. The regression test
302
+ in `tests/native-ship-plan.test.mjs` requires both to match the checked-in
303
+ development patch, and that the shared release recipe
304
+ `script/ctg/build-owned-runtime.sh` still pins the published v4 patch.
283
305
  Do not change `CTG_RUNTIME_PATCH_SHA256`, the published
284
306
  `lib/opencode/runtime-release.json`, its archive/executable pins, or historical
285
307
  release documentation to make a development build pass. Promotion to a public
@@ -40,9 +40,9 @@ preview.8 or preview.9 acceptance gates have passed.
40
40
 
41
41
  - Upstream: `https://github.com/anomalyco/opencode`
42
42
  - Tag/revision: `v2.0.32` / `843a6c514e606b436a7fe713422ace0a93ad3d61`
43
- - CTG patch: `docs/patches/opencode-v2.0.32-session-ui-combined-v4.patch` (combined-v3 plus the Projects / Voyages navigation rail, shared dialog resize subscription, and hardened rail/watcher timing tests; published in preview.11 and preview.12)
44
- - Patch SHA-256: `1f2309bb3a31dfb8e8a0827a6a1144a1f76a005abff58f6f48857639ec02478a`
45
- - Previous combined-v3 patch SHA-256 (preview.10): `b4238d77827d7ccf8f87fb0326551eaa62268d9387cd89e29bd0cf12bd6dafaa`
43
+ - CTG patch: `docs/patches/opencode-v2.0.32-session-ui-combined-v5.patch` (combined-v4 plus the directory-first Projects rail, folder-browser dialog, shared folder/model session setup, and the isolated source-preview launcher)
44
+ - Patch SHA-256: `ec4bb182308ed8b311513aad5c9c7d57dcd0db103f0882f3dc3517d535b4c975`
45
+ - Previous combined-v4 patch SHA-256 (preview.11 and preview.12): `1f2309bb3a31dfb8e8a0827a6a1144a1f76a005abff58f6f48857639ec02478a`
46
46
  - Lock SHA-256: `9d78379cd264584a495440a217b9d2ecab524c9a56f7f8b4b5bed3926daa330d`
47
47
  - Historical combined preview.8 source verification: 136 retained TUI rendering/loader/theme/selection
48
48
  regressions, 24 core recovery/shell regressions, and core/server/plugin/client/tui