hi soup keep shipping; keep CI green
Owner: soup (s0up4200@pm.me)
- Stay inside requested scope. Do not implement review-suggested/extra changes without explicit user approval.
- Treat other agent/CodeRabbit feedback as input to discuss, not automatic action.
- dashbrr is single-user self-hosted software. Prefer readable, maintainable code over paranoid guards for impossible states.
- In final reports, state which checks ran and which were skipped. Do not claim complete while a required check is known failing.
- Conventional commits:
feat(scope):,fix(scope):, etc. Keep commits focused; split backend/frontend when practical. - Update PR branches by merging develop into them, never rebase/force-push. PRs are squash-merged, so rebase gains nothing and force-pushes break review history and contributors' local branches.
- Always label a PR when you open it. Run
gh label listand pick from the existing labels; do not invent new ones. Addbreaking changewhenever the PR renames or removes anything user-facing. - Never add AI advertising/attribution/co-author lines.
Backend (Go):
go test -race -count=1 ./...make lint-backend— golangci-lintmake precommit— fmt + gofix + lint + type-check; run before final for code changes
Frontend (web/, pnpm):
pnpm -C web lintpnpm -C web typecheckpnpm -C web testpnpm -C web test:browserpnpm -C web build
Full gate before a PR: the Go tests plus all five web commands above.
- Keep
gofmtclean. Exports PascalCase, locals camelCase. Prefer explicit error handling. - Avoid
map[string]interface{}; use structs. Keep interfaces small (<=5 methods). - No backward compatibility shims unless requested.
- Tests live beside code as
*_test.go; prefer table-driven tests and existing fixtures.
cmd/— entrypointsinternal/— Go backend:api/(handlers, middleware),services/,types/,models/web/— React + Vite frontenddocs/— services matrix, k8s discovery example, CLI commands
- CI backend lint runs golangci-lint with
--new-from-rev=HEAD~1, so it lints only lines added in the newest commit. Re-adding or reverting old code exposes it to current lint rules. Oversized PR diffs (more than 20000 lines) cannot useonly-new-issuesbecause the GitHub diff API returns 406.
Issues are tracked in GitHub Issues. See docs/agents/issue-tracker.md.
Use the five canonical triage labels. See docs/agents/triage-labels.md.
This repo uses a single-context domain layout. See docs/agents/domain.md.