docs: integrate removed project reopening fix

This commit is contained in:
2026-09-21 15:46:31 +08:00
parent 6aa30a57b4
commit b5907e895c
3 changed files with 53 additions and 0 deletions

View File

@@ -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

View File

@@ -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.

View File

@@ -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 和服务端包体校验仍必须执行。
- 非专业用户只执行一次“提交审核”;构建通过后由运营审核,审核通过即直接发布。