merge: integrate simplified project creation
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
# Task: Remove project creation gate and template selection
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260906-remove-project-gate-7c31
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260906-remove-project-gate-7c31-remove-project-gate-7c31
|
||||
- Worktree: /Users/inmanx/Documents/makelore-task-remove-project-gate-7c31
|
||||
- Base commit: f8eee430f4f4167dc2ecc682ece96c652cdde14b
|
||||
- Owner: codex
|
||||
- Status: Ready for integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Remove the user-facing project creation identity/type choices from the Code
|
||||
sidebar and use the existing safe defaults instead.
|
||||
- Stop treating `config.initialized` as a navigation/UI gate for an otherwise
|
||||
valid local Code project.
|
||||
- Keep an empty project usable by presenting a non-blocking route to project
|
||||
settings when no Agent exists.
|
||||
- Keep the durable project ID as an internal service concern: remove it from the
|
||||
normal Project Configuration UI and automatically assign one when a valid
|
||||
legacy project lacks it.
|
||||
- Update focused Renderer tests, the shared Electron project-creation flow, and
|
||||
README product-state documentation.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- A new project receives a Main-generated local UUID and the existing internal
|
||||
`interactive_ai_app` type without asking the user to choose either during
|
||||
creation.
|
||||
- Preserve `.makelore/project.json`, historical project-type normalization,
|
||||
underlying identity compatibility endpoints, publish contracts, and existing
|
||||
custom projects without exposing identity choices to young users.
|
||||
- Keep the bundled Project Scaffold Skill available as an optional Plugin; it
|
||||
must not be part of, or a prerequisite for, project creation.
|
||||
- Missing or invalid project metadata remains an entry error. A valid legacy
|
||||
config missing only `projectId` is repaired by Main with a generated UUID;
|
||||
the legacy `initialized` Boolean no longer blocks a valid project.
|
||||
- Renderer backend access continues through the existing Host API/store seams.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Simplified the Code project creation dialog to directory selection only.
|
||||
Main still generates the local project UUID, while the Renderer writes the
|
||||
existing internal `interactive_ai_app` default without presenting identity,
|
||||
type, or template choices.
|
||||
- Removed the `initialized` navigation redirect and full-workspace overlay for
|
||||
valid project metadata. Missing or invalid metadata still routes to Project
|
||||
Configuration.
|
||||
- Added an empty-Agent state in the coding chat so a newly created project opens
|
||||
immediately and offers a direct, non-blocking route to create its first Agent.
|
||||
- Reworded Project Configuration save affordances so the retained compatibility
|
||||
write to `initialized` is no longer described as an initialization ceremony.
|
||||
- Removed the Project Configuration identity card, raw UUID, bind form, and
|
||||
independent-copy action. Main now serializes automatic UUID assignment for a
|
||||
valid legacy project missing `projectId`, including concurrent reads, while
|
||||
retaining the underlying compatibility endpoints and immutable schema rules.
|
||||
- Replaced the last creation-dialog identity terminology with youth-readable
|
||||
copy: only the folder choice is explained; all other setup is automatic.
|
||||
- Preserved project schemas, historical project types, publishing contracts,
|
||||
existing custom projects, and the optional bundled Project Scaffold
|
||||
Plugin/Skill.
|
||||
- Updated README product-state documentation and focused unit/Electron coverage.
|
||||
- Diagnosed a post-verification UI mismatch as a development-runtime issue: the
|
||||
visible Electron window had been launched from the separate Plugins/settings
|
||||
task worktree, whose source still contained the former identity choices. The
|
||||
stale process group was stopped and the verified feature worktree was started
|
||||
on the standard development ports.
|
||||
|
||||
## Verification
|
||||
|
||||
- `corepack pnpm install --frozen-lockfile` — passed with the repository-pinned
|
||||
pnpm 10.33.4.
|
||||
- `corepack pnpm run typecheck` — passed.
|
||||
- Focused ESLint across all changed source/test files — passed.
|
||||
- Focused Renderer/Main tests — 60 passed across App routing, Main layout,
|
||||
Sidebar, CodingChatPanel, Project Configuration, config stores, and serialized
|
||||
automatic legacy identity assignment.
|
||||
- Adjacent project-schema/store tests — 34 passed.
|
||||
- `corepack pnpm run lint:check` — passed with zero errors; five pre-existing
|
||||
warnings remain in unrelated Home/Makelore files.
|
||||
- `corepack pnpm test` — passed: 1,862 ordinary tests passed, three skipped, and
|
||||
the isolated pressure test passed 1/1.
|
||||
- `corepack pnpm run build:vite` — passed for Renderer, Main, Preload, and the
|
||||
release utility worker.
|
||||
- `corepack pnpm exec playwright test tests/e2e/coding-project-identity.spec.ts tests/e2e/project-configuration-skills.spec.ts`
|
||||
— passed (2/2), covering directory-only creation, direct chat entry, absence
|
||||
of all identity terminology and controls, automatic legacy UUID repair, and
|
||||
the empty-Agent settings route.
|
||||
- Live runtime verification after restart — Vite PID 16968 and Electron PID
|
||||
16975 both resolve to this task worktree; the active Renderer command reports
|
||||
the same `app-path`, and the source served on port 5173 contains the automatic
|
||||
setup copy while none of `项目身份`, `创建新的项目 ID`, or `绑定已有项目 ID`
|
||||
is present.
|
||||
- `git diff --check` — passed.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Promote the project-creation workflow change into ADR-008 and the canonical
|
||||
project architecture/domain documentation during a serialized Integration
|
||||
task.
|
||||
- Physically removing the optional bundled Project Scaffold Plugin/Skill, if
|
||||
desired, should be a separate explicit decision because it affects packaged
|
||||
resources and release coverage; this task only removes it from the creation
|
||||
path.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- Target: ADR-008 and canonical project-creation architecture/domain documents.
|
||||
Proposal: amend the user-facing creation workflow so identity and project type
|
||||
are safe defaults instead of required choices, and treat `initialized` as a
|
||||
compatibility field rather than a workspace navigation gate. Durable project
|
||||
identity remains Main-owned and is generated automatically for new projects
|
||||
and valid legacy configs that lack it; raw UUIDs, bind choices, and copy
|
||||
semantics must not return to ordinary youth-facing UI. Existing custom
|
||||
projects, type normalization, publishing authority, compatibility endpoints,
|
||||
and the optional Scaffold Skill remain. Future impact: product documentation
|
||||
and future creation/configuration UI must not restore these choices as
|
||||
mandatory or visible setup. Human confirmation is represented by the user's
|
||||
explicit statements that the product targets young users and service-required
|
||||
identity should default automatically; canonical promotion still belongs to a
|
||||
serialized Integration task.
|
||||
Reference in New Issue
Block a user