Files
archy/.planning/phases/02-ui-performance/.continue-here.md

6.6 KiB

Continue Here — Phase 02 (ui-performance) close-out

Written: 2026-07-31, mid-session (user changing wifi; session may drop) Milestone: v1.8.0 · Phase 02 status: executed, gap closure in progress

Where we are in one paragraph

Phase 02's 8 plans all executed and were signed off by the user on real hardware. gsd-verifier then returned gaps_found (6/8 must-haves), which routed into /gsd-plan-phase 2 --gaps → gap plans 02-09 (Server remount) and 02-10 (timing verdict). 02-09 is COMPLETE — it proved the "Server.vue remounts" finding was a probe-measurement artifact, not a defect (no source change needed; regression tests now pin instance survival via vm.$.uid). 02-10 is still running. A separate code review found and fixed 1 Critical + 6 Warnings; a follow-up security task is also in flight. Once 02-10 and the security task land, re-run the verifier; if it passes, mark the phase complete.

Critical hazards — read before ANY git command

  1. SHARED WORKING TREE. The user runs a SEPARATE session on BotFights (phase 9) in this same checkout. Their uncommitted work is interleaved with ours.
    • NEVER git add -A / git add . / git commit -a / git stash (stash refs are shared — it strands their work) / git checkout|restore files you didn't edit / git reset --hard.
    • Stage ONLY exact paths you personally modified.
    • Known to be THEIRS (do not stage/revert/modify): releases/app-catalog.json (regenerated catalog, ~5090 lines, BotFights registry work), neode-ui/src/components/LightningChannelsPanel.vue, neode-ui/package-lock.json, .planning/config.json, scripts/resilience/.gitignore-reports.tmp.
    • neode-ui/src/views/AppDetails.vue and Cloud.vue may hold a MIX of their edits and our persist-audit edits — inspect git diff -- <file> hunk by hunk; never commit a hunk you didn't write.
  2. DO NOT DEPLOY to archi-dev-box right now. A frontend deploy would ship their in-progress BotFights work plus unreviewed security changes to the node together.
  3. Never touch the user's dev servers: :8100 (vite), :5959 (mock backend), :5173 (AIUI dev), :3141 (claude-api-proxy). Never use broad pkill patterns — an earlier agent killed the user's :8100 session that way. Kill only exact PIDs you started; use port 8104+ for your own.

Critical anti-patterns

Anti-pattern Severity Why
Changing existing visuals/animations during perf or refactor work blocking 02-02's KeepAlive restructure broke page margins and the up/down slide transitions; caught only at a human checkpoint, needed a dedicated fix commit. Perf work must be visually invisible. keepAliveTabs.test.ts structurally pins the DOM shape — if a change breaks it, the change is wrong.
Broad pkill / git add -A / git stash in a shared tree blocking Both have already destroyed or risked others' work in this project this session.
Parking review/verifier findings as "advisory" blocking User's explicit rule: findings get fixed in the same run, not deferred.
Trusting a CSS-selector remount probe major The generic .view-container [data-controller-container] selector cannot disambiguate the foreground tab from other still-connected KeepAlive-cached tabs; it produced a false "Server remounts" verdict that cost a whole gap-closure cycle. Use vm.$.uid (see keepalive-remount-probe.spec.ts).

In-flight background agents (may still be running)

Agent Owns Deliverable
02-10 executor 02-PERF-REMEASURE.json, 02-FINDINGS.md, 02-10-SUMMARY.md, STATE/ROADMAP Verdict for 6 surfaces: cleared-as-noise / fixed / accepted deviation
security follow-up stores/resources.ts, composables/useCachedResource.ts, persist call sites, vite.config.ts, PWAUpdatePrompt.vue, 02-REVIEW.md One-time snapshot purge, persist required everywhere, PWA auto-update

If neither has committed and both are gone, their work is recoverable from the plan files and 02-REVIEW.md; re-dispatch rather than guessing.

Next actions, in order

  1. Wait for / confirm 02-10 + security follow-up commits.
  2. Re-run gsd-verifier on phase 02 against 02-VERIFICATION.md's two gaps (gap 1 closed by 02-09; gap 2 by 02-10). If passed → phase.complete.
  3. VPS2 domain migration — see .planning/todos/pending/2026-07-30-migrate-source-references-to-https-domain.md. ~196 refs of 146.59.87.168https://source.archipelago-foundation.org; companion.archipelago-foundation.org and fips.archipelago-foundation.org are now live (DNS verified). Needs a core Rust rebuild + on-node verification. NOTE: core/target was deleted to reclaim disk, so the first cargo build will be slow.
  4. Phase 1 (federation & mesh hardening) — 10 existing plans, PLUS a required gap plan for the 8 items the user added on 2026-07-30: FED-07 (fedimint gateway ships with a pre-set password — security blocker) and UIFIX-01..06 (FIPS/Tor pills on mobile, connected-nodes scroll height, onboarding tickbox on short screens, Paid Files lightbox, PiP robustness incl. surviving tab switches + buffering, loader states). See ROADMAP phase 1 criteria 7-13 and .planning/todos/pending/.

Environment facts

  • This machine IS archi-dev-box (Tailscale MagicDNS; also 100.69.68.39). Deploys are loopback SSH: ARCHIPELAGO_TARGET=archipelago@archi-dev-box scripts/deploy-to-target.sh --frontend-only.
  • UI password for archi-dev-box: ask the user — pass at runtime as ARCHY_PASSWORD env var only, never written to any file or commit.
  • archy-x250-dev (dev pair's 2nd node) is offline/gone — dev-pair verification is deferred; run single-node and record the gap honestly.
  • AIUI source: https://git.tx1138.com/lfg2025/AIUI, working branch development, local clone at /home/archipelago/Projects/AIUI. D-14 embed defaults + embed round-trip fixes are pushed upstream.
  • git remote gitea-ai now uses HTTPS via source.archipelago-foundation.org.
  • Node disk was at 85%; ~118G reclaimed (core/target, image-recipe/build, caches). image-recipe/results (~34G of ISOs) was deliberately NOT deleted — needs user OK.

Known-open, user-accepted items (do not re-litigate)

  • Timing regressions on Discover/Web5/Fleet/AppDetails/OpenWrtGateway — 02-10 is producing the verdict.
  • /dashboard/settings deliberately withheld from KeepAlive (unaudited side effects in its child sections).
  • PeerFiles.vue raw-store loading/refreshing conflation; CloudFolder.vue TTL gate — both flagged, out of phase 02 scope.