You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Honest install line, Documents on Home, and a quiet Home Install #247
Replace the install card line that says the app works offline. Use: "Keeps a local copy of the pad you already opened."
On signed-in Home, show a short Documents list from the Owner live list. Keep the slug card as the way to open a pad by name. Same Home on phone and desktop.
Add a quiet Install control on this same Home. Reuse the existing install UI. A tap must open that UI even when the timed card would stay hidden. Do not add a second prompt. Do not turn Home into a different first page for the installed app.
Acceptance criteria
Desktop and phone: the install card does not say the app "works offline".
Desktop and phone: that line is "Keeps a local copy of the pad you already opened."
Desktop and phone: signed-out Home has no Documents list.
Desktop and phone: signed-in Home shows at most eight Owner live list rows. Favorites first, then Last opened.
Each row shows Pad title (or the slug if Pad title is empty), an optional Favorite star, and Last opened. A tap or click opens that pad.
The Favorite star is display only. It does not toggle on Home.
See all appears only when the owner has more than eight pads. It opens Settings → Documents.
Empty list, fetch error, and unavailable auth: hide the list. No toast. The slug card still works.
On a phone, the keyboard collapses the list the same way Home already collapses the footer. The slug card stays.
Home has no sort, no search, no Trash, no row menu, no grid, no Favorites heading, and no Date buckets.
Pads the signed-in user does not own never appear.
The list is fetched on the client after the signed-in profile arrives. Key it by that user id. Do not store it in Cache Storage, the service worker, or Home GSSP.
Home shows a secondary Install control when this window can install (Chromium beforeinstallprompt, or iOS Home Screen steps). Signed-out Home may show it. Hide it in standalone, after install, and on Mac Safari.
That control sits under the slug card, or as a quiet footer control. It is not next to Create New Document. Create and Open stay the main action.
A click opens the existing install UI. It skips the timed-card gates: sign-in, session count, 30s wait, snooze, max count, permanent dismiss, and the iOS-push-only check.
Permanent dismiss still stops the timed card. It does not hide Home Install, and it does not block a Home Install click.
On Home, while that quiet control is visible, the timed card does not auto-open. Settings iOS push may still open the same card.
Home Install uses the same honest offline line as the install card. It does not say the app works offline.
Do not gate the Documents list on isPWAInstalled. Same Home in a tab and in the installed app.
Agent Brief
Category: enhancement Summary: Honest install line, a short Owner live list on signed-in Home, and a quiet Home Install that opens the current install UI on purpose.
Current behavior:
The install card says "Faster loading & works offline". That overclaims. Offline today is a local copy of the open pad in this browser. Chat, the Owner live list, Favorite, History, and import/export still need a network.
The card is engagement-gated: signed-in, a second session, and 30 seconds. showPWAInstallPrompt skips the wait, but it still uses those other gates, so a deliberate click can no-op. Settings can open that same card for iOS push. Home has no Install control people can find on purpose.
Signed-in Home is a slug card. The Owner live list already lives in Settings → Documents.
Desired behavior:
Replace only the offline line on the install card. Use the line in Acceptance criteria. Do not rewrite the push line or the home-screen line. Do not change how this browser stores the open pad.
On signed-in Home, show a Documents block under the slug card. Heading is Documents, the same name as the Settings tab. Not Last opened. Favorites still pin first, so a time title would lie.
Use the same owner-only list Settings → Documents already uses. Ask for Last opened order with an empty search. Do not reuse Settings' Last modified session sort. Do not reuse the Settings Date bucket builder.
Show at most eight rows from that order. Favorites first, then Last opened. A just-opened pad that is not a Favorite can fall off the eight. See all covers it. Private pads the owner owns do appear. Do not add a Private badge.
Gate the list on the signed-in profile and on auth being available. Do not gate on PWA install. Signed-out Home stays a slug card. Do not fetch the Owner live list for a visitor. Do not reserve empty space for the list on first paint. After the profile arrives, fetch. A short signed-in load state is enough.
Each row opens the pad. Label is Pad title, or the slug if Pad title is empty. Last opened may read Never opened. The Favorite star does not toggle.
Home is not Google Recents. Last opened is an owner-only stamp. Pads the user only visited or edited do not appear. Do not add a visit table, a new REST route, or Last left as recents.
When Home becomes visible, refetch the list. The opened stamp writes at most every 30 seconds. A return inside that window may not move the row. A Favorite, delete, or rename in Settings must not leave Home on a stale list.
On a phone, collapse the list when the keyboard opens, the same way Home already collapses the footer.
Add a quiet Install on this same Home. A person can start install without waiting for the timed card, and without being signed in. Reuse the existing install UI. Hide the control when this window cannot install. Create and Open stay first. Do not add a fourth footer brand pill. Do not add Add to Dock copy for Safari.
Key interfaces:
Install card offline line — replace the "works offline" claim only
Home Install — secondary control; opens the existing install UI on purpose; hide when install is impossible
Timed install card — engagement-gated; does not auto-open on Home while Home Install is visible
Owner live list — same owner-only list as Settings → Documents
Last opened — owner-only stamp; Home uses this order, not this block title
Favorite — pins first; display-only star; no Favorites heading
Pad title — row label; slug if empty
See all — opens Settings → Documents when the owner has more than eight pads
Out of scope
A second first page, intro route, or installed-only Home
See all must open Settings → Documents, the panel that already has Search documents, sort, list/grid, Trash, and Date buckets. Home is a short door into that library. Do not add those controls on Home.
iOS and macOS Safari
Do not gate the list on PWA install. A Safari tab and an Add to Home Screen window both show it.
The install card on iOS stays the Add to Home Screen steps. There is no beforeinstallprompt in Safari.
Collapse the list with the Home keyboard region, same as the footer. iOS keyboard must not cover the slug card.
Verify light and dark on iOS Safari and macOS Safari, not Chromium only.
Spec review: title now matches the Documents heading. One extra acceptance: client-only list after the signed-in profile; do not cache it in the worker or Home GSSP.
Home Documents is a door into Settings → Documents, not a second library. Reuse the Settings list-row look (file icon, Pad title or slug, display-only Favorite star, Last opened). Collapse with the existing Home footer region when the phone keyboard opens.
Use the same Owner live list key as #254: empty search, lastOpenedAt_desc, Favorites first. Do not invent a Home card species, Date buckets, row menu, or grid.
changed the title [-]Honest install offline line and Documents on Home[/-][+]Honest install line, Documents on Home, and a quiet Home Install[/+]on Sep 11, 2026
Added a quiet Home Install: same existing prompt, secondary placement, hide when this window cannot install. Same Home in a tab and in the installed app.
Fresh-eyes hole closed: Home Install click skips the timed-card gates (sign-in, snooze, dismiss). Timed card does not auto-open on Home while the quiet control is visible.
What to build
Replace the install card line that says the app works offline. Use: "Keeps a local copy of the pad you already opened."
On signed-in Home, show a short Documents list from the Owner live list. Keep the slug card as the way to open a pad by name. Same Home on phone and desktop.
Add a quiet Install control on this same Home. Reuse the existing install UI. A tap must open that UI even when the timed card would stay hidden. Do not add a second prompt. Do not turn Home into a different first page for the installed app.
Acceptance criteria
beforeinstallprompt, or iOS Home Screen steps). Signed-out Home may show it. Hide it in standalone, after install, and on Mac Safari.isPWAInstalled. Same Home in a tab and in the installed app.Agent Brief
Category: enhancement
Summary: Honest install line, a short Owner live list on signed-in Home, and a quiet Home Install that opens the current install UI on purpose.
Current behavior:
The install card says "Faster loading & works offline". That overclaims. Offline today is a local copy of the open pad in this browser. Chat, the Owner live list, Favorite, History, and import/export still need a network.
The card is engagement-gated: signed-in, a second session, and 30 seconds.
showPWAInstallPromptskips the wait, but it still uses those other gates, so a deliberate click can no-op. Settings can open that same card for iOS push. Home has no Install control people can find on purpose.Signed-in Home is a slug card. The Owner live list already lives in Settings → Documents.
Desired behavior:
Replace only the offline line on the install card. Use the line in Acceptance criteria. Do not rewrite the push line or the home-screen line. Do not change how this browser stores the open pad.
On signed-in Home, show a Documents block under the slug card. Heading is Documents, the same name as the Settings tab. Not Last opened. Favorites still pin first, so a time title would lie.
Use the same owner-only list Settings → Documents already uses. Ask for Last opened order with an empty search. Do not reuse Settings' Last modified session sort. Do not reuse the Settings Date bucket builder.
Show at most eight rows from that order. Favorites first, then Last opened. A just-opened pad that is not a Favorite can fall off the eight. See all covers it. Private pads the owner owns do appear. Do not add a Private badge.
Gate the list on the signed-in profile and on auth being available. Do not gate on PWA install. Signed-out Home stays a slug card. Do not fetch the Owner live list for a visitor. Do not reserve empty space for the list on first paint. After the profile arrives, fetch. A short signed-in load state is enough.
Each row opens the pad. Label is Pad title, or the slug if Pad title is empty. Last opened may read Never opened. The Favorite star does not toggle.
Home is not Google Recents. Last opened is an owner-only stamp. Pads the user only visited or edited do not appear. Do not add a visit table, a new REST route, or Last left as recents.
When Home becomes visible, refetch the list. The opened stamp writes at most every 30 seconds. A return inside that window may not move the row. A Favorite, delete, or rename in Settings must not leave Home on a stale list.
On a phone, collapse the list when the keyboard opens, the same way Home already collapses the footer.
Add a quiet Install on this same Home. A person can start install without waiting for the timed card, and without being signed in. Reuse the existing install UI. Hide the control when this window cannot install. Create and Open stay first. Do not add a fourth footer brand pill. Do not add Add to Dock copy for Safari.
Key interfaces:
Out of scope
localStoragefor the list