Skip to content

Commit 6e4ea4f

Browse files
V48 Gate 3 (specification-implementation): eradicate legacy terminal browser proofs; repoint browser-proof coverage to /deposits and /reads
The /terminal cockpit browser proofs are removed and the active browser-proof coverage now proves the current product surfaces. - Contracts: uapi/app/bitcode-browser-proof.ts and bitcode-browser-accessibility-responsive-proof.ts drop the `terminal` surface and add `deposits` (/deposits) + `reads` (/reads) surfaces with real testids (route-shell-deposit/deposits-pipelines-table/deposit-synthesis-telemetry, route-shell-read/reads-pipelines-table/reads-synthesized-packs); Auxillaries routes move /terminal?auxillary-open-to= -> /packs?auxillary-open-to=. The jest contract tests and the opt-in Playwright specs are repointed to match. - Deleted the V29-era terminal-ux browser proof: terminal-ux-browser-proof.ts, terminalUxBrowserProof.test.tsx, commercial-mvp.terminal-ux.spec.ts. Removed from the Gate Quality jest step + jest.config allowlist + the test:e2e:terminal-ux script; renamed test:e2e:v32-browser-proof -> test:e2e:accessibility-responsive-proof; CI step names drop "Terminal". - Frozen V39/V40 proofs that read the deleted files as evidence (v39-enterprise-reading-ux-state, v40-browser-e2e-visual-proof, v40-test-inventory-coverage-matrix) are era-pinned via a new packages/protocol/test/era-pinned-superseded-browser-proofs.js shim (skips WITH A REASON once the terminal-ux proof is absent; runs unchanged on V39/V40 canon). Era-pinned V29/V32 .mjs checkers + historical canon-promotion workflows keep their references (inert at the current pointer; deep removal is F8 scope). Verified: uapi tsc 0; uapi jest 156 suites / 619 pass; protocol 237 tests, 193 pass, 0 fail, 44 skipped; no live/dangling refs to the deleted files. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 2e8aef1 commit 6e4ea4f

17 files changed

Lines changed: 238 additions & 538 deletions

.github/workflows/bitcode-gate-quality.yml

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -926,24 +926,19 @@ jobs:
926926
tests/protocolCommercialBoundary.test.ts \
927927
tests/terminalTransactionDetailCards.test.tsx \
928928
tests/terminalTransactionDetailSnapshot.test.ts \
929-
tests/terminalUxBrowserProof.test.tsx \
930929
tests/bitcodeBrowserProof.test.ts \
931930
tests/bitcodeBrowserAccessibilityResponsiveProof.test.ts \
932931
tests/readingOperationalTelemetryPipelineLog.test.tsx \
933932
tests/pipelineExecutionLogHeader.test.tsx \
934933
--runInBand
935934
936-
- name: Install Terminal browser proof browser
935+
- name: Install browser-proof browser
937936
if: vars.BITCODE_ENABLE_GATE_BROWSER_PROOF == '1'
938937
run: pnpm --dir uapi exec playwright install chromium --with-deps
939938

940-
- name: Browser proof Terminal cockpit
939+
- name: Browser proof Deposits, Reads, and Auxillaries responsive accessibility
941940
if: vars.BITCODE_ENABLE_GATE_BROWSER_PROOF == '1'
942-
run: pnpm --dir uapi run test:e2e:terminal-ux
943-
944-
- name: Browser proof Terminal and Auxillaries responsive accessibility
945-
if: vars.BITCODE_ENABLE_GATE_BROWSER_PROOF == '1'
946-
run: pnpm --dir uapi run test:e2e:v32-browser-proof
941+
run: pnpm --dir uapi run test:e2e:accessibility-responsive-proof
947942

948943
- name: Browser proof product surfaces
949944
if: vars.BITCODE_ENABLE_GATE_BROWSER_PROOF == '1'

BITCODE_SPEC_V48_NOTES.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,37 @@ realization still stands. The proofs are NOT re-pointed at the plural routes —
578578
Gate 3 rewrote those files, so their historical content predicates would not
579579
match, and the frozen proofs attest their own era.
580580

