@hognek this is Jay's top-priority board card, three-strike quarantined off the free lanes, routing to you. The third failure was one line from done: TS6133, useRefreshOnFocus declared in src/apps/MessagesApp.tsx but never called. The free model wrote the hook and forgot to invoke it in one adopter, so treat the existing attempts as evidence the spec is sound and the finish line is close. Fresh branch from origin/dev, PR against dev.
Card spec follows verbatim:
REPO: jaylfc/taOS
Jay 2026-07-27, from real use: apps must be closed and reopened to show changes; windows do not live-update like a real OS. Measured: ~150 desktop app files fetch-on-mount once, only 10 use EventSource. Priority BUMPED by Jay 2026-07-28: land this soonest.
This slice: ONE shared hook (e.g. desktop/src/hooks/use-refresh-on-focus.ts) that re-runs a supplied refetch when the window regains focus OR document visibility returns. Debounce so focus flapping does not thrash (coalesce within ~1s). Must work in the PWA and on mobile where visibility changes constantly. Adopt it in the high-traffic apps only: Projects, Agents, Messages, Files, Notifications, Cluster, Decisions. Do NOT touch the other ~140 apps in this PR and do NOT add per-app pollers (rulebook v1.22: push/refetch over polling loops).
Tests: focus event triggers refetch, visibility change triggers refetch, debounce coalesces a burst, and one adopted-app render test proving the hook is wired. Vitest, failing-first.
Accept: a window regaining focus shows current data in the six adopted apps. Doc sweep + CHANGELOG in the SAME commit. Fresh branch from origin/dev, one commit.
DESIGN RULE (Jay 2026-07-28): every taOS surface is a LIVE surface - auto-refreshing, with animations/transitions where needed. Decisions is explicitly in the adoption set.
@hognek this is Jay's top-priority board card, three-strike quarantined off the free lanes, routing to you. The third failure was one line from done: TS6133, useRefreshOnFocus declared in src/apps/MessagesApp.tsx but never called. The free model wrote the hook and forgot to invoke it in one adopter, so treat the existing attempts as evidence the spec is sound and the finish line is close. Fresh branch from origin/dev, PR against dev.
Card spec follows verbatim:
REPO: jaylfc/taOS
Jay 2026-07-27, from real use: apps must be closed and reopened to show changes; windows do not live-update like a real OS. Measured: ~150 desktop app files fetch-on-mount once, only 10 use EventSource. Priority BUMPED by Jay 2026-07-28: land this soonest.
This slice: ONE shared hook (e.g. desktop/src/hooks/use-refresh-on-focus.ts) that re-runs a supplied refetch when the window regains focus OR document visibility returns. Debounce so focus flapping does not thrash (coalesce within ~1s). Must work in the PWA and on mobile where visibility changes constantly. Adopt it in the high-traffic apps only: Projects, Agents, Messages, Files, Notifications, Cluster, Decisions. Do NOT touch the other ~140 apps in this PR and do NOT add per-app pollers (rulebook v1.22: push/refetch over polling loops).
Tests: focus event triggers refetch, visibility change triggers refetch, debounce coalesces a burst, and one adopted-app render test proving the hook is wired. Vitest, failing-first.
Accept: a window regaining focus shows current data in the six adopted apps. Doc sweep + CHANGELOG in the SAME commit. Fresh branch from origin/dev, one commit.
DESIGN RULE (Jay 2026-07-28): every taOS surface is a LIVE surface - auto-refreshing, with animations/transitions where needed. Decisions is explicitly in the adoption set.