carthagent 1.1.0-beta.3 → 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/beta3-published-acceptance.md +75 -0
- package/docs/cloud-fresh-install-acceptance.md +135 -0
- package/docs/patches/opencode-v2.0.32-session-ui-combined-v6.patch +14046 -0
- package/docs/release-notes-beta.4.md +18 -0
- package/lib/opencode/cli-runtime.mjs +12 -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/native-ship-plan.test.mjs +9 -4
- package/tests/opencode-cli.test.mjs +33 -3
- package/tests/owned-runtime-publish-workflow.test.mjs +12 -6
- package/tests/runtime-development-trust.test.mjs +1 -1
|
@@ -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.
|