fix(web): surface durable-storage status in the status bar - #287
Merged
Conversation
The green "Durable local storage enabled" banner was a fixed top overlay rebuilt on every page load; its X only set component-local state, so it reappeared on reload (reads as a broken dismiss) and it offered no action once storage was working. Drop the success banner and show durable storage as ambient system info in the StatusBar instead (HardDrive icon + usage, neutral when granted, warning-toned when not). The actionable not-granted/error banners stay. - getStorageBanner returns null for the granted state - new useStorageStatus hook (mirrors useHubStatus: prompt-less check + bus + permission watcher) - new StorageStatus indicator in StatusBar - shared formatBytes util (de-dupes the banner's local copy) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
|
✓ Changelog fragment found — thanks! |
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
🖼️ UI changes in this PRNo visual differences detected in the changed UI. |
Contributor
|
Preview removed for PR #287. |
| * re-appear on every page load. Glanceable usage when storage is working; a | ||
| * warning-toned reminder (alongside the actionable top banner) when it isn't. | ||
| */ | ||
| function StorageStatus() { |
| */ | ||
| const BYTE_UNITS = ['KB', 'MB', 'GB', 'TB', 'PB'] as const | ||
|
|
||
| export function formatBytes(bytes: number): string { |
crs48
pushed a commit
that referenced
this pull request
Jun 26, 2026
#287) PR #287 added an always-on durable-storage indicator to the status bar. Combine it with the 0233 sync cluster: keep main's <StorageStatus/>, drop the now-redundant storage chip + useStorageEstimate hook, and source the popover's storage row from the canonical useStorageStatus + the shared lib/format-bytes (no duplication).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The green "Durable local storage enabled" bar was a fixed top overlay rebuilt on every page load. Its X only set component-local state, so it reappeared on reload (reads as a broken dismiss), and it offered no action once storage was already working.
Fix
When durable storage is working → no banner; the status moves into the bottom StatusBar with the other system info. When it isn't working → the actionable not-granted/error banner still shows, and the bottom bar carries a warning-toned reminder that survives dismissing the banner.
getStorageBannerreturnsnullfor thegrantedstateuseStorageStatushook (mirrorsuseHubStatus: prompt-lesscheckPersistentStorage+ storage-status bus + permission watcher)StorageStatusindicator inStatusBar(HardDrive icon + usage; neutral when granted,text-warningwhen not)formatBytesutil (de-dupes the banner's local copy)All changes are in
apps/web(an app, not a publishable package) → no changeset required.Verification
apps/web(after building workspace packages)storage-banner18/18 + Workbench-rendering dom tests pass🖴 9.2 MB(warning-toned, explanatory tooltip)● offline main 🖴 13 MB 🔔with tooltip "Durable local storage enabled — 13 MB of 10 GB used". No console errors.🤖 Generated with Claude Code