2026-03-06 12:23:57 +00:00
You are hardening Archipelago (Archy) for its first alpha release. People will flash this ISO to USB, install on their hardware, and use the web UI to manage their node. Everything must work flawlessly.
Read these files first:
2026-03-04 12:06:20 +00:00
1. `loop/plan.md` — Your task checklist (mark items `- [x]` as you complete them)
2. `CLAUDE.md` — Archy project conventions, architecture, coding standards
2026-03-06 12:23:57 +00:00
## What You're Doing
2026-03-04 12:06:20 +00:00
2026-03-06 12:23:57 +00:00
**No new features. No design changes.** You are:
- Hardening the first-time onboarding flow so it works perfectly
- Ensuring app installation is bulletproof
- Making the AIUI chat work reliably
- Fixing any UI bugs or rough edges
- Building the alpha ISO when everything passes
## Architecture Quick Reference
2026-03-04 12:06:20 +00:00
```
2026-03-06 12:23:57 +00:00
Server: 192.168.1.228 (ssh: archipelago@192.168.1.228, pass: EwPDR8q45l0Upx@)
Frontend: neode-ui/ → builds to web/dist/neode-ui/ → deployed to /opt/archipelago/web-ui/
Backend: core/archipelago/ → Rust binary → deployed to /usr/local/bin/archipelago
AIUI: /Users/dorian/Projects/AIUI/packages/app/ → builds to dist/ → deployed to /opt/archipelago/web-ui/aiui/
Claude Proxy: port 3141 → systemd service claude-proxy
Nginx: port 80 → proxies /rpc/, /ws/, /health, /aiui/
2026-03-04 12:06:20 +00:00
```
2026-03-06 12:23:57 +00:00
## Key Paths
2026-03-04 12:06:20 +00:00
2026-03-06 12:23:57 +00:00
- Onboarding views: `neode-ui/src/views/Onboarding*.vue`
- Router: `neode-ui/src/router/index.ts`
- App store: `neode-ui/src/stores/app.ts`
- RPC client: `neode-ui/src/api/rpc-client.ts`
- Container client: `neode-ui/src/api/container-client.ts`
- App manifests: `apps/*/manifest.yml`
- Context broker: `neode-ui/src/services/contextBroker.ts`
- AIUI composable: `/Users/dorian/Projects/AIUI/packages/app/src/composables/useAI.ts`
- Claude proxy: `/Users/dorian/Projects/AIUI/packages/app/server/claude-proxy.ts`
2026-03-04 12:06:20 +00:00
## For each task in loop/plan.md:
1. Find the first unchecked `- [ ]` item
2026-03-06 12:23:57 +00:00
2. Read the task description carefully — it tells you exactly what to do
2026-03-04 12:06:20 +00:00
3. Read the relevant source files before making changes
2026-03-06 12:23:57 +00:00
4. Make the change following CLAUDE.md conventions
5. Run `cd neode-ui && npm run type-check` — fix all errors
2026-03-04 12:06:20 +00:00
6. Run `cd neode-ui && npm run build` — must succeed
2026-03-06 12:23:57 +00:00
7. Deploy: `./scripts/deploy-to-target.sh --live`
8. If AIUI files were changed: build AIUI (`cd /Users/dorian/Projects/AIUI/packages/app && node node_modules/vite/bin/vite.js build` ) and deploy to server (`tar czf /tmp/aiui.tar.gz -C dist . && sshpass -p 'EwPDR8q45l0Upx@' ssh archipelago@192.168.1.228 'mkdir -p /tmp/aiui-deploy' && sshpass -p 'EwPDR8q45l0Upx@' scp /tmp/aiui.tar.gz archipelago@192.168.1.228:/tmp/aiui-deploy/ && sshpass -p 'EwPDR8q45l0Upx@' ssh archipelago@192.168.1.228 'cd /tmp/aiui-deploy && tar xzf aiui.tar.gz && echo "EwPDR8q45l0Upx@" | sudo -S rsync -a --delete /tmp/aiui-deploy/ /opt/archipelago/web-ui/aiui/'` )
9. Verify the fix works on http://192.168.1.228
10. Mark it done `- [x]` in `loop/plan.md`
11. Commit: `type: description`
12. Move to next task immediately
2026-03-04 12:06:20 +00:00
## Rules
2026-03-06 12:23:57 +00:00
- Read files before editing — understand before changing
- Never skip build/typecheck — if it fails, fix before moving on
- Always deploy after completing a task — changes must be live
- If a task is proving difficult after 15+ genuine attempts, add `(BLOCKED: reason)` to the task and move on
- Test on the actual server, not just locally
- Do not stop until all tasks are checked or you hit rate limits
- AIUI files are outside the project — use Bash with python3 for edits if the Edit tool is blocked by hooks
- For ISO build: SSH to 192.168.1.228 and run the build script there