From b5907e895cd3c757b0bb269aab59fdbb4143cdac Mon Sep 17 00:00:00 2001 From: brother7 <7brother7@gmail.com> Date: Mon, 21 Sep 2026 15:46:31 +0800 Subject: [PATCH] docs: integrate removed project reopening fix --- .project-docs/30-worklog/current-state.md | 9 ++++ .../20260921-merge-readd-project-c82e9b.md | 43 +++++++++++++++++++ .project-docs/40-domain/business-rules.md | 1 + 3 files changed, 53 insertions(+) create mode 100644 .project-docs/30-worklog/tasks/20260921-merge-readd-project-c82e9b.md diff --git a/.project-docs/30-worklog/current-state.md b/.project-docs/30-worklog/current-state.md index e9cc01a..045d792 100644 --- a/.project-docs/30-worklog/current-state.md +++ b/.project-docs/30-worklog/current-state.md @@ -4,6 +4,15 @@ This file is the integrated default-branch snapshot. Feature tasks record progre ## Integrated Through +- 2026-09-21:任务 `20260921-merge-readd-project-c82e9b` 经用户确认接管主目录, + 将修复源 `6aa30a57b4dfd3af669db6e7f9a90175a9bdcbb7` 从 `576edb2` 无冲突快进合入本地 `main`。 + Code 项目移除后,在“新建项目”直接选择原文件夹会重新打开,保留原身份、类型、智能体、对话及文件; + 无效配置不覆盖,新建下级目录的重名检查与显式身份绑定冲突保持。 + 产品代码与已验证源一致,沿用 43 项相关单测、2 项 Electron 流程、标准类型检查、scoped lint 和 Vite 全目标构建; + 额外 Main-service 严格类型检查仍有基线已存在的 `projectId` 可选类型诊断,无新增。 + 源记录原样导入,原有 3 份未跟踪文档保持;未推送、打包或部署。 + 详见[集成记录](tasks/20260921-merge-readd-project-c82e9b.md)。 + - 2026-09-21:任务 `20260921-merge-disabled-model-2209f56a` 经用户确认接管主目录, 将模型切换修复源 `0f7093d17338463c29f11e0d0b0d45bb9e2c2b52` 从 `d222d17` 无冲突快进合入本地 `main`。旧模型下架后可在原会话选择可用模型;尚无 worker diff --git a/.project-docs/30-worklog/tasks/20260921-merge-readd-project-c82e9b.md b/.project-docs/30-worklog/tasks/20260921-merge-readd-project-c82e9b.md new file mode 100644 index 0000000..b1122d4 --- /dev/null +++ b/.project-docs/30-worklog/tasks/20260921-merge-readd-project-c82e9b.md @@ -0,0 +1,43 @@ +# Task: Integrate removed project folder reopening into main + +## Identity + +- Task ID: 20260921-merge-readd-project-c82e9b +- Mode: Integration +- Branch: main +- Worktree: D:\Datas\OthersProjects\makelore +- Base commit: 576edb2720c00c317b931ea8d33076efae1a0925 +- Owner: codex +- Status: Ready for Integration + +## Scope + +- Integrate completed source `6aa30a57b4dfd3af669db6e7f9a90175a9bdcbb7` into local main and promote the removed-project folder reopening rule. + +## Intent And Constraints + +- User explicitly confirmed releasing completed owner `20260921-merge-disabled-model-2209f56a` and adopting the three original untracked records unchanged. Official release/start/status passed; this task owns main and the exclusive integration lock. +- Concurrent Task Gate and Planning Gate Passed. Reread entry/own/source records and current domain/integrated state; reuse this conversation's same-base memory index, positioning, decision index, ADR-008, architecture, success criteria and relevant evidence/reflection/commitment context. Re-read 150 peer Scope/Intent/Promotion records and compared them with the preceding assessment; only the source task is newly ready. Historical placeholders remain unknown/read-only with no concrete conflicting dependency. +- Plan: fast-forward the exact completed source, promote compatible domain/current-state facts, verify product/source-record identity and documentation boundaries, then commit and complete this integration. Reuse the verified source tests if integration needs no product edits. +- Preserve original project identities/configurations, Agents, Conversations and disk files. Source records are read-only. No subagents, remote push, packaging, installation or deployment. + +## Outcome + +- Fast-forwarded local main from `576edb2720c00c317b931ea8d33076efae1a0925` to `6aa30a57b4dfd3af669db6e7f9a90175a9bdcbb7` without conflicts. Product and source task record are unchanged from the verified source result. +- Promoted ordinary direct-folder reopening, preserved disk data/identity, invalid-config rejection and unchanged child-directory/explicit-bind conflict rules to business-rules and current-state. These extend the existing ADR-008 configuration ownership without reversing any accepted decision. +- Original untracked documents `20260901-package-122-c5e8.md`, `20260901-package-123-d7f3.md` and `20260902-client-hang-diagnosis-a47c9e2b.md` remain unchanged and outside the integration commit. + +## Verification + +- Source branch/HEAD, committed Ready for Integration record and clean source worktree verified; the actual main branch contains its latest result through a direct fast-forward. `git diff --exit-code 6aa30a5 HEAD` passed immediately after merge. +- Reused exact-source results because this integration changes only canonical documentation: 43 focused unit tests, 2 real Electron project-identity flows, standard typecheck, scoped ESLint and all Vite production targets passed. Extra strict Main-service compilation has the same single TS2322 at line 215 as the original baseline, with no new diagnostic. +- Task-aware documentation drift validates unchanged source-record import provenance, canonical write ownership and unchanged adopted foreign records. Diff checks cover unintended content/whitespace changes. No full unrelated suite, installed-package or native macOS/Linux certification is claimed. + +## Follow-ups + +- Source cleanup awaiting explicit confirmation: task `20260921-readd-project-8f4a2c`, managed worktree `D:\Datas\OthersProjects\.codex-worktrees\makelore\20260921-readd-project-8f4a2c`, branch `codex/20260921-readd-project-8f4a2c-readd-project`. Retain it unless approved; removal preserves the branch and commits while deleting the checkout and ignored build/dependency files. +- A rebuilt client is still needed to deliver this local main fix to installed users. No push, package, installation or deployment performed. + +## Promotion Candidates + +- Source proposal accepted and promoted to business-rules/current-state under the user's merge authorization. No remaining semantic conflict or promotion candidate. diff --git a/.project-docs/40-domain/business-rules.md b/.project-docs/40-domain/business-rules.md index 2f390f0..80516ba 100644 --- a/.project-docs/40-domain/business-rules.md +++ b/.project-docs/40-domain/business-rules.md @@ -120,6 +120,7 @@ from provider metadata or an uploaded ZIP. - 面向用户的 AI 编程新建流程只要求选择目录,不展示 `ProjectType`、模板、原始项目 UUID、绑定或独立副本选项。Renderer 写入内部默认 `interactive_ai_app`,Main 自动生成 UUID;创建后类型仍不能通过 UI 或 Host API 修改。既有 `custom` 项目继续可用,历史 `mini_game` / `mini_program` 仅在读取边界归一为 `interactive_ai_app` 且不改写配置;未传类型的底层兼容 API 调用仍按 `custom` 处理。 - 新建项目只原子生成 `.makelore/project.json` 和 `knowledge/`,完成后可直接进入聊天;有效旧配置仅缺 `projectId` 时由 Main 串行生成并持久化一次 UUID。缺失或无效的其他 metadata 仍进入 Project Configuration;旧 `initialized` 布尔仅为兼容字段,不得作为有效项目的导航、工作区或 Agent 创建 gate。 +- 从 Makelore 移除 Code 项目只取消本机列表登记,不删除磁盘配置或项目内容。普通“新建项目”直接选择已有有效配置的文件夹时,Main 应重新登记并打开,保留原项目身份、类型、Agent、Conversation 和知识文件;重复选择已登记目录不生成重复卡片。无效的既有配置必须提示错误且不能覆盖;新建下级目录仍拒绝同名路径,底层显式绑定身份的创建操作保持既有冲突语义。 - 交互式 AI 应用的固定六文件 Vite 起步树只能由用户可选地明确调用官方 bundled `makelore.project-scaffold` Plugin 中的 `makelore-project-scaffold` Skill 生成。Skill 不是项目创建、进入聊天或创建首个 Agent 的前置条件;脚本必须先预检全部目标、不得覆盖已有路径,受控失败只回滚本次创建内容,且不得安装依赖、访问网络、构建、上传或提交审核。 - `ProjectType` 不等于 `BuildPreset` 或 Scaffold 状态:规范可发布类型映射到内部受控 Vite preset;本地 `projectType` 和 Skill 检测结果都不是授权边界,Main-owned 安全打包、Host API 和服务端包体校验仍必须执行。 - 非专业用户只执行一次“提交审核”;构建通过后由运营审核,审核通过即直接发布。