init: initial commit
Checks / verify (push) Canceled after 41s

This commit is contained in:
2026-10-06 11:24:02 +08:00
parent 456e87d4f2
commit ba6dfffab7
63 changed files with 7223 additions and 0 deletions
+60
View File
@@ -0,0 +1,60 @@
# 开发记忆与交接状态
更新日期:2026-10-06。
## 产品与依据
- 产品名称「见势 · Veyra」,面向从空仓开始的 A 股投资者。
- 根目录 `hengce_fullstack_technical_design_v1.md` 为实施设计,`hengce_app_admin_prototype.html` 为双端交互与视觉参考,均保留。
- 目标闭环:偏好 → 观察候选 → 证据 → 买入计划 → 条件提醒 → 用户记录成交 → 持仓监控 → 退出 → 复盘。
- Go 负责业务、账本与风控;Python 负责量化研究与回测;App 使用 React Native + Expo。
- 首期用户自行交易,提醒不代表成交,不自动下单。
## 用户确认的硬性规则
- 后端严格遵循 Go 工程规范,采用 cmd/internal 分层、依赖注入、显式 SQL、context、错误处理及 gofmt/go vet。
- 所有数据库表以 `veyra_` 开头,字段 snake_case。
- 主键为字符串 UUID:数据库 varchar(36),Go string;外键同类型。
- 映射去前缀后 PascalCase,例如 `veyra_user` 对应 `User`。
- 管理端使用 Vite + React + Tailwind CSS + shadcn/ui,并通过 Go embed 嵌入后端。同一二进制提供页面和 API。
- PostgreSQL:192.168.100.127:5432,数据库 veyra;Redis:192.168.100.127:6379,无用户名、有密码。
- 凭据保存在本地 `.env`,禁止写进 Git 或项目记忆。
## 已实现
- Go API:健康检查、结构化日志、请求 ID、超时、优雅停机。
- 独立建库与迁移命令,迁移使用事务、并发锁、checksum 和字符串 UUID 迁移记录。
- 两版迁移:基础用户/账户;身份凭据/会话/账户状态/初始现金流水。
- local/test 开发身份初始化;密码 bcrypt 哈希、随机会话凭据、数据库只保存会话哈希。
- 管理端 Cookie 和 App Bearer 会话隔离,退出撤销、过期与状态校验、管理员权限校验。
- Redis 登录限流;管理端 Cookie 为 HttpOnly、SameSite=Strict,写操作校验同源 Origin。
- 账户创建、归属查询、账户列表;模拟资金初始化原子入账,整数分计算、金额字符串 API;真实记录账户现金未知。
- 管理端登录页、服务总览、用户列表和十个工作区入口;未实现业务页面显示建设中。
- OpenAPI、依赖锁文件、Makefile 和带 PostgreSQL 集成测试服务的 CI。
- `make build` 生成内嵌管理端的 veyra-api,以及 veyra-db 和 veyra-user。
## 验证与环境事实
- 已通过前端 TypeScript 检查与生产构建、Go 编译、go vet、单元与无监听 HTTP 测试(含 race 检查)。
- OpenAPI YAML 已解析,内部引用检查通过。
- 数据库集成测试代码包含迁移幂等、checksum、UUID、身份事务、会话撤销/过期、Cookie/Origin 和账户隔离/现金初始化验证。
- 本轮未实际执行数据库集成测试:执行环境不能连接内网;未设置测试数据库连接时这些测试明确 skip,不能报告为已验证数据库行为。
- 用户确认本机和数据库处于同一内网,并已在本机终端执行首次建库/迁移。
- 命令执行沙箱访问 PostgreSQL/Redis 的 TCP 连接返回 errno=1 Operation not permitted,本地监听同样受限。这不表示用户主机网络有问题。
- 最新第二版迁移与管理员初始化是否在用户终端执行,尚未获得明确确认;不能假定已执行成功。
## 启动与后续
- 已初始化数据库使用 `make db-migrate` 应用后续迁移,无需重复建库。
- 管理端初始化:`.env` 的 ADMIN_LOGIN / ADMIN_PASSWORD,执行 `make admin-create`;App 测试身份使用 DEV_USER_LOGIN / DEV_USER_PASSWORD 和 `make user-create`。
- 本地 `.env` 已生成独立开发身份随机密码;模板无密码,已有身份不会由初始化命令覆盖。
- `make api` 先构建前端,再运行后端;默认 http://127.0.0.1:8080。
- 当前开发密码登录仅限 local/test;正式短信登录、刷新流程、MFA 和细分 RBAC 待实现。
- 下一步:候选修订与审核发布、计划预览与确认,再实现成交账本、持仓监控和复盘。
- 行情、AI、Worker、真实回测与 App UI 尚未实现;不得把当前状态描述为完整产品已交付。
## Git 操作请求
用户本轮明确要求保存记忆、git add、commit 和 push。目标为当前 master 分支的 origin;操作结果以实际 Git 输出为准,禁止将失败的提交或推送记作已完成。
本轮操作结果:项目记忆与忽略规则已保存,候选文件检查未发现本地配置的长密码。仓库当前没有提交;git add 因无法创建 .git/index.lock(Operation not permitted)失败,尚未 commit/push。远程分支读取失败,原因是执行环境无法解析远程域名。后续需在有 Git 写权限和网络访问能力的终端完成提交与推送,先确认远程状态;不强制推送、不覆盖远程历史。