Repository source: docs/plans/offline_board_navigation/offline_board_navigation_step2_feature_description.md
Offline Board Navigation Step 2 Feature Description
Problem
Offline normal navigation currently supports saved threads and Board state at the root fallback, but not the normal Board control URLs or Tags index/result URLs. Readers cannot consistently use those normal navigation paths without reconnecting, despite their views being derivable from the saved public archive.
User stories
As a reader, I want each read-only Board view to work offline so that I can browse my saved public threads in the order I chose.
As a reader, I want the Tags index and tag-result URLs to work offline so that I can discover and follow saved topics without a connection.
As a reader, I want archive-local results and empty states to be clear so that I do not mistake them for complete live-forum results.
As an operator, I want offline navigation to retain its public-data and online-only boundaries so that no personalized or write capability is exposed.
Core requirements
Support normal read-only Board routes, including the
/threads/All/Liked and Newest/Oldest/Top combinations, from the bounded saved public archive.Support the normal Tags index and individual tag-result URLs from that same archive; an absent or empty saved tag must state that reconnecting may show live results.
Preserve URL-driven navigation among Board, tags, and saved threads, while labeling content with the saved-archive timestamp and limited scope.
Keep New Post, every write, profiles, search, and all other unsupported or personalized routes online-only with a clear reconnect path.
Preserve the existing public-snapshot bounds and approved-members-only exclusion; do not cache rendered Board or tag documents.
Shared component inventory
Bounded public snapshot and offline reader: extend as the canonical offline data source and archive presentation layer; no second cache or route-specific page copies.
Board page and shared Board controls: reuse the established All/Liked and Newest/Oldest/Top semantics for offline Board states; extend the offline presentation to honor them.
Tags index and tag-result pages: reuse their existing grouping, preview, counts, and thread-result semantics; extend the offline presentation for the normal tag URLs.
Normal-route offline navigation boundary: extend the existing network-first fallback to the additional read-only Board and tag URLs; retain its online-only exclusions.
Thread presentation: reuse the existing saved-thread navigation target from Board and tag results; no new thread-data surface is needed.
User flow
A reader visits the public site online and the bounded public archive is saved.
Offline, they open or select a normal Board view or Tags URL.
The view renders the matching archive-local threads, tag data, and saved timestamp.
They open a saved thread or change a read-only Board/tag view using normal URLs.
An unavailable tag, thread, or unsupported destination explains that reconnecting is required; online behavior resumes when connected.
Success criteria
With networking disabled after an online visit, every supported Board filter/sort URL,
/tags/, and a saved/tags/{tag}URL renders from the saved archive.Board ordering/filtering and tag counts, previews, and result lists match the archive contents; absent archive results show an explicit limited-scope/reconnect state.
Board/tag thread links open saved threads when present, and every write or unsupported route remains unavailable offline.
Online Board, Tag, and write behavior remains unchanged, and approved-members-only deployments do not register or serve offline navigation.