581+
### Legacy terminal browser-proof eradication (Garrett, 2026-07-05)
582+
583+
The legacy `/terminal` cockpit **browser proofs** are eradicated and the active
584+
browser-proof coverage is repointed at the current product surfaces:
585+
586+
- The two ACTIVE browser-proof contracts (`uapi/app/bitcode-browser-proof.ts`,
587+
`uapi/app/bitcode-browser-accessibility-responsive-proof.ts`) drop the
588+
`terminal` surface (routes `/terminal…`) and instead prove `deposits`
589+
(`/deposits`) and `reads` (`/reads`) — real routes, real testids
590+
(`route-shell-deposit`/`deposits-pipelines-table`/`deposit-synthesis-telemetry`,
591+
`route-shell-read`/`reads-pipelines-table`/`reads-synthesized-packs`) — with the
592+
Auxillaries routes moved from `/terminal?auxillary-open-to=` to
593+
`/packs?auxillary-open-to=`. Their jest contract tests and the (opt-in,
594+
gate-var-guarded) Playwright specs are repointed to match.
595+
- The V29-era terminal-ux browser proof is DELETED:
596+
`uapi/app/terminal/terminal-ux-browser-proof.ts`,
597+
`uapi/tests/terminalUxBrowserProof.test.tsx`, and
598+
`uapi/tests/e2e/commercial-mvp.terminal-ux.spec.ts` — removed from the Gate
599+
Quality jest step, the `jest.config.cjs` allowlist, and the `test:e2e:terminal-ux`
600+
package script; the accessibility script is renamed
601+
`test:e2e:v32-browser-proof``test:e2e:accessibility-responsive-proof`, and the
602+
CI step names drop "Terminal".
603+
- Frozen V39/V40 canonical proofs that read those deleted files as evidence
604+
(`v39-enterprise-reading-ux-state`, `v40-browser-e2e-visual-proof`,
605+
`v40-test-inventory-coverage-matrix`) are era-pinned via a second shim,
606+
`packages/protocol/test/era-pinned-superseded-browser-proofs.js`, which skips
607+
WITH A REASON once the terminal-ux proof is absent (and runs unchanged on the
608+
promoted V39/V40 canon). The era-pinned V29/V32 `.mjs` checker scripts and the
609+
historical canon-promotion workflows keep their references (inert at the current
610+
pointer) — their deep removal belongs to the broader F8 `/terminal` eradication.
611+
581612
### Deposit/Read product-surface presentation laws (Garrett, 2026-07-04)
582613

