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.
- package/README.md +140 -83
- package/bin/ctg.mjs +14 -732
- package/docs/beta-rewards-e2e-plan.md +48 -0
- package/docs/beta-rewards-e2e-results.md +84 -0
- package/docs/cloud-onboarding-acceptance.md +65 -0
- package/docs/glyph-review/host-chrome-glyph-compatibility-v4.md +83 -0
- package/docs/glyph-review/test-isolation-v1.md +26 -0
- package/docs/glyph-review/typecheck-base.log +1 -0
- package/docs/glyph-review/typecheck-v4.log +1 -0
- package/docs/glyph-review/unicode-inventory-v4.csv +402 -0
- package/docs/help-dispatch-review.md +69 -0
- package/docs/launch-readiness-live-results.md +65 -0
- package/docs/legacy-cli.md +150 -0
- package/docs/live-theme-plugin-api.md +18 -0
- package/docs/native-cli.md +102 -0
- package/docs/native-compatibility.md +16 -0
- package/docs/native-daily-quests.md +132 -0
- package/docs/native-glyph-pty.md +59 -0
- package/docs/native-manual-testing.md +336 -0
- package/docs/native-slash-acceptance-handoff.md +49 -0
- package/docs/native-terminal-paired-failure-2026-10-17.md +40 -0
- package/docs/native-terminal-performance.md +310 -0
- package/docs/native-terminal-semantics-evidence/README.md +25 -0
- package/docs/native-terminal-semantics-evidence/controlled-host-model-selftest.json +16 -0
- package/docs/native-terminal-semantics-evidence/current-acceptance-status.json +59 -0
- package/docs/native-terminal-semantics-evidence/final-binary-focused-85bb44a.json +154 -0
- package/docs/native-terminal-semantics-evidence/final-binary-full-incomplete-85bb44a.json +160 -0
- package/docs/native-terminal-semantics-evidence/final-binary-layout-85bb44a.json +149 -0
- package/docs/native-terminal-semantics-evidence/final-binary-layout-interactive-85bb44a.json +159 -0
- package/docs/native-terminal-semantics-evidence/final-binary-model-picker-escape-unchanged-85bb44a.json +44 -0
- package/docs/native-terminal-semantics-evidence/final-binary-model-picker-exact-identity-85bb44a.json +47 -0
- package/docs/native-terminal-semantics-evidence/final-binary-model-picker-unchanged-model-incomplete-85bb44a.json +58 -0
- package/docs/native-terminal-semantics-evidence/final-binary-model-selftest.json +16 -0
- package/docs/native-terminal-semantics-evidence/final-binary-picker-cancel-incomplete-85bb44a.json +62 -0
- package/docs/native-terminal-semantics-evidence/focused-clipboard-title-stale-binary.json +161 -0
- package/docs/native-terminal-semantics-evidence/layout-stale-binary-observation-not-accepted.json +153 -0
- package/docs/native-terminal-semantics-evidence/picker-latest-incomplete-attempt.json +62 -0
- package/docs/native-terminal-semantics-evidence/picker-previous-probe-pass.json +61 -0
- package/docs/native-terminal-semantics.md +89 -0
- package/docs/native-upgrade.md +175 -0
- package/docs/opencode-composed-source-review.md +89 -0
- package/docs/opencode-migration.md +225 -9
- package/docs/opencode-owned-runtime.md +241 -0
- package/docs/opencode-runtime.md +12 -0
- package/docs/opencode-theme-provider-proof/README.md +55 -0
- package/docs/opencode-theme-provider-proof/live-theme-api-base.patch +122 -0
- package/docs/opencode-theme-provider-proof/plugin-theme-provider.patch +107 -0
- package/docs/opencode-theme-provider-proof/session-ui-base.patch +1217 -0
- package/docs/owned-host-controls-proof.md +39 -0
- package/docs/owned-runtime-release-manifest.md +42 -0
- package/docs/owned-visual-clear-proof.md +40 -0
- package/docs/patches/opencode-v2.0.32-glyph-spinner-test-isolation-v1.patch +50 -0
- package/docs/patches/opencode-v2.0.32-glyphs.patch +3670 -0
- package/docs/patches/opencode-v2.0.32-help-dispatch.patch +156 -0
- package/docs/patches/opencode-v2.0.32-live-theme-api.patch +122 -0
- package/docs/patches/opencode-v2.0.32-session-ui-combined-v1.patch +5272 -0
- package/docs/patches/opencode-v2.0.32-session-ui-combined-v2.patch +6052 -0
- package/docs/patches/opencode-v2.0.32-session-ui-combined-v3.patch +8657 -0
- package/docs/patches/opencode-v2.0.32-session-ui-combined-v4.patch +9928 -0
- package/docs/patches/opencode-v2.0.32-session-ui-combined-v5.patch +13965 -0
- package/docs/patches/opencode-v2.0.32-session-ui.patch +5137 -0
- package/docs/release-notes-beta.1.md +60 -0
- package/docs/release-notes-beta.2.md +60 -0
- package/docs/release-notes-native-draft.md +73 -0
- package/docs/release-notes-preview.10.md +121 -0
- package/docs/release-notes-preview.11.md +76 -0
- package/docs/release-notes-preview.12.md +55 -0
- package/docs/release-notes-preview.13.md +68 -0
- package/docs/release-notes-preview.9.md +130 -0
- package/docs/source-preview.md +120 -0
- package/evaluate.mjs +28 -1
- package/lib/budget.mjs +1 -1
- package/lib/cloud/client.mjs +13 -7
- package/lib/codegraph.mjs +1 -1
- package/lib/delivery-review.mjs +19 -6
- package/lib/delivery.mjs +3 -2
- package/lib/environment.mjs +8 -0
- package/lib/guidance.mjs +1 -1
- package/lib/opencode/cli-runtime.mjs +1188 -0
- package/lib/opencode/cli.mjs +253 -0
- package/lib/opencode/credentials.mjs +63 -8
- package/lib/opencode/demo.mjs +53 -0
- package/lib/opencode/evaluation-budget-plugin/index.ts +3 -0
- package/lib/opencode/evaluation.mjs +32 -12
- package/lib/opencode/headless.mjs +22 -5
- package/lib/opencode/provider-policy.mjs +23 -0
- package/lib/opencode/review.mjs +37 -16
- package/lib/opencode/runtime-artifact.mjs +335 -0
- package/lib/opencode/runtime-github-transport.mjs +121 -0
- package/lib/opencode/runtime-release.json +36 -0
- package/lib/opencode/runtime.mjs +299 -20
- package/lib/opencode/service.mjs +77 -35
- package/lib/opencode/session-options.mjs +6 -2
- package/lib/opencode/update.mjs +222 -0
- package/lib/opencode/workspace.mjs +1 -1
- package/lib/planning-advice.mjs +2 -2
- package/lib/providers/experiential.mjs +2 -2
- package/lib/providers/names.mjs +1 -1
- package/lib/tui/framing.mjs +1 -80
- package/lib/tui/models.mjs +1 -1
- package/lib/update.mjs +10 -1
- package/package.json +33 -7
- package/plugins/carthagent/README.md +23 -0
- package/plugins/carthagent/src/bootstrap.ts +1 -1
- package/plugins/carthagent/src/daily-evidence.mjs +57 -0
- package/plugins/carthagent/src/daily-quests-rpc.ts +50 -0
- package/plugins/carthagent/src/daily-source-rpc.ts +52 -0
- package/plugins/carthagent/src/index.ts +71 -24
- package/plugins/carthagent/src/rpc.ts +51 -6
- package/plugins/carthagent/src/server/codegraph.ts +12 -5
- package/plugins/carthagent/src/server/daily-quests-rpc.ts +277 -0
- package/plugins/carthagent/src/server/daily-source-rpc.ts +243 -0
- package/plugins/carthagent/src/server/delivery.ts +227 -112
- package/plugins/carthagent/src/server/framing.mjs +80 -0
- package/plugins/carthagent/src/server/policy.ts +1 -1
- package/plugins/carthagent/src/server/providers.ts +65 -36
- package/plugins/carthagent/src/server/session-controls.ts +3 -1
- package/plugins/carthagent/src/server/ship-agents.ts +77 -0
- package/plugins/carthagent/src/server/ship-context.mjs +60 -0
- package/plugins/carthagent/src/server/ship-guidance.ts +41 -0
- package/plugins/carthagent/src/server/ship-rpc.ts +71 -0
- package/plugins/carthagent/src/server/voyages-rpc.ts +280 -0
- package/plugins/carthagent/src/testing.ts +5 -0
- package/plugins/carthagent/src/tui.tsx +506 -0
- package/plugins/carthagent/src/ui/client.ts +127 -0
- package/plugins/carthagent/src/ui/commands.ts +70 -0
- package/plugins/carthagent/src/ui/daily-editor-focus.mjs +52 -0
- package/plugins/carthagent/src/ui/daily-editor.mjs +4 -0
- package/plugins/carthagent/src/ui/daily-quests-events.mjs +18 -0
- package/plugins/carthagent/src/ui/daily-quests-state.mjs +218 -0
- package/plugins/carthagent/src/ui/daily-quests.tsx +235 -0
- package/plugins/carthagent/src/ui/host-state.ts +42 -0
- package/plugins/carthagent/src/ui/model-command.ts +32 -0
- package/plugins/carthagent/src/ui/native-navigation.ts +23 -0
- package/plugins/carthagent/src/ui/native-review.d.mts +33 -0
- package/plugins/carthagent/src/ui/native-review.mjs +159 -0
- package/plugins/carthagent/src/ui/resume-session.mjs +34 -0
- package/plugins/carthagent/src/ui/select-mouse.ts +17 -0
- package/plugins/carthagent/src/ui/session-preferences.d.mts +7 -0
- package/plugins/carthagent/src/ui/session-preferences.mjs +14 -0
- package/plugins/carthagent/src/ui/theme-provision.d.mts +3 -0
- package/plugins/carthagent/src/ui/theme-provision.mjs +134 -0
- package/plugins/carthagent/src/ui/voyages-navigation-state.mjs +56 -0
- package/plugins/carthagent/src/ui/voyages-navigation.tsx +131 -0
- package/plugins/carthagent/src/ui/voyages-state.mjs +165 -0
- package/plugins/carthagent/src/ui/voyages.tsx +131 -0
- package/plugins/carthagent/src/ui/workspace-live.ts +61 -0
- package/plugins/carthagent/src/ui/workspace.tsx +379 -0
- package/plugins/carthagent/src/voyages-rpc.ts +64 -0
- package/plugins/carthagent/src/workspace-rpc.ts +36 -0
- package/plugins/carthagent/tests/commands.test.ts +107 -0
- package/plugins/carthagent/tests/session-preferences.test.mjs +41 -0
- package/plugins/carthagent/tests/voyages-navigation.test.tsx +269 -0
- package/plugins/carthagent/themes/carthage.json +67 -0
- package/plugins/carthagent/tui.ts +26 -1
- package/script/ctg/build-owned-runtime.sh +166 -0
- package/tests/budget-engine.test.mjs +4 -3
- package/tests/cli.test.mjs +52 -96
- package/tests/cloud-client.test.mjs +2 -2
- package/tests/daily-evidence.test.mjs +62 -0
- package/tests/delivery-review.test.mjs +57 -2
- package/tests/delivery.test.mjs +22 -1
- package/tests/experiential-extension.test.mjs +2 -2
- package/tests/experiential.test.mjs +1 -1
- package/tests/fixtures/native-discovery-plugin/server.ts +15 -0
- package/tests/generate-owned-runtime-release.test.mjs +354 -0
- package/tests/installed-runtime-contract.test.mjs +43 -0
- package/tests/native-cli-host-smoke.mjs +457 -0
- package/tests/native-daily-editor-focus.test.mjs +213 -0
- package/tests/native-daily-editor.test.mjs +43 -0
- package/tests/native-daily-quests-layout.test.mjs +55 -0
- package/tests/native-daily-quests-rpc.test.mjs +456 -0
- package/tests/native-daily-quests-ui.test.mjs +778 -0
- package/tests/native-daily-source.test.mjs +525 -0
- package/tests/native-demo-ui.test.mjs +48 -0
- package/tests/native-evaluation-admission.test.mjs +24 -0
- package/tests/native-fixture-browser-cleanup.test.mjs +65 -0
- package/tests/native-fixture-runtime.test.mjs +111 -0
- package/tests/native-fixture-stop-diagnostics.test.mjs +67 -0
- package/tests/native-glyph-pty.test.mjs +107 -0
- package/tests/native-manual-projects.test.mjs +170 -0
- package/tests/native-model-command.test.mjs +67 -0
- package/tests/native-owned-runtime-env.test.mjs +140 -0
- package/tests/native-paired-guards.test.mjs +464 -0
- package/tests/native-provider-policy.test.mjs +33 -0
- package/tests/native-pty-invocation.test.mjs +114 -0
- package/tests/native-pty-runtime.test.mjs +45 -0
- package/tests/native-resume-session.test.mjs +46 -0
- package/tests/native-review-consumer.test.mjs +286 -0
- package/tests/native-runtime-identity.test.mjs +214 -0
- package/tests/native-select-mouse.test.mjs +23 -0
- package/tests/native-ship-guidance.test.mjs +16 -0
- package/tests/native-ship-parity.test.mjs +526 -0
- package/tests/native-ship-plan.test.mjs +85 -0
- package/tests/native-ship-rpc.test.mjs +83 -0
- package/tests/native-ui-commands.test.mjs +6 -0
- package/tests/native-voyages-layout.test.mjs +28 -0
- package/tests/native-voyages-navigation.test.mjs +169 -0
- package/tests/native-voyages-rpc.test.mjs +397 -0
- package/tests/native-voyages-ui.test.mjs +307 -0
- package/tests/opencode-atomic-write.test.mjs +55 -0
- package/tests/opencode-cli.test.mjs +1312 -0
- package/tests/opencode-codegraph-plugin.test.mjs +47 -0
- package/tests/opencode-delivery.test.mjs +16 -0
- package/tests/opencode-providers.test.mjs +248 -20
- package/tests/opencode-runtime.test.mjs +597 -8
- package/tests/opencode-session-controls.test.mjs +15 -0
- package/tests/opencode-ship-rpc.test.mjs +71 -0
- package/tests/opencode-update.test.mjs +475 -0
- package/tests/opencode-workspace.test.mjs +51 -2
- package/tests/owned-runtime-publish-workflow.test.mjs +477 -0
- package/tests/release-workflow.test.mjs +46 -0
- package/tests/runtime-artifact.test.mjs +269 -0
- package/tests/runtime-development-trust.test.mjs +231 -0
- package/tests/runtime-github-transport.test.mjs +132 -0
- package/tests/runtime-token-env.test.mjs +23 -0
- package/tests/server.test.mjs +3 -1
- package/tests/ship-telemetry.test.mjs +1 -1
- package/tests/source-preview.test.mjs +253 -0
- package/tests/test_native_terminal_probe.py +76 -0
- package/tests/test_native_terminal_semantics.py +232 -0
- package/tests/tui.test.mjs +2 -2
- package/tests/update.test.mjs +42 -5
- package/tests/verify-draft-runtime-gate.test.mjs +280 -0
- package/tests/verify-owned-runtime-release.test.mjs +371 -0
- package/tests/workspace-live.test.mjs +127 -0
- package/tools/benchmark/diagnose-request.mjs +59 -36
- package/tools/benchmark/eval-common.mjs +3 -3
- package/tools/benchmark/evaluators.test.mjs +4 -4
- package/tools/benchmark/guard.test.mjs +35 -2
- package/tools/benchmark/guard.ts +20 -7
- package/tools/benchmark/planning-startup.test.mjs +30 -34
- package/tools/benchmark/runner.mjs +12 -7
- package/tools/benchmark/runner.test.mjs +23 -7
- package/tools/benchmark/upstream-error.test.mjs +16 -2
- package/tools/generate-owned-runtime-release.mjs +217 -0
- package/tools/installed-runtime-contract.mjs +16 -0
- package/tools/manual-runtime-manifest.mjs +39 -0
- package/tools/native-fixture-browser-cleanup.mjs +59 -0
- package/tools/native-fixture-stop-diagnostics.mjs +45 -0
- package/tools/native-fixture.mjs +199 -40
- package/tools/native-glyph-helpers.py +127 -0
- package/tools/native-glyph-pty.py +144 -0
- package/tools/native-manual-projects.mjs +259 -0
- package/tools/native-manual.mjs +338 -0
- package/tools/native-model-picker-acceptance.py +306 -0
- package/tools/native-owned-runtime-env.sh +47 -0
- package/tools/native-paired-guards.mjs +282 -0
- package/tools/native-paired-manifest.mjs +72 -0
- package/tools/native-paired-orchestration.sh +51 -0
- package/tools/native-plugin-readiness.mjs +33 -0
- package/tools/native-plugin-readiness.test.mjs +53 -0
- package/tools/native-pty-invocation.mjs +26 -0
- package/tools/native-pty-runtime.mjs +83 -0
- package/tools/native-pty-smoke.py +147 -24
- package/tools/native-public-repo-shell-result.mjs +13 -0
- package/tools/native-public-repo-shell-result.test.mjs +28 -0
- package/tools/native-runtime-identity.mjs +201 -0
- package/tools/native-slash-acceptance-env.py +38 -0
- package/tools/native-terminal-semantics.py +882 -0
- package/tools/owned-shell-observer/index.ts +16 -0
- package/tools/owned-shell-observer/package.json +1 -0
- package/tools/owned-visual-clear-env.py +48 -0
- package/tools/owned-visual-clear-model.py +21 -0
- package/tools/pinned-owned-runtime-inputs.mjs +46 -0
- package/tools/prepare-native-manual.mjs +122 -0
- package/tools/run-native-terminal-paired.sh +403 -0
- package/tools/runtime-token-env.mjs +8 -0
- package/tools/seed-native-switch-fixture.mjs +79 -0
- package/tools/test-native-controls.mjs +3 -1
- package/tools/test-native-daily-quests.mjs +65 -0
- package/tools/test-native-default-cli.mjs +106 -0
- package/tools/test-native-delivery-host.mjs +102 -20
- package/tools/test-native-evaluation.mjs +7 -3
- package/tools/test-native-glyph-pty.mjs +94 -0
- package/tools/test-native-host.mjs +91 -65
- package/tools/test-native-outcomes.mjs +3 -1
- package/tools/test-native-package.mjs +206 -38
- package/tools/test-native-performance.mjs +26 -0
- package/tools/test-native-product.mjs +90 -0
- package/tools/test-native-pty.mjs +34 -9
- package/tools/test-native-public-repo.mjs +224 -0
- package/tools/test-native-refresh-reentry.mjs +106 -0
- package/tools/test-native-report.mjs +27 -20
- package/tools/test-native-review.mjs +75 -0
- package/tools/test-native-runtime.mjs +120 -0
- package/tools/test-native-ship-models.mjs +176 -0
- package/tools/test-native-ship-walkthrough.mjs +96 -0
- package/tools/test-native-slash-commands.mjs +125 -0
- package/tools/test-native-slash-commands.py +242 -0
- package/tools/test-native-swe-host.mjs +224 -55
- package/tools/test-native-tasks.mjs +77 -0
- package/tools/test-native-terminal-performance.py +887 -0
- package/tools/test-native-terminal-readiness.sh +85 -0
- package/tools/test-native-terminal-semantics-installed.mjs +38 -0
- package/tools/test-native-visual-clear-installed.mjs +48 -0
- package/tools/test-owned-host-controls.mjs +238 -0
- package/tools/test-owned-opencode-runtime.mjs +35 -0
- package/tools/test-owned-visual-clear-env.py +120 -0
- package/tools/test-owned-visual-clear.py +373 -0
- package/tools/verify-draft-runtime-gate.mjs +138 -0
- package/tools/verify-owned-runtime-release.mjs +114 -0
- package/tools/verify-release-version.mjs +21 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Beta rewards and new-user acceptance
|
|
2
|
+
|
|
3
|
+
Owner-approved policy: one eligible `ctg` verified delivery earns **25 coins,
|
|
4
|
+
100 XP and 1 km**, at most three grants per player per UTC day. Daily classifier
|
|
5
|
+
assessment and personal work-log completion do not earn these rewards.
|
|
6
|
+
|
|
7
|
+
## Execution plan
|
|
8
|
+
|
|
9
|
+
1. Preserve the current live account and capture its starting profile. Confirm
|
|
10
|
+
account identity through normal authentication; never select an account by
|
|
11
|
+
a display name supplied to a public endpoint.
|
|
12
|
+
2. Implement a versioned backend reward receipt and atomic coin/XP/km posting.
|
|
13
|
+
Derive owner from authentication and amounts from server policy. Retain
|
|
14
|
+
delivery identity across retries and enforce daily caps under a player lock.
|
|
15
|
+
3. Integrate an explicit native claim action. Require a current required-check
|
|
16
|
+
verified handoff, fresh source fingerprint, passing check/requirement/review
|
|
17
|
+
gates and stable project/run identity. Do not reward advisory or blocked work.
|
|
18
|
+
4. Run a disposable real-PostgreSQL lifecycle through normal HTTP/auth routes:
|
|
19
|
+
new user, one welcome grant, isolation, eligible reward, exact replay,
|
|
20
|
+
conflicting/parallel claims, daily cap, rollback, level/week boundaries,
|
|
21
|
+
purchase/equip and application/database reconnect persistence. Exercise
|
|
22
|
+
rejection paths and reconcile wallet postings against balances.
|
|
23
|
+
5. Run backend checks and native eligibility/RPC/UI checks. Deploy the backend
|
|
24
|
+
only via reviewed PR, merge and its existing deployment workflow.
|
|
25
|
+
6. On the owner's Beshir Aissi account, claim the existing accepted Ship delivery
|
|
26
|
+
once; replay it; confirm exactly +25 coins/+100 XP/+1 km, then compare native
|
|
27
|
+
and web persisted state. Keep test fixtures separate from earned live records.
|
|
28
|
+
7. Record actual results, limitations and exact revisions, then resume beta
|
|
29
|
+
publication with installed-package and public-runtime acceptance gates.
|
|
30
|
+
|
|
31
|
+
## Trust boundary
|
|
32
|
+
|
|
33
|
+
The coding harness verifies local execution and source freshness. An authenticated
|
|
34
|
+
client transmits a bounded receipt; the backend does not independently execute
|
|
35
|
+
the repository. Client attestation is not remote execution attestation or proof
|
|
36
|
+
of authorship. Server amounts, owner isolation, durable deduplication and caps
|
|
37
|
+
must hold even for malformed or replayed clients. Tests must not equate a private
|
|
38
|
+
debug coin grant with an earned coding reward.
|
|
39
|
+
|
|
40
|
+
## Original baseline
|
|
41
|
+
|
|
42
|
+
Live profile previously verified: 20 coins, 0 XP, sandals owned/equipped. Current
|
|
43
|
+
backend has no coding-reward path. Quest policy explicitly returns `rewards:false`.
|
|
44
|
+
Beta publication is held until this additional acceptance scope is resolved.
|
|
45
|
+
|
|
46
|
+
Execution results are recorded in [beta-rewards-e2e-results.md](beta-rewards-e2e-results.md).
|
|
47
|
+
Production earned claim/replay/restart acceptance now passes at 45 coins,
|
|
48
|
+
100 XP and 1 km; live browser and release-package acceptance remain pending.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Beta reward acceptance results
|
|
2
|
+
|
|
3
|
+
## Production earned reward — passed
|
|
4
|
+
|
|
5
|
+
Tested November 2, 2026 UTC through the normal installed profile, authenticated
|
|
6
|
+
as the owner's Beshir Aissi account. The installation is still preview.13 with
|
|
7
|
+
labelled local launch/reward patches; these results are not installed-beta
|
|
8
|
+
release acceptance.
|
|
9
|
+
|
|
10
|
+
- Backend PR [#176](https://github.com/B-icy/Carthagent-Backend/pull/176), merged
|
|
11
|
+
revision `ec40fdb9b053e64b820adb18e7d35da927468149`.
|
|
12
|
+
- [Production deployment](https://github.com/B-icy/Carthagent-Backend/actions/runs/41401836218)
|
|
13
|
+
passed migration/readiness, public-site and service checks.
|
|
14
|
+
- Native preview accepted the real required-check Ship delivery
|
|
15
|
+
`903d3ed5-88db-41ca-b72d-f5699fa5ae7f`, source snapshot
|
|
16
|
+
`cea9b1d71e113d0b876cec4d3a2eef38f16e14decb519d033fb7d9325508b8bb`.
|
|
17
|
+
- Claim receipt `9d44cf4b-0a70-40e5-90ce-d68a7718fe21`, awarded
|
|
18
|
+
`2026-11-02T06:49:23.538Z`, policy `verified-delivery-beta-v1`.
|
|
19
|
+
|
|
20
|
+
| Check | Before | After |
|
|
21
|
+
| --- | --- | --- |
|
|
22
|
+
| Coins | 20 | 45 |
|
|
23
|
+
| Total XP | 0 | 100 |
|
|
24
|
+
| Total / weekly km | 0 / 0 | 1 / 1 |
|
|
25
|
+
| Profile version | 14 | 15 |
|
|
26
|
+
| Equipment / inventory | Sandals equipped | Identical, sandals retained |
|
|
27
|
+
|
|
28
|
+
Immediate replay returned the identical receipt with `replayed:true` and no
|
|
29
|
+
additional grant. After stopping and restarting the registered native service,
|
|
30
|
+
preview, replay and profile all matched the saved post-claim result exactly.
|
|
31
|
+
Sessions and credentials persisted. No debug issuance was used.
|
|
32
|
+
|
|
33
|
+
The live TUI displayed 45 coins / 100 XP / 1 km, rendered the digest-only claim
|
|
34
|
+
confirmation, accepted cancellation, and then confirmed the existing receipt
|
|
35
|
+
with “This delivery was already rewarded. No duplicate grant.” The wallet and
|
|
36
|
+
version stayed unchanged. Captures: `/tmp/opencode/rewards-ui-preview.txt` and
|
|
37
|
+
`/tmp/opencode/rewards-ui-replayed.txt`.
|
|
38
|
+
|
|
39
|
+
## Repeatable new-user acceptance — passed locally
|
|
40
|
+
|
|
41
|
+
Disposable PostgreSQL 17.11: 117 tests passed before the additional bearer
|
|
42
|
+
scenario; the complete six-test bearer group also passed. Backend CI ran the
|
|
43
|
+
updated suite successfully. Backend unit tests: 521 passed, one skipped.
|
|
44
|
+
Syntax, assets and navigation checks passed.
|
|
45
|
+
|
|
46
|
+
Coverage includes one welcome grant, cookie and device-approved bearer access,
|
|
47
|
+
reward claims and browser/CLI agreement, token refresh/new CLI session, owner
|
|
48
|
+
isolation, concurrent daily caps, run/snapshot deduplication, changed-evidence
|
|
49
|
+
rejection, transaction and wallet-overflow rollback, level/week progression,
|
|
50
|
+
milestone shop/quote/equip agreement, purchase replay, database reconnect and
|
|
51
|
+
restricted deployment/application-role permissions.
|
|
52
|
+
|
|
53
|
+
Native build/lint and 76 focused tests passed, including explicit confirmation,
|
|
54
|
+
account/session binding, current source gates, privacy of digest-only uploads,
|
|
55
|
+
lost-response recovery, restart and receipt recovery after source changes.
|
|
56
|
+
|
|
57
|
+
## Remaining acceptance gates
|
|
58
|
+
|
|
59
|
+
- Live browser comparison awaits normal user sign-in in `voyages-rewards-e2e`.
|
|
60
|
+
- Live terminal rendering, cancellation and confirmed replay passed.
|
|
61
|
+
- Five-platform runtime prebuild 41398315323 succeeded on attempt 2. Exact
|
|
62
|
+
provenance, all archive checksums, embedded metadata and executable hashes
|
|
63
|
+
passed the production acquisition parser; regenerating the manifest produced
|
|
64
|
+
the identical candidate. The packaged beta manifest now matches those bytes.
|
|
65
|
+
Installed beta acceptance remains pending.
|
|
66
|
+
|
|
67
|
+
Pre-manifest full native quality run: lint/build passed; 1,124 tests passed, five
|
|
68
|
+
skipped, six failed solely because the package version is beta.1 while the
|
|
69
|
+
runtime manifest still pins preview.13. These remain release-blocking failures
|
|
70
|
+
until the verified beta candidate was integrated. The post-integration quality
|
|
71
|
+
run passed: **1,130 tests passed, five skipped, zero failures**, plus lint,
|
|
72
|
+
typecheck and build. Exact candidate/packaged manifest equality and
|
|
73
|
+
`verify-release-version.mjs v1.1.0-beta.1` also passed. No trust assertion was relaxed.
|
|
74
|
+
|
|
75
|
+
Native PR CI passed all jobs after retrying one Windows Node 24 process-query
|
|
76
|
+
timeout. Native navigation also passed locally: 12 tests / 65 assertions.
|
|
77
|
+
|
|
78
|
+
The reward backend relies on authenticated local-harness attestation. It does
|
|
79
|
+
not independently execute repositories or prove authorship. Daily classifier
|
|
80
|
+
assessment and personal quest checkmarks remain unrewarded.
|
|
81
|
+
|
|
82
|
+
Local evidence: `/tmp/opencode/rewards-live-claimed.json`,
|
|
83
|
+
`/tmp/opencode/rewards-live-restarted.json`, and
|
|
84
|
+
`/tmp/opencode/rewards-installed-backup/provenance.json`.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Cloud onboarding — unreleased implementation
|
|
2
|
+
|
|
3
|
+
November 2, 2026. This branch is not published beta acceptance. npm `next` remains
|
|
4
|
+
1.1.0-beta.1 and `latest` remains 1.0.7.
|
|
5
|
+
|
|
6
|
+
Native PR #238 merged at `a5ad2164d056fee7f7183579ce6cc97305bae53b` after CI
|
|
7
|
+
41504674623 passed. First-task guidance is tracked in PR #239. Beta.2 runtime
|
|
8
|
+
prebuild 41505735348 succeeded. All five downloaded archives, executable digests
|
|
9
|
+
and pinned provenance were independently verified by regenerating the candidate
|
|
10
|
+
manifest locally. Package and lockfile target beta.2 and pin that exact manifest;
|
|
11
|
+
publication remains pending.
|
|
12
|
+
|
|
13
|
+
## Changes
|
|
14
|
+
|
|
15
|
+
- Use Carthagent Cloud for hosted models; retain Ship mode, internal IDs and
|
|
16
|
+
compatibility login aliases.
|
|
17
|
+
- Fresh device sign-in has one primary flow. Legacy import and upstream key
|
|
18
|
+
configuration require `CARTHAGENT_ADVANCED_AUTH=1`.
|
|
19
|
+
- Billing selects Builder/Pro/Max and retrieves authenticated server quote terms.
|
|
20
|
+
TUI review precedes opening checkout. Existing subscribers review exact Stripe
|
|
21
|
+
proration in the browser before confirming a change.
|
|
22
|
+
- `/billing refresh` and `ctg billing refresh` show current account access and
|
|
23
|
+
require explicit continuation in the existing task session.
|
|
24
|
+
- Cloud account text identifies the signed-in email; usage recovery distinguishes
|
|
25
|
+
starter credit, daily/monthly limits, billing and own-provider access.
|
|
26
|
+
|
|
27
|
+
## Verification
|
|
28
|
+
|
|
29
|
+
- Full native suite: 1,131 passed, 5 skipped, 0 failed.
|
|
30
|
+
`/tmp/opencode/onboarding-native-reviewed.log`
|
|
31
|
+
- Native build and typecheck pass.
|
|
32
|
+
`/tmp/opencode/onboarding-native-reviewed-build.log`
|
|
33
|
+
- RPC regression verifies that eligibility comes from the authenticated server
|
|
34
|
+
and quoting does not create a checkout.
|
|
35
|
+
- Native host acceptance passes at `b715ff282b` after correcting stale fresh-auth
|
|
36
|
+
and Cloud-name expectations. Both CI installed-package jobs passed. Run
|
|
37
|
+
41502591162 passed Linux/macOS and Windows 24; Windows 22 hit the two-second
|
|
38
|
+
PowerShell diagnostics timeout, while its parallel run passed. Windows
|
|
39
|
+
diagnostics now allow bounded ten-second cold startup.
|
|
40
|
+
- Installed package acceptance and its focused terminal rerun reproduced a
|
|
41
|
+
reconnect overlay. DEBUG-enabled source and installed probes passed; a normal
|
|
42
|
+
source run subsequently hit its existing terminal-snapshot deadline. This is
|
|
43
|
+
timing-sensitive local acceptance, not proof of a fixed runtime defect. Both
|
|
44
|
+
earlier CI package checks passed, and corrected CI passed before merge.
|
|
45
|
+
- The subsequent full non-focused installed-package run passed all 28
|
|
46
|
+
probes/scenarios, including terminal semantics, using the package-pinned
|
|
47
|
+
beta.1 owned runtime (`/tmp/opencode/onboarding-native-package-final.log`).
|
|
48
|
+
This closes the local rerun gate for the onboarding source; beta.2 still
|
|
49
|
+
requires acceptance against its own final packaged manifest and release assets.
|
|
50
|
+
|
|
51
|
+
## Outstanding gates
|
|
52
|
+
|
|
53
|
+
Backend counterpart: `B-icy/Carthagent-Backend` PR #178 merged at
|
|
54
|
+
`b0eacdcbdb71be4c099b1b3839a11164b2d69232`; production deployment 41502378359
|
|
55
|
+
succeeded. Its `ONBOARDING_CONVERSION_AUDIT.md` tracks the full matrix. Live
|
|
56
|
+
authenticated identity and read-only Builder/Pro/Max handoff terms were verified.
|
|
57
|
+
Retention follow-up PR #179 also merged and deployment 41505976672 succeeded.
|
|
58
|
+
Stripe test access is unavailable. First-task/default-model guidance,
|
|
59
|
+
contextual exhaustion action, remaining legacy/docs naming and full measurement
|
|
60
|
+
segmentation still need work. No new end-to-end paid continuation or visual
|
|
61
|
+
screenshot acceptance is claimed.
|
|
62
|
+
|
|
63
|
+
The deployed website now precedes the native release. Publish a new immutable
|
|
64
|
+
beta and verify its exact public acquisition and upgrade. Preserve the user's
|
|
65
|
+
normal profile and Invest-With-Friends work during acceptance.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Host TUI glyph compatibility review (v4)
|
|
2
|
+
|
|
3
|
+
## Decision
|
|
4
|
+
|
|
5
|
+
The standalone owned-host glyph compatibility patch was independently approved
|
|
6
|
+
at SHA-256
|
|
7
|
+
`37d93c0dfd5c52bd4536136fb53618580a29d682644848433f3b2ee4726d98a4`.
|
|
8
|
+
The parent also reports that its full 11-test focused run passed with 146
|
|
9
|
+
assertions. This record publishes the reviewed patch and its Unicode source
|
|
10
|
+
inventory for later composition; it does not claim that the patch is already
|
|
11
|
+
included in the current upstream runtime or in a final binary.
|
|
12
|
+
|
|
13
|
+
## Artifacts
|
|
14
|
+
|
|
15
|
+
- Patch: [`../patches/opencode-v2.0.32-glyphs.patch`](../patches/opencode-v2.0.32-glyphs.patch)
|
|
16
|
+
- SHA-256: `37d93c0dfd5c52bd4536136fb53618580a29d682644848433f3b2ee4726d98a4`
|
|
17
|
+
- Source base: upstream commit
|
|
18
|
+
`843a6c514e606b436a7fe713422ace0a93ad3d61`.
|
|
19
|
+
- Inventory: [`unicode-inventory-v4.csv`](unicode-inventory-v4.csv)
|
|
20
|
+
- SHA-256: `8727e2cc18f47a3cfe986adc9f721ccaf4bef8f4f39046a7667bc9d6c5bf2fb3`.
|
|
21
|
+
|
|
22
|
+
The patch changes 74 paths: 72 modified source/test files and two added files
|
|
23
|
+
(`packages/tui/src/ui/glyphs.ts` and `packages/tui/test/glyphs.test.ts`). The
|
|
24
|
+
independent review described its source-file audit as 72 changed files; the
|
|
25
|
+
author's 74-file count includes those two additions. Both figures refer to the
|
|
26
|
+
same v4 patch, not different revisions.
|
|
27
|
+
|
|
28
|
+
## Scope and inventory
|
|
29
|
+
|
|
30
|
+
The inventory scanned all 245 non-mini `packages/tui/src` TypeScript and TSX
|
|
31
|
+
files. It records 401 Unicode-bearing source lines in 77 files, with zero
|
|
32
|
+
unclassified rows. The classifications distinguish known host chrome from
|
|
33
|
+
dynamic/user/model/code content, examples, and comments. Mini remains out of
|
|
34
|
+
scope except where shared with the full TUI. Unicode remains the default;
|
|
35
|
+
`auto` stays Unicode until a launcher resolves it. Only known static chrome is
|
|
36
|
+
mapped, preserving dynamic text, paths, shell output, and diffs.
|
|
37
|
+
|
|
38
|
+
## Review and validation evidence
|
|
39
|
+
|
|
40
|
+
- Independent review approved the exact v4 patch hash above. Its blocking v3
|
|
41
|
+
findings (missing `chromeEllipsis` imports) are fixed in the three affected
|
|
42
|
+
consumers: `dialog-session-list.tsx`, `prompt/autocomplete.tsx`, and
|
|
43
|
+
`prompt/index.tsx`.
|
|
44
|
+
- Focused tests: 11 passed, 0 failed, 146 assertions. The session-list test
|
|
45
|
+
executes the relative-path truncation helper in ASCII and Unicode modes and
|
|
46
|
+
checks that dynamic path characters remain intact.
|
|
47
|
+
- Glyph-helper binding audit: zero missing bindings across the patch's 74
|
|
48
|
+
changed paths (including the two additions).
|
|
49
|
+
- TypeScript transpilation: 74 changed TS/TSX files, zero transpilation errors.
|
|
50
|
+
- `git diff --check`: passed.
|
|
51
|
+
- Typecheck was compared against the pinned upstream base, not treated as a
|
|
52
|
+
clean pass. Both base and v4 emitted exactly the same single diagnostic:
|
|
53
|
+
`src/plugin/api.tsx(152,3): error TS2741: Property 'transcript' is missing in
|
|
54
|
+
type ... but required in type 'Context'.` No changed-file diagnostic
|
|
55
|
+
remained. Captured outputs:
|
|
56
|
+
[`typecheck-base.log`](typecheck-base.log) and
|
|
57
|
+
[`typecheck-v4.log`](typecheck-v4.log).
|
|
58
|
+
|
|
59
|
+
Commands used for the focused checks (from `packages/tui` in the isolated
|
|
60
|
+
upstream worktree):
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
/tmp/opencode/ctg-parity-prototype/bun-dist/bun-linux-x64/bun test --timeout 30000 test/glyphs.test.ts
|
|
64
|
+
/tmp/opencode/ctg-parity-prototype/bun-dist/bun-linux-x64/bun /tmp/opencode/audit-glyph-bindings.ts
|
|
65
|
+
/tmp/opencode/ctg-parity-prototype/bun-dist/bun /tmp/opencode/transpile-changed.ts
|
|
66
|
+
git diff --check
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
The test result above is the owner's run. The binding and transpilation audits
|
|
70
|
+
were run from the isolated source worktree. The workspace typecheck command
|
|
71
|
+
was `tsgo --noEmit --pretty false -p tsconfig.json` on both base and v4; the
|
|
72
|
+
captured logs preserve the complete (single-line) diagnostic. These checks are
|
|
73
|
+
source-level evidence only and are not a final composed-runtime or release
|
|
74
|
+
binary validation.
|
|
75
|
+
|
|
76
|
+
## Composition boundary
|
|
77
|
+
|
|
78
|
+
The migration product branch may separately own composition into its runtime.
|
|
79
|
+
This documentation-only review change intentionally does not alter build or
|
|
80
|
+
release recipes, CLI resolution, CTG integration code, or the source patch
|
|
81
|
+
payload. The immutable patch and inventory should be the inputs to that
|
|
82
|
+
composition; do not edit this published v4 revision in place. Any source
|
|
83
|
+
revision requires a new patch filename and digest.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Spinner test import-order follow-up (v1)
|
|
2
|
+
|
|
3
|
+
The composed 81e test run exposed an import-order assumption in the spinner
|
|
4
|
+
assertion: `SPINNER_FRAMES` is initialized when its module is first imported,
|
|
5
|
+
so setting `CTG_TUI_GLYPHS` later in a test does not change that constant. The
|
|
6
|
+
production startup-time behavior is intentional and unchanged. The follow-up
|
|
7
|
+
patch, [`../patches/opencode-v2.0.32-glyph-spinner-test-isolation-v1.patch`](../patches/opencode-v2.0.32-glyph-spinner-test-isolation-v1.patch),
|
|
8
|
+
checks ASCII and Unicode startup values in separate Bun subprocesses with the
|
|
9
|
+
mode set in each child's environment before import.
|
|
10
|
+
|
|
11
|
+
Patch SHA-256:
|
|
12
|
+
`651f4d08959ed657c94fc77fb6af48992b928f2b63eb922719f34dcb38cd8f26`.
|
|
13
|
+
|
|
14
|
+
## Validation on Bun 1.4.2
|
|
15
|
+
|
|
16
|
+
- Glyph tests: 11 passed, 0 failed, 147 assertions.
|
|
17
|
+
- Combined glyph, plugin-keymap, and plugin-theme tests with a 60-second
|
|
18
|
+
per-test timeout: 18 passed, 0 failed, 168 assertions.
|
|
19
|
+
- The same combined invocation with the suite's 30-second default had one
|
|
20
|
+
plugin-keymap timeout; rerunning at 60 seconds passed. No production code or
|
|
21
|
+
spinner initialization was changed.
|
|
22
|
+
|
|
23
|
+
The subprocess assertions set the selected mode before importing
|
|
24
|
+
`spinner-frames.ts`; this preserves and verifies the startup-time constant
|
|
25
|
+
contract in both ASCII and Unicode modes despite other test modules being able
|
|
26
|
+
to import the module earlier in the parent process.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
src/plugin/api.tsx(152,3): error TS2741: Property 'transcript' is missing in type '{ options: Readonly<Record<string, any>>; readonly location: LocationPublicInfo | undefined; app: { version: string; channel: string; }; renderer: CliRenderer; ... 8 more ...; ui: { ...; }; }' but required in type 'Context'.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
src/plugin/api.tsx(152,3): error TS2741: Property 'transcript' is missing in type '{ options: Readonly<Record<string, any>>; readonly location: LocationPublicInfo | undefined; app: { version: string; channel: string; }; renderer: CliRenderer; ... 8 more ...; ui: { ...; }; }' but required in type 'Context'.
|