fix(web): fix stale state bugs, add real-time updates, and build verification pipeline

- Fix kanban board columns not adapting to available width (w-64 → flex-1)
- Fix workspace name not updating in sidebar after save in settings
- Fix comments leaking across issues when navigating between issue details
- Fix duplicate issue appearing on create (race between callback and WebSocket)
- Add real-time WebSocket listeners for agents and inbox pages
- Add `make check` one-click verification pipeline (typecheck + tests + E2E)
- Add E2E test fixtures for self-contained test data setup/teardown
- Add settings E2E test and updateWorkspace unit test
- Make `make start/setup` reuse existing PostgreSQL if already running
- Update CLAUDE.md with AI agent verification loop and E2E test patterns

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jiayuan Zhang 2026-03-22 12:44:49 +08:00
parent 317e87fb97
commit 1ba0fb071a
15 changed files with 418 additions and 28 deletions

View file

@ -1,4 +1,4 @@
.PHONY: dev daemon build test migrate-up migrate-down sqlc seed clean setup start stop
.PHONY: dev daemon build test migrate-up migrate-down sqlc seed clean setup start stop check
# ---------- One-click commands ----------
@ -7,11 +7,15 @@ setup:
@echo "==> Installing dependencies..."
pnpm install
@echo "==> Starting PostgreSQL..."
docker compose up -d
@echo "==> Waiting for PostgreSQL to be ready..."
@until docker compose exec -T postgres pg_isready -U multica > /dev/null 2>&1; do \
sleep 1; \
done
@if pg_isready -h localhost -p 5432 -U multica > /dev/null 2>&1; then \
echo " PostgreSQL already running, skipping docker compose up."; \
else \
docker compose up -d; \
echo "==> Waiting for PostgreSQL to be ready..."; \
until docker compose exec -T postgres pg_isready -U multica > /dev/null 2>&1; do \
sleep 1; \
done; \
fi
@echo "==> Running migrations..."
cd server && go run ./cmd/migrate up
@echo "==> Seeding data..."
@ -21,10 +25,14 @@ setup:
# Start all services (backend + frontend)
start:
@docker compose up -d
@until docker compose exec -T postgres pg_isready -U multica > /dev/null 2>&1; do \
sleep 1; \
done
@if pg_isready -h localhost -p 5432 -U multica > /dev/null 2>&1; then \
echo "PostgreSQL already running, skipping docker compose up."; \
else \
docker compose up -d; \
until docker compose exec -T postgres pg_isready -U multica > /dev/null 2>&1; do \
sleep 1; \
done; \
fi
@echo "Starting backend and frontend..."
@trap 'kill 0' EXIT; \
(cd server && go run ./cmd/server) & \
@ -39,6 +47,10 @@ stop:
docker compose down
@echo "✓ All services stopped."
# Full verification: typecheck + unit tests + Go tests + E2E
check:
@bash scripts/check.sh
# ---------- Individual commands ----------
# Go server