archy/.planning/phases/02-ui-performance/02-DISCUSSION-LOG.md
2026-07-30 03:50:18 -04:00

5.9 KiB

Phase 2: UI Performance - Discussion Log

Audit trail only. Do not use as input to planning, research, or execution agents. Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.

Date: 2026-07-30 Phase: 2-ui-performance Areas discussed: Caching approach, Refresh/staleness UX, Profiling targets, Fix scope: backend RPC


Caching approach

Option Description Selected
KeepAlive + SWR KeepAlive for main tabs AND useCachedResource for data
SWR only Extend useCachedResource, keep full remounts
KeepAlive only Instances alive, ad-hoc data refresh

User's choice: KeepAlive + SWR (recommended)

Option Description Selected
Profiling decides Convert only surfaces PERF-01 names as slow
All main tabs Blanket conversion

User's choice: Profiling decides (recommended)

Option Description Selected
Keep alive, cap count Include heavy views (Mesh D3+Leaflet), KeepAlive max cap
Exclude heavy views Only lightweight tabs kept alive
You decide Per-view by measurement

User's choice: Keep alive, cap count (recommended)

Option Description Selected
SWR, no KeepAlive Per-item cache keys, no instance cache
Same as main tabs KeepAlive + SWR for secondary screens too
You decide Per screen by cardinality

User's choice: SWR, no KeepAlive for secondary screens (recommended)


Refresh/staleness UX

Option Description Selected
Invisible Content updates in place, no indicator
Subtle indicator Small spinner/shimmer while refreshing
Stale-age badges Show data age via isStale/ageMs

User's choice: Subtle indicator (declined the "Invisible" recommendation)

Option Description Selected
30s, per-view tuning Hook default; Claude tunes per view
Short (10s) everywhere Fresher, more RPC chatter
Long (60s+) everywhere Minimal chatter

User's choice: 30s with per-view tuning (recommended)

Option Description Selected
Silent keep-last Keep cached data, retry on focus/TTL
Toast on failure Surface every background failure

User's choice: Silent keep-last (recommended)

Option Description Selected
Yes, except large payloads sessionStorage persist, skip big lists
Memory only Cold start on every reload

User's choice: Persist except large payloads (recommended)


Profiling targets

Option Description Selected
Apps tab + AppDetails App browser + detail/log screens
Mesh tab Map, contacts, messages
Wallet tab + send flows Balances, send/receive
Cloud/Files + Server File browser, node status/settings

User's choice: All four, plus free-text additions: "network and web 5 and cloud and often app store"

Option Description Selected
.228 Designated gate/test node
.198 dev pair Other dev-pair node
Whichever node showed it User names the node

User's choice: Free-text: archi-dev-box

Option Description Selected
Committed findings doc Profiling report in phase dir before fixes
Findings in plans only No standalone report

User's choice: Committed findings doc (recommended)

Option Description Selected
No visible spinner on revisit Subjective-but-crisp pass bar
Numeric budgets ms budgets measured on-device

User's choice: No visible spinner on revisit (recommended)


Fix scope: backend RPC

Option Description Selected
Additive changes only New aggregate/batch endpoints ok; no refactors/orchestrator
Frontend only Backend untouched
Whatever profiling justifies Any backend change, gate re-runs as needed

User's choice: Additive changes only (recommended)

Option Description Selected
Parallelize + dedup Promise.all + rpc-client dedup
Aggregate endpoints Combined-payload RPCs for 3+ call screens
You decide per view Per-screen by measurement

User's choice: Parallelize + dedup (recommended)

Option Description Selected
Dev pair only, no OTA Verify on dev nodes; fleet rollout via release train
OTA when verified Fleet OTA as part of this phase

User's choice: Dev pair only (recommended)


Scope routing (freeform input)

During area selection the user requested a large AIUI/IndeeHub scope expansion. Routed via a follow-up question:

Option Description Selected
New phase, discuss next Add roadmap phase + full discuss-phase
Backlog only for now Keep in Deferred Ideas
Fold the small UX fixes into Phase 2 Chat-expanded + mobile-starts-on-chat ride along; big work deferred

Notes: The two UX defaults became D-14 in CONTEXT.md. All other AIUI/IndeeHub items recorded verbatim in Deferred Ideas.

Claude's Discretion

  • Per-view TTL values
  • KeepAlive max cap / eviction tuning
  • Parallelization vs aggregate endpoint per screen (within additive-only bound)
  • Refresh indicator placement/styling

Deferred Ideas

  • AIUI permissioned node access (Pine-parity command surface, no data leaks)
  • AIUI content deep-dive ("make it perfect")
  • AIUI peer videos and files
  • IndeeHub cross-node content source with payments (films, music, everything)
  • AIUI Nostr integration polish