--- title: ArtVeris Development – Current Tasks (development workspace) type: curated permalink: main/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/curated/art-veris-development-current-tasks-development-workspace stable_id: 98ef0fde-27fa-4f45-9037-9fe294499a49 scope: project project_id: d44c219a-0b31-4de1-b160-323eb34a4c6a workspace_type: development usage_profile_id: null preference_context: development document_type: tasks revision: 1 source_memory_ids: - 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 source_checkpoint_ids: - 4f5c2b7f-d115-46c2-87be-80c8605ccbdb - d45ff9ab-e2f4-4de8-8ccb-389754c1e3a4 source_file_ids: - 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 source_git_commit: d7c6368 source_git_commits: - d7c6368 source_agent_sync_ids: - artveris-curation-2026-09-03-migration model_connection: Sub2API model_name: git-restore source_count: 42 source_revisions: {} source_dispositions: processed: 42 unchanged: 0 unsupported: 0 skipped: 0 cited_source_ids: [] job_cited_source_ids: [] conflicts: [] supersedes: [] preferences: - statement: '提交遵循 type: 中文描述 的 commit 格式,分支策略为 dev(长期开发) 与 main(生产)。' level: scenario workspace_types: - development workspace_ids: [] source_ids: - memory:6b129c78-a412-41e9-af9f-63ab071e03d9 counterexample_source_ids: [] occurrence_count: 1 explicit: true confidence: 1.0 status: current - statement: 生产部署采用单一 .env 配置文件,业务可调参数存于 system_setting 表;其他配置文件被忽略。 level: scenario workspace_types: - development workspace_ids: [] source_ids: - memory:b7e0eb44-e38f-40a3-8736-3a7a9de84818 counterexample_source_ids: [] occurrence_count: 1 explicit: true confidence: 1.0 status: current - statement: 本地开发约束:使用 PNPM 10.28.0、Node ≥ 20.11.1,使用 scripts/dev.py,构建或升级前必须停止 nest 进程。 level: scenario workspace_types: - development workspace_ids: [] source_ids: - memory:e1b8d25d-f638-4fbe-8a8d-0eda8f2d7d46 counterexample_source_ids: [] occurrence_count: 1 explicit: true confidence: 1.0 status: current - statement: 代码提交前需清理临时文件、日志、密码文件,并更新对应的 MemRelay 记忆条目。 level: scenario workspace_types: - development workspace_ids: [] source_ids: - memory:6b129c78-a412-41e9-af9f-63ab071e03d9 counterexample_source_ids: [] occurrence_count: 1 explicit: true confidence: 1.0 status: current source_cursor: 359 source_hash: 06340ad0d2d916308bcf502ff22c22461eeb2afaaeea56df8687dae4fdb0f11d prompt_version: 2026-08-12.3 schema_version: '3' curation_job_id: null created_at: '2026-09-03T04:21:25.595127+00:00' updated_at: '2026-09-23T15:06:56.313279+00:00' tags: - development - tasks restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2 --- # 📋 任务清单(截至 2026‑09‑03) 以下任务基于最近的迁移、部署、以及技术决策记录整理。所有条目均已在 **MemRelay** 中对应的源记录中列出,可通过 `source_ids` 追溯。任务按状态分组,便于在本轮开发冲刺中快速定位阻塞点。 --- ## ✅ 已完成任务 | 编号 | 任务描述 | 关联来源 | |------|----------|----------| | T1 | 将项目所有记忆(规则、事实、决策、经验、检查点)迁移至 MemRelay,删除本地 `aidocs/` 并加入 `.gitignore`。 | [d44c219a‑0b31‑4de1‑b160‑323eb34a4c6a](#) / [4f5c2b7f‑d115‑46c2‑87be‑80c8605ccbdb](#) | | T2 | 修复生产服务器上 PM2 未自动启动的问题,并在 Baota 环境中完成 `pm2 startup` / `pm2 save`。 | [4f5c2b7f‑d115‑46c2‑87be‑80c8605ccbdb](#) | | T3 | 完成 Tianhe 链接入决策(方案 B),实现 **upload → publish → confirm** 流程,且不在链上存储媒体或摘要。 | [dd22c710‑2822‑4515‑a28c‑ead99162caac](#) | | T4 | 实现 12 位数字 `shortCode` 生成规则,保证全局唯一且不超过 1 M/天的生成上限。 | [7e83a02d‑9eb6‑4e97‑9f23‑102f34ae8b1e](#) | | T5 | 建立“一码一件”模型(Artwork → Batch → TraceCode),并完成对应 Prisma migration `20260715000000_init`。 | [7e83a02d‑9eb6‑4e97‑9f23‑102f34ae8b1e](#) | | T6 | 编写并上线一键远程升级脚本 `scripts/upgrade‑remote.ps1`(备份 DB → 停止 PM2 → 执行 upgrade.sh → 重启 → 健康检查)。 | [d5bb7f58‑99bb‑4381‑ac98‑300cceb128fe](#) | | T7 | 完成 **出库 ZIP 导入契约**,包含 10 k 行、64 列、100 MB 限制及 100 002 中央目录条目安全阈值。 | [76e12a12‑446a‑4d96‑bb49‑2534930a5d56](#) | | T8 | 通过 `flock` 为所有 SSH‑MCP 远程脚本加锁,防止重复启动导致的表冲突与 NUL 日志。 | [8a861a5f‑35c3‑4f95‑bd5b‑6b2297888f56](#) | | T9 | 统一全局开发原则(KISS & YAGNI)并写入全局偏好文档。 | [bf88c265‑4749‑4c50‑85bc‑4bae25298cd5](#) | | T10 | 在 CI 中加入 **credential‑first** 检查:所有登录/SSH/DB/API 前先查询 Vaultwarden。 | [105b328f‑4bda‑4641‑90a7‑7282ef156316](#) | --- ## 🚧 待完成任务(阻塞项) | 编号 | 任务描述 | 需求/阻塞原因 | 关联来源 | |------|----------|----------------|----------| | P1 | 将 `aidocs‑cleanup` 与 **PM2‑fix** 两个提交合并至 `main` 并推送至 Gitea/GitHub。 | 需要项目负责人确认后合并。 | [d45ff9ab‑e2f4‑4de8‑8ccb‑389754c1e3a4](#) | | P2 | 执行生产环境 **Tianhe 链钱包重新注册**、切换至正式 `AppID/AppKey`,并完成全链路验证。 | 需在 staging 完全通过后方可在生产执行。 | [d5bb7f58‑99bb‑4381‑ac98‑300cceb128fe](#) | | P3 | 合并 **admin bundle 代码分块**(`manualChunks`)到主分支并发布新版本。 | 已在 `dev/qa-polish` 分支完成,需要 QA 验收。 | [4e728912‑7bd0‑455c‑ac3a‑e35189c26e37](#) | | P4 | 完成 **用户 Key 显示硬化**(在 UI 中遮蔽后仍可通过审计日志查看),并通过安全审计。 | 代码已在同一分支实现,等待安全团队确认。 | [4e728912‑7bd0‑455c‑ac3a‑e35189c26e37](#) | | P5 | 再次评审 **AI curation / Git sync** 的启用策略(当前全局规则禁用)。如业务需要,可在全局规则 `3f91189b‑11a1‑45bb‑8357‑4f413dc1609d` 中放行。 | 决策待业务方提出需求。 | [3f91189b‑11a1‑45bb‑8357‑4f413dc1609d](#) | | P6 | 确认生产 **Backup‑restore** 流程(版本 2.0.0)在紧急恢复场景下能够完整恢复 DB、存储及清单。 | 需要一次完整的演练。 | [76e12a12‑446a‑4d96‑bb49‑2534930a5d56](#) | --- ## 📌 关键偏好(本工作区) 以下偏好直接影响任务的执行方式,均标记为 **scenario** 级别且适用于 **development** 工作区。 | 编号 | 偏好声明 | 来源 | 级别 | 备注 | |------|----------|------|------|------| | P‑01 | 开发应遵循 **KISS & YAGNI** 原则,复用已有框架,避免投机抽象。 | memory:bf88c265‑4749‑4c50‑85bc‑4bae25298cd5 | scenario | 与全局偏好一致,但限制在本工作区使用。 | | P‑02 | 所有凭证在使用前必须先在 **Vaultwarden** 中查询;新增或变更的凭证只在密码库保存,记忆中仅记录名称/用途。 | memory:105b328f‑4bda‑4641‑90a7‑7282ef156316 | scenario | 参照全局规则,但限定本工作区。 | | P‑03 | 项目记忆仅保存在 **MemRelay**,本地 `aidocs/` 仅用于临时导出后立即删除。 | memory:1194be51‑ee29‑47e1‑8957‑ec2888007db6 | scenario | 与全局规则保持一致。 | | P‑04 | 默认沟通语言为 **中文**(包括代码注释、文档、提交信息)。 | memory:7429c22e‑50ff‑458a‑97c0‑423c679904c7 | scenario | 与全局偏好相同。 | | P‑05 | 禁用 **AI 驱动的记忆同步与 Git 自动化**,仅在显式开启时才启用。 | memory:3f91189b‑11a1‑45bb‑8357‑4f413dc1609d | scenario | 维持当前关闭状态。 | | P‑06 | 开发、提交遵循 **type: 中文描述** 的 commit 格式,分支策略为 `dev`(长期开发) 与 `main`(生产)。 | memory:6b129c78‑a412‑41e9‑af9f‑63ab071e03d9 | scenario | 与全局约定保持一致。 | | P‑07 | 生产部署采用单一 `.env` 配置文件,所有业务可调参数存于 `system_setting` 表;其他配置文件被忽略。 | memory:b7e0eb44‑e38f‑40a3‑8736‑3a7a9de84818 | scenario | 支持“一键升级”脚本的前提。 | | P‑08 | 本地开发约束:使用 PNPM 10.28.0、Node ≥ 20.11.1,使用 `scripts/dev.py`,在构建或升级前必须停止 `nest` 进程。 | memory:e1b8d25d‑f638‑4fbe‑8a8d‑0eda8f2d7d46 | scenario | 防止文件被锁定导致构建失败。 | | P‑09 | 代码提交前需 **清理临时文件、日志、密码文件**,并更新对应的 MemRelay 记忆条目。 | memory:6b129c78‑a412‑41e9‑af9f‑63ab071e03d9 | scenario | 与全局清理原则对应。 | --- ## 🗂️ 参考来源(source_ids) - **迁移与记忆**:`d44c219a‑0b31‑4de1‑b160‑323eb34a4c6a`, `4f5c2b7f‑d115‑46c2‑87be‑80c8605ccbdb`, `dd093dd7‑71be‑46a2‑bcb1‑4a87c3d4b9ab` - **技术决策与实现**:`ae318134‑8651‑4563‑bc22‑491c51f87af4`, `dd22c710‑2822‑4515‑a28c‑ead99162caac`, `3efd0adf‑f91b‑4d78‑b163‑5365c257d6d4`, `46eb1720‑910a‑4e4e‑b56b‑b6ac43b0cec1`, `d5bb7f58‑99bb‑4381‑ac98‑300cceb128fe`, `b7e0eb44‑e38f‑40a3‑8736‑3a7a9de84818`, `dcdbeb7d‑dd75‑4294‑8853‑872491043db1`, `7e83a02d‑9eb6‑4e97‑9f23‑102f34ae8b1e`, `a9739d28‑4318‑492e‑bad3‑53e9ea2769a8`, `dc70f54c‑8e29‑4834‑a5c1‑a63bc9ac9e68`, `e1b8d25d‑f638‑4fbe‑8a8d‑0eda8f2d7d46`, `6b129c78‑a412‑41e9‑af9f‑63ab071e03d9` - **全局偏好与规则**:`7429c22e‑50ff‑458a‑97c0‑423c679904c7`, `ff34c6eb‑6bba‑41e5‑9e43‑ff80941fa823`, `bf88c265‑4749‑4c50‑85bc‑4bae25298cd5`, `3f91189b‑11a1‑45bb‑8357‑4f413dc1609d`, `105b328f‑4bda‑4641‑90a7‑7282ef156316`, `1194be51‑ee29‑47e1‑8957‑ec2888007db6` - **SSH‑MCP 关键经验**:`8a861a5f‑35c3‑4f95‑bd5b‑6b2297888f56` - **其它**:`d45ff9ab‑e2f4‑4de8‑8ccb‑389754c1e3a4`, `4e728912‑7bd0‑455c‑ac3a‑e35189c26e37` --- *以上任务、偏好与来源均直接摘自 MemRelay 提供的证据,未进行任何推断或新增信息。*