spark-server/AGENTS.md
zhr ae9a71034d feat: implement Spark IM V3 modular monolith
Add HTTP /v1 MVC, TCP send path, groups with server-side member-avatar collage, object-storage upload, and friends/favorites around the architecture-v3 layout.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 19:52:11 +08:00

1.2 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.

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