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,160 @@
|
|
|
1
|
+
{
|
|
2
|
+
"startedAtUtc": "2026-10-17T18:53:07.226094+00:00",
|
|
3
|
+
"case": "full-native-probe",
|
|
4
|
+
"binary": "/tmp/opencode/ctg-final-runtime-build/resume-build/packages/cli/dist-ctg/cli-linux-x64/bin/opencode",
|
|
5
|
+
"binaryResolvedPath": "/tmp/opencode/ctg-final-runtime-build/resume-build/packages/cli/dist-ctg/cli-linux-x64/bin/opencode",
|
|
6
|
+
"binarySha256": "85bb44a65e8c185f4f33d41507d29acc77f2db0cdcb0103a14476021c8e43794",
|
|
7
|
+
"buildHash": "85bb44a65e8c185f4f33d41507d29acc77f2db0cdcb0103a14476021c8e43794",
|
|
8
|
+
"binaryVersion": "opencode v0.0.0-ctg.2.0.32",
|
|
9
|
+
"probeSha256": "f35acbcd8e506a32c0ee5240b3cd53be34fe551c7166e3327017c69ab2a57809",
|
|
10
|
+
"pluginSha256": "f162e6184bcb7980c7ec61e3c5c675563351aa814127cbb0a7fa1b6f79f116e6",
|
|
11
|
+
"sourceCommit": "1a79b489ba9f287efc03cf2c580ade546d0c9140",
|
|
12
|
+
"workingTreeDirty": true,
|
|
13
|
+
"sourceStatus": "M tools/native-terminal-semantics.py",
|
|
14
|
+
"sourceTreeSha256": "117be09476e05d5b2714a2d2cdbe299074b95c272d76b045246ee1bde67259ee",
|
|
15
|
+
"sourceDiffDirty": true,
|
|
16
|
+
"provider": "loopback offline fixture",
|
|
17
|
+
"terminal": {
|
|
18
|
+
"initialRows": 32,
|
|
19
|
+
"initialColumns": 100,
|
|
20
|
+
"resizeRows": 12,
|
|
21
|
+
"resizeColumns": 40,
|
|
22
|
+
"TERM": "xterm-256color"
|
|
23
|
+
},
|
|
24
|
+
"controlledHostClipboardModel": true,
|
|
25
|
+
"physicalOSClipboardVerified": false,
|
|
26
|
+
"checks": {
|
|
27
|
+
"pickerEscapeCancel": {
|
|
28
|
+
"status": "PASS",
|
|
29
|
+
"pickerObserved": true,
|
|
30
|
+
"cancelKey": "Escape",
|
|
31
|
+
"dismissed": true,
|
|
32
|
+
"composerRestored": true,
|
|
33
|
+
"providerRequestsBeforePrompt": 0,
|
|
34
|
+
"noPromptProviderRequestBeforeAcceptance": true
|
|
35
|
+
},
|
|
36
|
+
"unicodeAndLargeBracketedPaste": {
|
|
37
|
+
"status": "PASS",
|
|
38
|
+
"exactProviderText": true,
|
|
39
|
+
"characters": 16835,
|
|
40
|
+
"utf8Bytes": 18047,
|
|
41
|
+
"matchingPromptRequests": 2,
|
|
42
|
+
"totalFixtureRequests": 2
|
|
43
|
+
},
|
|
44
|
+
"narrowLayout": {
|
|
45
|
+
"status": "PASS",
|
|
46
|
+
"rows": 12,
|
|
47
|
+
"columns": 40,
|
|
48
|
+
"resizeRequested": true,
|
|
49
|
+
"hostAlive": true,
|
|
50
|
+
"fixtureResponseVisible": true,
|
|
51
|
+
"composerVisible": true,
|
|
52
|
+
"pickerAbsent": true,
|
|
53
|
+
"visibleRowsWithinWidth": true,
|
|
54
|
+
"observedTerminalOutputBytes": 12119,
|
|
55
|
+
"visibleScreenExcerpt": " FINAL[SNIP]END +\n FINALSNIPEND\n\n Build · Offline fixture · 118ms\n ┃ /copy Copy last assistant ┃\n ┃\n ┃ /copy\n ┃\n ┃ Offline fixture\n ╹▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n /…/ctg-terminal-semantics-e0a…/project\n"
|
|
56
|
+
},
|
|
57
|
+
"terminalTitleRestoration": {
|
|
58
|
+
"status": "PASS",
|
|
59
|
+
"reason": "Controlled terminal host restored the seeded original title after normal TUI exit",
|
|
60
|
+
"controlledHostModel": true,
|
|
61
|
+
"normalExitCode": 0,
|
|
62
|
+
"exitActions": [
|
|
63
|
+
"ctrl-u+quit+enter",
|
|
64
|
+
"enter",
|
|
65
|
+
"ctrl-c"
|
|
66
|
+
],
|
|
67
|
+
"forcedTerminationAfterExitRequestTimeout": false,
|
|
68
|
+
"ptyDrainedToEof": true,
|
|
69
|
+
"titleSaveControls": 1,
|
|
70
|
+
"titleRestoreControls": 1,
|
|
71
|
+
"titleControlOrder": [
|
|
72
|
+
"save",
|
|
73
|
+
"restore"
|
|
74
|
+
],
|
|
75
|
+
"modeledTitleStackDepth": 0,
|
|
76
|
+
"titleControlsObserved": [
|
|
77
|
+
"save",
|
|
78
|
+
"restore"
|
|
79
|
+
],
|
|
80
|
+
"titleControlSequences": [
|
|
81
|
+
"22;0",
|
|
82
|
+
"23;0"
|
|
83
|
+
],
|
|
84
|
+
"initialTitle": "CTG-ORIGINAL-TITLE",
|
|
85
|
+
"finalTitle": "CTG-ORIGINAL-TITLE",
|
|
86
|
+
"titleSequenceObserved": [
|
|
87
|
+
"OpenCode",
|
|
88
|
+
"OpenCode",
|
|
89
|
+
"OpenCode",
|
|
90
|
+
"OC | FINAL[SNIP]END",
|
|
91
|
+
"OC | FINAL[SNIP]END",
|
|
92
|
+
"",
|
|
93
|
+
"",
|
|
94
|
+
"CTG-ORIGINAL-TITLE"
|
|
95
|
+
],
|
|
96
|
+
"oscTitleUpdates": [
|
|
97
|
+
{
|
|
98
|
+
"kind": "0",
|
|
99
|
+
"title": "OpenCode"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"kind": "0",
|
|
103
|
+
"title": "OpenCode"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"kind": "0",
|
|
107
|
+
"title": "OpenCode"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"kind": "0",
|
|
111
|
+
"title": "OC | FINAL[SNIP]END"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"kind": "0",
|
|
115
|
+
"title": "OC | FINAL[SNIP]END"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"kind": "0",
|
|
119
|
+
"title": ""
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"kind": "0",
|
|
123
|
+
"title": ""
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
},
|
|
127
|
+
"selectionClipboard": {
|
|
128
|
+
"status": "UNVERIFIED",
|
|
129
|
+
"reason": "Native selection gesture did not yield an exact selection OSC 52 update and modeled readback",
|
|
130
|
+
"mouseReporting": true,
|
|
131
|
+
"mouseDragSent": false,
|
|
132
|
+
"fixtureResponseInCapturedPty": true,
|
|
133
|
+
"fixtureResponseInScreenModel": true,
|
|
134
|
+
"screenExcerpt": " FINAL[SNIP]END +\n ┃ ┃\n ┃ Message copied to x ┃\n ┃ clipboard! ┃\n ┃ ┃\n ┃\n ┃ ▄\n\n █▀▀█ █▀▀█ █▀▀█ █▀▀▄ █▀▀▀ █▀▀█ █▀▀█ █▀▀\n█╹▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n █ █ █ █ █▀▀▀ █ █ █ █ █ █ █ █▀▀\nD669g9QQL18LZ1encode -s ses_eb4c9f9d5ffe",
|
|
135
|
+
"selectedSubstring": null,
|
|
136
|
+
"mouseCoordinates": null,
|
|
137
|
+
"controlledHostClipboardUpdates": [],
|
|
138
|
+
"clipboardUpdateDeltaBeforeCopy": [],
|
|
139
|
+
"controlledHostClipboardReadback": null,
|
|
140
|
+
"physicalOSClipboardVerified": false
|
|
141
|
+
},
|
|
142
|
+
"clipboardOSC52": {
|
|
143
|
+
"status": "PASS",
|
|
144
|
+
"reason": "Controlled host model accepted and queried OSC 52 with the exact distinct latest fixture response; this is not physical OS clipboard proof",
|
|
145
|
+
"copyActionSent": true,
|
|
146
|
+
"controlledHostClipboardUpdates": [
|
|
147
|
+
"FINAL[SNIP]END"
|
|
148
|
+
],
|
|
149
|
+
"clipboardUpdateDeltaAfterSelection": [
|
|
150
|
+
"FINAL[SNIP]END"
|
|
151
|
+
],
|
|
152
|
+
"controlledHostClipboardReadback": "FINAL[SNIP]END",
|
|
153
|
+
"physicalOSClipboardVerified": false
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"status": "INCOMPLETE",
|
|
157
|
+
"incompleteChecks": [
|
|
158
|
+
"selectionClipboard"
|
|
159
|
+
]
|
|
160
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
{
|
|
2
|
+
"startedAtUtc": "2026-10-17T18:49:23.219635+00:00",
|
|
3
|
+
"case": "layout-regression",
|
|
4
|
+
"binary": "/tmp/opencode/ctg-final-runtime-build/resume-build/packages/cli/dist-ctg/cli-linux-x64/bin/opencode",
|
|
5
|
+
"binaryResolvedPath": "/tmp/opencode/ctg-final-runtime-build/resume-build/packages/cli/dist-ctg/cli-linux-x64/bin/opencode",
|
|
6
|
+
"binarySha256": "85bb44a65e8c185f4f33d41507d29acc77f2db0cdcb0103a14476021c8e43794",
|
|
7
|
+
"buildHash": "85bb44a65e8c185f4f33d41507d29acc77f2db0cdcb0103a14476021c8e43794",
|
|
8
|
+
"binaryVersion": "opencode v0.0.0-ctg.2.0.32",
|
|
9
|
+
"probeSha256": "91b432ae3447d2997e4a659ea1f873bdce97d8f37a90437a1bcf3315b917d95e",
|
|
10
|
+
"pluginSha256": "f162e6184bcb7980c7ec61e3c5c675563351aa814127cbb0a7fa1b6f79f116e6",
|
|
11
|
+
"sourceCommit": "1a79b489ba9f287efc03cf2c580ade546d0c9140",
|
|
12
|
+
"workingTreeDirty": false,
|
|
13
|
+
"sourceStatus": "",
|
|
14
|
+
"sourceTreeSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
15
|
+
"sourceDiffDirty": false,
|
|
16
|
+
"provider": "loopback offline fixture",
|
|
17
|
+
"terminal": {
|
|
18
|
+
"initialRows": 32,
|
|
19
|
+
"initialColumns": 100,
|
|
20
|
+
"resizeRows": 12,
|
|
21
|
+
"resizeColumns": 40,
|
|
22
|
+
"TERM": "xterm-256color"
|
|
23
|
+
},
|
|
24
|
+
"controlledHostClipboardModel": true,
|
|
25
|
+
"physicalOSClipboardVerified": false,
|
|
26
|
+
"checks": {
|
|
27
|
+
"focusedPromptTransport": {
|
|
28
|
+
"status": "PASS",
|
|
29
|
+
"exactProviderUserMessage": true,
|
|
30
|
+
"providerRequests": 2
|
|
31
|
+
},
|
|
32
|
+
"pickerEscapeCancel": {
|
|
33
|
+
"status": "NOT_RUN",
|
|
34
|
+
"reason": "focused layout regression case does not open picker"
|
|
35
|
+
},
|
|
36
|
+
"narrowLayout": {
|
|
37
|
+
"status": "PASS",
|
|
38
|
+
"rows": 12,
|
|
39
|
+
"columns": 40,
|
|
40
|
+
"resizeRequested": true,
|
|
41
|
+
"hostAlive": true,
|
|
42
|
+
"fixtureResponseVisible": true,
|
|
43
|
+
"composerVisible": true,
|
|
44
|
+
"pickerAbsent": true,
|
|
45
|
+
"visibleRowsWithinWidth": true,
|
|
46
|
+
"visibleScreenExcerpt": " • FINAL[SNIP]END +\n FINALSNIPEND\n\n Build · Offline fixture · 185ms\n\n ┃\n ┃\n ┃\n ┃ Offline fixture\n ╹▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n /…/ctg-terminal-semantics-gun…/project\n"
|
|
47
|
+
},
|
|
48
|
+
"terminalTitleRestoration": {
|
|
49
|
+
"status": "PASS",
|
|
50
|
+
"reason": "Controlled terminal host restored the seeded original title after normal TUI exit",
|
|
51
|
+
"controlledHostModel": true,
|
|
52
|
+
"normalExitCode": 0,
|
|
53
|
+
"exitActions": [
|
|
54
|
+
"ctrl-u+quit+enter",
|
|
55
|
+
"enter",
|
|
56
|
+
"ctrl-c"
|
|
57
|
+
],
|
|
58
|
+
"forcedTerminationAfterExitRequestTimeout": false,
|
|
59
|
+
"ptyDrainedToEof": true,
|
|
60
|
+
"titleSaveControls": 1,
|
|
61
|
+
"titleRestoreControls": 1,
|
|
62
|
+
"titleControlOrder": [
|
|
63
|
+
"save",
|
|
64
|
+
"restore"
|
|
65
|
+
],
|
|
66
|
+
"modeledTitleStackDepth": 0,
|
|
67
|
+
"titleControlsObserved": [
|
|
68
|
+
"save",
|
|
69
|
+
"restore"
|
|
70
|
+
],
|
|
71
|
+
"titleControlSequences": [
|
|
72
|
+
"22;0",
|
|
73
|
+
"23;0"
|
|
74
|
+
],
|
|
75
|
+
"initialTitle": "CTG-ORIGINAL-TITLE",
|
|
76
|
+
"finalTitle": "CTG-ORIGINAL-TITLE",
|
|
77
|
+
"titleSequenceObserved": [
|
|
78
|
+
"OpenCode",
|
|
79
|
+
"OpenCode",
|
|
80
|
+
"OpenCode",
|
|
81
|
+
"OC | FINAL[SNIP]END",
|
|
82
|
+
"OC | FINAL[SNIP]END",
|
|
83
|
+
"",
|
|
84
|
+
"",
|
|
85
|
+
"CTG-ORIGINAL-TITLE"
|
|
86
|
+
],
|
|
87
|
+
"oscTitleUpdates": [
|
|
88
|
+
{
|
|
89
|
+
"kind": "0",
|
|
90
|
+
"title": "OpenCode"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"kind": "0",
|
|
94
|
+
"title": "OpenCode"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"kind": "0",
|
|
98
|
+
"title": "OpenCode"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"kind": "0",
|
|
102
|
+
"title": "OC | FINAL[SNIP]END"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"kind": "0",
|
|
106
|
+
"title": "OC | FINAL[SNIP]END"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"kind": "0",
|
|
110
|
+
"title": ""
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"kind": "0",
|
|
114
|
+
"title": ""
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
"selectionClipboard": {
|
|
119
|
+
"status": "UNVERIFIED",
|
|
120
|
+
"reason": "Native selection gesture did not yield an exact selection OSC 52 update and modeled readback",
|
|
121
|
+
"mouseReporting": true,
|
|
122
|
+
"mouseDragSent": false,
|
|
123
|
+
"fixtureResponseInCapturedPty": true,
|
|
124
|
+
"fixtureResponseInScreenModel": true,
|
|
125
|
+
"screenExcerpt": " FINAL[SNIP]END +\n FINALSNIPEND\n\n Build · Offline fixture · 185ms\n ┃ /quit Exit the app ┃\n ┃\n ┃ /quit\n ▄\n █▀▀█ █▀▀█ █▀▀█ █▀▀▄ █▀▀▀ █▀▀█ █▀▀█ █▀▀\n█╹▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n █ █ █ █ █▀▀▀ █ █ █ █ █ █ █ █▀▀\n^Ccg6RSdlSnSmQencode -s ses_eb4cd6e23ffe",
|
|
126
|
+
"selectedSubstring": null,
|
|
127
|
+
"mouseCoordinates": null,
|
|
128
|
+
"controlledHostClipboardUpdates": [],
|
|
129
|
+
"clipboardUpdateDeltaBeforeCopy": [],
|
|
130
|
+
"controlledHostClipboardReadback": null,
|
|
131
|
+
"physicalOSClipboardVerified": false
|
|
132
|
+
},
|
|
133
|
+
"clipboardOSC52": {
|
|
134
|
+
"status": "UNVERIFIED",
|
|
135
|
+
"reason": "No exact new OSC 52 clipboard value and readback observed after /copy",
|
|
136
|
+
"copyActionSent": false,
|
|
137
|
+
"controlledHostClipboardUpdates": [],
|
|
138
|
+
"clipboardUpdateDeltaAfterSelection": [],
|
|
139
|
+
"controlledHostClipboardReadback": null,
|
|
140
|
+
"physicalOSClipboardVerified": false
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
"status": "INCOMPLETE",
|
|
144
|
+
"incompleteChecks": [
|
|
145
|
+
"pickerEscapeCancel",
|
|
146
|
+
"selectionClipboard",
|
|
147
|
+
"clipboardOSC52"
|
|
148
|
+
]
|
|
149
|
+
}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
{
|
|
2
|
+
"startedAtUtc": "2026-10-17T19:09:53.396366+00:00",
|
|
3
|
+
"case": "layout-regression",
|
|
4
|
+
"binary": "/tmp/opencode/ctg-final-runtime-build/resume-build/packages/cli/dist-ctg/cli-linux-x64/bin/opencode",
|
|
5
|
+
"binaryResolvedPath": "/tmp/opencode/ctg-final-runtime-build/resume-build/packages/cli/dist-ctg/cli-linux-x64/bin/opencode",
|
|
6
|
+
"binarySha256": "85bb44a65e8c185f4f33d41507d29acc77f2db0cdcb0103a14476021c8e43794",
|
|
7
|
+
"buildHash": "85bb44a65e8c185f4f33d41507d29acc77f2db0cdcb0103a14476021c8e43794",
|
|
8
|
+
"binaryVersion": "opencode v0.0.0-ctg.2.0.32",
|
|
9
|
+
"probeSha256": "8e9ba4ebfdd4ac8446ac3f03c9c466162a77a78e4709d19bd59810f6545847ba",
|
|
10
|
+
"pluginSha256": "f162e6184bcb7980c7ec61e3c5c675563351aa814127cbb0a7fa1b6f79f116e6",
|
|
11
|
+
"sourceCommit": "ad15830b1f56a86a3e0b11a726eebfecf6868bc0",
|
|
12
|
+
"workingTreeDirty": true,
|
|
13
|
+
"sourceStatus": "M tools/native-terminal-semantics.py",
|
|
14
|
+
"sourceTreeSha256": "703d04ec3d414031bc3c5f5c9c08d3ae17c43a8b6493eed905dcaf778134ab72",
|
|
15
|
+
"sourceDiffDirty": true,
|
|
16
|
+
"provider": "loopback offline fixture",
|
|
17
|
+
"terminal": {
|
|
18
|
+
"initialRows": 32,
|
|
19
|
+
"initialColumns": 100,
|
|
20
|
+
"resizeRows": 12,
|
|
21
|
+
"resizeColumns": 40,
|
|
22
|
+
"TERM": "xterm-256color"
|
|
23
|
+
},
|
|
24
|
+
"controlledHostClipboardModel": true,
|
|
25
|
+
"physicalOSClipboardVerified": false,
|
|
26
|
+
"checks": {
|
|
27
|
+
"focusedPromptTransport": {
|
|
28
|
+
"status": "PASS",
|
|
29
|
+
"exactProviderUserMessage": true,
|
|
30
|
+
"providerRequests": 2
|
|
31
|
+
},
|
|
32
|
+
"pickerEscapeCancel": {
|
|
33
|
+
"status": "NOT_RUN",
|
|
34
|
+
"reason": "focused layout regression case does not open picker"
|
|
35
|
+
},
|
|
36
|
+
"narrowLayout": {
|
|
37
|
+
"status": "PASS",
|
|
38
|
+
"rows": 12,
|
|
39
|
+
"columns": 40,
|
|
40
|
+
"resizeRequested": true,
|
|
41
|
+
"hostAlive": true,
|
|
42
|
+
"fixtureResponseVisible": true,
|
|
43
|
+
"composerVisible": true,
|
|
44
|
+
"pickerAbsent": true,
|
|
45
|
+
"visibleRowsWithinWidth": true,
|
|
46
|
+
"interactiveInput": {
|
|
47
|
+
"uniqueInputTyped": true,
|
|
48
|
+
"backspaceSent": true,
|
|
49
|
+
"inputEditedAsExpected": true,
|
|
50
|
+
"recentSessionsMenuOpened": true,
|
|
51
|
+
"menuNavigationSent": true,
|
|
52
|
+
"escapeSent": true,
|
|
53
|
+
"composerAndEditedInputRestored": true,
|
|
54
|
+
"editedInput": "NARROW-EDIT-INTERACTIV"
|
|
55
|
+
},
|
|
56
|
+
"visibleScreenExcerpt": " FINAL[SNIP]END +\n FINALSNIPEND\n\n Build · Offline fixture · 299ms\n\n ┃\n ┃ NARROW-EDIT-INTERACTIV\n ┃\n ┃ Offline fixture\n ╹▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n /…/ctg-terminal-semantics-w8y…/project\n"
|
|
57
|
+
},
|
|
58
|
+
"terminalTitleRestoration": {
|
|
59
|
+
"status": "PASS",
|
|
60
|
+
"reason": "Controlled terminal host restored the seeded original title after normal TUI exit",
|
|
61
|
+
"controlledHostModel": true,
|
|
62
|
+
"normalExitCode": 0,
|
|
63
|
+
"exitActions": [
|
|
64
|
+
"ctrl-u+quit+enter",
|
|
65
|
+
"enter",
|
|
66
|
+
"ctrl-c"
|
|
67
|
+
],
|
|
68
|
+
"forcedTerminationAfterExitRequestTimeout": false,
|
|
69
|
+
"ptyDrainedToEof": true,
|
|
70
|
+
"titleSaveControls": 1,
|
|
71
|
+
"titleRestoreControls": 1,
|
|
72
|
+
"titleControlOrder": [
|
|
73
|
+
"save",
|
|
74
|
+
"restore"
|
|
75
|
+
],
|
|
76
|
+
"modeledTitleStackDepth": 0,
|
|
77
|
+
"titleControlsObserved": [
|
|
78
|
+
"save",
|
|
79
|
+
"restore"
|
|
80
|
+
],
|
|
81
|
+
"titleControlSequences": [
|
|
82
|
+
"22;0",
|
|
83
|
+
"23;0"
|
|
84
|
+
],
|
|
85
|
+
"initialTitle": "CTG-ORIGINAL-TITLE",
|
|
86
|
+
"finalTitle": "CTG-ORIGINAL-TITLE",
|
|
87
|
+
"titleSequenceObserved": [
|
|
88
|
+
"OpenCode",
|
|
89
|
+
"OpenCode",
|
|
90
|
+
"OpenCode",
|
|
91
|
+
"OC | FINAL[SNIP]END",
|
|
92
|
+
"OC | FINAL[SNIP]END",
|
|
93
|
+
"",
|
|
94
|
+
"",
|
|
95
|
+
"CTG-ORIGINAL-TITLE"
|
|
96
|
+
],
|
|
97
|
+
"oscTitleUpdates": [
|
|
98
|
+
{
|
|
99
|
+
"kind": "0",
|
|
100
|
+
"title": "OpenCode"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"kind": "0",
|
|
104
|
+
"title": "OpenCode"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"kind": "0",
|
|
108
|
+
"title": "OpenCode"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"kind": "0",
|
|
112
|
+
"title": "OC | FINAL[SNIP]END"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"kind": "0",
|
|
116
|
+
"title": "OC | FINAL[SNIP]END"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"kind": "0",
|
|
120
|
+
"title": ""
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"kind": "0",
|
|
124
|
+
"title": ""
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
"selectionClipboard": {
|
|
129
|
+
"status": "UNVERIFIED",
|
|
130
|
+
"reason": "Native selection gesture did not yield an exact selection OSC 52 update and modeled readback",
|
|
131
|
+
"mouseReporting": true,
|
|
132
|
+
"mouseDragSent": false,
|
|
133
|
+
"fixtureResponseInCapturedPty": true,
|
|
134
|
+
"fixtureResponseInScreenModel": true,
|
|
135
|
+
"screenExcerpt": " FINAL[SNIP]END +\n FINALSNIPEND\n\n Build · Offline fixture · 299ms\n ┃ /quit Exit the app ┃\n ┃\n ┃ /quit^C\n ▄\n █▀▀█ █▀▀█ █▀▀█ █▀▀▄ █▀▀▀ █▀▀█ █▀▀█ █▀▀\n█╹▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n █ █ █ █ █▀▀▀ █ █ █ █ █ █ █ █▀▀\nHs13koM6DBz8Nfencode -s ses_eb4baa65effe",
|
|
136
|
+
"selectedSubstring": null,
|
|
137
|
+
"mouseCoordinates": null,
|
|
138
|
+
"controlledHostClipboardUpdates": [],
|
|
139
|
+
"clipboardUpdateDeltaBeforeCopy": [],
|
|
140
|
+
"controlledHostClipboardReadback": null,
|
|
141
|
+
"physicalOSClipboardVerified": false
|
|
142
|
+
},
|
|
143
|
+
"clipboardOSC52": {
|
|
144
|
+
"status": "UNVERIFIED",
|
|
145
|
+
"reason": "No exact new OSC 52 clipboard value and readback observed after /copy",
|
|
146
|
+
"copyActionSent": false,
|
|
147
|
+
"controlledHostClipboardUpdates": [],
|
|
148
|
+
"clipboardUpdateDeltaAfterSelection": [],
|
|
149
|
+
"controlledHostClipboardReadback": null,
|
|
150
|
+
"physicalOSClipboardVerified": false
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"status": "INCOMPLETE",
|
|
154
|
+
"incompleteChecks": [
|
|
155
|
+
"pickerEscapeCancel",
|
|
156
|
+
"selectionClipboard",
|
|
157
|
+
"clipboardOSC52"
|
|
158
|
+
]
|
|
159
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"startedAtUtc": "2026-10-17T19:31:38.804106+00:00",
|
|
3
|
+
"case": "native-model-picker-navigation-escape-unchanged-model",
|
|
4
|
+
"binary": "/tmp/opencode/ctg-final-runtime-build/resume-build/packages/cli/dist-ctg/cli-linux-x64/bin/opencode",
|
|
5
|
+
"binaryVersion": "opencode v0.0.0-ctg.2.0.32",
|
|
6
|
+
"binarySha256": "85bb44a65e8c185f4f33d41507d29acc77f2db0cdcb0103a14476021c8e43794",
|
|
7
|
+
"sourceCommit": "802a20bdc2178839ae8131fa6c4ad2c11018aa1f",
|
|
8
|
+
"workingTreeDirty": false,
|
|
9
|
+
"probeSha256": "b1158e68816ecf6c269807c0ca2a9623cd5e35ab1a71d842c4b70e8a9e2681b4",
|
|
10
|
+
"supportingHarnessSha256": "f35acbcd8e506a32c0ee5240b3cd53be34fe551c7166e3327017c69ab2a57809",
|
|
11
|
+
"provider": "loopback offline fixture",
|
|
12
|
+
"configuredModel": "ctgfixture/fixture",
|
|
13
|
+
"alternateModel": "ctgfixture/alternate",
|
|
14
|
+
"physicalOSClipboardVerified": false,
|
|
15
|
+
"checks": {
|
|
16
|
+
"modelPickerNavigationEscapeUnchangedModel": {
|
|
17
|
+
"status": "PASS",
|
|
18
|
+
"modelPickerObserved": true,
|
|
19
|
+
"modelOptionsVisible": [
|
|
20
|
+
"CTG Picker A",
|
|
21
|
+
"CTG Picker B"
|
|
22
|
+
],
|
|
23
|
+
"currentModelBeforeNavigationVisible": true,
|
|
24
|
+
"navigationKeySent": "ArrowDown",
|
|
25
|
+
"alternateOptionVisibleAfterNavigation": true,
|
|
26
|
+
"selectedOptionStyleAfterNavigation": "\u001b[38;2;10;10;10m\u001b[48;2;250;178;131m\u001b[1m",
|
|
27
|
+
"otherOptionStyleAfterNavigation": "\u001b[38;2;250;178;131m\u001b[48;2;20;20;20m",
|
|
28
|
+
"escapeDismissedPicker": true,
|
|
29
|
+
"composerRestored": true,
|
|
30
|
+
"providerRequestsDuringCancel": 0,
|
|
31
|
+
"activeSessionMetadataStillShowsModelA": true,
|
|
32
|
+
"baselineProviderModel": "fixture",
|
|
33
|
+
"postCancelProviderModels": [
|
|
34
|
+
"fixture"
|
|
35
|
+
],
|
|
36
|
+
"postCancelUniquePromptAccepted": true,
|
|
37
|
+
"provider": "loopback offline fixture"
|
|
38
|
+
},
|
|
39
|
+
"physicalOSClipboardVerified": {
|
|
40
|
+
"status": "NOT_TESTED"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"status": "PASS_BOUNDED"
|
|
44
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"startedAtUtc": "2026-10-17T19:46:59.225587+00:00",
|
|
3
|
+
"case": "native-model-picker-navigation-escape-unchanged-model",
|
|
4
|
+
"binary": "/tmp/opencode/ctg-final-runtime-build/resume-build/packages/cli/dist-ctg/cli-linux-x64/bin/opencode",
|
|
5
|
+
"expectedBinaryVersion": "opencode v0.0.0-ctg.2.0.32",
|
|
6
|
+
"binaryVersion": "opencode v0.0.0-ctg.2.0.32",
|
|
7
|
+
"expectedBinarySha256": "85bb44a65e8c185f4f33d41507d29acc77f2db0cdcb0103a14476021c8e43794",
|
|
8
|
+
"binarySha256": "85bb44a65e8c185f4f33d41507d29acc77f2db0cdcb0103a14476021c8e43794",
|
|
9
|
+
"sourceCommit": "0bb0950f816a9b33cc54be3e1c26eaaecff9396e",
|
|
10
|
+
"workingTreeDirty": false,
|
|
11
|
+
"probeSha256": "6d5fd125b1fad71976a56d0549c75aaf09ca376d1036ff954d66d5a23b0546b0",
|
|
12
|
+
"supportingHarnessSha256": "f35acbcd8e506a32c0ee5240b3cd53be34fe551c7166e3327017c69ab2a57809",
|
|
13
|
+
"provider": "loopback offline fixture",
|
|
14
|
+
"configuredModel": "ctgfixture/fixture",
|
|
15
|
+
"alternateModel": "ctgfixture/alternate",
|
|
16
|
+
"binaryPreflight": "sha256 verified against required external expected value before --version or TUI launch",
|
|
17
|
+
"physicalOSClipboardVerified": false,
|
|
18
|
+
"checks": {
|
|
19
|
+
"modelPickerNavigationEscapeUnchangedModel": {
|
|
20
|
+
"status": "PASS",
|
|
21
|
+
"modelPickerObserved": true,
|
|
22
|
+
"modelOptionsVisible": [
|
|
23
|
+
"CTG Picker A",
|
|
24
|
+
"CTG Picker B"
|
|
25
|
+
],
|
|
26
|
+
"currentModelBeforeNavigationVisible": true,
|
|
27
|
+
"navigationKeySent": "ArrowDown",
|
|
28
|
+
"alternateOptionVisibleAfterNavigation": true,
|
|
29
|
+
"selectedOptionStyleAfterNavigation": "\u001b[38;2;10;10;10m\u001b[48;2;250;178;131m\u001b[1m",
|
|
30
|
+
"otherOptionStyleAfterNavigation": "\u001b[38;2;250;178;131m\u001b[48;2;20;20;20m",
|
|
31
|
+
"escapeDismissedPicker": true,
|
|
32
|
+
"composerRestored": true,
|
|
33
|
+
"providerRequestsDuringCancel": 0,
|
|
34
|
+
"renderedActiveSessionModelLabelStillShowsA": true,
|
|
35
|
+
"configuredModelIdBeforePicker": "fixture",
|
|
36
|
+
"postCancelProviderModels": [
|
|
37
|
+
"fixture"
|
|
38
|
+
],
|
|
39
|
+
"postCancelUniquePromptAccepted": true,
|
|
40
|
+
"provider": "loopback offline fixture"
|
|
41
|
+
},
|
|
42
|
+
"physicalOSClipboardVerified": {
|
|
43
|
+
"status": "NOT_TESTED"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"status": "PASS_BOUNDED"
|
|
47
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"startedAtUtc": "2026-10-17T19:07:14.382762+00:00",
|
|
3
|
+
"case": "model-picker-regression",
|
|
4
|
+
"binary": "/tmp/opencode/ctg-final-runtime-build/resume-build/packages/cli/dist-ctg/cli-linux-x64/bin/opencode",
|
|
5
|
+
"binaryResolvedPath": "/tmp/opencode/ctg-final-runtime-build/resume-build/packages/cli/dist-ctg/cli-linux-x64/bin/opencode",
|
|
6
|
+
"binarySha256": "85bb44a65e8c185f4f33d41507d29acc77f2db0cdcb0103a14476021c8e43794",
|
|
7
|
+
"buildHash": "85bb44a65e8c185f4f33d41507d29acc77f2db0cdcb0103a14476021c8e43794",
|
|
8
|
+
"binaryVersion": "opencode v0.0.0-ctg.2.0.32",
|
|
9
|
+
"probeSha256": "2027ce70f3054f9fa886af7172ba81c58dd539d36bad5ac352be5c2897288f21",
|
|
10
|
+
"pluginSha256": "f162e6184bcb7980c7ec61e3c5c675563351aa814127cbb0a7fa1b6f79f116e6",
|
|
11
|
+
"sourceCommit": "ad15830b1f56a86a3e0b11a726eebfecf6868bc0",
|
|
12
|
+
"workingTreeDirty": true,
|
|
13
|
+
"sourceStatus": "M tools/native-terminal-semantics.py",
|
|
14
|
+
"sourceTreeSha256": "199622df5510f1f881cdd32d30f1b25457ae6586a55cb7331b7ca659718c96ab",
|
|
15
|
+
"sourceDiffDirty": true,
|
|
16
|
+
"provider": "loopback offline fixture",
|
|
17
|
+
"terminal": {
|
|
18
|
+
"initialRows": 32,
|
|
19
|
+
"initialColumns": 100,
|
|
20
|
+
"resizeRows": null,
|
|
21
|
+
"resizeColumns": null,
|
|
22
|
+
"TERM": "xterm-256color"
|
|
23
|
+
},
|
|
24
|
+
"controlledHostClipboardModel": true,
|
|
25
|
+
"physicalOSClipboardVerified": false,
|
|
26
|
+
"checks": {
|
|
27
|
+
"pickerEscapeCancel": {
|
|
28
|
+
"status": "UNSUPPORTED",
|
|
29
|
+
"reason": "native model picker did not expose a recognizable visible heading; Escape was sent to dismiss any command menu",
|
|
30
|
+
"providerRequestsBeforePrompt": 0,
|
|
31
|
+
"visibleScreenExcerpt": "\n\n\n\n\n\n\n\n\n Select model esc\n\n Search\n\n No items available\n\n View all integrations ctrl+a\n ┃\n ┃ Ask anythi Reconnecting to the server automatically.\n ┃\n ┃\n ╹▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n /…/ctg-terminal-semantics-0bhik…/project shift+tab agents ctrl+p commands\n\n\n\n\n\n\n\n\n 0.0.0-ctg.2.0.32\n"
|
|
32
|
+
},
|
|
33
|
+
"modelPickerEscapeCancel": {
|
|
34
|
+
"status": "FAIL",
|
|
35
|
+
"pickerObserved": false,
|
|
36
|
+
"navigationOccurred": false,
|
|
37
|
+
"dismissed": true,
|
|
38
|
+
"composerRestored": false,
|
|
39
|
+
"providerRequests": 2,
|
|
40
|
+
"providerRequestModels": [
|
|
41
|
+
"fixture",
|
|
42
|
+
"fixture"
|
|
43
|
+
],
|
|
44
|
+
"configuredModelUnchanged": true,
|
|
45
|
+
"authority": "offline fixture request model after Escape; selection would require Enter"
|
|
46
|
+
},
|
|
47
|
+
"recentSessionsMenuEscapeCancel": {
|
|
48
|
+
"status": "NOT_RUN",
|
|
49
|
+
"reason": "model-picker-only case exercises the model picker, not recent sessions"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"status": "INCOMPLETE",
|
|
53
|
+
"incompleteChecks": [
|
|
54
|
+
"pickerEscapeCancel",
|
|
55
|
+
"modelPickerEscapeCancel"
|
|
56
|
+
],
|
|
57
|
+
"reviewNote": "Attempted the verified Ctrl+X then m model.list hotkey (confirmed from runtime keybind source). The terminal model did not establish option navigation followed by Escape dismissal: modelPickerEscapeCancel is FAIL and configuredModelUnchanged is not inferred from the subsequent fixture requests alone. Treat provider model names and request model only as diagnostic. No model-picker acceptance claim."
|
|
58
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"status": "MODEL_SELFTEST_PASS_NOT_NATIVE_ACCEPTANCE",
|
|
3
|
+
"scope": "parser/state-model self-test only; does not launch OpenCode or exercise native PTY input",
|
|
4
|
+
"nativeAcceptance": "NOT_RUN",
|
|
5
|
+
"physicalOSClipboardVerified": false,
|
|
6
|
+
"seedClipboardPreservedOnInvalidPayloads": true,
|
|
7
|
+
"invalidPayloadsRejected": 3,
|
|
8
|
+
"exactSelectionRoundTrip": "SNIP",
|
|
9
|
+
"exactLatestCopyRoundTrip": "FINAL[SNIP]END",
|
|
10
|
+
"clipboardQueries": 2,
|
|
11
|
+
"titleRestoredFromStack": "CTG-ORIGINAL-TITLE",
|
|
12
|
+
"titleSaveRestoreOrder": [
|
|
13
|
+
"save",
|
|
14
|
+
"restore"
|
|
15
|
+
]
|
|
16
|
+
}
|