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
- 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|restorefiles 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.vueandCloud.vuemay hold a MIX of their edits and our persist-audit edits — inspectgit diff -- <file>hunk by hunk; never commit a hunk you didn't write.
- NEVER
- 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.
- Never touch the user's dev servers:
:8100(vite),:5959(mock backend),:5173(AIUI dev),:3141(claude-api-proxy). Never use broadpkillpatterns — an earlier agent killed the user's:8100session 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
- Wait for / confirm 02-10 + security follow-up commits.
- Re-run
gsd-verifieron phase 02 against02-VERIFICATION.md's two gaps (gap 1 closed by 02-09; gap 2 by 02-10). If passed →phase.complete. - VPS2 domain migration — see
.planning/todos/pending/2026-07-30-migrate-source-references-to-https-domain.md. ~196 refs of146.59.87.168→https://source.archipelago-foundation.org;companion.archipelago-foundation.organdfips.archipelago-foundation.orgare now live (DNS verified). Needs a core Rust rebuild + on-node verification. NOTE:core/targetwas deleted to reclaim disk, so the first cargo build will be slow. - 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_PASSWORDenv 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 branchdevelopment, local clone at/home/archipelago/Projects/AIUI. D-14 embed defaults + embed round-trip fixes are pushed upstream. - git remote
gitea-ainow uses HTTPS viasource.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/settingsdeliberately withheld from KeepAlive (unaudited side effects in its child sections).PeerFiles.vueraw-store loading/refreshing conflation;CloudFolder.vueTTL gate — both flagged, out of phase 02 scope.