docs(02-05): complete Mesh tab cache + graphics lifecycle plan

This commit is contained in:
archipelago
2026-07-30 16:25:06 -04:00
parent abdfa07a77
commit 8563cf4a84
3 changed files with 242 additions and 10 deletions
+11 -7
View File
@@ -5,15 +5,15 @@ milestone_name: milestone
current_phase: 02
current_phase_name: ui-performance
status: executing
stopped_at: Completed 02-04-PLAN.md
last_updated: "2026-07-30T19:29:23.802Z"
stopped_at: Completed 02-05-PLAN.md
last_updated: "2026-07-30T20:24:44.908Z"
last_activity: 2026-07-30
last_activity_desc: Phase 02 execution started
progress:
total_phases: 8
completed_phases: 0
total_plans: 18
completed_plans: 4
completed_plans: 5
percent: 0
---
@@ -29,11 +29,11 @@ See: .planning/PROJECT.md (updated 2026-07-29)
## Current Position
Phase: 02 (ui-performance) — EXECUTING
Plan: 4 of 8
Plan: 5 of 8
Status: Ready to execute
Last activity: 2026-07-30 — Phase 02 execution started
Progress: [██░░░░░░░] 22%
Progress: [██░░░░░░░] 28%
## Performance Metrics
@@ -56,6 +56,7 @@ Progress: [██░░░░░░░░] 22%
| Phase 02 P03 | 45min | 3 tasks | 5 files |
| Phase 02 P02 | 105min | 3 tasks | 11 files |
| Phase 02 P04 | 150min | 3 tasks | 12 files |
| Phase 02 P05 | 50min | 2 tasks | 8 files |
## Accumulated Context
@@ -89,6 +90,9 @@ Decisions are logged in PROJECT.md (10 locked ADRs in the `<decisions>` block +
- [Phase ?]: 02-04: onActivated is a documented no-op outside a KeepAlive boundary — every arm function now runs from both onMounted and onActivated (fresh-mount guards on Home/Web5/Mesh/Server avoid doubling first-load RPC cost); caught by CloudPeersRefresh.test.ts
- [Phase ?]: 02-04: useCachedResource.ts's onActivated no longer eagerly force-loads a never-fetched immediate:false resource, so tab-gated lazy data (Cloud.vue Paid Files/My Files) isn't force-loaded merely by its view entering the KeepAlive cache
- [Phase ?]: 02-04: AIUI blank-screen-and-loading symptom reported at Task 3 checkpoint diagnosed as pre-existing (local mock-backend dev mode sets VITE_AIUI_URL=http://localhost:5173 unconditionally with no AIUI repo checked out) — not a regression, left for 02-07 (Chat/AIUI) to address
- [Phase ?]: 02-05: mesh.refreshAll()/transport.fetchStatus() stay uncached at the store level (other callers need guaranteed-fresh reads); the useCachedResource wrapper around each lives in Mesh.vue instead, since Pinia's defineStore(id,setup) runs in a bare effectScope where onActivated() silently no-ops
- [Phase ?]: 02-05: FLAGGED - RESEARCH.md's premise that Mesh.vue owns a D3 force simulation is incorrect for this codebase (verified via grep); only NetworkMap.vue/Federation.vue has one. Task 2's D3 truths are vacuously satisfied; only the real Leaflet map lifecycle (MeshMap.vue, added to scope) was implemented
- [Phase ?]: 02-05: per-group TTL/persist table - mesh.refresh-all/federation-nodes/self-onion/self-did/contacts all persist:false (identity payload); transport-status persists (aggregate, non-identity); reachability groups get 10s TTL, identity groups 300s
### Pending Todos
@@ -123,6 +127,6 @@ None yet.
## Session Continuity
Last session: 2026-07-30T19:29:12.322Z
Stopped at: Completed 02-04-PLAN.md
Last session: 2026-07-30T20:24:44.884Z
Stopped at: Completed 02-05-PLAN.md
Resume file: None