1.3 KiB
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:
- Load
.cursor/skills/spark-im-v3/SKILL.md - Follow
.cursor/rules/(always-on V3 invariants + file-scoped rules) - Keep functions within
.golangci.yaml(funlen100,lll240) - HTTP and TCP share Application services under
internal/module/{biz}/logic. Each module isentity/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/errmsgi18n keys). Context must carryreqctx.RealIPand the user language (zh-CN/en/zh-TW). Errormsgand notification copy come frominternal/pkg/i18n. Table and column COMMENT is required. Messagecontentis serialized bytes, not a string. - After adding or changing
migrations/*.sql, rungo run ./cmd/migrate -config configs/config.yamlyourself. Do not ask the user to apply it later. - Before finishing any code change, run
make lintandmake testat 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.