style(server): gofmt 注释规范 + init.sql 补 parent_session_id + 新增 ratelimit 判据

## 主体是 gofmt

`server/` 下 20 个文件的改动里,**142/147 行是注释与缩进** ——
Go 1.19+ 的 gofmt 把块注释里的 `//   x` 规范成 `//\tx`。
功能零变化。

## 一处实质:init.sql 补 parent_session_id

`ALTER TABLE sessions ADD COLUMN IF NOT EXISTS parent_session_id
 TEXT REFERENCES sessions(session_id)`

远端已在 `db/migrate.go` 的 `sqliteAddColumns` 结构迁移通道里加了同一列;
init.sql 是**全新库**的建库脚本,缺这列会让新库少一个字段。

- `IF NOT EXISTS` ⇒ 与结构迁移通道幂等,两者并存无害
- 默认空 = 根节点;**不据历史数据猜父子**(猜错会让线索拓扑失真,比没有更糟)

## 新增 handler/ratelimit_test.go(162 行)

速率限制的判据。此前这一块没有独立判据。

## 验证(本机实跑,非推断)

    go build ./...                              通过
    go vet ./internal/{handler,repo,db,sse}/   通过
    go test -count=1(handler/repo/db/sse/blob)
      handler  41.3s  ok
      repo    101.9s  ok
      db       1.1s  ok
      sse      0.01s ok
      blob     0.08s ok

`-count=1` 是刻意的:第一遍跑出来全是 `(cached)`,那种绿灯不算数。
This commit is contained in:
2026-10-05 09:26:07 +08:00
parent be9bfd3cd1
commit a8d6811cd7
21 changed files with 246 additions and 69 deletions

View File

@ -84,8 +84,9 @@ func TestQuoteBodyOmitsEmptyCC(t *testing.T) {
// 库里存 UTC、界面各处都转本地,只有 quoteBody 漏了 .Local()。
//
// ★ 这条判据在 **TZ=UTC 的机器上是空转的**(本地 == UTC,两种写法同结果)——
// 本机是 UTC+8,所以这里真会红。CI 若在 UTC 下跑,它是"只能验形态"的那一类,
// 形态判据另有一条:不得与 UTC 原样相等(当两者不同时)。
//
// 本机是 UTC+8,所以这里真会红。CI 若在 UTC 下跑,它是"只能验形态"的那一类,
// 形态判据另有一条:不得与 UTC 原样相等(当两者不同时)。
func TestQuoteBodyTimeIsLocal(t *testing.T) {
// 取一个"本地与 UTC 不同"的瞬间来测(否则本判据无从区分)
m := &models.Mail{
@ -109,7 +110,8 @@ func TestQuoteBodyTimeIsLocal(t *testing.T) {
// 成因:发信路径给 Agent 存的 from_workspace 是 **agent 名**(zcode/homeagent/opencode 全如此),
// 而引用块按 `name@from_workspace` 拼 ⇒ zcode@zcode。
// 判据钉两条:① 用**会话**的 workspace/alias 拼出 `name@path.session`;
// ② path 与 name 相同时也**不许**渲染成 name@name(宁可只写名字)。
//
// ② path 与 name 相同时也**不许**渲染成 name@name(宁可只写名字)。
func TestQuoteBodySenderAddressNeverNameAtName(t *testing.T) {
legacy := &models.Mail{FromName: "zcode", FromWorkspace: "zcode", Subject: "打个招呼", CreatedAt: time.Now()}
got := quoteBody(legacy, "/home", "zcode-打个招呼")