diff --git a/AGENTS.md b/AGENTS.md index 6d520326..9cd3053b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -32,12 +32,12 @@ ## 严格遵循事项 (Guardrails) -- 切勿删除 `frontend/node_modules`;如果需要刷新依赖,请使用 `pnpm install` 重新安装。 +- 切勿删除 `frontend/node_modules` - 保持 `internal/util/` 绝对纯净且不引入任何框架。禁止从 `internal/util/` 及其子包中导入 Gin、GORM、sessions 等 HTTP/Web/数据库相关框架包(例如,Web 会话选项已收敛至 `internal/apps/oauth/session.go`)。 - 编写测试用例时,禁止使用硬编码的相对路径(如 `"uploads/test_cache"`)在源码目录下创建临时测试目录,必须统一使用 Go 内置的 `t.TempDir()` 以避免污染源码目录。 - 所有 HTTP 路由仅在 `internal/router/router.go` 中注册。 - 当 API Handler 发生变化时,更新 Swagger 文档(运行 `make swagger`)。 -- 在提交更改前运行 `make code-check`。 +- 在完成代码开发后必须运行 `make code-check`, 并修复报错。 - 需要缓存或文件管理能力时,必须复用现有平台实现,禁止在业务包中自行创建缓存目录、直接管理缓存文件或重复封装存储后端。 ## 项目介绍 @@ -161,16 +161,6 @@ Handler 规范: - 不要创建物理数据库外键。改为关系字段添加显式索引。 - 数据库默认值必须与 Go 模型零值(`nil`、`0`、`false`、`""`)匹配,以避免意外的插入。 -严格依赖防线: - -- `internal/util/` 及其子包必须保持无框架依赖。 -- 不要从 `internal/util/` 中导入 `github.com/gin-gonic/gin`、`gorm.io/gorm`、`github.com/gin-contrib/sessions` 或 HTTP 中间件/框架包。 -- 如果实用工具逻辑需要 web 胶水,请将纯验证/计算保留在 `internal/util/` 中,并将 Gin 中间件/响应处理放在 `internal/apps/` 中。 - -新增接口与模块开发工作流: - -- 关于自定义业务接口(如 Admin/User/Custom 模块等)的详细包职责、文件结构和核心开发步骤,请直接阅读并严格遵循 [new-api](file:///Users/ryan/DEV/Go/Wavelet/.agent/skills/new-api/SKILL.md) 技能。 - ### 前端规则 在进行任何 Next.js 工作之前,请在 `node_modules/next/dist/docs/` 中找到并阅读相关文档。您的训练数据已过时 —— 这些文档是唯一的真理来源。 diff --git a/docs/docs.go b/docs/docs.go index 465f9c53..fc60b319 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -7514,7 +7514,8 @@ const docTemplate = `{ "type": "string" }, "id": { - "type": "integer" + "type": "string", + "example": "0" }, "is_active": { "type": "boolean" diff --git a/docs/swagger.json b/docs/swagger.json index b8c4f605..36f9bc59 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -7507,7 +7507,8 @@ "type": "string" }, "id": { - "type": "integer" + "type": "string", + "example": "0" }, "is_active": { "type": "boolean" diff --git a/docs/swagger.yaml b/docs/swagger.yaml index a589f999..55e8210a 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -1379,7 +1379,8 @@ definitions: gender: type: string id: - type: integer + example: "0" + type: string is_active: type: boolean is_admin: diff --git a/frontend/components/common/admin/app-logs.tsx b/frontend/components/common/admin/app-logs.tsx index 93eed714..2d59117f 100644 --- a/frontend/components/common/admin/app-logs.tsx +++ b/frontend/components/common/admin/app-logs.tsx @@ -19,12 +19,11 @@ limitations under the License. import {memo, useCallback, useEffect, useRef, useState} from "react" import {useVirtualizer} from "@tanstack/react-virtual" import {toast} from "sonner" -import {ArrowDown, ChevronUp, Loader2, Pause, Play} from "lucide-react" +import {ArrowDown, ChevronUp, Loader2} from "lucide-react" import {AdminService} from "@/lib/services/admin" import {ErrorInline} from "@/components/layout/error" import {LoadingStateWithBorder} from "@/components/layout/loading" -import {Badge} from "@/components/ui/badge" import {Button} from "@/components/ui/button" interface LogEntry { @@ -48,7 +47,7 @@ const LogLine = memo(function LogLine({data}: {data: string}) { : "text-gray-300" return ( -