carthagent 1.0.7 → 1.1.0-beta.1
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/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-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/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 +1171 -0
- package/lib/opencode/cli.mjs +252 -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/tui/framing.mjs +1 -80
- 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 +59 -31
- 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 +69 -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 +496 -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/daily-evidence.test.mjs +62 -0
- package/tests/delivery-review.test.mjs +57 -2
- package/tests/delivery.test.mjs +22 -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 +31 -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 +71 -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 +245 -18
- 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/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 +43 -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 +876 -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 +87 -63
- 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,336 @@
|
|
|
1
|
+
# Native OpenCode manual-test candidate
|
|
2
|
+
|
|
3
|
+
This is the **unpublished 1.1.0-preview.9 release candidate**, not a stable 1.1.0
|
|
4
|
+
release or an available GitHub prerelease. The experimental updater selects
|
|
5
|
+
published releases only; it cannot install this candidate yet. Use the explicit
|
|
6
|
+
reviewed-artifact path below. The regular OpenCode installation is never replaced.
|
|
7
|
+
Native remains the default, inherited from preview.8 (`ctg native` remains an alias). The fixture runner
|
|
8
|
+
below uses a separately verified owned binary and isolated profiles. Agent/tool execution is **not an OS
|
|
9
|
+
sandbox**. Start with these disposable projects.
|
|
10
|
+
|
|
11
|
+
## 1. Get the candidate source
|
|
12
|
+
|
|
13
|
+
For current candidate work, use the reviewed `release/preview-9-candidate`
|
|
14
|
+
checkout and record its exact commit and dirty state. The prebuild source is
|
|
15
|
+
`c51c5ae11293e63b658df297abc732db88d9109a`; final package/manifest and documentation
|
|
16
|
+
changes are separate from that prebuild source. See the
|
|
17
|
+
[candidate notes](release-notes-preview.9.md).
|
|
18
|
+
|
|
19
|
+
The following exact-tag clone is **for future use only, after publication**.
|
|
20
|
+
After publication, `ctg update --channel experimental` can select the published
|
|
21
|
+
preview; it does not select a branch or prebuild. Launch with `ctg`.
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
git -c core.autocrlf=false clone -c core.autocrlf=false --branch v1.1.0-preview.9 https://github.com/B-icy/Carthagent.git ctg-native-manual
|
|
25
|
+
cd ctg-native-manual
|
|
26
|
+
npm ci
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The clone-local line-ending setting preserves hash-pinned patch bytes on Windows;
|
|
30
|
+
it does not change global Git configuration. Node 24.21 and Git were used here;
|
|
31
|
+
the package minimum is Node 22.19.0. Node 24 may print an engine warning for
|
|
32
|
+
`@opentui/core`'s Node >=26.4 declaration. This candidate's renderer runs in the
|
|
33
|
+
bundled Bun-based executable, not Node; local Node 24 results are recorded
|
|
34
|
+
separately from that warning. Python 3 is needed only for automated POSIX PTY
|
|
35
|
+
probes, not for the interactive manual runner. No Bun installation is required.
|
|
36
|
+
|
|
37
|
+
## 2. Prepare your machine's runtime and projects
|
|
38
|
+
|
|
39
|
+
Run this helper from the source checkout, which includes `package-lock.json`, not
|
|
40
|
+
from the global npm installation. By default it acquires the current platform's
|
|
41
|
+
archive from the exact published release in the packaged trust manifest. GitHub
|
|
42
|
+
CLI authentication is not required for published assets. Setup fails rather than
|
|
43
|
+
silently selecting an upstream/system binary.
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
node tools/prepare-native-manual.mjs ../ctg-manual-kit
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
That default command requires published assets. For preview.9 before publication,
|
|
50
|
+
use the explicit candidate manifest and archive command below instead.
|
|
51
|
+
|
|
52
|
+
Supported targets: Linux x64/arm64, macOS x64/arm64, Windows x64. Use matching Node
|
|
53
|
+
architecture; native Windows arm64 is not in the reviewed candidate. WSL is Linux,
|
|
54
|
+
not proof of Windows terminal behavior. The commands also work in PowerShell.
|
|
55
|
+
|
|
56
|
+
For offline archive acquisition, obtain the matching release archive first, then use:
|
|
57
|
+
|
|
58
|
+
```sh
|
|
59
|
+
node tools/prepare-native-manual.mjs ../ctg-manual-kit --assets /path/to/unzipped-artifact
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
For an unpublished prebuild, obtain the matching artifact and its complete candidate
|
|
63
|
+
manifest from the reviewed build. Supply an independently checked manifest digest:
|
|
64
|
+
|
|
65
|
+
```sh
|
|
66
|
+
node tools/prepare-native-manual.mjs ../ctg-candidate-kit --assets /path/to/archives --manifest /path/to/runtime-release.json.candidate --manifest-sha256 aa5de65b633219423d21b1cc645945028a2d5565714b71760cbcc18badc5f4e5
|
|
67
|
+
node tools/native-manual.mjs ../ctg-candidate-kit tiny --manifest /path/to/runtime-release.json.candidate --manifest-sha256 aa5de65b633219423d21b1cc645945028a2d5565714b71760cbcc18badc5f4e5
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
These pins identify prebuild run `40151970983` for preview.9. Its original
|
|
71
|
+
13-file bundle was independently verified through the production acquirer, and
|
|
72
|
+
manifest regeneration was byte-identical. The new Linux ARM64 bytes passed
|
|
73
|
+
isolated staged native-host and Ship-model probes; other platforms' execution
|
|
74
|
+
remains unverified here. Setup above executes a verified `--version`;
|
|
75
|
+
neither that nor archive verification substitutes for full installed acceptance.
|
|
76
|
+
Use the same `--manifest` and `--manifest-sha256` on **every** candidate-kit
|
|
77
|
+
invocation below (including `--smoke`, `--live`, and `--stop`), and replace
|
|
78
|
+
`../ctg-manual-kit` with `../ctg-candidate-kit`. Retain `--assets` and both manifest
|
|
79
|
+
arguments when preparing a larger unpublished kit too.
|
|
80
|
+
|
|
81
|
+
Do not derive the expected digest from an untrusted download without reviewing it.
|
|
82
|
+
The helper prints the same manifest arguments to use with `native-manual.mjs`.
|
|
83
|
+
Existing published manifests and per-platform archive hashes are never rewritten
|
|
84
|
+
to make a different candidate pass.
|
|
85
|
+
|
|
86
|
+
The directory must contain `opencode-<target>.tar.gz`, **not** an arbitrary
|
|
87
|
+
executable. Setup uses the production archive verifier, checks the packaged trust
|
|
88
|
+
root, source/patch/lock and archive/executable SHA-256 pins, and executes a checked
|
|
89
|
+
`--version`. It refuses an existing destination. No global install, normal
|
|
90
|
+
OpenCode profile, shell startup file, or system configuration is modified.
|
|
91
|
+
|
|
92
|
+
The kit contains three independent Git repositories and a file/hash inventory:
|
|
93
|
+
|
|
94
|
+
| Project | Purpose | Before implementation |
|
|
95
|
+
| --- | --- | --- |
|
|
96
|
+
| `tiny` | Invoice discount in integer cents; validation and immutable input | 2 baseline tests pass; feature acceptance intentionally fails |
|
|
97
|
+
| `product` | Forgeboard: real HTTP server, board UI, filtering, optimistic-concurrency update task | HTTP/UI baseline passes; PATCH acceptance intentionally fails |
|
|
98
|
+
| `scale` | 128 domains, over 1,400 files, shared rounding bug, cross-package imports | 128 integration tests pass; rounding acceptance intentionally fails |
|
|
99
|
+
|
|
100
|
+
For a larger navigation/coverage stress project, prepare a **different** kit:
|
|
101
|
+
|
|
102
|
+
```sh
|
|
103
|
+
node tools/prepare-native-manual.mjs ../ctg-large-kit --packages 1024
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
This generates over 11,200 tracked files and 1,024 domain tests. It is synthetic,
|
|
107
|
+
not a claim about performance on a large commercial application. It deliberately
|
|
108
|
+
exceeds the usual 8,000-file navigation cap: coverage must report limits honestly.
|
|
109
|
+
No fixture needs `npm install`, a database, browser driver, cloud account, or secret.
|
|
110
|
+
|
|
111
|
+
## 3. Start with the provider-free UI
|
|
112
|
+
|
|
113
|
+
Run from the candidate source directory:
|
|
114
|
+
|
|
115
|
+
```sh
|
|
116
|
+
node tools/native-manual.mjs ../ctg-manual-kit tiny
|
|
117
|
+
node tools/native-manual.mjs ../ctg-manual-kit product
|
|
118
|
+
node tools/native-manual.mjs ../ctg-manual-kit scale
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Each launch creates a disposable project copy and profile, starts the real owned
|
|
122
|
+
server/plugin plus a loopback-only **scripted** provider, and attaches the real TUI.
|
|
123
|
+
Provider/API/GitHub keys are not forwarded. Responses are fixtures, not reasoning;
|
|
124
|
+
do not use this mode to evaluate model quality or automatic implementation.
|
|
125
|
+
The copy/profile is removed on normal exit. The original kit projects stay clean.
|
|
126
|
+
|
|
127
|
+
Type `CTG_MANUAL_INSPECT` to exercise a real native tool call: the fixture authors
|
|
128
|
+
a baseline delivery plan, runs the project's actual Node tests through the native
|
|
129
|
+
shell, and returns `CTG_MANUAL_INSPECTION_COMPLETE` plus
|
|
130
|
+
`CTG_MANUAL_BASELINE_EXIT=0`. The plan unlocks the tool through production policy;
|
|
131
|
+
it does not disable the delivery gates or claim verified delivery/review.
|
|
132
|
+
|
|
133
|
+
The same path can be checked without an interactive terminal:
|
|
134
|
+
|
|
135
|
+
```sh
|
|
136
|
+
node tools/native-manual.mjs ../ctg-manual-kit tiny --smoke
|
|
137
|
+
node tools/native-manual.mjs ../ctg-manual-kit product --smoke
|
|
138
|
+
node tools/native-manual.mjs ../ctg-manual-kit scale --smoke
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Smoke reports are under `<kit>/reports/`. A failed baseline, changed runtime,
|
|
142
|
+
wrong platform, or rejected delivery plan fails the command.
|
|
143
|
+
|
|
144
|
+
## 4. Manual terminal checklist
|
|
145
|
+
|
|
146
|
+
Use your real terminal and font, recording OS, terminal/version, Node architecture,
|
|
147
|
+
kit manifest hash, and executable SHA-256 from `manual-kit.json`.
|
|
148
|
+
|
|
149
|
+
- [ ] Normal startup; no Pi fallback; `ctg-fixture/fixture` selected offline.
|
|
150
|
+
- [ ] Type, paste multiline text, edit, cancel, and send exactly once. Include
|
|
151
|
+
`café Ελληνικά 日本語 🧪` and literal `<script>alert("x")</script>`.
|
|
152
|
+
- [ ] Resize wide/narrow while typing and while a dialog is open. No lost text,
|
|
153
|
+
stale screen, duplicate prompt, or terminal-title leak after exit.
|
|
154
|
+
- [ ] `/help` and `/ctg-help` show CTG commands, not a provider prompt.
|
|
155
|
+
- [ ] `/theme carthage` and another theme; reopen and verify colors/settings.
|
|
156
|
+
- [ ] `/model` cancellation leaves the selected model unchanged. Do not select
|
|
157
|
+
external providers in offline mode. Test live model variants only when supported.
|
|
158
|
+
- [ ] `/autocompact off`, repeated `off`, `on`, and bare toggle; another session
|
|
159
|
+
remains independent. `/compact` remains a separate manual operation.
|
|
160
|
+
- [ ] Send a marker, `/clear`, then ask another question. Visible transcript is
|
|
161
|
+
cleared, not deleted. Reopen the same session and check durable history.
|
|
162
|
+
- [ ] `/copy`, drag selection, and paste into a local editor: exact text, no
|
|
163
|
+
truncated Unicode or escape sequences. Physical clipboard is a manual gate.
|
|
164
|
+
- [ ] `/export manual-session.html` produces escaped HTML in the disposable
|
|
165
|
+
project. Copy it out yourself before exit if you want to retain it; never
|
|
166
|
+
export a real credential-bearing conversation into a shared directory.
|
|
167
|
+
- [ ] `/workflow`, `/architecture`, `/evidence`, `/ctg-workspace`; actual unknown,
|
|
168
|
+
incomplete, or empty evidence must remain honest, not invented green receipts.
|
|
169
|
+
- [ ] Use native back/session navigation to leave custom workspace routes; they
|
|
170
|
+
are not a replacement composer. Test independent sessions and worktree tasks.
|
|
171
|
+
- [ ] Close with the normal native quit action, then verify title/input restoration.
|
|
172
|
+
Abruptly killing the wrapper is not a cleanup test.
|
|
173
|
+
|
|
174
|
+
### Known issues to observe, not waive
|
|
175
|
+
|
|
176
|
+
- Actual-slash acceptance is **partial**: `/stats` may select native host stats
|
|
177
|
+
instead of CTG's handler; bare `/guide` does not reliably toggle framing on the
|
|
178
|
+
tested completion path. `/guide <task>` and `/raw <prompt>` work in the recorded
|
|
179
|
+
test. Use explicit `--no-guide` for live launch when you need framing disabled.
|
|
180
|
+
- Full physical clipboard, terminal-title readback, long-duration memory, and
|
|
181
|
+
controlled paired performance acceptance remain manual/release gates.
|
|
182
|
+
- Linux automated success does not establish macOS/Windows native UI acceptance.
|
|
183
|
+
- GitHub draft/public release installation is not tested by this development
|
|
184
|
+
override. Use the reviewed preview.9 prebuild assets and manifest together;
|
|
185
|
+
do not substitute preview.8 assets or the unshipped v1.1.0 stable tag. Final-tag
|
|
186
|
+
draft and anonymous-public default-resolver acceptance are still pending.
|
|
187
|
+
- Actual 60x12 terminal navigation was functional in development-runtime tests;
|
|
188
|
+
that is not model-based visual approval or full cross-OS UI acceptance.
|
|
189
|
+
|
|
190
|
+
## 5. Explicit live-provider testing
|
|
191
|
+
|
|
192
|
+
Only this mode can use real provider credentials and incur charges. It operates
|
|
193
|
+
on the kit's persistent project, so inspect diffs afterward. The profile is
|
|
194
|
+
`<kit>/profiles/live`, not your existing CTG/OpenCode profile. Supported environment
|
|
195
|
+
keys forwarded intentionally are OPENAI_API_KEY, ANTHROPIC_API_KEY,
|
|
196
|
+
OPENROUTER_API_KEY, and GEMINI_API_KEY. Otherwise log in explicitly in this profile:
|
|
197
|
+
|
|
198
|
+
```sh
|
|
199
|
+
node tools/native-manual.mjs ../ctg-manual-kit tiny --live -- login
|
|
200
|
+
node tools/native-manual.mjs ../ctg-manual-kit tiny --live -- --max-tools 40 --max-seconds 300 --review no "Read TASK.md, implement the task, run both test suites, and report limitations. Do not push or create a PR."
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Choose a provider/model explicitly if needed by appending `--provider` and `--model`.
|
|
204
|
+
These are tool/time limits, **not a monetary cap**. Set a provider-side spending
|
|
205
|
+
limit before running. The scripted fixture is not paid-provider evidence. The
|
|
206
|
+
live Voyages development-runtime observations in the candidate notes are account
|
|
207
|
+
and equipment tests, not a paid-model benchmark or proof of paid purchases.
|
|
208
|
+
|
|
209
|
+
Repeat on `product`, then `scale`, increasing limits only deliberately. For strict
|
|
210
|
+
workflow use `--workflow strict`. Do not treat a deterministic offline fixture's
|
|
211
|
+
review verdict as independent model review. PR review/push/merge and billing
|
|
212
|
+
operations are not needed for these tests.
|
|
213
|
+
|
|
214
|
+
In another terminal, verify the actual workspace independently:
|
|
215
|
+
|
|
216
|
+
```sh
|
|
217
|
+
cd ../ctg-manual-kit/projects/product
|
|
218
|
+
npm test
|
|
219
|
+
npm run test:acceptance
|
|
220
|
+
npm start
|
|
221
|
+
# Open http://127.0.0.1:3017; test keyboard controls, validation, and competing updates.
|
|
222
|
+
git diff --check
|
|
223
|
+
git diff
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Use a second checkout/copy for an independent task rather than editing your own
|
|
227
|
+
production repo. Reopen persistent live sessions to test restart/history. Stop
|
|
228
|
+
only this kit's service when finished:
|
|
229
|
+
|
|
230
|
+
```sh
|
|
231
|
+
node tools/native-manual.mjs ../ctg-manual-kit tiny --live --stop
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Keep the live profile private: it may now contain credentials and personal
|
|
235
|
+
conversation data. **Do not upload, bundle, serve, or commit the kit directory.**
|
|
236
|
+
For a fresh fixture create a new kit rather than resetting a directory containing
|
|
237
|
+
work you might want. Uninstall is simply stopping its service and removing the
|
|
238
|
+
candidate checkout and test kit after saving wanted work; no global binary changed.
|
|
239
|
+
|
|
240
|
+
## 6. Reproduce automated diagnostics
|
|
241
|
+
|
|
242
|
+
POSIX example (adjust paths; do not export these persistently):
|
|
243
|
+
|
|
244
|
+
```sh
|
|
245
|
+
export CTG_OWNED_OPENCODE_RUNTIME="$(pwd)/../ctg-candidate-kit/runtimes/1.1.0-preview.9/linux-x64"
|
|
246
|
+
export CTG_TEST_RUNTIME_RELEASE_MANIFEST="/path/to/runtime-release.json.candidate"
|
|
247
|
+
node tools/test-native-swe-host.mjs
|
|
248
|
+
node tools/test-native-public-repo.mjs
|
|
249
|
+
node tools/test-native-delivery-host.mjs
|
|
250
|
+
node tools/test-native-slash-commands.mjs
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
The public-repo diagnostic downloads a pinned `is-number` checkout and dev
|
|
254
|
+
packages, but uses an offline provider. Slash acceptance currently returns 2 for
|
|
255
|
+
its known partial result; keep the JSON proof instead of marking it passed.
|
|
256
|
+
For `test-native-pty.mjs`, use `CTG_TEST_RUNTIME_ARTIFACT_ROOT` instead of
|
|
257
|
+
`CTG_OWNED_OPENCODE_RUNTIME` (unset the latter); this is the stricter PTY trust
|
|
258
|
+
contract. Test default release acquisition separately only after publication.
|
|
259
|
+
|
|
260
|
+
Share sanitized observations: exact command, expected/actual result, terminal and
|
|
261
|
+
platform, source commit, runtime hash, and minimal reproduction. Do not attach
|
|
262
|
+
profiles, auth files, raw environments, or private-session exports.
|
|
263
|
+
|
|
264
|
+
## 7. Checked-in development runtime provenance
|
|
265
|
+
|
|
266
|
+
An explicitly selected owned root (`CTG_OWNED_OPENCODE_RUNTIME` or the internal
|
|
267
|
+
`ownedRuntime` option) may use either the published runtime patch provenance or
|
|
268
|
+
the checked-in development patch provenance. Both paths still require the
|
|
269
|
+
pinned Carthagent owner, upstream source repository/revision, lock digest,
|
|
270
|
+
compatibility/runtime versions, channel, host platform, disabled web UI, exact
|
|
271
|
+
`cli-<platform>/bin/opencode[.exe]` layout, matching executable `SHA256SUMS`
|
|
272
|
+
entry and actual bytes, and exact owned `--version` output. An adjacent
|
|
273
|
+
`runtime-release.json` cannot authorize a different source, lock, or patch.
|
|
274
|
+
The explicit root is a development selector: its local checksum detects byte
|
|
275
|
+
changes but does not independently establish a published binary's provenance.
|
|
276
|
+
|
|
277
|
+
The update point for a reviewed local patch is
|
|
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.
|
|
305
|
+
Do not change `CTG_RUNTIME_PATCH_SHA256`, the published
|
|
306
|
+
`lib/opencode/runtime-release.json`, its archive/executable pins, or historical
|
|
307
|
+
release documentation to make a development build pass. Promotion to a public
|
|
308
|
+
release requires its separate release-verification process.
|
|
309
|
+
|
|
310
|
+
The default manual-kit manifest is validated against the same immutable
|
|
311
|
+
published pins, not the advancing development recipe. Explicit manual-kit
|
|
312
|
+
candidate manifests must match the current recipe as well as their independently
|
|
313
|
+
supplied manifest digest. This keeps existing published kits usable without
|
|
314
|
+
allowing candidate provenance through the published path.
|
|
315
|
+
|
|
316
|
+
The normal public resolver continues to acquire and verify the published
|
|
317
|
+
release pins only. It will not accept development patch provenance or changed
|
|
318
|
+
executable bytes, even when the cache's adjacent manifest/checksums agree.
|
|
319
|
+
`CTG_OPENCODE_BIN` / the `binary` option retain their separate
|
|
320
|
+
upstream-compatible behavior and are not owned development provenance selectors.
|
|
321
|
+
|
|
322
|
+
Native development tests need an **independently reviewed test manifest** via
|
|
323
|
+
`CTG_TEST_RUNTIME_RELEASE_MANIFEST`. Its source/lock/patch/version/platform and
|
|
324
|
+
asset executable digest must describe the selected development artifact, not
|
|
325
|
+
the unchanged published artifact. `preflightNativeTestRuntimeArtifact` checks
|
|
326
|
+
that test record against provenance and actual bytes before executing
|
|
327
|
+
`--version`. `CTG_TEST_RUNTIME_SHA256` can explicitly override only the expected
|
|
328
|
+
test executable digest; it cannot override patch/source/lock/version checks.
|
|
329
|
+
Keep the test manifest separate from the released manifest; do not derive trust
|
|
330
|
+
solely from an artifact's self-declared `ctg-runtime.json`.
|
|
331
|
+
|
|
332
|
+
For PTY tests, keep using `CTG_TEST_RUNTIME_ARTIFACT_ROOT` plus the trusted test
|
|
333
|
+
manifest as described above, not the developer selector. A passing explicit
|
|
334
|
+
development-root test is **not** installed-default/public-release acceptance;
|
|
335
|
+
run that acceptance separately with all developer/test selectors unset against
|
|
336
|
+
the immutable released artifacts.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Native slash-command acceptance handoff
|
|
2
|
+
|
|
3
|
+
Status: **incomplete / not ready to publish**. This is retained handoff evidence,
|
|
4
|
+
not a passing product acceptance claim.
|
|
5
|
+
|
|
6
|
+
## Scope and candidate
|
|
7
|
+
|
|
8
|
+
- Source base: `00d4a173f24b038067244386667e6648dd06c679`.
|
|
9
|
+
- Candidate runtime: `/home/baissi/.local/share/opencode/ctg-runtime-prebuild-39097969783/verified-cache/1.1.0/linux-x64/cli-linux-x64/bin/opencode`.
|
|
10
|
+
- Trusted manifest: `/home/baissi/.local/share/opencode/ctg-runtime-prebuild-39097969783/ctg-runtime-candidate-1.1.0/runtime-release.json.candidate`.
|
|
11
|
+
- The manifest's `linux-x64.executableSha256` and the selected executable both
|
|
12
|
+
matched `e9af36982c82a38666450376ebc80026348269bce1663163f3043a99bc70303c`
|
|
13
|
+
before the native test runner invoked the runtime.
|
|
14
|
+
- Fixture: real native OpenCode host, exact `carthagent` plugin inventory
|
|
15
|
+
activation, loopback-only OpenAI-compatible provider, disposable profile and
|
|
16
|
+
project, strict child environment. No browser or real provider was used.
|
|
17
|
+
- PTY interactions submitted slash text and did not count autocomplete display
|
|
18
|
+
as successful dispatch.
|
|
19
|
+
|
|
20
|
+
## Retained evidence
|
|
21
|
+
|
|
22
|
+
Latest proof: `/tmp/opencode/ctg-slash-acceptance-proof.json`
|
|
23
|
+
Latest runner log: `/tmp/opencode/ctg-slash-acceptance-logs.json`
|
|
24
|
+
|
|
25
|
+
Observed outcomes in the recorded partial run:
|
|
26
|
+
|
|
27
|
+
- `/export [file]`: handler wrote a complete HTML document; hostile session
|
|
28
|
+
content was escaped and not executable.
|
|
29
|
+
- `/guide <task>`: provider received the delivery-framed prompt.
|
|
30
|
+
- `/raw <prompt>`: provider received the exact unframed text.
|
|
31
|
+
- `/workflow`, `/architecture`, `/evidence`: each actual slash submission
|
|
32
|
+
rendered its corresponding Carthagent route, including observed empty/unknown
|
|
33
|
+
receipt state rather than invented success.
|
|
34
|
+
- `/stats`: **failed**. The runtime selected the native host stats command rather
|
|
35
|
+
than CTG's plugin stats handler; the session token/cost unknown-value labels
|
|
36
|
+
were therefore not verified.
|
|
37
|
+
- `/guide` toggle: **failed**. The subsequent provider request remained framed;
|
|
38
|
+
the no-argument plugin handler was not dispatched by the tested input path.
|
|
39
|
+
|
|
40
|
+
## Follow-up needed
|
|
41
|
+
|
|
42
|
+
Investigate slash dispatch against the exact candidate's native TUI behavior,
|
|
43
|
+
especially duplicate host/plugin command names and no-argument commands. Add
|
|
44
|
+
focused runtime-native dispatch coverage if the current registration API cannot
|
|
45
|
+
express those handlers reliably. Then rerun a fresh exact-session, plugin-active
|
|
46
|
+
offline PTY test and update this document with the exact resulting proof/log paths.
|
|
47
|
+
Do not represent the current partial proof as acceptance.
|
|
48
|
+
|
|
49
|
+
No product source change is retained for the unverified `/stats` experiment.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Native terminal paired attempt failure record — 2026-10-17
|
|
2
|
+
|
|
3
|
+
This is a sanitized failure summary, not performance acceptance evidence.
|
|
4
|
+
|
|
5
|
+
- Harness head: `198e66b47a00e2d8938b0e44be698cb6c0ffed26`.
|
|
6
|
+
- Frozen product source: `38ad06f7d439bc7c15b901f7b2c741b31486e93a`.
|
|
7
|
+
- Owned executable: OpenCode `2.0.32`, SHA-256
|
|
8
|
+
`489b51816a77809e841310e80c88e834c28c19ad1639e12ba8a19f08b47ab607`.
|
|
9
|
+
- Dependency tree SHA-256:
|
|
10
|
+
`a25d9aed67019a73dcf6e8a77746a043f4b76c633bbb02184350aaaa5d22c24d`.
|
|
11
|
+
- Window: 2026-10-17 18:15:41–18:16:54 UTC; requested order was baseline,
|
|
12
|
+
CTG, CTG, baseline; 30 samples per condition.
|
|
13
|
+
- Aggregate runner exit: `1`.
|
|
14
|
+
- Retained artifact directory:
|
|
15
|
+
`/tmp/opencode/ctg-native-terminal-paired-approved-20261017T181325Z`.
|
|
16
|
+
|
|
17
|
+
Both baseline fixture seeders failed during dependency identity validation
|
|
18
|
+
because the baseline's intentionally null plugin path was passed to `resolve`.
|
|
19
|
+
Both CTG fixtures reported native Carthagent active and passed its health probe,
|
|
20
|
+
but their PTY runs failed before samples because the readiness detector looked
|
|
21
|
+
for `Ask anything` instead of the product's native `Message carthagent…`
|
|
22
|
+
placeholder. Reports have `runStatus: failed`; no valid input or switch
|
|
23
|
+
percentiles/samples were produced. Preserve the raw private artifact directory
|
|
24
|
+
for audit, but do not copy fixture credentials or raw seeder logs into source
|
|
25
|
+
control.
|
|
26
|
+
|
|
27
|
+
These are two distinct harness defects. The current fix resolves baseline
|
|
28
|
+
provenance from the immutable execution root and uses the actual native editor
|
|
29
|
+
placeholder while retaining an exact changed-cell-at-origin assertion. A new
|
|
30
|
+
bounded readiness mode is diagnostic only and does not create latency samples.
|
|
31
|
+
It requires independent review and must not be run while authors/material work
|
|
32
|
+
is active without fresh operator permission. No ABBA rerun is authorized by
|
|
33
|
+
this failure record.
|
|
34
|
+
|
|
35
|
+
The acceptance record still has 50 ms input p95 and 150 ms warm-switch p95
|
|
36
|
+
targets. It defines no sustained-memory ceiling, reconnect/streaming reliability
|
|
37
|
+
target, or long-window duration. The existing short idle RSS/output observation
|
|
38
|
+
is descriptive only. A separate long-window design is documented in
|
|
39
|
+
`native-terminal-performance.md`; it needs a defined workload/acceptance policy
|
|
40
|
+
and an independently authorized quiet host window before execution.
|