Mockup: add-host flow (round 1) #82

Open
opened 2026-10-07 13:49:02 +00:00 by kayg · 34 comments
Owner

Add-host flow mockup, round 1 (D132, D138-D141, D144, D156, D162). In-product prototype on branch proto-addhost, preview at http://10.69.69.125:47371/?mock=1&proto=addhost. Orchestrator reviews before the owner sees it.

Add-host flow mockup, round 1 (D132, D138-D141, D144, D156, D162). In-product prototype on branch proto-addhost, preview at http://10.69.69.125:47371/?mock=1&proto=addhost. Orchestrator reviews before the owner sees it.
Author
Owner

Starting the add-host flow mockup on branch proto-addhost from base 2786430c9b. Issue #82 and parent #58 both have no comments; worktree was clean.

Starting the add-host flow mockup on branch proto-addhost from base 2786430c9b5f1d6485f88ccfe5295294fb5c39b7. Issue #82 and parent #58 both have no comments; worktree was clean.
Author
Owner

Finding: #82 and add-host parent #58 have no prior comments. packages/ui/src has shared overlay, pill, tick, tooltip and spring primitives but no toast or switch primitive; I will add the missing reusable pieces in packages/ui before using them in the mock flow.

Finding: #82 and add-host parent #58 have no prior comments. packages/ui/src has shared overlay, pill, tick, tooltip and spring primitives but no toast or switch primitive; I will add the missing reusable pieces in packages/ui before using them in the mock flow.
Author
Owner

Resuming the add-host mockup on proto-addhost at base 2786430c9b. #82 has two prior comments and parent #58 has none. The shared switch and toast modules from the prior step are present as unstaged changes; I’m reviewing and carrying them forward.

Resuming the add-host mockup on proto-addhost at base 2786430c9b5f1d6485f88ccfe5295294fb5c39b7. #82 has two prior comments and parent #58 has none. The shared switch and toast modules from the prior step are present as unstaged changes; I’m reviewing and carrying them forward.
Author
Owner

RED: the new production-build browser check fails as expected before implementation: is absent on (test/add-host-prototype.spec.ts:10, 18; Error: Playwright Test did not expect test() to be called here.
Most common reasons include:

  • You are calling test() in a configuration file.

  • You are calling test() in a file that is imported by the configuration file.

  • You have two different versions of @playwright/test. This usually happens
    when one of the dependencies in your package.json depends on @playwright/test.

  • You are calling test() from an async test.describe() block. Only sync ones are supported.

    at apps/tracer/test/add-host-prototype.spec.ts:18

    16 | }
    17 |

18 | test("add-host preview opens in a canvas window with quiet, deduplicated discovery", async ({ browser }) => {
| ^
19 | const { context, page } = await makePage(browser);
20 | try {
21 | await openAddHost(context, page);
at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13)
at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24)
at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12)
at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/add-host-prototype.spec.ts:18:1
Error: Playwright Test did not expect test.beforeAll() to be called here.
Most common reasons include:

  • You are calling test.beforeAll() in a configuration file.

  • You are calling test.beforeAll() in a file that is imported by the configuration file.

  • You have two different versions of @playwright/test. This usually happens
    when one of the dependencies in your package.json depends on @playwright/test.

  • You are calling test.beforeAll() from an async test.describe() block. Only sync ones are supported.

    at apps/tracer/test/auth-binary.spec.ts:5

    3 | import { execFileSync } from "node:child_process";
    4 | let source: string;

