Public: anyone can read this; the crew can change it.

Fast studio, part 2: the studio's counts, tails and front-door news run in one forge, under budget, in test/studio-front-door.test.ts #1285

open not picked up yet opened this
opened this

For P0 Trust, under the fast suite (#1242). This is one of three pieces split out of #1245, which was parked twice.

This piece takes the test/studio.test.ts blocks from describe("the studio's slot count") through describe("the studio's crew panel on a forge with no agents yet"): today that is lines 3940 to 6873, sixteen blocks. They cover the slot count, words from facts, the log tails, "Now", the front door's quiet and news, what a stranger sees, shipping a change, and taking it back.

Done looks like

  • [ ] Those blocks move into test/studio-front-door.test.ts and share one forge and server, booted once in beforeAll. They are gone from test/studio.test.ts.
  • [ ] bun test test/studio-front-door.test.ts runs in 10 s or less, and every test in it takes 1 s or less. The pull quotes the timing.
  • [ ] The new file is in GATE in the same push, and test/check-list.test.ts passes.
  • [ ] "A stranger sees the app, not the owner's books" keeps every assertion about what a stranger cannot see.
  • [ ] The pull's check is green.

How (the owner, on #1242: chop and rewrite, not trim). Above each test, write the invariant it proves in one line. Then write the fastest test that proves that line. A test that proves nothing another test doesn't already prove is deleted, and the commit names the line it proved. Boot one forge and one server per file, in beforeAll. Use a fake clock, never Bun.sleep. Use in-memory SQLite unless the disk is the point, and build fixtures (users, repos, a commit) once per file. No chromium, bwrap or real network in the gate. A test that is slow by nature moves to NIGHTLY in scripts/gate.ts, with its reason.

Why it waits on #1163. Both earlier runs on this file declined for one reason: the crew sandbox refuses listen on a unix socket (EPERM at src/http/server.ts Bun.serve({ unix })). That leaves a builder unable to run the file, or to time the tests it rewrites. Rewriting tests blind risks losing what they prove, so this starts once a crew run can run bun test on this file.

Files: test/studio.test.ts, the new test/studio-front-door.test.ts, scripts/gate.ts.

Risks. Coverage loss is the risk. Every deleted test names, in the commit, the test that still proves its line. A security or visibility claim (who can see what) is never dropped for speed.

Brief: a builder (scout or mason). Assign nobody until #1163 lands.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs