Files
MemRelay/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/curated/关键技术决策记录.md
T

6.1 KiB
Raw Blame History

title, type, permalink, stable_id, scope, project_id, workspace_type, usage_profile_id, preference_context, document_type, revision, source_memory_ids, source_checkpoint_ids, source_file_ids, source_git_commit, source_git_commits, source_agent_sync_ids, model_connection, model_name, source_count, source_revisions, source_dispositions, cited_source_ids, job_cited_source_ids, conflicts, supersedes, preferences, source_cursor, source_hash, prompt_version, schema_version, curation_job_id, created_at, updated_at, tags
title type permalink stable_id scope project_id workspace_type usage_profile_id preference_context document_type revision source_memory_ids source_checkpoint_ids source_file_ids source_git_commit source_git_commits source_agent_sync_ids model_connection model_name source_count source_revisions source_dispositions cited_source_ids job_cited_source_ids conflicts supersedes preferences source_cursor source_hash prompt_version schema_version curation_job_id created_at updated_at tags
关键技术决策记录 curated main/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/curated/关键技术决策记录 dc8f8ea1-5790-4480-a7dc-490e45bc506f project d44c219a-0b31-4de1-b160-323eb34a4c6a development null development decisions 1
2939ce96-a6f6-418a-9a70-568980dbdc2a
2fafa191-d208-41e4-9f7b-ce5a633c886b
3efd0adf-f91b-4d78-b163-5365c257d6d4
46eb1720-910a-4e4e-b56b-b6ac43b0cec1
67a86e88-a750-4cd8-9650-c1b7cfbf22b9
6b129c78-a412-41e9-af9f-63ab071e03d9
76e12a12-446a-4d96-bb49-2534930a5d56
7737eaaf-441e-476e-aea0-42a4d13ae245
7e83a02d-9eb6-4e97-9f23-102f34ae8b1e
92e5c8d9-c4ef-4ab7-99ac-1b81f3228b59
a9739d28-4318-492e-bad3-53e9ea2769a8
ada12b65-afa2-415e-98b3-2a24ff57feb9
ae318134-8651-4563-bc22-491c51f87af4
b7e0eb44-e38f-40a3-8736-3a7a9de84818
beb81aaa-8e86-4af7-a6c8-d35f7682d330
d5bb7f58-99bb-4381-ac98-300cceb128fe
dc70f54c-8e29-4834-a5c1-a63bc9ac9e68
dcdbeb7d-dd75-4294-8853-872491043db1
dd093dd7-71be-46a2-bcb1-4a87c3d4b9ab
dd22c710-2822-4515-a28c-ead99162caac
e1b8d25d-f638-4fbe-8a8d-0eda8f2d7d46
4f5c2b7f-d115-46c2-87be-80c8605ccbdb
d45ff9ab-e2f4-4de8-8ccb-389754c1e3a4
07583531-4b5a-4826-ad88-be4c3f16ba9d
2749e8f9-a45f-43b0-a818-143ae532db24
2977cf7c-7494-4b28-a8c6-2fbc6261c810
4e728912-7bd0-455c-ac3a-e35189c26e37
8f5b3f27-3ed1-4bf1-97ef-cb130f238161
d7c6368
d7c6368
artveris-curation-2026-09-03-migration
Sub2API openai/gpt-oss-120b 42
memory:ae318134-8651-4563-bc22-491c51f87af4 memory:dd22c710-2822-4515-a28c-ead99162caac memory:a9739d28-4318-492e-bad3-53e9ea2769a8 memory:dc70f54c-8e29-4834-a5c1-a63bc9ac9e68 memory:e1b8d25d-f638-4fbe-8a8d-0eda8f2d7d46 memory:6b129c78-a412-41e9-af9f-63ab071e03d9
1 1 1 1 1 1
processed unchanged unsupported skipped
42 0 0 0
memory:ae318134-8651-4563-bc22-491c51f87af4
memory:dd22c710-2822-4515-a28c-ead99162caac
memory:a9739d28-4318-492e-bad3-53e9ea2769a8
memory:dc70f54c-8e29-4834-a5c1-a63bc9ac9e68
memory:e1b8d25d-f638-4fbe-8a8d-0eda8f2d7d46
memory:6b129c78-a412-41e9-af9f-63ab071e03d9
memory:ae318134-8651-4563-bc22-491c51f87af4
memory:dd22c710-2822-4515-a28c-ead99162caac
memory:a9739d28-4318-492e-bad3-53e9ea2769a8
memory:dc70f54c-8e29-4834-a5c1-a63bc9ac9e68
memory:e1b8d25d-f638-4fbe-8a8d-0eda8f2d7d46
memory:6b129c78-a412-41e9-af9f-63ab071e03d9
359 06340ad0d2d916308bcf502ff22c22461eeb2afaaeea56df8687dae4fdb0f11d 2026-08-12.3 3 7900a00f-2876-4e05-bb12-7beb6e014a93 2026-09-03T04:21:16.235463+00:00 2026-09-03T04:21:16.236168+00:00
决策
技术选型
链上范围
规范