583614
The 2026-07-04 UI wave on the product surfaces (/deposits, /reads, and the
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/**
2+
* Era-pin for proofs superseded by the V48 legacy terminal browser-proof eradication.
3+
*
4+
* V48 Gate 3 eradicated the legacy `/terminal` cockpit browser proof — the
5+
* `terminal-ux-browser-proof.ts` contract, its jest test, and the
6+
* `commercial-mvp.terminal-ux.spec.ts` Playwright spec — and repointed the
7+
* active browser-proof contracts at the current product surfaces (`/deposits`,
8+
* `/reads`). The V39/V40 canonical proofs that read those terminal-ux files as
9+
* evidence therefore attest a superseded era.
10+
*
11+
* As with `era-pinned-superseded-routes.js`, the frozen historical proofs are
12+
* NOT re-pointed (they attest their own era); they are era-pinned: a superseded
13+
* proof file imports `test` from here instead of `node:test`, and every test it
14+
* registers is skipped WITH A REASON once the terminal-ux browser proof is
15+
* gone. On the promoted V39/V40 canon — where the terminal-ux files still
16+
* exist — `SUPERSEDED` is false and the proofs run unchanged.
17+
*/
18+
19+
import nodeTest from 'node:test';
20+
import { existsSync } from 'node:fs';
21+
import path from 'node:path';
22+
import { fileURLToPath } from 'node:url';
23+
24+
const REPO_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../..');
25+
26+
/** True once the legacy terminal-ux browser proof has been eradicated. */
27+
export const SUPERSEDED = !existsSync(
28+
path.join(REPO_ROOT, 'uapi/app/terminal/terminal-ux-browser-proof.ts'),
29+
);
30+
31+
const SKIP_REASON =
32+
'era-pinned: superseded by V48 Gate 3 legacy terminal browser-proof eradication (repointed to /deposits, /reads)';
33+
34+
function eraPinnedTest(name, options, fn) {
35+
if (!SUPERSEDED) return nodeTest(name, options, fn);
36+
if (typeof options === 'function') {
37+
fn = options;
38+
options = {};
39+
}
40+
return nodeTest(name, { ...(options || {}), skip: SKIP_REASON }, fn || (() => {}));
41+
}
42+
43+
export default eraPinnedTest;
44+
export { eraPinnedTest as test };

packages/protocol/test/v39-enterprise-reading-ux-state.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import assert from 'node:assert/strict';
2-
import test from 'node:test';
2+
import test from './era-pinned-superseded-browser-proofs.js';
33

44
import {
55
V39_ENTERPRISE_READING_STEP_IDS,

packages/protocol/test/v40-browser-e2e-visual-proof.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import assert from 'node:assert/strict';
2-
import test from 'node:test';
2+
import test from './era-pinned-superseded-browser-proofs.js';
33

44
import {
55
V40_BROWSER_E2E_VISUAL_EXPECTED_TOTALS,

packages/protocol/test/v40-test-inventory-coverage-matrix.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import assert from 'node:assert/strict';
2-
import test from 'node:test';
2+
import test from './era-pinned-superseded-browser-proofs.js';
33

44
import {
55
V40_TEST_INVENTORY_COVERAGE_MATRIX_ARTIFACT_PATH,

uapi/app/bitcode-browser-accessibility-responsive-proof.ts

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,44 +18,69 @@ export const BITCODE_BROWSER_ACCESSIBILITY_RESPONSIVE_PROOF_ASSERTIONS = [
1818

1919
export const BITCODE_BROWSER_ACCESSIBILITY_RESPONSIVE_PROOF_SURFACES = [
2020
{
21-
id: 'terminal',
22-
label: 'Bitcode Terminal',
21+
id: 'deposits',
22+
label: 'Bitcode Deposits',
2323
routes: [
24-
{ id: 'default', path: '/terminal', state: 'default' },
24+
{ id: 'default', path: '/deposits', state: 'default' },
2525
{
2626
id: 'guided',
27-
path: '/terminal',
27+
path: '/deposits',
2828
state: 'guided',
29-
selector: '[data-testid="terminal-transaction-workspace"]',
29+
selector: '[data-testid="deposits-pipelines-table"]',
3030
},
3131
{
3232
id: 'detail',
33-
path: '/terminal?transactionId=mock-run-branch-remediation&transactionDetail=activity',
33+
path: '/deposits?transactionId=mock-run-branch-remediation',
3434
state: 'detail',
35-
selector: '[data-testid="terminal-selected-activity-detail"]',
35+
selector: '[data-testid="deposit-synthesis-telemetry"]',
3636
},
3737
],
3838
landmarks: ['main', 'region', 'group'],
3939
evidenceFiles: [
40-
'uapi/tests/terminalUxBrowserProof.test.tsx',
41-
'uapi/tests/e2e/commercial-mvp.terminal-ux.spec.ts',
40+
'uapi/tests/depositPageClient.test.tsx',
41+
'uapi/tests/e2e/commercial-mvp.ip-exchange.spec.ts',
42+
'uapi/tests/e2e/bitcode-browser-accessibility-responsive-proof.spec.ts',
43+
],
44+
},
45+
{
46+
id: 'reads',
47+
label: 'Bitcode Reads',
48+
routes: [
49+
{ id: 'default', path: '/reads', state: 'default' },
50+
{
51+
id: 'guided',
52+
path: '/reads',
53+
state: 'guided',
54+
selector: '[data-testid="reads-pipelines-table"]',
55+
},
56+
{
57+
id: 'detail',
58+
path: '/reads?transactionId=mock-run-branch-remediation',
59+
state: 'detail',
60+
selector: '[data-testid="reads-synthesized-packs"]',
61+
},
62+
],
63+
landmarks: ['main', 'region', 'group'],
64+
evidenceFiles: [
65+
'uapi/tests/readPageClient.test.tsx',
66+
'uapi/tests/e2e/commercial-mvp.ip-exchange.spec.ts',
4267
'uapi/tests/e2e/bitcode-browser-accessibility-responsive-proof.spec.ts',
4368
],
4469
},
4570
{
4671
id: 'auxillaries',
4772
label: 'Bitcode Auxillaries',
4873
routes: [
49-
{ id: 'default', path: '/terminal?auxillary-open-to=wallet', state: 'default' },
74+
{ id: 'default', path: '/packs?auxillary-open-to=wallet', state: 'default' },
5075
{
5176
id: 'guided',
52-
path: '/terminal?auxillary-open-to=profile',
77+
path: '/packs?auxillary-open-to=profile',
5378
state: 'guided',
5479
selector: '[data-testid="auxillaries-pane-navigation"]',
5580
},
5681
{
5782
id: 'detail',
58-
path: '/terminal?auxillary-open-to=interfaces',
83+
path: '/packs?auxillary-open-to=interfaces',
5984
state: 'detail',
6085
selector: '[data-testid="auxillaries-active-pane-region"]',
6186
},

uapi/app/bitcode-browser-proof.ts

Lines changed: 45 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,50 @@ export const BITCODE_BROWSER_PROOF_VISUAL_STRATEGY = [
2626

2727
export const BITCODE_BROWSER_PROOF_SURFACES = [
2828
{
29-
id: 'terminal',
30-
label: 'Bitcode Terminal',
29+
id: 'deposits',
30+
label: 'Bitcode Deposits',
3131
routes: [
32-
{ id: 'request-read', path: '/terminal', state: 'five-stage Reading request' },
3332
{
34-
id: 'selected-activity',
35-
path: '/terminal?transactionId=mock-run-branch-remediation&transactionDetail=activity',
36-
state: 'transaction activity detail',
37-
selector: '[data-testid="terminal-activity-stream-surface"]',
33+
id: 'pipelines',
34+
path: '/deposits',
35+
state: 'deposit pipelines and option synthesis',
36+
selector: '[data-testid="deposits-pipelines-table"]',
3837
},
3938
{
40-
id: 'blocked-console',
41-
path: '/terminal?transactionId=mock-run-branch-remediation&transactionDetail=console',
42-
state: 'blocked source-safe console detail',
39+
id: 'selected-telemetry',
40+
path: '/deposits?transactionId=mock-run-branch-remediation',
41+
state: 'selected synthesis telemetry detail',
42+
selector: '[data-testid="deposit-synthesis-telemetry"]',
43+
},
44+
],
45+
landmarks: ['main', 'region', 'group', 'status'],
46+
interactionStates: [
47+
'connect-source',
48+
'synthesize-options',
49+
'review-measurements',
50+
'admit-to-depository',
51+
],
52+
evidenceFiles: [
53+
'uapi/tests/e2e/commercial-mvp.ip-exchange.spec.ts',
54+
'uapi/tests/e2e/bitcode-browser-proof.spec.ts',
55+
'uapi/tests/depositPageClient.test.tsx',
56+
],
57+
},
58+
{
59+
id: 'reads',
60+
label: 'Bitcode Reads',
61+
routes: [
62+
{
63+
id: 'pipelines',
64+
path: '/reads',
65+
state: 'five-stage Reading request and pipelines',
66+
selector: '[data-testid="reads-pipelines-table"]',
67+
},
68+
{
69+
id: 'selected-telemetry',
70+
path: '/reads?transactionId=mock-run-branch-remediation',
71+
state: 'selected read telemetry detail',
72+
selector: '[data-testid="reads-synthesized-packs"]',
4373
},
4474
],
4575
landmarks: ['main', 'region', 'group', 'status'],
@@ -51,10 +81,9 @@ export const BITCODE_BROWSER_PROOF_SURFACES = [
5181
'buy-asset-pack-settle',
5282
],
5383
evidenceFiles: [
54-
'uapi/tests/e2e/commercial-mvp.terminal.spec.ts',
55-
'uapi/tests/e2e/commercial-mvp.terminal-ux.spec.ts',
84+
'uapi/tests/e2e/commercial-mvp.ip-exchange.spec.ts',
5685
'uapi/tests/e2e/bitcode-browser-proof.spec.ts',
57-
'uapi/tests/terminalUxBrowserProof.test.tsx',
86+
'uapi/tests/readPageClient.test.tsx',
5887
],
5988
},
6089
{
@@ -77,9 +106,9 @@ export const BITCODE_BROWSER_PROOF_SURFACES = [
77106
id: 'auxillaries',
78107
label: 'Bitcode Auxillaries',
79108
routes: [
80-
{ id: 'wallet', path: '/terminal?auxillary-open-to=wallet', state: 'wallet support pane' },
81-
{ id: 'profile', path: '/terminal?auxillary-open-to=profile', state: 'profile support pane' },
82-
{ id: 'interfaces', path: '/terminal?auxillary-open-to=interfaces', state: 'interfaces support pane' },
109+
{ id: 'wallet', path: '/packs?auxillary-open-to=wallet', state: 'wallet support pane' },
110+
{ id: 'profile', path: '/packs?auxillary-open-to=profile', state: 'profile support pane' },
111+
{ id: 'interfaces', path: '/packs?auxillary-open-to=interfaces', state: 'interfaces support pane' },
83112
],
84113
landmarks: ['main', 'navigation', 'region', 'status'],
85114
interactionStates: ['skip-to-active-pane', 'pane-tabs', 'expandable-audit-detail'],

0 commit comments

Comments
 (0)