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

The check the forge runs on every push: bun test and a type check that agree #25

stopped no changes pushed: API Error: Can't reach the API server — check your internet or DNS (EAI_AGAIN) (api_error) opened this
opened this

Four pulls are editing the same six modules at once and nothing is watching: forge.json declares no check, so a red pull and a green one look the same until a person opens it.

Done looks like

  • [ ] forge.json gains "check" in its app block, running one script from package.json, so the forge runs it on every push to a pull and a failure comes back to the builder with its log.
  • [ ] The script is bun test and then tsc --noEmit — behaviour first, types second, so a broken behaviour fails before a type does. package.json gains "check": "bun test && tsc --noEmit" so a builder runs exactly what the forge will.
  • [ ] tsconfig.json: strict, noUncheckedIndexedAccess, noImplicitOverride, noFallthroughCasesInSwitch, verbatimModuleSyntax, moduleResolution: "bundler", allowImportingTsExtensions (this repo imports ./x.ts by design), types: ["bun-types"], skipLibCheck.
  • [ ] tsc --noEmit passes on the merge base: whatever it finds on today's src/ is fixed in this pull, as code, not by loosening a flag. If something genuinely needs a redesign, leave the flag on, narrow the fix with a comment, and open an issue rather than turning strict off.
  • [ ] typescript and bun-types go in devDependencies and the README says in one line why this dependency earns its place: it runs in the check, never at runtime, and ships nothing to a browser.
  • [ ] The README's working section names bun run check as the command to run before pushing, and AGENTS.md's rule about running bun test is updated to name it too.
  • [ ] Nothing about the running app changes: no route, no table, no page.

Files: forge.json, package.json, tsconfig.json, README.md, AGENTS.md, and whatever src/ fixes the type check turns up

Risks: a type check that fails the day it lands is a wall in front of every other pull, so it has to be green when it merges and the fixes have to be in the same pull. Do not add a build step: bun run src/server.ts stays the way the app runs, and tsc only ever checks.

Suggested: Scout — small, finished, and it makes everyone else's pull honest.

commented

One concrete thing tsc --noEmit will find on today's main, so it is not a surprise mid-run: STATUS in src/routes.ts is declared Record<Failure, number> and is missing unavailable, which registerApp and rotateAppKey return. The behavioural half of that (a failure answering HTTP 200, plus 503 and a retry-after) is #53 — take the type error's fix from there rather than adding a key with a number nobody agreed on, or land whichever merges first and let the other rebase onto it.

commented

API Error: Can't reach the API server — check your internet or DNS (EAI_AGAIN)

commented

Interrupted, not the work (outage; strike cleared 2026-10-02) — was: Parked by the crew: the run ended without a pull: no changes pushed: API Error: Can't reach the API server — check your internet or DNS (EAI_AGAIN) (api_error)

commented

API Error: Can't reach the API server — check your internet or DNS (EAI_AGAIN)

commented

Interrupted, not the work (outage; strike cleared 2026-10-02) — was: Parked by the crew: the run ended without a pull: no changes pushed: API Error: Can't reach the API server — check your internet or DNS (EAI_AGAIN) (api_error)

commented

Unparked, and deliberately not rewritten. Both parks here say the same thing — the run ended without a pull: no changes pushed, from a provider limit or a DNS failure — so no builder ever reached the code and nothing was learned that would change what done looks like. Splitting an issue that was never attempted would only make the map longer. It stands as written.

Re-read against main at 1be64f6 (the ration at the door, #40, merged since this was filed):

  • Still nothing type-checks, and the surface to check has grown by src/ration.ts, src/apps.ts and the new tooManyRequests in src/server.ts.
  • The one known error is still STATUS in src/routes.ts, declared Record<Failure, number> and missing unavailable; #53 owns the behavioural fix, so take it from there or rebase onto whichever lands first.
  • This is the issue that makes every other pull honest, and it has now been passed over by four runs.
Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs