Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
7bbe216
wave-a checkpoint: tool layer, context engineering, terminal UX, stud…
claude Aug 23, 2026
a713c01
wave-b checkpoint: constrained decoding, memory+evolve, lint cleanup
claude Aug 23, 2026
a1d795c
wave-c checkpoint: inner loop correctness, orchestrator wiring, plan …
claude Aug 23, 2026
5b6718e
wave-d checkpoint: config surface, cross-package gaps, docs rewrite
claude Aug 23, 2026
d09a3b4
wave-e checkpoint: final wiring, token streaming, first-attempt edit …
claude Aug 23, 2026
26a13ef
wave-f: residual wiring, dead code removal, lint to zero, e2e smoke test
claude Aug 23, 2026
9bcb36d
wave-g: adversarial review fixes, language packs, UX validation
claude Aug 23, 2026
d3f9046
wave-h: engine cancellation fixes, studio token hardening, UX outcome…
claude Aug 23, 2026
5800b1e
wave-i: retry convergence, stall bounds, CLI wiring, release readines…
claude Aug 23, 2026
4a1c13a
fix(web): decouple production build from the test toolchain; make boo…
claude Aug 23, 2026
f6c2ac7
chore(web): regenerate package-lock.json
piotrlaczkowski Aug 24, 2026
b396edd
 1 chore(lint): fix golangci-lint v2 fi…
piotrlaczkowski Aug 24, 2026
27a0873
 1 fix(server): API keys and hooks.json…
piotrlaczkowski Aug 24, 2026
0e1319e
 1 fix(loop): speculative review always…
piotrlaczkowski Aug 24, 2026
4a656ba
 1 fix(e2e): studio UI test misidentifi…
piotrlaczkowski Aug 24, 2026
250a8f9
build(deps-dev): bump vite from 5.4.21 to 8.2.2 in /web
dependabot[bot] Aug 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
28 changes: 28 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
version: 2
updates:
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
labels:
- "dependencies"
- "go"

- package-ecosystem: "npm"
directory: "/web"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
labels:
- "dependencies"
- "javascript"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
labels:
- "dependencies"
- "ci"
81 changes: 70 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,20 @@ concurrency:
cancel-in-progress: true

jobs:
repo-refs:
name: Repo reference guard
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Check for stale/broken repo slug references
run: ./scripts/check-repo-refs.sh

- name: Check the version is consistent everywhere it is written down
run: ./scripts/check-version.sh

lint-test:
name: Lint & Test
runs-on: ubuntu-latest
Expand All @@ -35,21 +49,53 @@ jobs:
cache: npm
cache-dependency-path: web/package-lock.json

# `make web-deps`, not a bare `npm ci`: `npm ci` refuses to run at all when
# web/package-lock.json does not match web/package.json, and the lock in this
# tree predates the vitest/eslint devDependencies. web-deps tries `npm ci`
# first and falls back to `npm install`, printing the real fix either way.
- name: Install web deps
run: cd web && npm ci
run: make web-deps

- name: Build web UI
run: cd web && npm run build && mkdir -p ../cmd/slmcode/ui && cp -r dist/* ../cmd/slmcode/ui/
- name: Build web UI into the go:embed directory
run: make ui-react

- name: Go Lint
run: make lint
- name: Install golangci-lint
run: |
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "$(go env GOPATH)/bin" v2.5.0
echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH"

- name: Go Test
run: make test
- name: make check (fmt, vet, lint, unit+race tests, web lint+build)
run: make check

- name: Go Build
run: make build

- name: golangci-lint ratchet (blocking — the baseline is zero)
run: make lint-strict

- name: Studio API offline smoke test
run: ./scripts/e2e_prime_smoke.sh

race-and-coverage:
name: Race detector & coverage floor
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true

- name: Race tests (pkg/...)
run: make race

- name: Coverage floor
run: make cover

web-check:
name: Web Frontend Check
runs-on: ubuntu-latest
Expand All @@ -65,8 +111,12 @@ jobs:
cache: npm
cache-dependency-path: web/package-lock.json

# `make web-deps`, not a bare `npm ci`: `npm ci` refuses to run at all when
# web/package-lock.json does not match web/package.json, and the lock in this
# tree predates the vitest/eslint devDependencies. web-deps tries `npm ci`
# first and falls back to `npm install`, printing the real fix either way.
- name: Install web deps
run: cd web && npm ci
run: make web-deps

- name: Type check
run: cd web && npx tsc --noEmit
Expand Down Expand Up @@ -100,11 +150,20 @@ jobs:
with:
python-version: "3.12"

# `make web-deps`, not a bare `npm ci`: `npm ci` refuses to run at all when
# web/package-lock.json does not match web/package.json, and the lock in this
# tree predates the vitest/eslint devDependencies. web-deps tries `npm ci`
# first and falls back to `npm install`, printing the real fix either way.
- name: Install web deps
run: cd web && npm ci
run: make web-deps

- name: Build web UI into the go:embed directory
run: make ui-react

- name: Build web UI
run: cd web && npm run build && mkdir -p ../cmd/slmcode/ui && cp -r dist/* ../cmd/slmcode/ui/
- name: Install golangci-lint
run: |
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "$(go env GOPATH)/bin" v2.5.0
echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH"

- name: Run pre-commit
uses: pre-commit/action@v3.0.1
37 changes: 37 additions & 0 deletions .github/workflows/govulncheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Vulnerability scan

on:
schedule:
# 06:00 UTC every Monday.
- cron: "0 6 * * 1"
workflow_dispatch:
push:
branches: [main]
paths:
- "go.mod"
- "go.sum"
- ".github/workflows/govulncheck.yml"

permissions:
contents: read

jobs:
govulncheck:
name: govulncheck
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true

- name: Install govulncheck
run: go install golang.org/x/vuln/cmd/govulncheck@latest

- name: Run govulncheck
run: govulncheck ./...
Loading
Loading