carthagent 1.1.0-beta.2 → 1.1.0-beta.4
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.
- package/docs/beta2-published-acceptance.md +79 -0
- package/docs/beta3-published-acceptance.md +75 -0
- package/docs/cloud-fresh-install-acceptance.md +135 -0
- package/docs/cloud-onboarding-acceptance.md +6 -3
- package/docs/patches/opencode-v2.0.32-session-ui-combined-v6.patch +14046 -0
- package/docs/release-notes-beta.3.md +47 -0
- package/docs/release-notes-beta.4.md +18 -0
- package/lib/opencode/cli-runtime.mjs +34 -4
- package/lib/opencode/cli.mjs +6 -3
- package/lib/opencode/runtime-release.json +12 -12
- package/lib/opencode/runtime.mjs +2 -2
- package/package.json +1 -1
- package/plugins/carthagent/src/tui.tsx +2 -2
- package/script/ctg/build-owned-runtime.sh +3 -3
- package/tests/cli.test.mjs +2 -2
- package/tests/native-ship-plan.test.mjs +9 -4
- package/tests/opencode-cli.test.mjs +69 -5
- package/tests/owned-runtime-publish-workflow.test.mjs +12 -6
- package/tests/runtime-development-trust.test.mjs +1 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Beta.2 release acceptance
|
|
2
|
+
|
|
3
|
+
November 2, 2026. Immutable tag `v1.1.0-beta.2` points to
|
|
4
|
+
`e14aeb17c213a927a27e9522da65db5928219647`.
|
|
5
|
+
|
|
6
|
+
## Completed
|
|
7
|
+
|
|
8
|
+
- Native onboarding PR #238 and first-task guidance PR #239 merged. Release PR
|
|
9
|
+
#240 merged with tag ancestry preserved at `fc5382364f41b1563ed137ed0db0c5711e041a83`.
|
|
10
|
+
- Five-platform prebuild [41505735348](https://github.com/B-icy/Carthagent/actions/runs/41505735348)
|
|
11
|
+
passed. Local manifest regeneration verified all archive/executable hashes and
|
|
12
|
+
embedded provenance against the pinned runtime recipe.
|
|
13
|
+
- Release CI [41509102387](https://github.com/B-icy/Carthagent/actions/runs/41509102387)
|
|
14
|
+
passed across Linux, macOS and Windows, including installed-package acceptance.
|
|
15
|
+
- Final draft acceptance [41511681097](https://github.com/B-icy/Carthagent/actions/runs/41511681097)
|
|
16
|
+
passed against the exact tag, assets and main ancestry.
|
|
17
|
+
- GitHub prerelease is public with five runtime archives, the manifest and
|
|
18
|
+
combined checksums. Independent anonymous verification of all five public
|
|
19
|
+
archives passed.
|
|
20
|
+
- Release workflow [41512736590](https://github.com/B-icy/Carthagent/actions/runs/41512736590)
|
|
21
|
+
passed anonymous installed-package acceptance and reports successful npm
|
|
22
|
+
publication with signed provenance (transparency log index 3648230788).
|
|
23
|
+
- Backend onboarding #178 and retention reporting #179 are deployed. Live
|
|
24
|
+
authenticated account identity and read-only plan terms were verified earlier.
|
|
25
|
+
|
|
26
|
+
## npm publication verified
|
|
27
|
+
|
|
28
|
+
After the workflow reported `+ carthagent@1.1.0-beta.2`, public registry requests
|
|
29
|
+
from the acceptance environment still returned 404 for that exact version.
|
|
30
|
+
Both npm CLI and cache-bypassed package metadata initially reported
|
|
31
|
+
`next=1.1.0-beta.1`, `latest=1.0.7`. Registry visibility subsequently converged;
|
|
32
|
+
no repeat publication was attempted.
|
|
33
|
+
|
|
34
|
+
The public beta.2 tarball's SHA-512 matches registry integrity and the provenance
|
|
35
|
+
subject digest. Sigstore verification passed for the GitHub Actions issuer and
|
|
36
|
+
the repository's `release.yml@refs/heads/main` identity. The statement identifies
|
|
37
|
+
release workflow 41512736590, and package `gitHead` matches the immutable tag.
|
|
38
|
+
Verified tags: `next=1.1.0-beta.2`, `latest=1.0.7`.
|
|
39
|
+
Evidence: `/tmp/opencode/beta2-npm-acceptance.json`.
|
|
40
|
+
|
|
41
|
+
## Installed update verified
|
|
42
|
+
|
|
43
|
+
The website command `npm install -g carthagent@next` installed beta.2 into an
|
|
44
|
+
isolated Linux x64 home/prefix. Default runtime acquisition resolved the pinned
|
|
45
|
+
CTG-owned executable with SHA-256
|
|
46
|
+
`8a34735274c0b62049f6ae882dc955016fde54458efc18822fbcedb2e8eddeda`.
|
|
47
|
+
The beta update check reported the installed version as current.
|
|
48
|
+
Evidence: `/tmp/opencode/beta2-clean-install-acceptance.json`.
|
|
49
|
+
|
|
50
|
+
An isolated npm installation of beta.1 detected beta.2 with
|
|
51
|
+
`ctg update --channel beta --check`. Running `ctg update --channel beta` upgraded
|
|
52
|
+
it to beta.2; a profile sentinel remained byte-for-byte intact. This used a
|
|
53
|
+
disposable home and global npm prefix, not the user's normal installation.
|
|
54
|
+
Evidence: `/tmp/opencode/beta2-update-acceptance.json`.
|
|
55
|
+
|
|
56
|
+
## Remaining acceptance
|
|
57
|
+
|
|
58
|
+
Stripe sandbox access subsequently became available. Real purchases, upgrades,
|
|
59
|
+
SCA, renewal, failed renewal and cancellation were exercised separately against
|
|
60
|
+
the isolated backend (see backend `docs/stripe-sandbox-acceptance.md`).
|
|
61
|
+
|
|
62
|
+
An isolated published beta.2 login connected the authorized existing Cloud account.
|
|
63
|
+
A real range-fix task passed four independent tests. Continuing that same session
|
|
64
|
+
hit its persistent elapsed-time budget; beta.2 showed only an unexplained interrupt.
|
|
65
|
+
The follow-up source fix adds actionable budget diagnostics and explicit
|
|
66
|
+
`--reset-budget` support. With that source launcher and the same installed runtime,
|
|
67
|
+
profile and session, continuation added an ascending-across-zero regression and
|
|
68
|
+
passed all five independent tests. This launcher fix is not part of immutable beta.2.
|
|
69
|
+
Execution budgets are not billing credit and never reset on payment or ordinary
|
|
70
|
+
continuation. Evidence: `/tmp/opencode/stripe-acceptance/live-continuation-fixed.log`.
|
|
71
|
+
|
|
72
|
+
Full task continuation across a genuine payment boundary remains incomplete:
|
|
73
|
+
the real model task used existing Cloud credit and sandbox payments used a separate
|
|
74
|
+
backend without a model upstream. Screenshot approval is not claimed. Local terminal timing failures
|
|
75
|
+
were followed by passing full local, CI and draft acceptance; this does not prove
|
|
76
|
+
that every terminal timing issue is resolved.
|
|
77
|
+
|
|
78
|
+
The normal installed profile and Invest-With-Friends files were not changed by
|
|
79
|
+
these release checks. Stable npm `latest` remains 1.0.7.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Beta.3 release acceptance
|
|
2
|
+
|
|
3
|
+
November 2, 2026. Immutable tag `v1.1.0-beta.3` resolves to
|
|
4
|
+
`ee2fa3f039c296aa4ca613c474eb460e27a23ff2`. Release PR #243 merged at
|
|
5
|
+
`0964ce7331eb749183131d6031823137d068afa9`, preserving tag ancestry.
|
|
6
|
+
|
|
7
|
+
## Verified release gates
|
|
8
|
+
|
|
9
|
+
- Five-platform prebuild [41537249365](https://github.com/B-icy/Carthagent/actions/runs/41537249365)
|
|
10
|
+
passed from reviewed main `c11103f8b57c6b3254473a78d535a404bea9a84a`.
|
|
11
|
+
Local regeneration verified archive/executable hashes and embedded provenance;
|
|
12
|
+
the candidate, packaged and uploaded manifests match exactly.
|
|
13
|
+
- Local quality passed lint/build and 1,132 tests, five skipped. An initial run
|
|
14
|
+
before candidate installation correctly rejected the temporary package/manifest
|
|
15
|
+
version mismatch.
|
|
16
|
+
- PR CI [41539253388](https://github.com/B-icy/Carthagent/actions/runs/41539253388)
|
|
17
|
+
passed on attempt 2 across Linux, macOS and Windows, browser and package gates.
|
|
18
|
+
Initial failed jobs ran before draft asset uploads completed.
|
|
19
|
+
- Local installed-package acceptance passed all 28 probes/scenarios with the
|
|
20
|
+
default isolated acquisition path. Earlier local acquisition attempts used an
|
|
21
|
+
unsupported `gh auth token` command; the acceptance shell was corrected to use
|
|
22
|
+
this older CLI's supported credential lookup. No product workaround was used.
|
|
23
|
+
- Final draft acceptance [41541394653](https://github.com/B-icy/Carthagent/actions/runs/41541394653)
|
|
24
|
+
passed against the immutable tag, assets and main ancestry.
|
|
25
|
+
- The GitHub prerelease is public. Anonymous downloads of all five archives
|
|
26
|
+
matched the packaged checksums.
|
|
27
|
+
- Release workflow [41542206810](https://github.com/B-icy/Carthagent/actions/runs/41542206810)
|
|
28
|
+
passed anonymous installed-package acceptance and reported npm publication
|
|
29
|
+
with signed provenance (transparency log index 3652108243).
|
|
30
|
+
|
|
31
|
+
## Public npm availability
|
|
32
|
+
|
|
33
|
+
The first public exact-version requests returned 404 after the workflow reported
|
|
34
|
+
successful publication. Registry visibility subsequently converged without repeat
|
|
35
|
+
publication. Verified tags are `next=1.1.0-beta.3`, `latest=1.0.7`.
|
|
36
|
+
|
|
37
|
+
The public tarball's SHA-512 matches npm integrity and the provenance subject.
|
|
38
|
+
Sigstore verification passed for the GitHub Actions issuer and repository
|
|
39
|
+
`release.yml@refs/heads/main` identity. The statement identifies workflow
|
|
40
|
+
41542206810; package `gitHead` equals the immutable tag. Private receipt:
|
|
41
|
+
`/tmp/opencode/beta3-npm-acceptance.json`.
|
|
42
|
+
|
|
43
|
+
## Public install and update
|
|
44
|
+
|
|
45
|
+
`npm install -g carthagent@next` installed beta.3 into a disposable Linux x64
|
|
46
|
+
profile. A separate beta.2 installation detected and upgraded to beta.3 using
|
|
47
|
+
`ctg update --channel beta`. Both acquired the CTG-owned runtime with executable
|
|
48
|
+
SHA-256 `f9ad13d8aad76bf1d16334712f0060b886757f5cdabddacce42f9805d4482c1c`,
|
|
49
|
+
preserved profile sentinels, displayed `--reset-budget` and billing-refresh help,
|
|
50
|
+
and reported beta.3 as current. Private receipt:
|
|
51
|
+
`/tmp/opencode/beta3-public-acceptance/evidence.json`.
|
|
52
|
+
|
|
53
|
+
The continuation-budget regression passed when run from the publicly installed
|
|
54
|
+
package: exhausted continuation reports the reason, ordinary continuation does
|
|
55
|
+
not reset/retry, and explicit reset targets the same session before prompting.
|
|
56
|
+
This is an offline regression, not another real-model/payment journey.
|
|
57
|
+
|
|
58
|
+
The first public-install script used an overly literal help assertion expecting
|
|
59
|
+
`billing refresh`; actual help correctly lists `billing [checkout|portal|refresh]`.
|
|
60
|
+
The assertion was corrected and both complete install/update scenarios passed.
|
|
61
|
+
|
|
62
|
+
## Journey evidence and boundary
|
|
63
|
+
|
|
64
|
+
Backend PRs #180–181 are deployed. Fresh sandbox evidence covers automatic
|
|
65
|
+
partial-refund revocation, initial and upgrade 3DS2, declined-upgrade recovery on
|
|
66
|
+
the same invoice and preserved renewal anchors. Scheduled cancellation retains
|
|
67
|
+
paid access and displays the end date accurately. Backend PR #182 records these
|
|
68
|
+
results in `docs/stripe-sandbox-acceptance.md`.
|
|
69
|
+
|
|
70
|
+
The real production Cloud task and exact-session continuation with the source
|
|
71
|
+
launcher passed five independent project tests. A single task crossing a real
|
|
72
|
+
payment boundary remains unverified: model execution used production credit,
|
|
73
|
+
while payments used the isolated sandbox without a model upstream.
|
|
74
|
+
|
|
75
|
+
Normal installed profile and Invest-With-Friends work were preserved.
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Cloud fresh-install acceptance (in progress)
|
|
2
|
+
|
|
3
|
+
## Public installed baseline
|
|
4
|
+
|
|
5
|
+
On November 3, 2026, the normal global `carthagent@1.1.0-beta.2` installation
|
|
6
|
+
was uninstalled. Absence of `ctg` on PATH was verified, then
|
|
7
|
+
`npm install -g carthagent@next` installed public `1.1.0-beta.3`.
|
|
8
|
+
|
|
9
|
+
The normal profile was moved out before installation. A real tmux terminal
|
|
10
|
+
running bare `ctg` showed no selected provider and only a generic connection
|
|
11
|
+
action. `/login` put Cloud under Services, after OpenAI, Anthropic and Gemini.
|
|
12
|
+
|
|
13
|
+
## Restart and backup incident
|
|
14
|
+
|
|
15
|
+
The original profile was moved to a private directory under `/tmp/opencode`,
|
|
16
|
+
which was erased during the harness/server restart. This was an inadequate
|
|
17
|
+
backup location. The original normal profile has not been recovered. The
|
|
18
|
+
Invest-With-Friends workspace and its `.harness` directory still exist; they
|
|
19
|
+
were not moved or edited by the reinstall. Separate older native test profiles
|
|
20
|
+
survive but are not replacements for the lost normal profile.
|
|
21
|
+
|
|
22
|
+
Subsequent acceptance state is stored in a private durable directory under
|
|
23
|
+
`~/.local/share/carthagent-acceptance/`. The public beta installation and source
|
|
24
|
+
changes survived. The old isolated payment sandbox, local receipts and disposable
|
|
25
|
+
task under `/tmp/opencode` did not. Previously committed acceptance documents
|
|
26
|
+
remain the record of those earlier runs.
|
|
27
|
+
|
|
28
|
+
## Candidate changes
|
|
29
|
+
|
|
30
|
+
- Home names Carthagent Cloud and offers direct sign-in when no model is selected.
|
|
31
|
+
- The connection picker lists Cloud first, under Recommended.
|
|
32
|
+
- `/login` targets Cloud; `/connect` retains the provider picker.
|
|
33
|
+
- Terminal `ctg login` accepts Enter for its displayed recommended default.
|
|
34
|
+
|
|
35
|
+
## Candidate validation
|
|
36
|
+
|
|
37
|
+
The Linux candidate was compiled from pinned upstream source
|
|
38
|
+
`843a6c514e606b436a7fe713422ace0a93ad3d61` and combined-v6 patch
|
|
39
|
+
`31e15c7f92f82177bf1b6106732926951c4d751bde36b61f3e1e283818ea5631`.
|
|
40
|
+
Its executable SHA-256 is
|
|
41
|
+
`c35f0d340b9f38e30daf5ad78c945e46e90b1d2470241033cdd4e7b8271aa346`.
|
|
42
|
+
The patch applies cleanly to the pinned upstream tree.
|
|
43
|
+
|
|
44
|
+
Real tmux launches at 110 and 60 columns visibly show the Cloud action.
|
|
45
|
+
`/login` goes directly to Cloud device authorization. `/connect` lists Cloud
|
|
46
|
+
first under Recommended. Terminal `ctg login` lists Cloud first and pressing
|
|
47
|
+
Enter starts its authorization. Email authorization completed and the model
|
|
48
|
+
became available without manual provider configuration.
|
|
49
|
+
|
|
50
|
+
The runtime TUI typecheck, 11 integration-dialog tests, two narrow/wide
|
|
51
|
+
onboarding render tests, native plugin typecheck and launcher tests pass.
|
|
52
|
+
The full quality gate passes with 1,133 tests passing and five skipped, including
|
|
53
|
+
the additional headless-continuation fixes. The focused CLI/provider suite passes
|
|
54
|
+
59/59, including foreign-workspace rejection before a headless model switch.
|
|
55
|
+
|
|
56
|
+
## Combined real-model / Stripe-test journey
|
|
57
|
+
|
|
58
|
+
The durable isolated backend uses the real Cloud control plane, gateway and
|
|
59
|
+
ledger, a real OpenRouter model upstream, and Stripe test-mode Checkout and
|
|
60
|
+
signed webhooks. This is not production-upstream acceptance. Neither prices
|
|
61
|
+
nor usage consumption were mocked to cross the payment boundary.
|
|
62
|
+
|
|
63
|
+
Session `ses_e60d2dab0ffe6wz3L7236pcXer` started a Node.js streaming CSV expense
|
|
64
|
+
report CLI task. Eleven real Sonnet requests consumed $0.664548 of its $1
|
|
65
|
+
starter grant. A subsequent request received `provider.quota` / HTTP 429:
|
|
66
|
+
the remaining $0.335452 could not cover its required reservation. Nine files,
|
|
67
|
+
including source, tests and delivery evidence, were preserved and hashed.
|
|
68
|
+
|
|
69
|
+
Builder Checkout displayed $1 due today, then $10/month. One test-card payment
|
|
70
|
+
completed and signed `checkout.session.completed` and `invoice.paid` events
|
|
71
|
+
activated Builder. The task remained idle, all nine hashes stayed identical,
|
|
72
|
+
and request count remained 11 until explicit continuation after `billing refresh`.
|
|
73
|
+
The same session then made new real model calls using paid allowance.
|
|
74
|
+
|
|
75
|
+
Sonnet hit Builder's $0.50 daily reservation limit, so the same test subscription
|
|
76
|
+
was upgraded to Max through the ordinary confirmation page. The $49 prorated
|
|
77
|
+
test charge activated Max, retained the December 3 renewal date and preserved
|
|
78
|
+
consumption. Sonnet later hit Max's reservation ceiling too; a lower-cost real
|
|
79
|
+
DeepSeek V3.2 model was added to the sandbox to finish the existing task without
|
|
80
|
+
altering allowances or resetting consumed usage.
|
|
81
|
+
|
|
82
|
+
This uncovered two launcher defects addressed in this branch:
|
|
83
|
+
|
|
84
|
+
- Explicit headless `--session ... --model ...` must switch the existing
|
|
85
|
+
session model before submitting the continuation, just as the TUI path does.
|
|
86
|
+
- A fixed two-minute transport observation timeout interrupted useful tasks
|
|
87
|
+
despite a larger session execution budget. The launcher now allows at least
|
|
88
|
+
30 minutes of observation, extending it for a larger explicit time budget.
|
|
89
|
+
Persistent host execution budgets still apply; `--reset-budget` is explicit.
|
|
90
|
+
|
|
91
|
+
## Task result and remaining acceptance
|
|
92
|
+
|
|
93
|
+
PR #245 merged as `521675b77f156461ed829ef328d892f78797604c` after all Linux,
|
|
94
|
+
macOS and Windows Node 22/24 checks, native-package, native-navigation and
|
|
95
|
+
browser checks passed. The release candidate prebuild selects combined-v6;
|
|
96
|
+
the public package remains beta.3 until publication.
|
|
97
|
+
|
|
98
|
+
Beta.4 prebuild run `41569547389` succeeded from reviewed source
|
|
99
|
+
`67035d0758321901ef56a71c3a8e7561274dfd38`. All five downloaded archives and
|
|
100
|
+
embedded executable hashes passed independent local acquisition verification.
|
|
101
|
+
The final package manifest uses those exact candidate hashes and combined-v6.
|
|
102
|
+
The Linux release executable SHA-256 is
|
|
103
|
+
`9f998cb2d23e2c18258a5bcb9a9588228e6fef9f089b13bb2f74b80d8ee8d7f6`;
|
|
104
|
+
it differs from the earlier locally compiled candidate recorded above.
|
|
105
|
+
|
|
106
|
+
The same task implemented parser, validator, aggregator, exporter and CLI
|
|
107
|
+
source, with 78 self-authored tests passing during continuation. Independent
|
|
108
|
+
probes found defects: invalid sign-only money accepted, unsafe integer cents,
|
|
109
|
+
incorrect record line numbers, split UTF-8/BOM corruption, malformed quote
|
|
110
|
+
acceptance, cross-currency summary totals, nondeterministic timestamps, and
|
|
111
|
+
missing CSV field quoting. CLI tests, fixtures and README were unfinished.
|
|
112
|
+
**The expense task is not accepted as complete.** These findings were submitted
|
|
113
|
+
to the same session for repair, rather than silently fixed outside the task.
|
|
114
|
+
|
|
115
|
+
Further continuation encountered tunnel 502s and the local Node 26 upstream
|
|
116
|
+
HTTP/2 pool's `ERR_HTTP2_INVALID_SESSION`. The sandbox switched to HTTP/1.1
|
|
117
|
+
and direct localhost access to the same Cloud backend. Unknown-outcome requests
|
|
118
|
+
retained their reservations. At the recorded checkpoint, paid consumption was
|
|
119
|
+
$3.120214780 and outstanding reservations $0.819894980 against the $4 daily
|
|
120
|
+
limit; five requests required reconciliation. No reservations or consumed usage
|
|
121
|
+
were erased. Reducing the model's request envelope was also tried and reverted:
|
|
122
|
+
the gateway cap counts request bytes, and the smaller envelope rejected this
|
|
123
|
+
existing conversation. Full task completion remains blocked.
|
|
124
|
+
|
|
125
|
+
Durable private receipts include `task-interim-result.json`, file hashes,
|
|
126
|
+
signed payment event IDs and `independent-audit.md`. The evidence establishes
|
|
127
|
+
fresh sign-in, genuine quota rejection, Stripe-test activation, no automatic
|
|
128
|
+
restart, and explicit real-model paid continuation on the exact same session.
|
|
129
|
+
It does not establish independently verified task success or production
|
|
130
|
+
inference acceptance.
|
|
131
|
+
|
|
132
|
+
The normal installation remains public beta.3, reauthenticated to the production
|
|
133
|
+
test account. Its prior local session history and settings have not been recovered.
|
|
134
|
+
An additional backup search found production Voyages backups, which are unrelated
|
|
135
|
+
to the lost local profile.
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
# Cloud onboarding —
|
|
1
|
+
# Cloud onboarding — beta.2 implementation
|
|
2
2
|
|
|
3
|
-
November 2, 2026.
|
|
4
|
-
1.
|
|
3
|
+
November 2, 2026. Beta.2 is published on GitHub and npm `next`; `latest` remains
|
|
4
|
+
1.0.7. See [published acceptance](beta2-published-acceptance.md) for final CI,
|
|
5
|
+
draft/public runtime gates, signed npm provenance, Linux clean installation and
|
|
6
|
+
isolated beta.1 → beta.2 update evidence. Historical preparation notes below do
|
|
7
|
+
not supersede that release record.
|
|
5
8
|
|
|
6
9
|
Native PR #238 merged at `a5ad2164d056fee7f7183579ce6cc97305bae53b` after CI
|
|
7
10
|
41504674623 passed. First-task guidance is tracked in PR #239. Beta.2 runtime
|