Files
patbond-doc/.gitignore
T
lixi 39cf422f89
CI / docs-build (push) Successful in 46s
docs: ADR-023 M4 架构与关键决策成文 + ADR-018 视频后置标记取代 + 补仓内 .gitignore
ADR-023 收录 M4 全部跨角色决策(13 节),来源为开工分析八份报告与逐项
讨论拍板。要点:

- 范围:视频与图片同批交付,**取代 ADR-018 的「视频后置」**(该条已加
  supersede 标记,其余裁剪继续有效)。schema 侧本无障碍——目标模型自始
  按 media_kind IN ('image','video') 建模;成本集中在契约与客户端。
  供应商:视频 Seedance、图片 gpt-image-2;生产服务器无 GPU 故一律云 API。
- 服务划分:新建 Java 模块 patbond-creation(:8085) 持有队列与客户端端点;
  patbond-ai 为独立 Python 仓、只调服务商 API、不访问数据库。
- 队列:Postgres FOR UPDATE SKIP LOCKED + 租约,不引入 Redis/MQ
  (偏离 development-plan.md:205,判例同 ADR-002 移除 Nacos)。
- Java↔Python:统一异步、REST 非 gRPC、内部契约独立 openapi-internal.yaml
  不进快照锁、轮询为保证回调仅预留字段、服务端轮询节律与租约 TTL 约束。
  产物走 presignPut 直传——**据此更正开工报告的「服务端零对象写能力=缺失
  地基」推论**:缺 putObject 是事实,但服务端需要的是签发上传凭证,
  presignPut/presignGet 早已存在;附带使 Python 零对象存储凭证。
- 鉴权:服务身份 JWT 独立密钥对,禁止转发用户 token。事实依据:现有
  JwtVerifier 仅验签名、不校验 aud/iss,且用户 token 无 aud claim,
  复用密钥对会使四个模块把服务票当合法用户 token 接受。
- 数据模型:V6 两处偏离(input_asset_id 可空、新增 first_attempt_at)
  逐条记录原因;V7 目录种子待官方文档,不编造取值。
- 对象存储:**决策挂起,现有本地实现一行不动**。已核实 media.assets 的
  storage_type IN ('object','external') 使两种存储可共存、渐进迁移,
  任一选择均无需 DDL;另登记「六容器栈当前仅在开发机运行」与「MinIO 9000
  对真机不可达」两项上线前置。
- 埋点:eventVersion 定型为每事件 props schema 版本 + bump 规则;服务端
  指标以 generation_jobs 为权威不建第二管道;毒丸批次放大器须修;
  A/B 前置重置 5 绿 3 半、首个实验为 A/A;北极星改事件驱动触发条件。
- 契约 v1.5.0 纯增量、429 拆两码、AI 来源须由服务端从 generation_job_id
  派生(不得由客户端声明或由 purpose 推断,否则可被任意图片伪造)。
- 客户端:自适应轮询非 SSE、超时按 media_kind 由服务端下发、不承诺推送、
  不押注百分比进度、第六个 UI 态僵死/超时。
- 遗留:widthPx/heightPx 两侧同批必修、SegmentedButton 降 P2(实测
  7.19:1 达标)、收藏与草稿两页搭车、草稿类目静默降级须与放开写侧同提交修。
- 门禁:必需上下文已改 (pull_request) 并复核生效;patbond-ai 纳入发布语义。
- 版本号:v0.5.0。

另补本仓 .gitignore:site/ 此前仅靠机器级 ~/.gitignore_global 屏蔽,
换机器或进 CI 时一次 git add -A 会提交上百个构建产物(ADR-023 §12)。

验证:secret-scan exit 0;mkdocs build --strict exit 0。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-18 16:43:49 +08:00

23 lines
496 B
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# mkdocs 构建产物。此前仅靠机器级 ~/.gitignore_global 屏蔽,
# 换机器或在 CI 中一次 `git add -A` 会提交上百个构建产物(ADR-023 §12)。
/site/
# 本地与编辑器
*.log
*.swp
.DS_Store
.idea/
.vscode/
__pycache__/
.venv/
# 凭证载体一律不入库(ADR-021)。真实值只存在于被忽略的文件中,
# 占位样例走 *.sample / *.example(check-secrets.sh 的 DENY_NAME_OK)。
.env
.env.*
!.env.sample
!.env.example
credentials*
*.pem
*.key