feat: add creative welcome and external works square links

This commit is contained in:
鲨鱼辣椒
2026-09-29 15:37:37 +08:00
parent 4199cadd1e
commit f8a7880da3
18 changed files with 428 additions and 41 deletions

View File

@@ -0,0 +1,61 @@
# Task: Add community inspiration to the creative welcome screen and update trial
## Identity
- Task ID: 20260929-community-welcome-c724e5a1
- Mode: Feature
- Branch: codex/20260929-community-welcome-c724e5a1-community-welcome
- Worktree: /Users/chillishark/Makelore 麦洛/.codex-worktrees/makelore/20260929-community-welcome-c724e5a1
- Base commit: 4199cadd1e067ce9741d6496196f4d13fed61d12
- Owner: codex
- Status: Ready for Integration
## Scope
- Implement a creative empty-state and explicit external Works Square links in the existing temporary application. Latest user correction: do not fetch or surface works from the square, and do not embed the square.
## Intent And Constraints
- User authorizes the previous community design. No subagents, desktop focus changes, cloud publication, paid model calls, formal-app installation or remote push. Preserve project selection, drafts, history and teacher three-round introduction behavior. Public community browsing is explicitly authorized; retired upload/publish and learning flows stay retired.
## Outcome
- Warm welcome heading, existing composer and a compact inspiration invitation share the empty-chat layout. Both the invitation and persistent sidebar button open only https://square.nianxx.cn/#explore in the system browser on explicit click.
- No public project feed, preview cards, community store or iframe remains in this feature. Existing unrelated Main routes are unchanged. The composer remains mounted across the first send; teacher introductions keep their prior three-successful-operation-round behavior and receive responsive clearance.
- Preserved the concurrent live help-label overlay (task 20260929-teacher-help-label-83a2f67c): the two buttons and suggestions text remain 帮我整体看🧠. Ported only its three source edits and synchronized existing expectations; peer checkout untouched.
- Temporary Renderer now loads this checkout's index-SmPpxLeP.js. Existing Main PID 62668 remains running; formal installation, cloud configuration, user history and remote branches unchanged. Kept this worktree for the live trial.
## Verification
- Pinned corepack pnpm: typecheck passed; lint:check has 0 errors and 8 pre-existing warnings; production Renderer/Main/Preload/utility build passed.
- Final full suite: 2,654 passed, 3 skipped across 265 files including the separate pressure run. Final focused link/composer suite: 33 passed. Help-label preservation suite also passed.
- Five headless Chrome tests passed: 375/768/1280/1470px layouts, teacher clearance, reduced motion, no square network requests or iframe, click-only external URL, draft/composer preservation and first-send dismissal. Visually inspected desktop and narrow screenshots. Native Electron fixture updated and all 20 cases parse via --list; no headed Electron test or real external-browser launch was performed.
- Live verification: current asset, sidebar link present, no work cards or iframe, no alert, runtime worker ready/idle, authentication identity/route unchanged, all 13 saved drafts byte-equal. Updates used background loadFile with cache-busting; no app/window activation called. Focus monitor during refresh showed no trial activation.
- Temporary bundle was missing Info.plist/helper metadata and other resources. Matched local Electron 43.4.0 main/framework SHA-256 hashes, restored 238 missing bundle files and retained the trial bundle identity. Existing conversation hydration recovered; no model prompt was sent. This repaired only temporary bundle files, not repository runtime behavior.
- Evidence and pre-update manifests/state are in trial community-welcome-20260929/. Project-docs ownership drift and git diff checks passed.
## Follow-ups
- Keep the worktree while the trial references it. Merge/push only when requested.
## Promotion Candidates
- None recorded.
## Project Context Loaded
- Feature task `20260929-community-welcome-c724e5a1`; branch/worktree in Identity and base `4199cadd1e067ce9741d6496196f4d13fed61d12` verified by official start/status. App worktree tool returned Not a git repository for the parent chat cwd, so the official skill script created this isolated checkout. Previous trial source remains read-only.
- Read entry/memory/positioning, own task, current integrated snapshot, decisions, architecture, domain, success criteria, evidence/reflection/commitment indexes and peer task scopes. Existing approved classroom behavior at 4199cad supersedes stale canonical component/welcome wording. Feature ownership prohibits canonical edits.
- Goal: student-owned creation with a welcoming input and real peer-work inspiration. Main remains the remote data/auth boundary. User approval of public community browsing explicitly covers this new entry despite the earlier general gallery restriction; do not restore publishing, uploads, learning or asset galleries.
- Peers: prior teacher cleanup/UI task owns the live trial source, formal installation/cloud-agent verification is separately active, and language-skill scope is unfinished. No changes to those checkouts or cloud. New isolated frontend feature uses committed previous UI work as base. No semantic dependency conflict.
- Evidence: public `/api/projects?limit=100` returns 21 works including runnable apps and videos; existing Main `/api/works/projects` already provides a public safe projection. Root and play-page HEAD responses have no X-Frame-Options/frame-ancestors restriction. Prefer existing public Host API and an isolated, sandboxed community overlay without unmounting the current project.
- Gate: Passed.
## Final Plan And Scope Correction
1. Keep the approved welcome/composer layout and teacher clearance.
2. Follow the user's latest correction: only external square links. Remove the proposed feed, recommendation cards, store and in-app viewer completely. Keep project state and drafts mounted and never send a prompt on link clicks.
3. Verify layout, click behavior, no community requests, drafts, repository checks and the actual temporary Renderer; preserve the concurrent label update and temporary profile.
All three steps completed. Earlier public-feed investigation was feasibility work; no feed fetching or embedded browsing is present in the delivered feature.