New files in coding_agent_prompts/:
- TRACK_A_llm_lab_workspace_removal.md (learning_ai_local_llms)
- TRACK_B_ollama_client_package.md (learning_ai_common_plat)
- TRACK_C_fastify_sse_extend.md (learning_ai_common_plat)
- TRACK_D_react_hook_packages.md (learning_ai_common_plat)
- TRACK_E_localmemgpt_migrations.md (learning_ai_local_memory_gpt)
- README.md with dependency diagram + one-liner table
Roadmap delegation section now links to individual docs instead of
inline prompts. Point an agent at one file:
Read and execute coding_agent_prompts/TRACK_A_*.md
- Add master Execution Checklist at top with all 4 phases as checkbox items
- Add Safety Matrix (Delete vs Keep) with verified import analysis
- Convert all phase steps to checkbox format with COMMIT markers
- Move Phase 4 from after Success Criteria to between Phase 3 and File Inventory
- Add pre-flight baseline check (step 1.0)
- Add pnpm install step after dep removal (step 1.6b)
- Add grep verification step to catch stale imports (step 1.5)
- Split E2E updates into separate commit (step 1.8)
- Add .env.example updates for Phase 2 env vars
- Clarify types.ts trim: move Attachment+ModelDefaults then delete (not partial keep)
- Phase 3 steps now have individual COMMIT messages
- All 4 phases now grouped together in the Phases section
- Reframed from 'review and fix' to 'execute, monitor, fix failures, validate'
- 4 clear tasks: run script, handle failures, validate deployment, report results
- Moved bug history and development context to background reference
- Added copy-pastable validation commands for all 31 services
- Simplified constraints: don't modify unless actual runtime failure
- Task 4: Add --dry-run flag that validates system, Docker, Node, Ollama, Gitea, repos, GitHub access, compose file, env file, and phase state without building or deploying
- Task 7: Create test-plan.md with phase-by-phase verification, functional smoke tests, idempotency/resume tests, remote connectivity via SSH forwarding, and service count summary
- Update README CLI flags table with --dry-run
- Mark all 7 tasks done in prompt.md
- README: NSG port list inline, phase 7 count 31, CORS/NODE_ENV troubleshooting, SSH port-forwarding example
- prompt.md: mark tasks 5+6 done, add 8 new bug fixes to table, update definition of done with llmlab-dashboard
- .env.ecosystem.example: add NODE_ENV=production and CORS_ORIGIN=*
- G4: Add healthcheck to all 9 product web services (matching llmlab-dashboard pattern)
- B4: Remove dead NEXT_PUBLIC_* from runtime environment (Next.js bakes at build time only)
- Replace with non-prefixed server-side vars (PLATFORM_SERVICE_URL, BACKEND_URL, etc.)
- Add clarifying comments on build-time vs runtime var behavior
Root cause: tinypool worker teardown calls kill() which returns EPERM
in the act_runner host environment on Node.js v25.2.1. Tests pass but
the vitest process crashes during cleanup, causing CI failure.
Fix: --pool forks CLI flag on every package/service test script, plus
pool: 'forks' in all vitest.config.ts files. This uses child_process.fork()
worker management which handles termination cleanly.
60 package.json files updated, 10 vitest.config.ts files updated.
Root cause: tinypool worker teardown calls kill() which returns EPERM
on the act_runner host environment. Tests pass but the process crashes
during cleanup, causing CI to report failure. pool: 'forks' uses
child_process.fork() instead, avoiding the issue.
- Publish job was overriding runner env with empty string via secrets ref
- Build job could fail on dirty workdir from previous failed run
- Runner env already provides GITEA_NPM_TOKEN — no secrets store needed