spark-server/AGENTS.md
2026-09-22 17:07:26 +08:00

1.3 KiB

spark-server agent notes

This repo is a Go 1.26 modular monolith IM server. Source of truth: docs/architecture-v3.md.

Before writing code:

  1. Load .cursor/skills/spark-im-v3/SKILL.md
  2. Follow .cursor/rules/ (always-on V3 invariants + file-scoped rules)
  3. Keep functions within .golangci.yaml (funlen 100, lll 240)
  4. HTTP and TCP share Application services under internal/module/{biz}/logic. Each module is entity / model (one file per table) / logic (one file per function, not per table). Gin handlers only bind and call those services (MVC). REST paths are /v1/{resource} grouped by business. Request DTOs use go-playground/validator (label / errmsg i18n keys). Context must carry reqctx.RealIP and the user language (zh-CN / en / zh-TW). Error msg and notification copy come from internal/pkg/i18n. Table and column COMMENT is required. Message content is serialized bytes, not a string.
  5. After adding or changing migrations/*.sql, run go run ./cmd/migrate -config configs/config.yaml yourself. Do not ask the user to apply it later.
  6. Before finishing any code change, run make lint and make test at the repo root; both must pass. Do not report the task as OK until they do.

Do not introduce Kafka, K8s, microservices, ConversationSeq, application-layer handshake crypto, or public gnet ports.