1. 技术选型决策 (memory:ae318134-8651-4563-bc22-491c51f87af4)

  • UserKey 明文保存,便于系统迁移后恢复;AppKey 加密存储。
  • 全局唯一 .env 配置文件,取代旧 config/ JSON。
  • 安装向导合并至 admin 模块,取消独立 apps/install。
  • 核心部署采用单节点 Node 服务 + 可选 Docker/SSH,避免多容器复杂性。
  • 采用动态追踪代码链接、无状态 TOTP 预览令牌、防篡改模块布局、Photo‑Swipe v5 UI。
  • 明确 不构建 NFC、多组织隔离、主动告警、C‑端 skeleton screens、IP/UA 区域解析等功能。

2. 天河链接入范围决策 (memory:dd22c710-2822-4515-a28c-ead99162caac)

  • 仅上传 + 发布 链上流程(无二次转移、烧毁)。
  • 链上不存放媒体或摘要,所有媒体均离线存储。
  • 统一使用单一平台钱包 artveris-platform。
  • 计费方式基于 API 调用次数,删除功能不支持。
  • C 端展示仅提供区块浏览器交易详情链接,无 on‑chain 销售状态标记。

3. 出库/上链不变量与审计约束 (memory:a9739d28-4318-492e-bad3-53e9ea2769a8)

  1. 链上记录与出库记录 解耦。
  2. 每个追溯码最多拥有一条 OutboundRecord(时间必填,可修改)。
  3. 单次批量发布最多 5 000 productId,按艺术品分组。
  4. 已存在的码若状态为 FAILED 方可重复 mint。
  5. UNKNOWN 状态必须保留原始参数,仅管理员可强制重试。
  6. 审计流:修订创建快照,只有批准的修订才替换线上数据;超级管理员操作自动批准。

4. 数据持久化红线 (memory:dc70f54c-8e29-4834-a5c1-a63bc9ac9e68)

  • 升级过程 禁止 覆盖 .env、storage/、backups/、数据库。
  • Prisma 基线迁移 20260715000000_init,全局 trace_code_sequence.next_seq 不可回滚,最高 999 999。
  • 禁止删除存活的 trace code、ONCHAIN/UNKNOWN 状态码。
  • 媒体仅通过键存储,不允许 SVG。
  • 短码 URL 动态生成 {{clientBaseUrl}}/#/trace/{{shortCode}}。

5. 构建与本地开发硬约束 (memory:e1b8d25d-f638-4fbe-8a8d-0eda8f2d7d46)

  • PNPM 10.28.0、Node ≥20.11.1(推荐 24 LTS)。
  • 使用 scripts/dev.py 进行本地环境搭建,若缺少 .env 自动进入安装向导。
  • 在运行 nest build 或升级脚本前必须 停止 开发 API。
  • Windows PowerShell 中 && 不被支持,需要分行或使用 ;。
  • 严禁提交 Secrets,.env、docs/系统测试信息.md、.deploy/ 必须在 .gitignore 中。

6. 开发与提交规范 (memory:6b129c78-a412-41e9-af9f-63ab071e03d9)

  • 使用中文进行所有交流和提交信息。
  • 开发环境统一为 Windows + PowerShell + WSL2。
  • 采用 YAGNI/KISS 原则,复用已有框架。
  • 提交顺序:清理 → 记忆更新 → 文档 → .gitignore → commit。
  • Commit message 格式 type: 中文描述(type 如 feat、fix、refactor 等)。
  • 分支策略:main(生产) 与 dev(长期开发),两者均同步至 Gitea 与 GitHub。
  • 许可证采用 PolyForm Strict 1.0.0。