fix: refine coding project landing actions

This commit is contained in:
inman
2026-09-06 15:45:22 +08:00
parent de8ce283dd
commit faf751be5e
10 changed files with 307 additions and 117 deletions

View File

@@ -15,10 +15,13 @@
- Replace the no-project Code entry redirect with a dedicated conversation-first
landing state on `/chat`.
- Restyle both the no-project landing and the empty Conversation timeline around
the existing Makelore M brand mark, a large centered prompt, and the existing
bottom-composer hierarchy shown in the supplied Codex reference.
the existing Makelore M brand mark, a large centered prompt, and the spacious
vertical hierarchy shown in the supplied Codex reference.
- Keep project creation reachable from the landing surface and update focused
Renderer/Electron coverage plus README current-state wording.
- Apply the user's follow-up correction: the lower landing surface is a standalone
`新增项目` CTA followed by horizontally arranged existing-project cards, not a
composer-shaped project starter.
## Intent And Constraints
@@ -27,7 +30,8 @@
- Preserve the single Makelore light visual system, bundled typography, Chinese
UI, project-local `.makelore` authority, and all Main-owned runtime/API seams.
- The no-project call to action must open the existing Sidebar project-creation
flow rather than introducing a second creation implementation.
flow rather than introducing a second creation implementation; existing-project
cards must likewise reuse the Sidebar's validated project-entry behavior.
- Existing projects, Agent selection, Conversation creation, Composer behavior,
model/runtime controls, and accepted/uncertain mutation semantics remain
unchanged.
@@ -40,12 +44,16 @@
- Code now resolves an empty local project list to `/chat` instead of redirecting
to Project Configuration.
- The no-project view uses the existing Makelore M vector asset, a large centered
guide sentence, and a low, wide project starter modeled on the supplied Codex
composition while retaining the Makelore sidebar and light visual system.
- Every project-starter action reuses the Sidebar's existing project-creation
dialog through a renderer-local event bridge; the secondary action opens the
existing project/settings route.
- The no-project view uses the existing Makelore M vector asset and a large
centered guide sentence while retaining the Makelore sidebar and light visual
system. Its lower surface now uses the user's clarified standalone orange
`新增项目` CTA followed by an overflow-safe horizontal row of existing projects.
- Project creation reuses the Sidebar's existing dialog through a renderer-local
event bridge; project-card selection uses the same bridge to invoke the
Sidebar's validated entry flow instead of duplicating project activation.
- Each project card is backed by the real local project catalog and exposes the
project name and last-opened date; an empty catalog shows only the CTA and does
not fabricate sample projects.
- Empty Conversations reuse the same branded hero above the real editable
Composer and automatically yield to the normal timeline after the first entry.
- README current-state wording, focused unit coverage, and the Code-entry Electron
@@ -58,7 +66,10 @@
- `corepack pnpm run typecheck` — passed.
- `corepack pnpm exec vitest run tests/unit/coding-chat-panel.test.tsx tests/unit/coding-conversation-timeline.test.tsx tests/unit/module-navigation.test.tsx tests/unit/app-module-provider-gate.test.tsx --maxWorkers=4`
— 4 files, 58 tests passed.
- `corepack pnpm test` — 222 files passed; 1,861 tests passed and 3 skipped.
- Follow-up focused run:
`corepack pnpm exec vitest run tests/unit/coding-chat-panel.test.tsx tests/unit/coding-project-entry.test.ts tests/unit/module-navigation.test.tsx tests/unit/app-module-provider-gate.test.tsx --maxWorkers=4`
— 4 files, 48 tests passed.
- `corepack pnpm test` — 223 files passed; 1,863 tests passed and 3 skipped.
- `corepack pnpm run lint:check` — passed with 0 errors and the repository's 5
pre-existing warnings in `src/pages/Home/index.tsx` and
`src/pages/Makelore/index.tsx`.
@@ -66,12 +77,16 @@
worker production builds passed; only existing Browserslist, mixed-import, and
chunk-size warnings were emitted.
- `corepack pnpm exec playwright test tests/e2e/main-navigation.spec.ts --grep
"returns to the module chooser"` — passed against the built Electron app,
including `/chat`, branded hero, starter visibility, and project-dialog launch.
"offers a create CTA|returns to the module chooser"` — 2 tests passed against
the built Electron app, covering empty and remembered-project entry states,
horizontal card order, direct card entry, `/chat`, and project-dialog launch.
- `git diff --check` — passed.
- Visual comparison:
`/Users/inmanx/.codex/visualizations/2026/09/06/01a0756a-b6f5-7892-a11c-1c1608ebe592/codex-reference-vs-makelore.png`
— no actionable P0/P1/P2 differences.
`/Users/inmanx/.codex/visualizations/2026/09/06/01a0756a-b6f5-7892-a11c-1c1608ebe592/codex-reference-vs-makelore-v2.png`
plus the focused lower crop
`/Users/inmanx/.codex/visualizations/2026/09/06/01a0756a-b6f5-7892-a11c-1c1608ebe592/codex-reference-vs-makelore-v2-bottom.png`
— the user-identified composer/CTA mismatch is resolved and no actionable
P0/P1/P2 differences remain.
## Follow-ups
@@ -79,17 +94,16 @@
Code-entry tests with the concurrently completed but uncommitted Plugin-rehoming
and project-gate-removal tasks; their branch tips contain no commits to merge or
cherry-pick from this feature worktree.
- Recheck the starter's `项目与插件设置` label after those peer changes establish
their final settings terminology.
## Promotion Candidates
- Target: `.project-docs/30-worklog/current-state.md` and
`.project-docs/40-domain/business-rules.md`.
Proposal: record that entering Code with no active local project remains on
`/chat`, presents the branded project starter, and routes all creation actions
through the single existing Sidebar flow; empty Conversations share the same
brand hero until their first entry.
`/chat`, presents the branded hero, a standalone `新增项目` CTA, and real local
projects as a horizontal card row. Creation and project-card entry route through
the single existing Sidebar flows; empty Conversations share the same brand
hero until their first entry.
Evidence: focused unit coverage, the passing Electron navigation regression,
production build, and the passed side-by-side visual QA.
Future impact: future routing or setup work must not restore the configuration