Turn documentation ยท May 30, 2026

Expand CI Quality Gates

Added explicit formatting and linting to the Forgejo CI workflow, kept the existing Bun-first validation path, and formatted the current source tree once so the new formatter gate starts from a clean baseline.

Summary

The CI workflow now checks formatting, lint, type safety, tests, public API route wiring, Docker workspace snapshot drift, and the web production build. This gives pull requests a broader health signal without introducing a separate Node package manager or changing the repo's Bun-centered workflow.

Changes Made

Context

The previous CI workflow already installed dependencies, ran typecheck, ran tests, checked the Docker workspace snapshot, and built the web app. The main gap was that style and lint regressions could land silently. Biome is a good first step because it gives fast formatter and linter coverage with one dependency and works cleanly with Bun.

Important Implementation Details

Relevant Diff Snippets

Rendered with @pierre/diffs/ssr. These snippets focus on the CI and configuration changes; the broader diff also includes the formatter baseline pass.

.forgejo/workflows/ci.yml

.forgejo/workflows/ci.yml
+9
35 unmodified lines
36
37
38
39
40
41
42
43
44
45
46
47
35 unmodified lines
- name: Install dependencies
run: ~/.bun/bin/bun install --frozen-lockfile
- name: Run typecheck
run: ~/.bun/bin/bun run typecheck
- name: Run tests
run: ~/.bun/bin/bun test
- name: Check Docker workspace snapshot
run: ~/.bun/bin/bun run check:docker-workspace
35 unmodified lines
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
35 unmodified lines
- name: Install dependencies
run: ~/.bun/bin/bun install --frozen-lockfile
- name: Check formatting
run: ~/.bun/bin/bun run fmt:check
- name: Run lint
run: ~/.bun/bin/bun run lint
- name: Run typecheck
run: ~/.bun/bin/bun run typecheck
- name: Run tests
run: ~/.bun/bin/bun test
- name: Check public API routes
run: ~/.bun/bin/bun run check:public-api-routes
- name: Check Docker workspace snapshot
run: ~/.bun/bin/bun run check:docker-workspace

package.json

package.json
+5
14 unmodified lines
15
16
17
18
19
20
5 unmodified lines
26
27
28
29
30
31
14 unmodified lines
"dev:desktop:remote": "bun run scripts/dev-desktop.ts --remote",
"dev:web": "bun --cwd=apps/web run dev",
"dev:services": "bun run scripts/dev-services.ts",
"package:desktop": "bun --cwd=apps/desktop run package",
"make:desktop": "bun --cwd=apps/desktop run make",
"deploy": "bun run scripts/deploy.ts",
5 unmodified lines
"check:docker-workspace": "bun run scripts/check-docker-workspace.ts"
},
"devDependencies": {
"@types/bun": "^1.3.3",
"@types/ws": "^8.18.1",
"typescript": "^5.9.3",
14 unmodified lines
15
16
17
18
19
20
21
22
23
24
5 unmodified lines
30
31
32
33
34
35
36
14 unmodified lines
"dev:desktop:remote": "bun run scripts/dev-desktop.ts --remote",
"dev:web": "bun --cwd=apps/web run dev",
"dev:services": "bun run scripts/dev-services.ts",
"fmt": "biome format --write .",
"fmt:check": "biome format .",
"lint": "biome lint .",
"check": "biome check .",
"package:desktop": "bun --cwd=apps/desktop run package",
"make:desktop": "bun --cwd=apps/desktop run make",
"deploy": "bun run scripts/deploy.ts",
5 unmodified lines
"check:docker-workspace": "bun run scripts/check-docker-workspace.ts"
},
"devDependencies": {
"@biomejs/biome": "^2.4.16",
"@types/bun": "^1.3.3",
"@types/ws": "^8.18.1",
"typescript": "^5.9.3",

Expected Impact for End-Users

End users should see fewer regressions from accidental formatting drift, obvious lint mistakes, broken public API route wiring, Docker workspace snapshot drift, or web build failures. Product behavior is unchanged; this is a delivery-quality improvement.

Validation

passedbun run fmt:check
passedbun run lint
passedbun run typecheck
passedbun test (250 tests)
passedbun run check:public-api-routes
passedbun run check:docker-workspace
passedbun --cwd=apps/web run build

Issues, Limitations, and Mitigations

Follow-up Work