skycurtain
|
c26012a040
|
feat(server): 上游客户端与 key 管理(阶段 2)
- 上游客户端接口化:UpstreamClient + HTTP / fixture 两实现(env UPSTREAM_SOURCE 切换;fixture 读仓库根样例快照,错误分支由 key 内容约定触发)
- 失败分类:401 / 403 → key_rejected;其余非 2xx / 网络故障 / 超时 / 响应异常 → upstream_unavailable
- /api/manage/api-keys 三端点:清单(按 id 升序,敏感列不出接口)· 登记(上游验证 → 上游字段全组入库)· 启停(幂等、启用需验证并清 consecutive_401s)
- 登记成功触发「立即异步补一轮」hook(引擎骨架占位,阶段 4 填充)
- 统一错误信封:onError → 500 internal · notFound → 404
- 修正:load-env 未被服务端接线(此前只有 drizzle-kit 接了),env.ts 顶部补副作用导入
- 实施计划:进度表阶段 2 ✅ · 实现假设 #11–#14
|
2026-09-15 00:37:22 +08:00 |
|
skycurtain
|
575643eb13
|
docs: 实施计划——离线开发与样例数据(§6),阶段 2/4 验收标准适配
- 新增 §6:样例数据(api*.json,未入库)的用途与开发策略——上游客户端接口化(真实 HTTP / 样例文件两实现)+ seed 脚本(阶段 4 落地)+ 真实链路待验清单
- 前提改为「以样例数据为主,真实 key 未开,不阻塞」
- 阶段 2 验收改为「注入样例实现」;阶段 4 增 seed 脚本与 401 状态机单测;阶段 6 用 seed 数据走查
|
2026-09-15 00:30:29 +08:00 |
|
skycurtain
|
f906289f3a
|
docs: 实施计划——阶段 1 完成(进度表 + 实现假设更新)
- 阶段 1 标记完成(15 项单测绿 + 四表在库:api_keys 17 列 / usage_logs 23 列 / 索引 8 个)
- 实现假设 #2 更新为落地形态(load-env.ts 显式加载根 .env);新增 #9(drizzle-kit 用 postgres 驱动)
- 前提补「联调用的测试 key」准备说明(建 key + 发一次成功/一次失败请求)
|
2026-09-15 00:18:44 +08:00 |
|
skycurtain
|
3ffbd030b9
|
feat(server): 数据层与密钥(阶段 1)——crypto / 时间工具 / env 加载 + 建表
- crypto:HKDF 派生 hmac/aes 子密钥;HMAC-SHA256 指纹(key_hash);AES-256-GCM 加解密(nonce||tag||ct)
- time:北京时间 +08:00 ISO 序列化、Unix 秒转换、expires_at 0→null、输入宽容解析
- load-env:从仓库根 .env 显式加载(Bun 只自动加载 cwd 的 .env);drizzle.config 同步接入
- 单测 15 项全绿(bun test);db:push 后四表在库(api_keys 17 列 / usage_logs 23 列 + 索引齐)
|
2026-09-15 00:18:21 +08:00 |
|
skycurtain
|
1295667c94
|
feat(contract): amount_rmb 支持 null + 汇总增 unpriced_count;实施计划补「实现假设」机制
- API 契约:无归属购买的明细行 amount_rmb = null(展示「—」);汇总增 unpriced_count(未折算条数)
- shared 类型同步(amount_rmb: number | null · unpriced_count: number)
- 实施计划:loop 停车规则改为「自主推进 + 假设记录」(作者开发期可能缺席);新增 8 条实现假设;待定问题 #1/#3 标记已决
|
2026-09-15 00:12:19 +08:00 |
|
skycurtain
|
dcf7a31c09
|
chore: 本地开发 PostgreSQL(docker-compose)与环境变量样例
- docker-compose.yml:postgres:17-alpine,宿主端口 5433(避开常见 5432 占用),含 healthcheck
- .env.example:DATABASE_URL 默认指向本地 compose;KEYS_MASTER_KEY 补生成提示
|
2026-09-15 00:03:46 +08:00 |
|
skycurtain
|
30e71beb09
|
docs: 实施计划(loop 模式 + 八阶段验收标准)
- loop 机制:取任务 → 实现 → 验证 → 记录 → 提交 → 报告;遇设计空白停车问作者
- 八阶段:数据层与密钥 → key 管理 → 管理面其余 → 同步引擎 → 查看面数据面 → /usage-log 前端 → 管理面前端 → 收尾
- 前提已定:Docker 本地 PG · 真实 key 联调 · loop 内直接提交(作者授权)
|
2026-09-15 00:03:46 +08:00 |
|
skycurtain
|
138a1b7685
|
chore: 初始化 monorepo 脚手架与代码骨架
- Bun workspaces:apps/web(Vue 3.5 + Vite 8 + naive-ui)· apps/server(Hono 4.13 + Drizzle)· packages/shared(契约类型)
- 代码骨架:四表 Drizzle schema · 11 个端点占位(501)· 管理面口令中间件 · 同步引擎占位(5 分钟 tick + 防重入)
- 命令链:dev / build / test / lint / type-check / db:*(见 AGENTS.md)
|
2026-09-14 23:54:58 +08:00 |
|
skycurtain
|
45b312b357
|
docs: 设计文档体系落定(七篇定稿)
- docs/design:四张表字段设计 · 交互设计(方向层 + 细节层)· API 契约 · 同步引擎设计
- docs/upstream:sk-key 接口实证(430 行)· 接口范围(9 个接口)
- README(全景入口)· AGENTS.md(AI 协作者指引)
- 废弃旧稿已删除(不随仓库留存)
|
2026-09-14 23:54:52 +08:00 |
|
skycurtain
|
b19d8693c1
|
chore: 初始化项目仓库
- 添加 .gitattributes,统一文本文件行尾为 LF
- 添加 .gitignore,忽略系统文件、IDE 配置与敏感环境变量
|
2026-09-09 00:38:37 +08:00 |
|