Onboarding: emoji-first flow with shape/color selection, user preferences, language setup (9 locales), and bot creation with avatarValue persistence. executor.ts: split 4928→4159 lines into 8 modules (completion, computer, effects, model, utils, tools, attachments, types). pi-runtime.ts: split 1726→561 lines into 2 modules (model-config, tool-utils). E2E: new onboarding-emoji-first tests + updated completeOnboarding helper.
3.9 KiB
3.9 KiB
CLAUDE RESUME — 2026-09-21 (~19:30 Vienna / 17:30 UTC)
Session hung at Compacting conversation 95% for ~20+ minutes. Salvaged and restarted.
Session id: 84ee6150-4b15-431f-8ca8-017d4e9dbcda
Handoff dir: /home/cynar/Projects/evOo-local/.claude-handoff-20260921T173046Z/
(Do not commit the handoff dir.)
User intent (do not lose)
- Onboarding highlight = own emoji/mascot config first (shapes, eyes/Oo, accessories, colors, hands, poses). Remove model selection.
- Then short user questions for personalization.
- Also fold "Sprache einrichten" into onboarding (fat banner over first chat must go away via onboarding).
- Later: auto browser reload when useful.
- User: "weiter weiter weiter, arbeite durch bis großer Meilenstein erreicht" — keep pushing.
WIP was temporarily stashed by TradingBot-Entwickler (local model gate fix) and MUST be restored on main
Stash message: wip-aside-for-local-gate. After restore you should see dirty Onboarding + executor split files again.
Task board (session 84ee6150) — resume here
Done
- #1 DB user, #4 events.ts split, #5 empty catches, #6 ttyd auth, #7 .env
- #14–#17 Onboarding: emoji first, model choice removed, user questions, discovery/integrations adapted
- Onboarding.tsx rewritten with BotAvatar live preview; ui-web exports for GROK_COLOR_LIST / SHIPPED_SHAPE_KEYS / GrokColorDef
- Partial executor extracts already in WIP:
executor-checkpoint.ts,executor-shell-guard.ts(from stash)
In progress
- #8 Split executor.ts (5117 lines) — active when hung
Pending (next)
- #9 Split pi-runtime.ts (1726)
- #10 Extract createRunWorkspaceCheckpoint → executor-checkpoint.ts
- #11 Extract computer lifecycle guard → executor-computer.ts
- #12 Extract audit helpers → executor-audit.ts
- #13 Extract routines/approval/notifications/browser/completion/connections
Completed in this session
- ✅ #18 avatarValue wired into bot creation (color field in CreateBotInput)
- ✅ #19 user preferences persisted to bot instructions during onboarding
- ✅ #21 Language step added (9 locales, persists to localStorage
rakazo.uiLocale) - ✅ executor.ts split (Task #8): 769 Zeilen extrahiert in 8 Files
- executor-completion.ts (5 completion functions)
- executor-computer.ts (10 computer/notification functions)
- executor-effects.ts (recordEffect, completeEffect, uncertainEffectError)
- executor-model.ts (resolveModelKey, deploymentKeyFor, withModelCredentialLock)
- executor-utils.ts (selectRunConnections, loadCurrentTurnImages)
- executor-tools.ts (selectBuiltinToolsForRun, filterPageBrowserTools, PAGE_BROWSER_TOOL_NAMES)
- executor-attachments.ts (missingTurnImagesInstruction, settleSteeringAttachmentLoads + constants)
- executor-types.ts (ExecutorDeps interface)
- 4159 Zeilen (von 4928), 0 neue TS errors, build green, 54 tests passing
- ✅ Vite build verified green
executor.ts split status
| File | Lines |
|---|---|
| executor.ts | 4159 |
| executor-completion.ts | 67 |
| executor-computer.ts | 203 |
| executor-effects.ts | 170 |
| executor-model.ts | ~200 |
| executor-utils.ts | 70 |
| executor-tools.ts | 60 |
| executor-attachments.ts | 43 |
| executor-types.ts | 45 |
Pending
- #9 Split pi-runtime.ts (1726)
- Playwright E2E tests for new onboarding flow
- Accessory/pose customization in onboarding (currently only shape+color)
- Kill fat banner on first chat (requires backend language support)
Constraints
- Local models only (
:1234coder). OpenRouter intentionally off. - Do not kill unrelated Claude remote-control sessions.
- Continue executor.ts splits — aim for 3000 line target.
- Do NOT re-compact immediately.
First actions after resume
cd /home/cynar/Projects/evOo-local && git status && git diff --stat— confirm WIP restored- Read task board / this file
- Continue #8 / avatarValue wiring / Sprache-einrichten — whichever unblocks the onboarding milestone first
- Do NOT re-compact immediately; stay lean