Handoff: CreatorTrack live-iteration session (2026-07-03)¶
URL: https://mkdocs.justinsforge.com/memory/handoffs/creatortrack-iteration-2026-07-03/
Continues the overnight overhaul (creatortrack-overhaul-2026-07-03). Justin iterated live on dev for hours; this session ran ~15 more worktree agents + many direct fixes. Handing to a fresh remote worker.
State¶
- Everything is on dev.creatortrack.ai (
creatortrack-dev,npm run dev= next dev, port 3060,CT_DIST_DIR=.next-dev, WorkingDirectory/home/justinwieb/forge-suite). forge-suitemainhead at handoff time =185fbf1. Dev verified healthy (/login,/api/auth/*= 200). - Prod (
creatortrack-prod:3070) is still on the pre-overhaul build. Both services share the same working dir + thelifeosDB. Promotion is pending Justin's ok:cd ~/forge-suite && npm run build && sudo systemctl restart creatortrack-prod, then flip~/.forge-secrets/creatortrack-bot.envCREATORTRACK_BASE_URLback tohttp://localhost:3070and restart bots. - Bots point at dev (
CREATORTRACK_BASE_URL=http://localhost:3060). SharedlifeosDB, canonical workspacejustin(id 67, pinned). See [[reference_creatortrack_bot_api]].
The loop (how to keep iterating)¶
- Spawn a worktree agent per task:
git worktree add -b <branch> ~/forge-suite-wt/<branch> main+ln -sfn ~/forge-suite/node_modules node_modules+cp -r ~/forge-suite/.next .next+cp next-env.d.ts. Agent implements, runsnpx next typegenthennpx tsc --noEmit(ignore.next-dev/generated errors), commits to its branch. NEVERgit add .next. - Session merges the branch into
main,tsc-gates (ignore.next-dev/), removes the worktree. - Deploy: CLEAN-REBUILD dev, do NOT bare-restart. See lesson below.
- Group edits by file ownership so parallel agents do not collide; fold same-file follow-ups into the RUNNING agent via SendMessage rather than spawning a colliding one.
CRITICAL LESSON , dev cache corruption¶
Hammering sudo systemctl restart creatortrack-dev (I did ~25 tonight) corrupts Turbopack's .next-dev incremental cache. It manifested as /api/auth/* returning 404 and Justin seeing "404s across the site" (auth broken). It was NOT a code bug. Fix + prevention: to deploy a merge, do sudo systemctl stop creatortrack-dev && rm -rf ~/forge-suite/.next-dev && sudo systemctl start creatortrack-dev (cold recompile ~30s), then verify /login AND /api/auth/providers == 200. Prefer letting next dev hot-reload (it watches the working dir) and only clean-rebuild after a batch. See [[feedback_next_dev_cache_corruption_on_restart]].
Shipped this session (all on dev)¶
Notes app overhaul: rename Knowledge->Notes; Apple-style ActionMenu; combined ONE top bar on mobile AND desktop (note actions ride into the Topbar "..."); page "..." now merges into one menu with "components/workspace/pageFonts.ts); live title + live body-snippet in the sidebar; uniform row height + background-only hover; write-date prefix on rows; centered row "..."; single list overflow; copy-link share; pull-to-refresh; autofocus + keyboard-on-open + create+open quick-note; centered note-loading spinner. Tasks: optional due time + reminder offsets + a real 15-min TimePicker; filter/sort/group (group by list/date/priority, hide/only habits, filter by date, sort by list); habit->task tag-flooding fixed (dedup key moved to hidden prop); /tasks?peek= redirect route + ?peek opens the task. Meals: log time; macro-goal planner (calorie target + presets + %-that-sum-to-100); per-item nutrient donut; day-page Sugar/Added Sugar/Fiber row; caffeine + added sugar end-to-end; removed the ring checkbox glyph. Fitness "Nutrition today" now reads the CreatorTrack Meals log (was Notion via a python bridge). Live polling wired into Notes + set to 6s. AI food logging (bot) now estimates + sends fiber/sugar/added_sugar/caffeine. Emoji picker: dropped the category-emoji strip, browse all under text headers.
OWNER: the ct-custom Opus remote worker owns this whole queue now¶
Justin handed the full CreatorTrack workstream to ct-custom (spawned 2026-07-03). Work the queue below top-to-bottom, but Justin drives priorities live via Remote Control, so take his interactive asks first. Same loop for everything: worktree agents -> merge to main -> CLEAN-REBUILD dev -> verify /login AND /api/auth/providers == 200.
PENDING / next up (ordered)¶
- Page customization + backlinks (the immediate next task, what the ct-custom worker was spawned for): a. The page "..." menu "Customize page" entry opens a FULL PAGE DESIGNER: background color, GRADIENTS, patterns, textures, and an image/picture, PLUS placeable STICKERS on the page. Justin wants to fully design any page's look. Persist per page (additive node prop) + render on the page (PageBody/PageHeader). Reuse CoverPicker / IconPicker / coverStudioPresets where sensible. b. Reduce the OLD "Customize page" settings to a SINGLE setting , "Show backlinks" , and DEFAULT it OFF on every page (backlinks hidden by default everywhere).
- Finish the Notion decommission (plan: notion-decommission-2026-07-02). DONE so far: Phase 1 (habit + goal DEFS migrated), all WRITES cut over (WORKSPACE_WRITE_TARGET=postgres), and 3 read repoints (list_notes / load_active_habits_block / fitness "Nutrition today"). STILL ON NOTION (do these, forge repo + capture door as needed):
- Phase 2 remaining READS in forge_telegram_inbox_brain.py:
tool_habits_checkin,tool_food_today,tool_food_summary,tool_query_notion/tool_search_notion, and thetasks_form/habits_form/today_formchecklist builders , repoint each to CreatorTrack (ctk_ reads or the app APIs), same way list_notes was done. - Phase 3 pipelines/crons:
forge_habits_instantiate.py(04:00),forge_morning_report.py,forge_orient.py,forge_time_blocks_tools.py,forge_wellness_daily_summary.py, the Hevy->Notion mirror (forge_hevy_*). Repoint or retire. - Phase 4: once nothing reads Notion, delete
forge_notion_api.py,NOTION_DBS,_notion_api, and the n8nnotion-*workflows. Grep must return zero live Notion refs. - Do NOT bulk-import Notion CONTENT ([[feedback_no_bulk_notion_import_without_asking]]) , repoint reads, do not copy data.
- Promote the whole thing to prod once Justin signs off on dev (
npm run build+ restartcreatortrack-prod; flip bot envCREATORTRACK_BASE_URLto:3070; restart bots). - runtime-QA-pending items agents flagged (iOS keyboard raise, mobile gesture tuning, etc.) , Justin is the device tester.
- Hydrate 15-vs-12 reconcile (migrated habit kept Notion's 15-cup goal; Justin made a separate 12-cup goal).
Watch-items¶
- One nuance: the merged page "..." header reads "
Settings" from the overflow title; Justin may prefer a fixed "Notes Settings" (flag). - Do not bulk-import Notion content ([[feedback_no_bulk_notion_import_without_asking]]).
- ~70 stale worktrees +
ct_*DB clones on CT109 still need teardown (disk).
[Claude Code]