5 | test.beforeAll(() => {
| ^
6 | source = execFileSync("bun", ["-e", `
7 | const build = await Bun.build({ entrypoints: ["src/auth.ts"], target: "browser", plugins: [{ name: "test-exports", setup(build) {
8 | build.onLoad({ filter: /auth\.ts$/ }, async (args) => ({ contents: (await Bun.file(process.env.AUTH_BINARY_SOURCE ?? args.path).text()) + "\nexport { prfFrom, credentialProof, copyBytes };", loader: "ts" }));
at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13)
at _TestTypeImpl._hook (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2343:24)
at Function.beforeAll (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12)
at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/auth-binary.spec.ts:5:6
Error: Playwright Test did not expect test() to be called here.
Most common reasons include:

  • You are calling test() in a configuration file.

  • You are calling test() in a file that is imported by the configuration file.

  • You have two different versions of @playwright/test. This usually happens
    when one of the dependencies in your package.json depends on @playwright/test.

  • You are calling test() from an async test.describe() block. Only sync ones are supported.

    at apps/tracer/test/core-screen.spec.ts:64

    62 | }
    63 |

64 | test("curated overlay materials preserve foreground contrast in every theme", () => {
| ^
65 | for (const theme of Object.values(THEMES)) {
66 | const surface = overlayMaterial(theme).surface;
67 | expect(contrastRatio(theme.fg, surface), ${theme.name} fg on overlay).toBeGreaterThanOrEqual(7);
at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13)
at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24)
at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12)
at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/core-screen.spec.ts:64:1
Error: Playwright Test did not expect test() to be called here.
Most common reasons include:

  • You are calling test() in a configuration file.

  • You are calling test() in a file that is imported by the configuration file.

  • You have two different versions of @playwright/test. This usually happens
    when one of the dependencies in your package.json depends on @playwright/test.

  • You are calling test() from an async test.describe() block. Only sync ones are supported.

    at apps/tracer/test/detached-output.spec.ts:4

    2 | import { expect, test } from "playwright/test";
    3 |

4 | test("owned output drains while detached before the next Attach", async ({ page }) => {
| ^
5 | const context = page.context();
6 | await context.request.post("/__mock/reset");
7 | await context.request.post("/__mock/open-terminal");
at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13)
at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24)
at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12)
at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/detached-output.spec.ts:4:1
Error: Playwright Test did not expect test() to be called here.
Most common reasons include:

  • You are calling test() in a configuration file.

  • You are calling test() in a file that is imported by the configuration file.

  • You have two different versions of @playwright/test. This usually happens
    when one of the dependencies in your package.json depends on @playwright/test.

  • You are calling test() from an async test.describe() block. Only sync ones are supported.

    at apps/tracer/test/motion-audit.spec.ts:39

    37 | }
    38 |

39 | test("measure deployed motion at 4x CPU and capture production screens", async ({ browser, page }, testInfo) => {
| ^
40 | test.setTimeout(120_000);
41 | const context = page.context();
42 | const requestedWorkers: string[] = [];
at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13)
at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24)
at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12)
at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/motion-audit.spec.ts:39:1
Error: Playwright Test did not expect test() to be called here.
Most common reasons include:

  • You are calling test() in a configuration file.

  • You are calling test() in a file that is imported by the configuration file.

  • You have two different versions of @playwright/test. This usually happens
    when one of the dependencies in your package.json depends on @playwright/test.

  • You are calling test() from an async test.describe() block. Only sync ones are supported.

    at apps/tracer/test/onboarding.spec.ts:9

    7 | ] as const;
    8 |

9 | test("invalid setup token stays on step 1 with focused guidance", async ({ page }, testInfo) => {
| ^
10 | test.setTimeout(60_000);
11 | const context = page.context();
12 | await context.request.post("/__mock/reset");
at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13)
at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24)
at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12)
at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/onboarding.spec.ts:9:1
Error: Playwright Test did not expect test() to be called here.
Most common reasons include:

  • You are calling test() in a configuration file.

  • You are calling test() in a file that is imported by the configuration file.

  • You have two different versions of @playwright/test. This usually happens
    when one of the dependencies in your package.json depends on @playwright/test.

  • You are calling test() from an async test.describe() block. Only sync ones are supported.

    at apps/tracer/test/renderer-regression.spec.ts:17

    15 |
    16 | for (const fixture of terminalFixtures) {

17 | test(renderer survives ${fixture.name} and paints a canary, async ({ page }) => {
| ^
18 | test.setTimeout(10 * 60_000);
19 | const context = page.context();
20 | const pageErrors: string[] = [];
at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13)
at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24)
at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12)
at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/renderer-regression.spec.ts:17:3
Error: Playwright Test did not expect test() to be called here.
Most common reasons include:

  • You are calling test() in a configuration file.

  • You are calling test() in a file that is imported by the configuration file.

  • You have two different versions of @playwright/test. This usually happens
    when one of the dependencies in your package.json depends on @playwright/test.

  • You are calling test() from an async test.describe() block. Only sync ones are supported.

    at apps/tracer/test/setup-layout.spec.ts:9

    7 | ] as const;
    8 |

9 | test("setup primary button reaches the card content edge on phone and desktop", async ({ page }, testInfo) => {
| ^
10 | await page.context().request.post("/__mock/reset");
11 | await page.emulateMedia({ colorScheme: "dark", reducedMotion: "no-preference" });
12 | await page.goto("/?mock=1");
at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13)
at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24)
at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12)
at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/setup-layout.spec.ts:9:1
Error: Playwright Test did not expect test() to be called here.
Most common reasons include:

  • You are calling test() in a configuration file.

  • You are calling test() in a file that is imported by the configuration file.

  • You have two different versions of @playwright/test. This usually happens
    when one of the dependencies in your package.json depends on @playwright/test.

  • You are calling test() from an async test.describe() block. Only sync ones are supported.

    at apps/tracer/test/snapshot-resume.spec.ts:8

    6 | const SNAPSHOT_MARKER = "TRACER_SNAPSHOT_READY";
    7 |

8 | test("a wrapped-ring Snapshot paints echoes and keeps resize, scrollback, and theme state", async ({ page }) => {
| ^
9 | test.setTimeout(60_000);
10 | const context = page.context();
11 | await context.request.post("/__mock/reset");
at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13)
at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24)
at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12)
at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/snapshot-resume.spec.ts:8:1
Error: Playwright Test did not expect test() to be called here.
Most common reasons include:

  • You are calling test() in a configuration file.

  • You are calling test() in a file that is imported by the configuration file.

  • You have two different versions of @playwright/test. This usually happens
    when one of the dependencies in your package.json depends on @playwright/test.

  • You are calling test() from an async test.describe() block. Only sync ones are supported.

    at apps/tracer/test/terminal.spec.ts:5

    3 | import { expect, test } from "playwright/test";
    4 |

5 | test("first run, passkey login, terminal resume, and the latency probe", async ({ page }, testInfo) => {
| ^
6 | const context = page.context();
7 | await context.request.post("/__mock/reset");
8 | const authRequests: string[] = [];
at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13)
at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24)
at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12)
at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/terminal.spec.ts:5:1
Error: Playwright Test did not expect test() to be called here.
Most common reasons include:

  • You are calling test() in a configuration file.

  • You are calling test() in a file that is imported by the configuration file.

  • You have two different versions of @playwright/test. This usually happens
    when one of the dependencies in your package.json depends on @playwright/test.

  • You are calling test() from an async test.describe() block. Only sync ones are supported.

    at apps/tracer/test/unicode-fidelity.spec.ts:7

    5 | const MODES = ["single", "utf8-split", "grapheme-split", "snapshot"] as const;
    6 |

7 | test("raw frames retain behemoth emoji clusters across UTF-8 and grapheme boundaries", async ({ page }) => {
| ^
8 | test.setTimeout(60_000);
9 | const context = page.context();
10 | for (const mode of MODES) {
at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13)
at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24)
at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12)
at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/unicode-fidelity.spec.ts:7:1
Error: Playwright Test did not expect test() to be called here.
Most common reasons include:

  • You are calling test() in a configuration file.

  • You are calling test() in a file that is imported by the configuration file.

  • You have two different versions of @playwright/test. This usually happens
    when one of the dependencies in your package.json depends on @playwright/test.

  • You are calling test() from an async test.describe() block. Only sync ones are supported.

    at apps/tracer/test/windows-gestures.spec.ts:63

    61 | }
    62 |

63 | test("a tap activates an inactive window without focusing the terminal input", async ({ browser }) => {
| ^
64 | const context = await touchContext(browser);
65 | try {
66 | const page = await context.newPage();
at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13)
at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24)
at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12)
at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/windows-gestures.spec.ts:63:1
Error: Playwright Test did not expect test() to be called here.
Most common reasons include:

  • You are calling test() in a configuration file.

  • You are calling test() in a file that is imported by the configuration file.

  • You have two different versions of @playwright/test. This usually happens
    when one of the dependencies in your package.json depends on @playwright/test.

  • You are calling test() from an async test.describe() block. Only sync ones are supported.

    at apps/tracer/test/windows-prototype.spec.ts:74

    72 | }
    73 |

74 | test("mock windows deep link opens with an authenticated fake owner", async ({ browser }) => {
| ^
75 | const context = await browser.newContext({ baseURL: origin, viewport: { width: 393, height: 852 } });
76 | try {
77 | const page = await context.newPage();
at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13)
at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24)
at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12)
at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/windows-prototype.spec.ts:74:1
Error: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. Received protocol 'bun:'
Error: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. Received protocol 'bun:'
Error: No tests found.
Make sure that arguments are regular expressions matching test files.
You may need to escape symbols like "$" or "*" and quote the arguments., 1 failed).

RED: the new production-build browser check fails as expected before implementation: is absent on (test/add-host-prototype.spec.ts:10, 18; Error: Playwright Test did not expect test() to be called here. Most common reasons include: - You are calling test() in a configuration file. - You are calling test() in a file that is imported by the configuration file. - You have two different versions of @playwright/test. This usually happens when one of the dependencies in your package.json depends on @playwright/test. - You are calling test() from an async test.describe() block. Only sync ones are supported. at apps/tracer/test/add-host-prototype.spec.ts:18 16 | } 17 | > 18 | test("add-host preview opens in a canvas window with quiet, deduplicated discovery", async ({ browser }) => { | ^ 19 | const { context, page } = await makePage(browser); 20 | try { 21 | await openAddHost(context, page); at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13) at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24) at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12) at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/add-host-prototype.spec.ts:18:1 Error: Playwright Test did not expect test.beforeAll() to be called here. Most common reasons include: - You are calling test.beforeAll() in a configuration file. - You are calling test.beforeAll() in a file that is imported by the configuration file. - You have two different versions of @playwright/test. This usually happens when one of the dependencies in your package.json depends on @playwright/test. - You are calling test.beforeAll() from an async test.describe() block. Only sync ones are supported. at apps/tracer/test/auth-binary.spec.ts:5 3 | import { execFileSync } from "node:child_process"; 4 | let source: string; > 5 | test.beforeAll(() => { | ^ 6 | source = execFileSync("bun", ["-e", ` 7 | const build = await Bun.build({ entrypoints: ["src/auth.ts"], target: "browser", plugins: [{ name: "test-exports", setup(build) { 8 | build.onLoad({ filter: /auth\\.ts$/ }, async (args) => ({ contents: (await Bun.file(process.env.AUTH_BINARY_SOURCE ?? args.path).text()) + "\\nexport { prfFrom, credentialProof, copyBytes };", loader: "ts" })); at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13) at _TestTypeImpl._hook (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2343:24) at Function.beforeAll (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12) at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/auth-binary.spec.ts:5:6 Error: Playwright Test did not expect test() to be called here. Most common reasons include: - You are calling test() in a configuration file. - You are calling test() in a file that is imported by the configuration file. - You have two different versions of @playwright/test. This usually happens when one of the dependencies in your package.json depends on @playwright/test. - You are calling test() from an async test.describe() block. Only sync ones are supported. at apps/tracer/test/core-screen.spec.ts:64 62 | } 63 | > 64 | test("curated overlay materials preserve foreground contrast in every theme", () => { | ^ 65 | for (const theme of Object.values(THEMES)) { 66 | const surface = overlayMaterial(theme).surface; 67 | expect(contrastRatio(theme.fg, surface), `${theme.name} fg on overlay`).toBeGreaterThanOrEqual(7); at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13) at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24) at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12) at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/core-screen.spec.ts:64:1 Error: Playwright Test did not expect test() to be called here. Most common reasons include: - You are calling test() in a configuration file. - You are calling test() in a file that is imported by the configuration file. - You have two different versions of @playwright/test. This usually happens when one of the dependencies in your package.json depends on @playwright/test. - You are calling test() from an async test.describe() block. Only sync ones are supported. at apps/tracer/test/detached-output.spec.ts:4 2 | import { expect, test } from "playwright/test"; 3 | > 4 | test("owned output drains while detached before the next Attach", async ({ page }) => { | ^ 5 | const context = page.context(); 6 | await context.request.post("/__mock/reset"); 7 | await context.request.post("/__mock/open-terminal"); at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13) at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24) at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12) at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/detached-output.spec.ts:4:1 Error: Playwright Test did not expect test() to be called here. Most common reasons include: - You are calling test() in a configuration file. - You are calling test() in a file that is imported by the configuration file. - You have two different versions of @playwright/test. This usually happens when one of the dependencies in your package.json depends on @playwright/test. - You are calling test() from an async test.describe() block. Only sync ones are supported. at apps/tracer/test/motion-audit.spec.ts:39 37 | } 38 | > 39 | test("measure deployed motion at 4x CPU and capture production screens", async ({ browser, page }, testInfo) => { | ^ 40 | test.setTimeout(120_000); 41 | const context = page.context(); 42 | const requestedWorkers: string[] = []; at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13) at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24) at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12) at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/motion-audit.spec.ts:39:1 Error: Playwright Test did not expect test() to be called here. Most common reasons include: - You are calling test() in a configuration file. - You are calling test() in a file that is imported by the configuration file. - You have two different versions of @playwright/test. This usually happens when one of the dependencies in your package.json depends on @playwright/test. - You are calling test() from an async test.describe() block. Only sync ones are supported. at apps/tracer/test/onboarding.spec.ts:9 7 | ] as const; 8 | > 9 | test("invalid setup token stays on step 1 with focused guidance", async ({ page }, testInfo) => { | ^ 10 | test.setTimeout(60_000); 11 | const context = page.context(); 12 | await context.request.post("/__mock/reset"); at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13) at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24) at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12) at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/onboarding.spec.ts:9:1 Error: Playwright Test did not expect test() to be called here. Most common reasons include: - You are calling test() in a configuration file. - You are calling test() in a file that is imported by the configuration file. - You have two different versions of @playwright/test. This usually happens when one of the dependencies in your package.json depends on @playwright/test. - You are calling test() from an async test.describe() block. Only sync ones are supported. at apps/tracer/test/renderer-regression.spec.ts:17 15 | 16 | for (const fixture of terminalFixtures) { > 17 | test(`renderer survives ${fixture.name} and paints a canary`, async ({ page }) => { | ^ 18 | test.setTimeout(10 * 60_000); 19 | const context = page.context(); 20 | const pageErrors: string[] = []; at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13) at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24) at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12) at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/renderer-regression.spec.ts:17:3 Error: Playwright Test did not expect test() to be called here. Most common reasons include: - You are calling test() in a configuration file. - You are calling test() in a file that is imported by the configuration file. - You have two different versions of @playwright/test. This usually happens when one of the dependencies in your package.json depends on @playwright/test. - You are calling test() from an async test.describe() block. Only sync ones are supported. at apps/tracer/test/setup-layout.spec.ts:9 7 | ] as const; 8 | > 9 | test("setup primary button reaches the card content edge on phone and desktop", async ({ page }, testInfo) => { | ^ 10 | await page.context().request.post("/__mock/reset"); 11 | await page.emulateMedia({ colorScheme: "dark", reducedMotion: "no-preference" }); 12 | await page.goto("/?mock=1"); at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13) at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24) at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12) at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/setup-layout.spec.ts:9:1 Error: Playwright Test did not expect test() to be called here. Most common reasons include: - You are calling test() in a configuration file. - You are calling test() in a file that is imported by the configuration file. - You have two different versions of @playwright/test. This usually happens when one of the dependencies in your package.json depends on @playwright/test. - You are calling test() from an async test.describe() block. Only sync ones are supported. at apps/tracer/test/snapshot-resume.spec.ts:8 6 | const SNAPSHOT_MARKER = "__TRACER_SNAPSHOT_READY__"; 7 | > 8 | test("a wrapped-ring Snapshot paints echoes and keeps resize, scrollback, and theme state", async ({ page }) => { | ^ 9 | test.setTimeout(60_000); 10 | const context = page.context(); 11 | await context.request.post("/__mock/reset"); at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13) at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24) at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12) at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/snapshot-resume.spec.ts:8:1 Error: Playwright Test did not expect test() to be called here. Most common reasons include: - You are calling test() in a configuration file. - You are calling test() in a file that is imported by the configuration file. - You have two different versions of @playwright/test. This usually happens when one of the dependencies in your package.json depends on @playwright/test. - You are calling test() from an async test.describe() block. Only sync ones are supported. at apps/tracer/test/terminal.spec.ts:5 3 | import { expect, test } from "playwright/test"; 4 | > 5 | test("first run, passkey login, terminal resume, and the latency probe", async ({ page }, testInfo) => { | ^ 6 | const context = page.context(); 7 | await context.request.post("/__mock/reset"); 8 | const authRequests: string[] = []; at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13) at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24) at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12) at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/terminal.spec.ts:5:1 Error: Playwright Test did not expect test() to be called here. Most common reasons include: - You are calling test() in a configuration file. - You are calling test() in a file that is imported by the configuration file. - You have two different versions of @playwright/test. This usually happens when one of the dependencies in your package.json depends on @playwright/test. - You are calling test() from an async test.describe() block. Only sync ones are supported. at apps/tracer/test/unicode-fidelity.spec.ts:7 5 | const MODES = ["single", "utf8-split", "grapheme-split", "snapshot"] as const; 6 | > 7 | test("raw frames retain behemoth emoji clusters across UTF-8 and grapheme boundaries", async ({ page }) => { | ^ 8 | test.setTimeout(60_000); 9 | const context = page.context(); 10 | for (const mode of MODES) { at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13) at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24) at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12) at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/unicode-fidelity.spec.ts:7:1 Error: Playwright Test did not expect test() to be called here. Most common reasons include: - You are calling test() in a configuration file. - You are calling test() in a file that is imported by the configuration file. - You have two different versions of @playwright/test. This usually happens when one of the dependencies in your package.json depends on @playwright/test. - You are calling test() from an async test.describe() block. Only sync ones are supported. at apps/tracer/test/windows-gestures.spec.ts:63 61 | } 62 | > 63 | test("a tap activates an inactive window without focusing the terminal input", async ({ browser }) => { | ^ 64 | const context = await touchContext(browser); 65 | try { 66 | const page = await context.newPage(); at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13) at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24) at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12) at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/windows-gestures.spec.ts:63:1 Error: Playwright Test did not expect test() to be called here. Most common reasons include: - You are calling test() in a configuration file. - You are calling test() in a file that is imported by the configuration file. - You have two different versions of @playwright/test. This usually happens when one of the dependencies in your package.json depends on @playwright/test. - You are calling test() from an async test.describe() block. Only sync ones are supported. at apps/tracer/test/windows-prototype.spec.ts:74 72 | } 73 | > 74 | test("mock windows deep link opens with an authenticated fake owner", async ({ browser }) => { | ^ 75 | const context = await browser.newContext({ baseURL: origin, viewport: { width: 393, height: 852 } }); 76 | try { 77 | const page = await context.newPage(); at _TestTypeImpl._currentSuite (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2257:13) at _TestTypeImpl._createTest (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:2271:24) at test (/home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/node_modules/playwright/lib/common/index.js:1220:12) at /home/kayg/Developer/infraternal/.worktrees/proto-addhost/apps/tracer/test/windows-prototype.spec.ts:74:1 Error: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. Received protocol 'bun:' Error: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. Received protocol 'bun:' Error: No tests found. Make sure that arguments are regular expressions matching test files. You may need to escape symbols like "$" or "*" and quote the arguments., 1 failed).
Author
Owner

RED: the production-build browser check fails as expected before implementation: the add-host window is absent on the addhost route (test/add-host-prototype.spec.ts:10, 18; TRACER_TEST_PORT=4782 bun x playwright test test/add-host-prototype.spec.ts --grep quiet, 1 failed).

RED: the production-build browser check fails as expected before implementation: the add-host window is absent on the addhost route (test/add-host-prototype.spec.ts:10, 18; TRACER_TEST_PORT=4782 bun x playwright test test/add-host-prototype.spec.ts --grep quiet, 1 failed).
Author
Owner

Finding: the first prototype browser pass showed that the source disclosure exposed no button role and test labels were ambiguous with the close control; manual and entry actions then timed out on those selectors. The run recorded 1 pass, 4 failures, 1 interrupted and 2 not run (apps/tracer/test-results/add-host-prototype-*/error-context.md). I am making the disclosure explicit and tightening selectors before rerunning.

Finding: the first prototype browser pass showed that the source disclosure exposed no button role and test labels were ambiguous with the close control; manual and entry actions then timed out on those selectors. The run recorded 1 pass, 4 failures, 1 interrupted and 2 not run (apps/tracer/test-results/add-host-prototype-*/error-context.md). I am making the disclosure explicit and tightening selectors before rerunning.
Author
Owner

Finding: launching Add hosts from the sidebar left the sidebar over the canvas window. Browser evidence: Playwright retried the close-button click 52 times; .sidebar-head intercepted pointer events. Fixing launch to dismiss the sidebar.

Finding: launching Add hosts from the sidebar left the sidebar over the canvas window. Browser evidence: Playwright retried the close-button click 52 times; .sidebar-head intercepted pointer events. Fixing launch to dismiss the sidebar.
Author
Owner

Step: shared source icons, switches, and toasts are in 84466a2. bun run check passed; 9 add-host browser assertions pass on the full working tree.

Step: shared source icons, switches, and toasts are in 84466a2. bun run check passed; 9 add-host browser assertions pass on the full working tree.
Author
Owner

Step: shared root-confirmation tip and mono-sized tooltip labels are in 49180a2. The focused Root available browser path passes; Escape, outside-click, focus restore, and reduced motion use one shared component.

Step: shared root-confirmation tip and mono-sized tooltip labels are in 49180a2. The focused Root available browser path passes; Escape, outside-click, focus restore, and reduced motion use one shared component.
Author
Owner

Step: mock discovery contract and six fixtures are in 364cc83. The inventory includes one already-added host, three SSH-ready hosts, and separate unreachable, authentication, and mesh-policy outcomes.

Step: mock discovery contract and six fixtures are in 364cc83. The inventory includes one already-added host, three SSH-ready hosts, and separate unreachable, authentication, and mesh-policy outcomes.
Author
Owner

Step: /__mock/proto/addhost inventory and preview auth are in 11bab70. The new route is mock-only; no production API was added.

Step: /__mock/proto/addhost inventory and preview auth are in 11bab70. The new route is mock-only; no production API was added.
Author
Owner

Step: the in-product canvas flow is in 5dc678f. Browser evidence fixed three interaction defects: sidebar overlay interception, source-switch remount, and terminal output blocking Root available; mixed failures now remain visible. Full focused spec: 9/9 passed.

Step: the in-product canvas flow is in 5dc678f. Browser evidence fixed three interaction defects: sidebar overlay interception, source-switch remount, and terminal output blocking Root available; mixed failures now remain visible. Full focused spec: 9/9 passed.
Author
Owner

Step: browser assertions are in 2024863. The focused Playwright spec passed 9/9 on TRACER_TEST_PORT=4782; source discovery and mixed install behavior are covered.

Step: browser assertions are in 2024863. The focused Playwright spec passed 9/9 on TRACER_TEST_PORT=4782; source discovery and mixed install behavior are covered.
Author
Owner

Step: the repeatable capture harness is in 80a4c9d. It generated the 68 screenshots with one capture row per file; screenshot dimensions were verified at 393×852 and 1440×900.

Step: the repeatable capture harness is in 80a4c9d. It generated the 68 screenshots with one capture row per file; screenshot dimensions were verified at 393×852 and 1440×900.
Author
Owner

Step: the 68 PNGs and manifest are committed in 797678c. Captures are under apps/tracer/captures/proto-addhost/; manifest.txt maps each file to 17 states, two themes, and two viewports (3.3 MiB total).

Step: the 68 PNGs and manifest are committed in 797678c. Captures are under apps/tracer/captures/proto-addhost/; manifest.txt maps each file to 17 states, two themes, and two viewports (3.3 MiB total).
Author
Owner

Gate finding: TRACER_TEST_PORT=4782 scripts/verify fast failed only Rust test review3_backend_reply_has_a_deadline (auth/review3_tests.rs:619; 70 passed, 1 failed, 6 ignored). fmt, VT fmt, clippy, cargo-deny, and both static builds passed. Rerunning the exact test in isolation.

Gate finding: TRACER_TEST_PORT=4782 scripts/verify fast failed only Rust test review3_backend_reply_has_a_deadline (auth/review3_tests.rs:619; 70 passed, 1 failed, 6 ignored). fmt, VT fmt, clippy, cargo-deny, and both static builds passed. Rerunning the exact test in isolation.
Author
Owner

Finished at HEAD 797678c982; worktree clean. Preview unit is active at http://10.69.69.125:47371/?mock=1&proto=addhost; preview and inventory return HTTP 200. Focused Playwright spec: 9/9 passed. Captures: 68 PNGs, 17 states across ink/paper and 393×852/1440×900, mapped in apps/tracer/captures/proto-addhost/manifest.txt (3.3 MiB).

Gate diagnostic: isolated review3_backend_reply_has_a_deadline reproduces an unrelated auth failure: it receives Close code 1011, reason connection ended, at 33.01s; the assertion at crates/infraternal-server/src/auth/review3_tests.rs:619 expects a failed Result. No auth files were changed.

TRACER_TEST_PORT=4782 scripts/verify fast summary (verbatim):
+---------------------------+--------------+
| Rust gate | Result |
+---------------------------+--------------+
| fmt | PASS |
| VT native fmt | PASS |
| clippy | PASS |
| test | FAIL (101) |
| cargo-deny | PASS |
| static builds | PASS |
+---------------------------+--------------+
test result: ok. 70 passed; 1 failed; 6 ignored; finished in 126.65s

Finished at HEAD 797678c982b8093331574fb9f8fb64519118cd80; worktree clean. Preview unit is active at http://10.69.69.125:47371/?mock=1&proto=addhost; preview and inventory return HTTP 200. Focused Playwright spec: 9/9 passed. Captures: 68 PNGs, 17 states across ink/paper and 393×852/1440×900, mapped in apps/tracer/captures/proto-addhost/manifest.txt (3.3 MiB). Gate diagnostic: isolated review3_backend_reply_has_a_deadline reproduces an unrelated auth failure: it receives Close code 1011, reason connection ended, at 33.01s; the assertion at crates/infraternal-server/src/auth/review3_tests.rs:619 expects a failed Result. No auth files were changed. TRACER_TEST_PORT=4782 scripts/verify fast summary (verbatim): +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | clippy | PASS | | test | FAIL (101) | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ test result: ok. 70 passed; 1 failed; 6 ignored; finished in 126.65s
Author
Owner

Orchestrator visual review of round 1 (797678c): rejected, not shown to the owner. Broken discovered-host rows (70 px host column, words broken, empty middle), a success window clipped at the viewport edge with the toast over a button, progress steps drawn as unchecked checkboxes, an invisible consent checkbox in paper, a mesh-policy failure that repeats itself three times, an "Add hosts" pill repeating the heading, the TEST DOUBLE badge over the top bar. Flow, states and most copy are right. Round 2 launched with an exact spec (grid row anatomy, shared step glyphs, one what-happened/what-to-do/retry pattern for failures, shared platform type tokens).

Orchestrator visual review of round 1 (797678c): rejected, not shown to the owner. Broken discovered-host rows (70 px host column, words broken, empty middle), a success window clipped at the viewport edge with the toast over a button, progress steps drawn as unchecked checkboxes, an invisible consent checkbox in paper, a mesh-policy failure that repeats itself three times, an "Add hosts" pill repeating the heading, the TEST DOUBLE badge over the top bar. Flow, states and most copy are right. Round 2 launched with an exact spec (grid row anatomy, shared step glyphs, one what-happened/what-to-do/retry pattern for failures, shared platform type tokens).
Author
Owner

Start: branch proto-addhost, base SHA cecc7ecd7b. Reading prior comments failed: Forgejo comments endpoint returned InvalidContentType.

Start: branch proto-addhost, base SHA cecc7ecd7bb452229fcf292bebde0917c0568522. Reading prior comments failed: Forgejo comments endpoint returned InvalidContentType.
Author
Owner

Finding: focused production browser checks reproduce the reviewed layout defects before implementation. TRACER_TEST_PORT=4782 bun x playwright test test/add-host-prototype.spec.ts: 6 passed, 6 failed. Evidence: row grid has 2 columns (expected 3); badge remains top-right; consent tick has no visible-border token; failure screen lacks the requested two-sentence copy; bootstrap has no shared spinner; success add-host window starts at x=-172.5 px on 393 px viewport (test-results/add-host-prototype-*/error-context.md).

Finding: focused production browser checks reproduce the reviewed layout defects before implementation. TRACER_TEST_PORT=4782 bun x playwright test test/add-host-prototype.spec.ts: 6 passed, 6 failed. Evidence: row grid has 2 columns (expected 3); badge remains top-right; consent tick has no visible-border token; failure screen lacks the requested two-sentence copy; bootstrap has no shared spinner; success add-host window starts at x=-172.5 px on 393 px viewport (test-results/add-host-prototype-*/error-context.md).
Author
Owner

Finding: second production browser run passed 8/12. Remaining layout evidence: discovery guidance wrapped to 2 lines at a 640 px content width; 44 px controls measured 43.9895 px during the window spring. I’m tightening desktop letter spacing and adding 1 px target allowance. The badge test measured the correct bottom-left position (12 px); getComputedStyle resolved right:auto to a pixel value, so the assertion now checks the rendered rectangle. The checkbox token resolved to the theme color as expected, so that assertion now compares against --fg-2.

Finding: second production browser run passed 8/12. Remaining layout evidence: discovery guidance wrapped to 2 lines at a 640 px content width; 44 px controls measured 43.9895 px during the window spring. I’m tightening desktop letter spacing and adding 1 px target allowance. The badge test measured the correct bottom-left position (12 px); getComputedStyle resolved right:auto to a pixel value, so the assertion now checks the rendered rectangle. The checkbox token resolved to the theme color as expected, so that assertion now compares against --fg-2.
Author
Owner

Finding: the success geometry probe showed the edge-arm terminal window intersecting the viewport without fitting inside it while the add-host window remained visible. Evidence: the focused root-install test failed with clipped surface Canvas window for edge-arm. I will keep the terminal fully outside the initial success view and make Go to window pan it fully into view.

Finding: the success geometry probe showed the edge-arm terminal window intersecting the viewport without fitting inside it while the add-host window remained visible. Evidence: the focused root-install test failed with clipped surface Canvas window for edge-arm. I will keep the terminal fully outside the initial success view and make Go to window pan it fully into view.
Author
Owner

Finding: docs/design/toast.md is absent in this checkout. Reused the shared mountToast primitive and its standard position in packages/ui/styles.css:129-162; success geometry asserts it overlaps no controls.

Finding: docs/design/toast.md is absent in this checkout. Reused the shared mountToast primitive and its standard position in packages/ui/styles.css:129-162; success geometry asserts it overlaps no controls.
Author
Owner

Step complete: added shared spinner and four-state status primitives plus theme-aware tick borders. Commit 14363ee. Tracer TypeScript check passed; focused production-browser spec passed 13/13; desktop and phone success bounds passed.

Step complete: added shared spinner and four-state status primitives plus theme-aware tick borders. Commit 14363ee. Tracer TypeScript check passed; focused production-browser spec passed 13/13; desktop and phone success bounds passed.
Author
Owner

Step complete: rebuilt discovery rows, failure copy/retry, progress, consent, badge, platform type tokens, and success routing. Commit 1afbc92. The focused spec asserts 54 px desktop rows, 640 px discovery copy, 44+ px phone targets, zero clipped windows in both success viewports, and zero toast/control overlap.

Step complete: rebuilt discovery rows, failure copy/retry, progress, consent, badge, platform type tokens, and success routing. Commit 1afbc92. The focused spec asserts 54 px desktop rows, 640 px discovery copy, 44+ px phone targets, zero clipped windows in both success viewports, and zero toast/control overlap.
Author
Owner

Step complete: committed the focused production-browser assertions in 3f78f57. TRACER_TEST_PORT=4782 bun x playwright test test/add-host-prototype.spec.ts passed 13/13; bun run check passed.

Step complete: committed the focused production-browser assertions in 3f78f57. TRACER_TEST_PORT=4782 bun x playwright test test/add-host-prototype.spec.ts passed 13/13; bun run check passed.
Author
Owner

Step complete: committed refreshed captures and manifest in 3e0b01e. Evidence: 68 state PNGs + 2 row crops; manifest has 71 lines. Phone crop is 678x192 px; desktop crop is 1280x110 px.

Step complete: committed refreshed captures and manifest in 3e0b01e. Evidence: 68 state PNGs + 2 row crops; manifest has 71 lines. Phone crop is 678x192 px; desktop crop is 1280x110 px.
Author
Owner

Finding: scripts/verify fast currently reports auth::tests::review3_tests::review3_backend_reply_has_a_deadline as failed during the Rust workspace tests. The gate is still running; I will confirm the complete Rust summary before following the brief's dev-merge condition.

Finding: scripts/verify fast currently reports auth::tests::review3_tests::review3_backend_reply_has_a_deadline as failed during the Rust workspace tests. The gate is still running; I will confirm the complete Rust summary before following the brief's dev-merge condition.
Author
Owner

Update: the Rust server suite reported 3 failures: review3_backend_reply_has_a_deadline (review3_tests.rs:619), review3_pending_routes_and_idle_expiry_recovery (tests.rs:1505, unexpected WebSocket close), and review4_ten_second_open_preserves_authority (tests.rs:1497, ResetWithoutClosingHandshake). The brief's single-failure merge condition is not met; cargo-deny/static-build checks are still running.

Update: the Rust server suite reported 3 failures: review3_backend_reply_has_a_deadline (review3_tests.rs:619), review3_pending_routes_and_idle_expiry_recovery (tests.rs:1505, unexpected WebSocket close), and review4_ten_second_open_preserves_authority (tests.rs:1497, ResetWithoutClosingHandshake). The brief's single-failure merge condition is not met; cargo-deny/static-build checks are still running.
Author
Owner

Isolation reruns passed: review3_pending_routes_and_idle_expiry_recovery passed with a 2003 ms idle-close observation; review4_ten_second_open_preserves_authority passed (10,040 ms open, 3,414 us revoke-close). I will rerun scripts/verify fast with Rust test threads serialized; the only stable failure so far is still under review.

Isolation reruns passed: review3_pending_routes_and_idle_expiry_recovery passed with a 2003 ms idle-close observation; review4_ten_second_open_preserves_authority passed (10,040 ms open, 3,414 us revoke-close). I will rerun scripts/verify fast with Rust test threads serialized; the only stable failure so far is still under review.
Author
Owner

Update: serialized scripts/verify fast still had 3 server test failures (backend_reply, busy_logout, ten_second_open); the two extra WebSocket tests passed individually. Host load was 13.08/14.58/15.21 on 8 cores. I will rerun in the user CPU-weighted scope; the brief's one-failure merge condition is not met yet.

Update: serialized scripts/verify fast still had 3 server test failures (backend_reply, busy_logout, ten_second_open); the two extra WebSocket tests passed individually. Host load was 13.08/14.58/15.21 on 8 cores. I will rerun in the user CPU-weighted scope; the brief's one-failure merge condition is not met yet.
Author
Owner

Finished at HEAD 3e0b01e95c. Four logical commits. Focused production-browser spec: 13 passed. Capture inventory: 68 states + 2 crops; manifest 71 lines. Preview unit active; port 47371 returned HTTP 200.

Final scripts/verify fast output excerpt, verbatim:
+---------------------------+--------------+
| Rust gate | Result |
+---------------------------+--------------+
| fmt | PASS |
| VT native fmt | PASS |
| clippy | PASS |
| test | PASS |
| cargo-deny | PASS |
| static builds | PASS |
+---------------------------+--------------+
7 pass
0 fail
34390 expect() calls
Ran 7 tests across 2 files. [2.26s]

Finished at HEAD 3e0b01e95c5bd0ad0f1326097682a3404d4eb0c7. Four logical commits. Focused production-browser spec: 13 passed. Capture inventory: 68 states + 2 crops; manifest 71 lines. Preview unit active; port 47371 returned HTTP 200. Final scripts/verify fast output excerpt, verbatim: +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ 7 pass 0 fail 34390 expect() calls Ran 7 tests across 2 files. [2.26s]
Author
Owner

Starting phone fixes on branch proto-addhost. Worktree HEAD: 3e0b01e95c; dev merge target: e3e00eaea6. Prior issue and parent comments reviewed; worktree clean.

Starting phone fixes on branch proto-addhost. Worktree HEAD: 3e0b01e95c5bd0ad0f1326097682a3404d4eb0c7; dev merge target: e3e00eaea6ad8e13b0eb97f62d9b53f965672b0f. Prior issue and parent comments reviewed; worktree clean.
Author
Owner

Finding before implementation: merging dev produced content conflicts in apps/tracer/src/core-screen.ts, apps/tracer/src/main.ts, apps/tracer/style.css, and apps/tracer/test/mock-server.ts. The worktree merge diff also imports dev's recovery and terminal accessibility changes; resolving both sides before the phone fixes.

Finding before implementation: merging dev produced content conflicts in apps/tracer/src/core-screen.ts, apps/tracer/src/main.ts, apps/tracer/style.css, and apps/tracer/test/mock-server.ts. The worktree merge diff also imports dev's recovery and terminal accessibility changes; resolving both sides before the phone fixes.
kayg referenced this issue from a commit 2026-10-10 09:20:36 +00:00
Sign in to join this conversation.
No labels
launch-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/infraternal#82
No description provided.