Rationale
The repo has no formatter or linter config. Several ticketed conventions need a lint host: #262 (fire-and-forget / floating-promise rule), #271 (null/undefined discipline), and the planned ban on raw timers in tests. Biome is a single fast binary providing formatter + linter in one, works well in a Bun-first repo, and is a devDependency only (dependency-policy conform) — avoiding the ESLint+Prettier+typescript-eslint multi-package matrix.
Scope
Documentation
- CONTRIBUTING: format-on-save setup, commands.
Acceptance
biome ci green in CI; the format commit keeps bun run typecheck + bun test green.
Relates
Improvement program M1 (foundation). #262, #271, #258.
Rationale
The repo has no formatter or linter config. Several ticketed conventions need a lint host: #262 (fire-and-forget / floating-promise rule), #271 (null/undefined discipline), and the planned ban on raw timers in tests. Biome is a single fast binary providing formatter + linter in one, works well in a Bun-first repo, and is a devDependency only (dependency-policy conform) — avoiding the ESLint+Prettier+typescript-eslint multi-package matrix.
Scope
biome.jsonwith formatting + recommended lint rules.setTimeout/Bun.sleepin tests/ (pairs with the awaitCondition helper issue).biome ci.Documentation
Acceptance
biome cigreen in CI; the format commit keepsbun run typecheck+bun testgreen.Relates
Improvement program M1 (foundation). #262, #271, #258.