0.7.4 (2026-04-09)
- catalog-search: clear stale query filter (4fb7739)
- catalog: address missed review findings (a35ec83)
- catalog: avoid stretching unknown-size thumbnails (eeb288e)
- catalog: stop virtualizing single-board catalogs (#1121) (7ba28be)
- deps: patch vulnerable transitive packages (315505f)
- dev server: fall forward from port 1355 without portless (75958ac)
- favicon: harden sfw board icon swapping (0b844e6)
- portless: avoid route collisions across worktrees (8078d10)
- portless: fall forward when branch route is occupied (6a3040d)
- post: load capcode icons from public asset root (74f8fae)
- release: normalize asset names (85e81aa)
- reply modal: stop recentering on input (e345935)
- board: reduce mobile reverse-scroll jank (99c0bbf)
0.7.3 (2026-03-20)
- accounts: adapt 5chan to compact account history hooks (#1118) (c2e8e16)
- allow edit modal saves after delete toggles (ce2ad82)
- ci: avoid husky during yarn install (50301fb)
- ci: cache yarn after corepack in windows packaging (4ec74bc)
- ci: declare electron rebuild binary (34662f1)
- ci: drop legacy yarn install flags (da62c27)
- ci: remove setup-node yarn cache (91e5131)
- ci: windows job was hanging (4d5ee59)
- release: include version in DMG artifact names (5ce0e79)
- thread-page: make thread auto updates opt-in (#1115) (816281c)
- vercel: use Yarn 4 install command (15df2e5)
- add in-app update flow and native e2e verification (#1112) (5ecf8fb)
- app-update: add in-app update flow with native e2e coverage (a2286aa)
0.7.2 (2026-03-17)
- ci: publish coverage badge from badges branch (#1091) (b2946e8)
- ci: publish coverage badge via GitHub Pages (2de723a)
- ci: scope Electron native rebuilds (#1099) (2c276f0)
- electron: restore packaged desktop app loading (#1095) (c9bd625)
- pwa: make web updates deterministic (#1093) (f812fe1)
- home: show platform-specific info message on homepage (1db0c62), closes #1096
- settings: add expanded video auto-unmute preference (#1104) (714c39c)
0.7.1 (2026-03-16)
- edit-menu: allow pseudonymous reply deletion (#1076) (7265225)
- electron: lazy-load before-pack ipfs downloader (a37fbcb)
- mod-queue: show board button from live roles (#1079) (fd9ab19)
- multiboards: hide archive button slot (47e8c5a)
- reply-modal: keep drag interactions sharp (#1086) (37c834d)
- reply-quote-preview: restore
(You)for pseudonymous quotes (#1084) (3a7400e) - security: patch vulnerable transitive packages (be44aef)
- testing: stabilize Vitest worktree runs (#1081) (7ed0edd)
- thread: count user id tooltips from thread data (6ecf3c4)
- archive: implement comment.archived and add archive page (#1074) (aedee9f)
- post-menu: add Report/Delete, reorder buttons, edit-only-for-mods, copy link 5chan.app (#1089) (f4ff7a2)
- skills: add inspect-elements skill backed by element-source (7f4e069), closes #1082
0.7.0 (2026-03-12)
- catalog: use alias-aware media link labels (#1056) (2dd7c0e)
- ci: URL-encode asset filenames and allow release updates (3401ec1)
- mobile: hide empty mobile reply backlink wrapper (#1060) (ef375e3)
- post: move failed publish notice into comment body (#1066) (0aafb7f)
- post: stop thread navigation from forcing OP alignment (#1052) (6c03253)
- quotes: resolve external quote links across boards (#1064) (fe55e6f)
- replies: refresh thread backlinks from live account replies (#1058) (ea792fe)
- settings-modal: raise settings modal above reply and challenge modals (#1062) (053965f)
- viewport: remove maximum-scale=1 to restore reply modal autofocus on mobile (#1069) (aca0eef)
- Revert "Update README.md" (debf6cc)
0.6.10 (2026-03-10)
- ai-workflow: delete merged local task branches (f27a823)
- ai-workflow: finalize linked issue after PR merge (#1047) (248a38d)
- ai-workflow: scan full project item list before add (4cb5c4a)
- post: align op permalinks to the outer thread container (#1050) (6ed3708)
- post: avoid duplicate history entries on OP permalinks (773debe)
- subplebbit: resolve aliased board metadata in subplebbit selectors (a862852)
0.6.9 (2026-03-10)
- android tests: align runner stage assertions (045bea7)
- challenge flow: abandon publish immediately on modal close (9cc6876)
- ci: prevent partial releases when a build job fails (10cd995)
- comment-content: use info text style for purge message instead of red caps (affea1b)
- erase runtime Comment import in catalog filters store (a8ef232)
- handle purged posts in quote availability and mobile author counts (58abae7)
- hold gif thumbnails until first frame is ready (34e2c2b)
- home: stabilize initial popular threads box (824c14f)
- i18n: default interface language to english (9c79bf2)
- markdown: handle unavailable reply quote links (65731ce)
- mod-queue: preserve pending reject state after refresh (a20f131)
- patch bitsocial-react-hooks esm imports on install (5d77a33)
- popular-posts: randomize popular thread board selection on mount (c275903)
- post: hide stuck Loading and Downloading board for pending comments (980b5ca)
- posts: render per-post IDs on initial board load (08d929b)
- publishing: abandon challenge close and clean failed local posts (59851a4)
- quotes: avoid striking unresolved quote links (ec40456)
- replies: hide author-deleted replies from thread views (6954b5b)
- replies: render CommentContent for purged replies so purge message displays (27a294f)
- reply-modal: align offline warning with post form (08ec9f3)
- routing: canonicalize board aliases in thread routes (1b9f698)
- seo: serve sitemap and preserve static metadata files (92eed04)
- settings: restore style selector to interface settings (892e6e8)
- share board offline state between post form and reply modal (723a2de)
- stabilize catalog filter coverage imports (fabdd0e)
- stabilize special theme coverage test (0a392a3)
- tests: mock board-buttons and style-selector to avoid Solana import crash (3b34192)
- vite.config.js: remove deprecated rolldown dep optimizer config (ca9f743)
- catalog: add mobile footer with Return, Archive, Top, Refresh buttons (c3cfc7d)
- markdown: make spoiler tags case-insensitive like BBCode (cf55eaa)
- markdown: use BBCode-style [spoiler][/spoiler] tags (91615db)
- popular-threads: show actual feed state string instead of generic loading (04b98b8)
- posts: add purge UI feedback for mods (ae744d0)
- subscriptions: use useAccountSubplebbitAddresses for deduplicated addresses (e80a736), closes bitsocial-react-hooks#16
- popular-threads: show board-count loading state for popular threads (71b0b0f)
0.6.8 (2026-03-04)
- boards-bar: cancel debounced scroll handler on cleanup (ea0789f)
- ci: make portless optional for windows installs (e484f96)
- comment-content: prevent doubled >>postnumber quote when cidToNumber resolves late (1aabe7a)
- edit-menu: remove redundant double confirm for purge (17afdc7)
- markdown: preserve full URL display text for autolinked 5chan links (27b2d6f)
- popular-posts: rank by time-decayed popularity instead of raw reply count (9216791)
- post form: default link label to 'link to file' on /all/ and /subs/ (2bc2827)
- posts: default to hiding user IDs when pseudonymityMode is undefined (822b6c9)
- publish: use active account at publish time instead of baking stale author data at typing time (422eacc)
- react-grab: disable Cmd+C shortcut to avoid copy/paste conflicts (dfa203a)
- replies-preview: stable sort when recency yields identical Infinity values (c9e9506)
- string-utils: guard truncateWithEllipsisInMiddle for small maxLength and slice(-0) (8296d70)
- board-buttons: reorganize button layout on mobile and desktop (3a9b5ab)
- board: add mobile footer with Start a New Thread, Top, Refresh, pagination, Catalog, Load More (1a4e8a6)
- boards-bar: alphabetize mobile board select and show full multiboard titles (efd1526)
- favicon: swap tab favicon for SFW vs NSFW boards (3bd1c0a)
- home: clarify 5chan is serverless app, use current hostname for share links (5fe2024)
- meta: add OpenGraph, JSON-LD, security headers for crawler identity (6bc135a)
- post-desktop: truncate long file links with ellipsis in middle (f2264ba)
- post: add mobile footer to thread view (84e6057)
- release: add yarn release script and v0.6.7 blotter entry (064d341)
- media: restrict gif frame extraction to gif media types (7644d59)
- settings: fix navigate-in-setState, memo sections, defer crypto resolution (df1bc20)
- Revert "chore(release): v0.6.8" (d8a003e)
0.6.7 (2026-03-01)
- a11y: add translated aria-label for pagination, aria-label for close button (f9325b9)
- account-data-editor: resolve Ace editor loading failure (e12743f)
- android-build: keep tar@7 and patch Capacitor CLI extractor compatibility (f660d1a)
- android: guard against NPEs in FileUtils and FileUploaderPlugin (bdfee1b)
- android: log reject failures, handle trailing slashes in path, remove unused attr param (3eb97e6)
- android: sanitize filename in FileUtils to prevent path traversal (5f22ff1)
- backlinks: hide backlinks from pending replies without comment number (e241125)
- backlinks: scroll to reply and persist highlight when clicking OP backlink (41f0712)
- blotter: validate message before formatReleaseMessage in release mode (15c2385)
- board-buttons: use postCid for page number in PostPageStats (9c0350c)
- board-buttons: use useComment in PostPageStats so reply count shows on direct thread URLs (ce8159f)
- board-pagination: hide pagelist in multiboards, right-align style selector (15d8103)
- board-replies: include pending and mod-queue account comments in 5-reply preview (9253bad)
- board: add computeItemKey to Virtuoso to prevent media flash on page change (849ff18)
- board: prevent cached Board from stripping accountCommentIndex on /pending/N (79fd6ba)
- boardsbar: show mod in mobile board selector when on /mod/ (f35bb73)
- build: restore Vercel deployment with vite-plugin-pwa 1.2.0 and process.version define (276fca8)
- catalog: align pagination and postsPerPage with board view (1067ff3)
- catalog: cap single-board catalog to maxGuiPages to prevent page 11+ posts (13dba00)
- chain providers, i18n, dedup isWebRuntime, and a11y label (15d6087)
- challenge-utils: use console.log for success instead of console.warn (ab32ad5)
- components: fix colSpan, hook usage, special theme reset, unused imports, CSS color (6c1f535)
- compute click center from full box model quad (023adcc)
- edit-menu: render mod edit modal in FloatingPortal to escape reply card containment (f19ebe5)
- electron: make macOS dev dock icon setup non-fatal (a39fafa)
- error-display: reset showAfterDelay when error clears (f5eba9a)
- feeds: force infinite scroll on multiboards and canonicalize page URLs (71fdbef)
- i18n: use consistent Filipino translation for blotter keys (56cce10)
- media: reserve stable post media space before thumbnails resolve (6ac9ac0)
- open portless URL instead of raw IP when dev server starts (87f6a0b)
- popular-threads: adaptive ranking with grow-only stability (8cef8ce)
- popular-threads: pass linkWidth/linkHeight to CatalogPostMedia for correct aspect ratio (7a516cf)
- post-desktop: hide omitted-replies summary when replies are disabled (00a1164)
- post: add modQueueError, isPublishing, onApprove, onReject to memo comparator (f86906a)
- post: ensure OP user ID tooltip shows at least 1 post in board view (ebb5ae4)
- posts: Board link in multiboard views (/all/, /subs/, /mod/) (f521bdb)
- post: show Pending for user ID when reply pending on pseudonymity boards (21d2146)
- post: use feed cache fallback for instant post content on catalog navigation (609436a)
- quotes: scope post-number lookup by subplebbit, OP quote always navigates to thread (216073a)
- release: harden release workflow installs (ca2e024)
- reply modal: keep textarea empty when opened from Post a Reply footer button (bb02779)
- reply-modal: remove link type previewer that displaces UI (2733ab2)
- reply-quote-preview: add trailing break to mobile quotelinks so each >>N appears on its own line (ec9ee6f)
- reply-quote-preview: only scroll to reply when on thread page (326b403)
- resolve android plugin registration and electron upload runtime detection regressions (afdf129)
- resolve Dependabot alerts for tar and qs (b5546fa)
- resolve publication details visibility, comment re-render performance, and translation issues (f123c08)
- routing: enforce numeric page param for board feed (239f3be)
- upgrade react-i18next to resolve key prop warning (4cdbf8c)
- upload-automation: harden android and electron failure handling (b20aae8)
- upload: resolve electron file-path fallback and android provider automation stalls (410b988)
- use-state-string: sanitize board feed loading wording (967a2cb)
- vercel: serialize yarn install to prevent
date-fnsextraction failure (bd07d37)
- add shared cross-platform catbox media upload flow (dbbc83d)
- android: multi-provider WebView upload with postimages chooser contract (e26da84)
- blotter: replace board stats with changelog-backed blotter (0cb7b1a)
- board-buttons: add Bottom button when infinite scroll is disabled (445b271)
- board-pagination: redirect /boardIdentifier/1 to not-found, refine [All] button, hide pagelist when infinite scroll enabled (dc43a84)
- board: default pagination with optional infinite scroll and URL-based page routing (60d2f68)
- catalog: add reply-count sorting mode (24d7b3e)
- directories: implement features.noSpoilers and features.noSpoilerReplies for board-specific spoiler checkbox (45a6ff0)
- file-upload: normalize Android Capacitor rejection and surface attempt details in UI (bbddb9c)
- home: add Boards You Moderate link to Multiboards in boards box (f6906e1)
- media-hosting: add multi-provider configurable upload with fallback (96a4aae)
- media-hosting: extend ProviderAttempt with stage/elapsedMs/matchedSelectors and parse plugin errors (f1f5789)
- media-upload: Electron recipe parity and diagnostics (b3e8df3)
- mod-queue: redesign with multiboard summary, boardsbar-style links, and board-aware rows (fd6ca36)
- post-desktop: show filename instead of full URL when requirePostLinkIsMedia (2debf96)
- post-form: show 'Link To File' when requirePostLinkIsMedia is true (9793f0e)
- profiling: add react-scan via direct import for dev-only profiling (cd71602)
- rules: add URL params for direct links to board rules (64c8953)
- rules: render markdown in board rules display (cb0ab3a)
- settings: add media hosting settings and provider-based upload gating (96f11b3)
- settings: move account json editing to dedicated full editor route (fb9443a)
- show file/image labels instead of link when requirePostLinkIsMedia is truthy (549300f)
- thread-stats: show board page number in post stats via cache-first lookup (0ddb22f)
- use portless for stable dev server URL (7064c8b)
- app: enable FeedCacheContainer always, lazy-load modals (34fdae1)
- board: disable Virtuoso when single-board pagination is on (9b538f3)
- bundle: replace plebbit-js imports with local utility, split chunks, fix CLS and rerenders (4bdee03)
- catalog: memoize handleNewerPostsButtonClick with useCallback (8f8c625)
- defer board reply fetching and remove nested mobile backlink fetch (a13c72f)
- feed: reduce Virtuoso overscan and memoize itemContent for multiboard views (6e08203)
- feeds: defer useReplies, Virtuoso for all paths, CLS fixes, memo (9166796)
- react-doctor: fix compiler-blocking patterns, raise score 72→81 (e0ed510)
0.6.6 (2026-02-16)
- challenge-utils: format challenge errors with board identifier (bb4be3f)
- electron: add macOS app icon via icon.icns (6befc6b)
- home: derive board link state from directory availability (e47727c)
- modqueue: enforce role-gated access with not-allowed view (9c558d2)
- popular-posts: base quota on loaded boards instead of total directories (2f563b4)
- post-status: base pending and failed labels on cid and state (98f7a52)
- post: refresh author ID tooltip count when replies change (44847b7)
- replies: make thread replies update instantly for pending and confirmed states (14c6bf8)
- replies: prevent inline quote links from forcing line breaks (378242c)
- topbar: sync subscription visibility with account subscriptions (61eb1e8)
- board-header: add hover tooltip for address subtitle (901f40f)
- build: sync vendored directories from GitHub on start and build (8645f73)
- directories: add schema adapters and preserve v2 metadata (ec62023)
- post-page: enable Update button to refresh replies, add Auto alert translation (ad41a78)
- post-rendering: reduce quoted backlink rerenders via scoped store subscription (7821f9c)
- remove reply backlink subscription churn (3d2dbbf)
- replies: progressive render, 500 replies/page, content-visibility (dedf18e)
0.6.5 (2026-02-11)
- deps: resolve dependabot alert (50f373e)
- post: render OP backlinks from replies quoting OP (d862550)
- post: show OP backlinks in board feed cards (2537561)
- reply modal: make parent reply quote editable (af259ad)
- reply: replies should always target the OP, not other replies (6c4c12c)
- scroll OP quote to thread card on same-route click (716c782)
- populate quotedCids when publishing replies with quote references (9f14a63)
0.6.4 (2026-02-10)
- components: remove redundant instant scroll from quote links (1bd1d34)
- include manual post-number quotes in reply backlinks (702816f)
- post: improve user ID display with domain detection and length limits (9d17213)
- post: prevent quote hover highlight on op cards (b8546a8)
- release: remove duplicate architecture suffixes from artifact names (b30eb15)
- release: restore 5chan html zip artifact in tag releases (cdd6be9)
- reply modal: restore multiline quote insertion (db70a91)
- shorten rendered user ID display from 12 to 8 characters (24d329a)
- show OP badge for number-based quote links (223ec4c)
- update subscriptions subtitle to present tense (8636005)
- add copy user ID menu item and rename copy link to copy direct link (4a96f88)
- post: add backlinks for quotedCids (c7c8c46)
- posts: support pseudonymityMode per-reply hiding (c1b0d13)
- release: extract one-liner release description (3be7839)
- render >>{number} as interactive quote links with hover preview (c4b6c77)
- reply-modal: insert quoted post numbers at textarea caret (8a192b4)
0.6.3 (2026-01-30)
- electron-forge: add app icon configuration for all platforms (a2d0869)
- electron: fix production build crashes (388a120)
- find-forge-executable: make appName preference effective (16012b4)
- forge.config.js: remove malformed iconUrl from Squirrel config (c4e2f75)
- package.json: remove unneeded var (0c6e03d)
- release: resolve build failures for v0.6.3 (01bda3b)
- resolve PR 877 issues - route params, artifact paths, and build configs (50ee10c)
0.6.2 (2026-01-26)
- ci: use setup-python action for macos release build (3335f6f)
- post: include pending replies in useReplies calls (2887347)
- mod-queue: improve compact view and add pending approval features (fa4ec6d)
0.6.1 (2026-01-25)
- align asset-manifest generator output with prettier config (4fd9a9c)
- android: capacitor config was pointing to build instead of dist (legacy from CRA) (436988e)
- android: release build fails due to tar v7 incompatibility with Capacitor CLI (eda8b5e)
- board buttons: guard against undefined address (2a521ad)
- board header: limit clickable area of subscriptions counter to text only (4f49ec6)
- boards-list: hide Multiboards section when filtering for worksafe boards (594be88)
- board: subscribe to transient state and error fields separately (4c4e120)
- catalog-row: expand CatalogPost memo comparator to prevent stale renders (d71d518)
- challenge modal: show board name in iframe confirmation message (5963123)
- challenge-modal: improve mobile iframe challenge modal positioning and sizing (76e0732)
- ci: fix test workflow failures on all platforms (26278f9)
- ci: mac smoke tests can't use timeout command (724b623)
- ci: macOS test builds fail with hdiutil "Resource busy" error (46f0f49)
- ci: remove redundant electron-rebuild from build scripts (96a3068)
- ci: update deprecated intel mac runner (2d23f44)
- ci: update macos runner image (5f85a0a)
- comment-content: ensure parent comment number is populated for nested replies (c2bbe2d)
- comment-content: use correct banExpiresAt path for ban visibility (476681c)
- correct horizontal centering of create board modal (e863ddb)
- deps: add missing env-paths and progress dependencies (a75eef7)
- deps: resolve build dependency conflicts for Vercel deployment (341fae9)
- deps: resolve dependabot security alerts via yarn resolutions (b93890b)
- deps: upgrade React to 19.1.2 to patch CVE-2025-55182 (8e1bfa2)
- deps: upgrade sharp to 0.34.5 to address security vulnerabilities (8340953)
- directory-modal: move to global layout and close on navigation (ace4b0c)
- disclaimer-modal: correct CSS positioning and remove invalid HTML (3aaa28f)
- disclaimer-modal: update copy to reference "Accept" button (7e1fe00)
- edit-menu: use correct banExpiresAt path in commentModeration.author (a959f14)
- electron: force GTK 3 on Linux to avoid GTK 2/3 vs GTK 4 crash (547fc4d)
- electron: upgrade cacache for Node.js 22 compatibility (ec2fb14)
- error-display: add delay to prevent false positive error displays (341e72a)
- hooks: fix usePopularPosts loading state and change detection (a7614db)
- hooks: remove postCid requirement from isAccountCommentAuthor check (6175744)
- hooks: use structural equality for roles comparison in useStableSubplebbit (647139c)
- HTML zip archive is empty in releases (2f0fae8)
- limit vite-plugin-eslint to src/ files only (f65635b)
- lint: use correct oxlint rule names and enable react plugin in config (9fd41f2)
- markdown: embedded media in comment.content shouldn't be expandable and should be already expanded (fcd8838)
- media-utils: ignore blacklisted thumbnails (f01a1dc)
- memory leak in ModQueueButtonContent statusMap (056096a)
- mod queue: adjust styling (4fd0820)
- mod queue: alert threshold returns NaN when migrating from old localStorage format (4a9f468)
- mod queue: button counter doesn't update when navigating between boards (ca53fb4)
- mod queue: CSS Modules not exporting rowOdd and alert classes (6827aaa)
- mod queue: items shouldn't disappear from feed unless api removes them (99596d3)
- mod queue: ModQueueButton shows incomplete pending count without postsPerPage (823731c)
- mod queue: show mod queue button in /mod/ multiboard view (6f9e3b2)
- mod-queue: alert animation and counter only for pending items (a23f5bc)
- mod-queue: button counter includes already approved/rejected items (02fc6a3)
- mod-queue: close CSS breakpoint gap and remove duplicate time-ago rendering (ab98bd0)
- mod-queue: improve alert threshold input validation and add i18n for view selector (d866372)
- mod-queue: style action buttons to match board buttons and make status indicators bold/colored (fbdfadc)
- mod-queue: use link as excerpt when post has no title/content and prevent empty strings (410fd54)
- p2p-options: correct Solana chainId from 1 to 101 (52fea38)
- package.json: missing license field (696f19f)
- package.json: unpin dependencies, fix script conflict (f896c7d)
- popular-threads: update memo comparator to include multisub entry titles (f5cf263)
- post form: fix positioning and styling on mobile (e84038f)
- post-menu: add copy link and hide block board for /all description (1b22711)
- post-menu: await clipboard copy before closing menu (6f1fcaf)
- post: don't render empty avatar space when image url is invalid (e1f1f28)
- post: OP thumbnail overlaps with replies when image has unusual dimensions (5e1114e)
- post: redirect to 404 when thread URL specifies wrong board (6724f91)
- prevent memory leak from unbounded setInterval in use-time-filter (eedb0fa)
- prevent race conditions and memory leaks in useCommentMediaInfo hook (fc48021)
- remove duplicate .filterModal .separator CSS rule (8de4fba)
- remove unused variables from catalog and post views (760e8d9)
- rename invalid identifiers starting with digit to fivechan (3360a41)
- replies: reply permalink didn't auto-scroll to deep replies (b8e3a02)
- reset board scroll on link nav (9e13292)
- resolve typescript errors in post menu components (0b573ac)
- resolve TypeScript overload error in CopyLinkButton (55dc396)
- routes: prevent malformed routes and fix cache invalidation (93859ec)
- routing: handle empty boardPath and resolve directory codes (b886cbd)
- security: upgrade dependencies to address dependabot alerts (a25d4bf)
- settings: resolve theme persistence bug after hard refresh (26d014b)
- show cached feed time filter in UI (198b613)
- subplebbit-stats: revert broken useStableSubplebbitStats hook (64ef0dd)
- synchronize blinking animation in moderation queue (5f4856a)
- theme: prevent theme flash on board load (b1ebf0b)
- themes: all and subscriptions multiboards should use yotsuba (9cc7869)
- topbar edit modal: show subscription addresses instead of directory codes (43956d4)
- topbar-edit-modal: memoize subscriptions array (f997365)
- topbar: correct mobile topbar select values for directory boards (723ad9f)
- topbar: didn't update when subscribing to a board (e77dd53)
- translations: move purge keys to end of EN locale file (db413ba)
- update Plebbit.getShortAddress calls to use object parameter (4cb3bda)
- update Plebbit.getShortCid calls to use object parameter format (a57cc1e)
- use stable time filter for virtuoso state key in cached feeds (1a6ac4a)
- use-default-subplebbits: prevent state updates after unmount (e548198)
- validate thread share link cid (23f2451)
- views: display useSubplebbit and useComment errors in board, post, and mod-queue views (122b177)
- views: use directory codes in document titles and fix order (5aa1eaf)
- add iframe challenges (e.g. mintpass) (a7dc46f)
- add infinite scroll for replies (882b7b4)
- add Multiboards category with /subs/ and /all/ (12101fe)
- add redirect for non-hash URLs to support HashRouter (dba736e)
- add script to automate translations (d82bb58)
- all-feed: add NSFW/SFW filter (6523855)
- board buttons: add vote button to mobile (d30db40)
- board header: add banners, add support to gif banners (07831cb)
- board header: make subscriptions subtitle clickable to go to subs settings (cc28224)
- board-buttons: add directory-specific vote button (af14686)
- board-header: prioritize default subplebbit title over store title (f44b9ae)
- board-header: show subscription count in subscriptions view (1675ab7)
- board: add more_threads_last_year suggestion (e3e2599)
- boards-list: mark Flash, Oekaki, Artwork/Critique, Wallpapers/General as NSFW (36bd9c5)
- create-board-modal: add focus styles for close button (eb3d672)
- crypto wallets settings: add timestamp field (e2149ca)
- crypto-wallets-setting: add CSS-based step numbering and reorganize delete button (dbf67f5)
- directory-modal: add modal explaining how to submit boards to directories (e627b6b)
- footer: add feedback and contact links and update styling (0d48838)
- home: add disclaimer modal for board navigation (2a25d73)
- home: redesign boards list to match 4chan with filtering and catalog support (a9690ac)
- i18n: add translations for subscriptions subtitle (bb596bf)
- implement 5chan-specific default board list (bae6faa)
- implement mod queue (70ba145)
- implement post numbers (7684541)
- mod-queue: add minutes support to alert threshold (ab353b5)
- mod-queue: add number column, improve time display, and use edited comments (a33b2e5)
- mod-queue: add view mode selection and integrate with post components (14e8c92)
- modals: use icon-close-red.png for close buttons on home view (21d9c0c)
- moderation: add purge action to edit menu (1abc841)
- p2p options: add http routers field (3d67606)
- post-form: display directory names in board selector (fc79eb6)
- post-menu: add copy content ID button (a1de352)
- post: add moderator and administrator role indicators (5de2587)
- post: add pending approval label (4023131)
- rename plebchan to 5chan (1360dd8)
- reply modal: add alert when attempting multiple quotes (c0a1b67)
- routing: add hooks and utilities for directory-based board routing (f485656)
- rules: add rules page with board selector (d800ee9)
- share-link: add description and rules link types (41ffd2f)
- topbar: add customizable visibility controls for directories and subscriptions (669bb5b)
- topbar: add temporary show-all button for hidden directories (5792fcd)
- ui: add context-aware directory modal with different content for placeholder vs create board (5f06fdf)
- update-translations.js: remove unused translations, add translation cleanup audit with dynamic key safety (96c5dff)
- url-utils: replace p/ syntax with >>> cross-board references (c984e56)
- components: memoize post menus with minimal props (698df59)
- components: prevent rerenders from updatingState (fa32833)
- eliminate redundant derived state in board and post views (b10ada5)
- feeds: use hasMore instead of length check for conditional virtualization (c0c6e9e)
- Fix unnecessary renders in useCurrentTime hook and ModQueueView footer (404b613)
- hooks: document stable reference optimization in useDefaultSubplebbits (e7e2a2f)
- implement LRU-cached persistent feed mounting to eliminate Virtuoso flash (896ca4a)
- isolate IPFS state updates in board and catalog views to prevent excessive re-renders (eb8e226)
- migrate from vite to rolldown-vite for faster builds (10a266c)
- mod queue: conditionally virtualize table for large feeds (951a8ff)
- mod queue: prevent re-renders from IPFS client state changes (33943c3)
- mod queue: skip animation sync when no items need blinking (4900410)
- only virtualize replies when count exceeds first page size (2b8d6f4)
- pre-optimize workbox dependencies to prevent dev server reload (ac19034)
- preload theme button and background images on app startup (d46d7ed)
- prevent unnecessary re-renders from RPC client state changes (3799dcc)
0.5.3 (2025-07-29)
- pending post page: prevent crash and ensure redirect to "not found" on invalid URL (7374465)
- prevent TypeError when challengeErrors is not iterable in challenge verification (b2e1dd5)
- resolve @libp2p/utils version conflict causing build failures (4dbe751)
0.5.2 (2025-06-04)
- board header: subplebbit address could be too long (bc80533)
- catalog search: use query parameter so users can share searches and link to them (6075b2e)
- challenge modal: on mobile the modal was incorrectly positioned on top left (bb0fcb9)
- mod multisub: mod page was missing post form (339a9bc)
- board: add search bar to board page, redirect to catalog view (53e0482)
- markdown: render plebchan links as internal links, so the user doesn't have to leave the app (b3bcd58)
0.5.1 (2025-06-03)
- android: resolve fullscreen overlay preventing user interaction (c3ca0c3)
- electron: app couldn't copy share links to clipboard (104c9c0)
- errors could be displayed unnecessarily (9fbfcb3)
- reply: no need to render deleted replies that have no children (f233da9)
0.5.0 (2025-05-22)
- electron: catch stream errors (e.g. ECONNRESET) in IPFS downloader and add retry logic (694b01b)
- markdown: use rehype-raw for spoiler tag parsing instead of string replacement (45e9482)
- pending post: page could redirect to "not found" if pending post failed (b50df69)
0.4.0 (2025-03-07)
- board header: banner could change while subplebbit is loading (2df9a96)
- board: loading state wasn't showing in description page (319d374)
- catalog: embedded images that 404'd could overflow (9013cb0)
- css: floating-ui portal could override app color scheme (fc674f4)
- reply modal: dragging modal could select text behind it (2d1fb69)
- add p/mod feed for all subs the user moderates (ba5753d)
- catalog filter: add filtering with complex patterns, including regex, help modal (d7a9c16)
- catalog filters: add color highlighting of threads matching pattern (22b828b)
- catalog filters: add filter by user address, display name or anonymous, mod role (70f640e)
- catalog: add catalog filters (b127876)
- catalog: add search (a8f7de7)
- edit menu: alert "you cannot edit this thread/reply" if without permission (377d8cd)
- embeds: add support to youtube shorts (306e7b0)
- post: when attempting to reply, alert reply or thread was deleted or removed (0a7cda3)
- settings: auto-subscribe imported accounts to default subs and moderated subplebbits (0f38fb3)
- app: optimize loading times by using stored values of subplebbits and comments instead of fetching them multiple times (8557ebb)
- catalog: each post in the feed was loading a comment needlessly (64f984d)
- feed: optimize posts rendering via props refactoring, memoizations (797a1f2)
- prioritize cached data from API, improving navigation speed and memory consumption (dcb05ed)
- reply-modal: fix laggy dragging during post loading with GPU-accelerated gestures (0caa8f9)
0.3.6 (2025-02-23)
- feed: "no posts" could appear in an empty board after the user published to it (588d9fb)
- post: image marked as spoiler was visible (6e60360)
- post: loading string could appear in floating posts from out-of-view quotes (9d454b4)
- catalog: show posts published by account instantly in feed (628115f)
0.3.5 (2025-02-20)
- markdown: lists could overflow next to thumbnail (7172be4)
- offline indicator: increase offline check by 1 hour (23ce86c)
- pending post: invalid pending post index would break the view, redirect to not found instead (92e742a)
- auto subscribe new accounts to specific default subplebbits (882703b)
- topbar: add temporary links to "create board" and "vote" buttons (57fc2bb)
- topbar: optimize scroll up/down animation with GPU acceleration (31c3482)
0.3.4 (2025-02-05)
- account settings: creating new account didn't automatically switch to it (382e069)
- board: some subplebbit avatars could overflow (4f2308f)
- challenge modal: user could submit empty answer (a7beb3a)
- emptying fields could fail when publishing reply (7ffb3ce)
- interface setting: improve wording (88a5782)
- post: an hr element written in markdown could get rendered as a UI hr (165b950)
- post: content could bypass max character count if posted from other plebbit client (b9210dc)
- post: prevent edit menu checkbox from being interactable while post is loading (96794a0)
- post: title would wrap incorrectly in posts with no image/thumbnail (0e67960)
- reply modal: changing anon mode before publishing reply didn't work (2a20716)
- reply: media thumbnail wasn't showing (be2b65b)
- subplebbit: subplebbit could erroneously appear offline while publishing a post (48a8046)
- theme: christmas theme should only run on dec 24 and 25 (cbed83c)
- theme: prevent special theme from persisting outside holiday period (65ed3df)
- topbar: only display the top 15 subs in the default list (0488a6c)
- account settings: add hash-based routing for settings categories (c21d512)
- boards list: add filter by tag (0716aac)
- boards list: add PPH column (d858b53)
- boards list: show 15 boards at a time + p/all, add load more button (cf849ba)
- challenge modal: close with escape key (515007c)
- home: add boards list more similar to vichan, which is better than 4chan's boards box for a potentially infinite number of boards (cadfc69)
- markdown: add spoiler text (9a08b95)
- post form: add content length check (1b359f9)
- post: support youtube links from Invidious instances (9d9ba61)
- reply modal: add content length check, better error display (d861f89)
- reply modal: close with escape key (63cb5b6)
- settings modal: close with escape key (01e467d)
- settings: add subscriptions setting (85d2cb6)
0.3.3 (2024-12-25)
- snow effect shouldn't show on mobile (5284b3d)
0.3.2 (2024-12-24)
- avatar settings: add timestamp field to let users add existing signature (16c8f39)
- board stats: while stats load, show ? as values instead of showing nothing (causing displacement) (c40c9e4)
- electron: auto restart script more reliable (b05c6ed)
- electron: ipfs proxy should have error status code (d608a46)
- ellipsis animation: dots could appear cut off and cause displacement changing width of string (09505a6)
- feed post: gif thumbnail could break persistently (e3cf507)
- feed: posts could change position causing displacement (309f766)
- home: stats should load regardless of the total number of online subs (8b7730b)
- markdown: invalid urls in content could crash the app (73bab13)
- plebbit options: schema error prevented to save (db8c51f)
- post: deleted or removed post could show reply form (0043e2b)
- post: error was displayed incorrectly (fd8b3ea)
- post: image could flicker when clicking it to expand it (077b3bc)
- post: long text content wouldn't wrap around images (0944094)
- reply: don't show backlink for deleted or removed reply (d6d2831)
- settings: crypto address setting would show error for an already set address (cc660e9)
- time filter: last visit time filter could be a duplicate in dropdown (9ee6966)
- add christmas theme (eb3a630)
- electron: add http routers to electron (521d26b)
- p/all: improve design of "show more posts" button in feed footer (1cc8d9a)
- post: enable highlighting an already highlighted post by using a different color (5a498cb)
- reply modal: add spellcheck for the content, excluding the c/cid at the top (9ec308b)
- index.html: preload UI assets (73f9d9e)
0.3.1 (2024-11-10)
- moderation: update to use new API schema (e9fc47b)
- post: some quotes to replies wouldn't show quoted posts on hover (965c6f8)
0.3.0 (2024-11-08)
- board: account comments couldn't appear instantly in feed (0b92c60)
- board: virtuoso footer would overflow (8d35e09)
- p/all: empty 24h feed would not show 'show more posts since last week' (82217a7)
- post menu: link to other clients was broken on description post (c2363fe)
- post: hidden post showed its content (a2dd3ef)
- reply: hidden reply was too big and showed edit menu checkbox (a927f3a)
- android app: add 'choose file' button to auto upload media to catbox in the background (f40c2c2)
- interface settings: add 'Fit expanded images to screen' setting (ba54d70)
- reply modal: add 'choose file' button on android (5c09b66)
- reply modal: display errors in modal (5768443)
0.2.9 (2024-10-29)
- catalog: if time filter is 'bump order', it should say 'last bumped' instead of 'newer than' (71ba306)
- embed: reddit links have to include '/comments/' to be embeddable (5e6c9fb)
- p/all: auto time filter didn't show posts from last visit (0b5aa7d)
- release.yml: wrong java version prevented apk build (f280f33)
- router: a link could include '%23' instead of '#' (360dfb4)
0.2.8 (2024-10-19)
- android: update app logo (4ef3f9d)
- color missing, translation missing (0705bd9)
- crypto address setting: default description didn't appear, clicking 'check' with address already set would result in error (ff3f5f6)
- electron: empty error message would appear after closing app (83fdd8e)
- electron: missing isElectron flag (3720ed2)
- feed: old account comments could appear at the top of the feed (c2aa9ca)
- post: a non-direct link could be marked as media instead of webpage (e9280ac)
- post: some links to images could be embedded as videos (46e1189)
- publish reply: error "content is an empty string" could appear (af7505c)
- topbar: mobile animation on scroll was too slow (8e245a4)
- account settings: alert user account is stored locally and specify location (89d37dc)
- android: fetch thumbnail image from any webpage link (6f8a6e3)
- board: suggest user to switch time filter on p/all and p/subscription if there aren't enough posts (eac0a01)
- catalog post: add thumbnail fetching for sites with cors access (3556a04)
- catalog: add warning to switch filter if there aren't enough posts in p/all and p/subscriptions (ba9496c)
- embed: add support to music.youtube.com (03dbf95)
- embed: add support to youtube playlists (492d979)
- post: add client-side thumbnail fetching for websites with CORS access (561e395)
- post: support thumbnails from non-direct imgbb links (9e24ae0)
- gifs: cache first frame so gifs don't reload all the time when navigating (73e12cc)
0.2.7 (2024-09-21)
- post: deleted or removed posts appeared collapsed like replies (d3af6c2)
- post: deleted or removed replies should not be collapsed if edit reason is provided (994c667)
0.2.6 (2024-09-20)
- anon mode: refreshing page could generate a new anon address for thread (f247f0e)
- anon mode: user id could change for pending post, name field could bug out (bb97640)
- banner: border was missing in some themes (9a4e62b)
- board: show description even if there are no posts (72f0c79)
- catalog filters: clicking "save" button didn't close the modal (ea42d5d)
- catalog: greentext and markdown styling shouldn't appear (7742e1c)
- edit menu: modal could appear opaque (b18c1bc)
- p/all description showed "undefined" in window title (d5dcedf)
- popular threads box: don't display markdown syntax, remove white space (2db5009)
- post form: emptying out the fields and posting could result in "empty string" error (f80f636)
- post menu mobile: "view on" links were broken (2390238)
- post: "(You)" wasn't appearing for comments published in anon mode by user (7d2bd38)
- post: anon ID could be wrong while post is pending (e068db9)
- post: incorrect spacing on enlarged images (5bcfda6)
- post: special characters in content could overflow (c1910c9)
- theme: changing theme wouldn't work in pending post page (5f55ade)
- catalog filters: add "filtered threads" count (b38948b)
- post form: alert user when submitting a post without media (3c27fd6)
- post: add support for next.js image links (5a9bf5b)
- post: show media dimensions if available (4664206)
- reply modal: add autofocus on mobile (c58a6bc)
- catalog: optimize filtered feed (6e472b2)
- catalog: disable catalog filters temporarily, they don't perform well with api (cadf416)
0.2.5 (2024-09-06)
- board buttons: buttons would wrap incorrectly on small window width (385acb0)
- catalog post preview: special characters were able to overflow (48b55ed)
- catalog: p/all description would show while filter to hide threads without images is turned on (5d2e28e)
- edit menu: checkbox would appear dark in floating post from quote (c354d72)
- edit menu: couldn't edit post content if post was just published (9543f16)
- edit menu: modal position would bug out when resizing textarea to edit post content (4858cea)
- edit menu: remove autofocus, it caused auto scroll (e9c7e86)
- edit menu: textarea to edit content was too small (d52c29f)
- home: "use catalog" button didn't work for some addresses (5c846fc)
- home: options modal flickered when clicked twice (30b9152)
- markdown: don't allow horizontal lines, they look confusing inside of post content (1eb64ed)
- markdown: single returns would be rendered as spaces (495e9e2)
- markdown: users couldn't include empty lines in the post content (38790a2)
- pending post page: opening settings would change theme (5095e0e)
- pending post: "[Reply]" button and post menu shouldn't be clickable (0cb386c)
- popular threads box: in each post content, one return would appear as two returns (empty lines) (cfe8686)
- post form: opening settings would close post form (17f57a1)
- post form: user could post empty comment using spaces (3d2d510)
- post menu: 'hide post' button wasn't appearing in thread page on desktop (f7bab7c)
- post menu: 'view on (client)' link was broken on multisubs (25722d7)
- post mobile: tooltip for title wasn't centered (ca0020f)
- post: 'comment too long' link was broken for description and rules (2ab7197)
- post: "c/" was clickable while post is pending (74ddae0)
- post: "c/Pending" could appear on first render (2590a9c)
- post: clicking the quotelink or backlink to a reply wouldn't scroll to the reply more than once in a row (e1422d0)
- post: content could overflow on mobile, causing horizontal scroll (1122eb4)
- post: deleted or removed comments still showed display name, avatar, role and ID (b7e443d)
- post: don't show link if comment is removed or deleted (068c30a)
- post: edited timestamp showed html on mobile (ba49060)
- post: reply backlink didn't appear in post info immediately after replying to it (0f6b922)
- post: some gifs would appear animated before expanded (5a56016)
- replymodal: replying didn't work from multiboard feeds (p/all, p/subscriptions) (f6548cc)
- settings: closing modal could close app (b8fc7fb)
- theme: changing theme in sfw sub wouldn't change it for p/all and p/subscriptions. it should because sfw is the default (f06c50e)
- theme: theme changed incorrectly in pending post page (4e390a9)
- use-replies: a reply to a newly-published reply wouldn't render until propagated (a698b22)
- board stats: remember hide/show choice per subplebbit (d482d32)
- catalog: add text pattern filters (da33358)
- feed: show account comments instantly in the feed once published, instead of waiting for the feed to update (8598d10)
- markdown: when the user is publishing a comment, automatically format it to follow markdown rules (c521ccb)
- pending post: show board navigation, stats and post form (cdee29e)
- post form: add link media info for static or animated gifs (4103fab)
- post: add button to show full comment when it's too long (99a2197)
- post: add user ID with color specific to user address (8dfe209)
- post: show embed of link in post content even if it doesn't have a thumbnail (09a1441)
- settings: add anon mode - automatically use a different user ID in each thread (db67a94)
- settings: add option to hide avatars (5b7acbc)
- Revert "chore(package.json): v0.2.5" (1d86267)
0.2.4 (2024-07-23)
- "this thread is closed" didn't appear instantly after mod edit (84abe90)
- board title: offline icon would appear in p/all and p/subscriptions (38e60fd)
- catalog post: it was not possible to scroll past the floating post preview (9960e40)
- edit menu: reason field would reset at menu close (15462f1)
- electron: download url redirect status code changed (c63b950)
- iframe: background was white in tomorrow theme (8d766cc)
- markdown: bullet point lists were bugged (9552938)
- post menu: block button was visible for description and rules (4ffd750)
- post: failed replies would link to op (44e518a)
- post: include pending replies in "x replies omitted" count (01dacc8)
- post: pending reply to op would show quote link to op (ec4ba55)
- post: permalink (c/) of pending reply shouldn't link to anything (3ddf26c)
- post: remove "user was banned for this post" because it's only visible to mods at the moment (89e19ad)
- post: reply quote link couldn't render in posts with link and no content (ddb462b)
- replies: a reply would not appear immediately if published to a reply that was just published (3950f7b)
- reply count was bugged (6d6187e)
- reply modal: cursor would move to end of text while replying (6430607)
- spoiler: spoiler image wasn't showing for iframes (85aeb86)
- subplebbit stats: stats box appeared even if stats are undefined (811405d)
- themes: inherit selected theme in pending post page (d66a0b8)
- topbar: empty brackets would show for sub category if empty (a31beee)
- board header: add yellow offline icon for loading online status, red icon for offline status (fe434cb)
- post page: add error line above post (a234776)
- post page: add reply count and link count in top row (8d05db8)
- post: add 'loading comments' indicator (a6a551a)
- post: add avatars (1e16068)
- post: add loading state string (954b158)
- post: add support for static GIFs (7253e4d)
- post: add tooltip to comment edit timestamp (e716a45)
- post: show loading state info (7ff8af7)
- settings: add avatar setting (f2e4f14)
- use red offline icon for subplebbits that are most likely offline (ipns record fails to update) (9f75449)
- offline indicator: improve reliability (bd7c5ae)
0.2.3 (2024-07-03)
- board: description and rules weren't visible on feed view (4f312f6)
- catalog filters: filters changed their opposite value (b3bfc7f)
- catalog post: floating post preview was not visible on mobile (38e1c78)
- edit menu: banning wasn't working properly (9ee2c6c)
- post mobile: backlinks position was bugged (6647f25)
- post: '0 replies omitted' appeared if all replies are removed or deleted (76fc1dd)
- post: author edit reason was missing (0783374)
- tooltip: position could change from top to side (7fce789)
- topbar: time filter would redirect to board home on mobile (a662bb6)
- 'tomorrow' theme applies the browser's dark color scheme (387851d)
- add FAQ page (66cc23c)
- board header: add sub online status info to offline icon title (5276f0a)
- catalog: add 'you have blocked this board' message and unblock button (d3c29fd)
- catalog: display error from subplebbit in feed (such as, 'address is incorrect') (9495e98)
- homepage: offline icons give info about the board online status (c81c7b8)
- post: add 'user was banned for this post' if user was banned by board to post in it (f6c1fb4)
- post: add post count and highlight functionality to u/address (a6a41ed)
- post: add tooltips for title and display names that are too long (505aed4)
- post: clicking "+" button next to "omitted replies" message shows all replies (713739b)
- post: clicking "+" button next to "omitted replies" message shows all replies (d78ce84)
- post: show edit reason as tooltip over red text (1bccf87)
- reply modal: greentext by selecting text (972964d)
- styles: remember style selection per sfw or nsfw category, instead of single board (06e1828)
0.2.2 (2024-06-22)
- catalog filters: clarify label (677fe64)
- catalog: large image size was incorrect (b5b5c5c)
- not found page: only show 'back to p/...' button if subplebbitAddress is in valid format; limit img size (1900d1c)
- post: don't show c/quote in content if reply is removed or deleted (533fc2f)
- post: mod and author edits weren't instant (cb745ff)
- reply: edit menu checkbox was displaced on mobile (9052b0f)
- themes: changing theme would bug out (032ba62)
0.2.1 (2024-06-20)
- incorrect assets path (4cca4a5)
0.2.0 (2024-06-20)
- app: prevent scrollbar glitch on board layout routes, also hiding unnecessary scrollbar in home (61f2344)
- audio elements were displaced in catalog (9090c18)
- board banner: subplebbit short address was wrong (c491b07)
- board buttons: don't show subscribe button in multiboards (22657ff)
- board buttons: link for return button was broken (7086d6b)
- board buttons: return button was broken, subscribe button shouldn't render in p/all and p/subscriptions (6f003f9)
- board stats: table warning, margin (b6f38b5)
- board: don't show description and rules until feed loads (0f07e1e)
- catalog filter: force show op comment for text-only threads (da86c2f)
- catalog post: display title inline (9ebf3b7)
- catalog post: don't render markdown embeds and hr (05f7977)
- catalog: don't show description or rules if they are defined but empty (e191e40)
- challenge modal: disable draggable on mobile (9c2036a)
- challenge modal: react-draggable requires nodeRef in React StrictMode (ef1580e)
- comment media: only show link if valid, show webpage links on mobile (b778b88)
- comment media: rename, refactor, fix performance (e8c60fc)
- crypto wallets: update translation (40a95fd)
- description: escape character wasn't excluded from translation (7648ef1)
- don't consider 'anti' tag as nsfw tag (62b4c71)
- don't show 'sub might be offline' alert in multisubs (937abf8)
- don't show subplebbit stats in multiboard feeds (c83169e)
- edit menu: fix input value warning (f20a5f2)
- edit menu: mod and author edits were conflicting (efc9a98)
- embed: detect uppercase extension in link (86738de)
- embeds: pass origin to youtube or popular videos won't load (e91bb58)
- feed: show last 5 replies of thread in feed, not first 5 replies (608aa63)
- hiding/blocking comments wouldn't work because useBlock takes cid, not address (743bd9b)
- home: allow button and search bar to resize for other languages (b13734a)
- home: update twitter link (019972a)
- incorrect pathname check would scroll to reply unexpectedly (81972c9)
- index.html: add no-referrer meta tag to resolve CORP-related media access issues (f25978f)
- index.html: disable auto zoom on some mobile browsers (c042611)
- link type in post form should be next to link field (a048887)
- markdown: remove spoiler text, there's no syntax for it yet (3108107)
- markdown: show single break (967f781)
- multisubs: don't show subscribe button (07af318)
- not found: check if subplebbitAddress is valid before displaying 'back to' buttton (f7ce689)
- not found: force yotsuba theme with ref, not with params in app because they can't be detected in app (5e8d743)
- only show catalog post preview on mouse over thumbnail (a8e3ce8)
- pending post: settings were not shown correctly (ddd063f)
- performance, logic (3eb9c5c)
- popular threads box: default to worksafe content and show 8 posts for single subplebbit (c6a1283)
- position floating catalog post preview relative to thumbnail dimensions (2a5ecf9)
- post form: close after publish, reset fields (359031c)
- post menu mobile: close after hiding reply (bbc3f30)
- post menu: use floating ui to dynamically position dropdowns based on available space (d964590)
- post mobile: clearfix for floating media (84dae0a)
- post: break words on mobile to prevent overflow (8e6aca6)
- post: don't show replies in pending post page (b785d00)
- post: limit displayName length (607aad9)
- post: post menu position was wrong on some browsers (cc06d54)
- post: prioritize 'failed' state over 'pending' (fc459d9)
- post: remove margin to fix virtuoso glitch on desktop (af75215)
- reply modal: add minimal timeout to allow rerender when already opened (05cc3c4)
- reply modal: autofocus caused auto scroll to top on mobile (952d446)
- reply modal: do nothing when clicking another cid while modal is opened (4fa6f60)
- reply modal: get mobile scroll position from hook before render (1e91119)
- reply modal: improve c/parentCid styling in textarea (148e6f1)
- settings: decode subplebbit address with emoji to fix pathname (2ecedcc)
- spoiler text wasn't rendering on mobile (656c31c)
- subplebbit description: prevent escaping characters in translation (aac20c4)
- subscriptions: show info if no subs found (b07a06f)
- time filter appeared twice on mobile (ae1b860)
- topbar: settings link would 404 (1aff0d3)
- use-replies.ts: flatten and display replies of replies not yet published (6e20b86)
- use-replies.ts: flatten comment pages (087d4ab)
- use-replies: sort by timestamp and move pinned replies to the top (8b000a0)
- use-subplebbits-stats: hook would fetch the same stats if pending fetching (79b660e)
- use-theme: body css would bug out on navigation (73f4136)
- video thumbnails stuck on loading, post page overflow (0036508)
- wrong document titles (19164db)
- wrong mobile value (3a6d2f1)
- wrong route check, default time filter value, missing translation (0831e75)
- account settings: improve UI (c31c0a4)
- add '(You)' in quote links (5f792f4)
- add 'not found' view (5d124d2)
- add "hidden threads" counter and button in catalog and board view, store and hook (fd092f1)
- add backlink highlight and scroll (1911b62)
- add board-banner (b99e9f1)
- add challenge modal (cc5d042)
- add edit menu on mobile (1d84526)
- add floating quote preview to mobile replies (84c0490)
- add mod menu (daaba0f)
- add new banner image (a269e10)
- add offline icon to board title, show alert before posting if sub appears offline (a2c1ec4)
- add post-menu-mobile (475d9ae)
- add reply modal (0962c10)
- add spoiler image (9f5f92f)
- add spoiler text (70a2045)
- add time filter to p/all and p/subscriptions (15bffe8)
- android: update icon (0391b24)
- app: add description and rules views (a508059)
- app: add pending post view (394c7d8)
- app: add post page (dcd29a4)
- board buttons: improve layout, increase dimensions of post form on mobile, add refresh buttons (bc74a9f)
- board nav: add home and settings buttons (9096eca)
- board nav: add sticky header animation to mobile (bb9d53f)
- board nav: if in catalog view, navigate to select sub's catalog view (32e95dd)
- board nav: order board list by multisub category (474dede)
- board nav: update mobile navbar animation on scroll (6a386fa)
- board nav: use titles from multisub (6aa5f38)
- board: add p/all and p/subscriptions (86223bb)
- board: add post form UI on desktop with link type previewer (a5a7a97)
- board: show error in feed near loading string (4b2a602)
- catalog post: add hidden style (8959945)
- catalog post: add loading skeleton for image, "file deleted" fallback img (2aa5dc0)
- catalog post: add spoiler styling and text, add markdown to content (914a7de)
- catalog post: allow selecting text in posts with media thumbnails (a7c7464)
- catalog post: close menu button with second click (38e958b)
- catalog row: add post menu button (a6ae543)
- catalog: add 'image size' and 'show OP comment' options (7f3630e)
- catalog: add catalog post previews (88dcfca)
- catalog: add filter to hide text-only threads, turned on by default (ce93915)
- catalog: add filters modal for text-only posts, nsfw boards in p/all (aa63ab0)
- catalog: add filters to mobile (e860593)
- catalog: add media, styling (65c99ab)
- catalog: add post menu (572eb3b)
- catalog: add refresh button (9c9249d)
- catalog: add sorting option (1ecb2ba)
- catalog: add sticky and closed icons (2fc12bb)
- catalog: apply filter for text-only threads to rules and description (d9234c4)
- crypto wallets setting: improve UI (65b3b99)
- edit menu: add comment edit and delete for authors (2fabd3c)
- embed: add support for soundcloud embeds, show webpage links on mobile, adjust audio embeds (7dba08c)
- feed: add description and rules (dcf0dd9)
- hide button for posts soft hides them persistently without blocking the cid (67e3bc8)
- hide media if spoiler (052476a)
- highlight reply if visible, render it as floating preview if not visible (fc21d87)
- home: add custom hook for stats functionality (798dfc4)
- home: add filter options to boards box (8d4c440)
- home: add multisub boards with categories, subscriptions list, moderating boards list (de81073)
- home: add offline icon for subs in board list (6b71d90)
- home: add options to popular threads box (fabcc1d)
- home: add popular threads box (02b287f)
- home: add version in footer (4614e5d)
- home: in popular threads box, show more posts per sub depending on available subs (98c52e6)
- home: mark board as nsfw if it has at least one of nsfw tags in multisub (c33c546)
- home: user can connect to a sub with search bar (568189b)
- home: user can download desktop client from footer button (e59a229)
- loading ellipsis: improve animation (eddc098)
- media: add support for audio links (0a52944)
- multisubs: add catalog view (cc2a640)
- multisubs: add settings modal (970c726)
- multisubs: add subplebbit address in post info (82fe238)
- p/all: add description view (09f05ac)
- p/all: use multisub title, description and createdAt in mock description and board header (11d1424)
- post desktop: add hide/unhide replies (8b60172)
- post form: add on mobile (3573b65)
- post form: add reply publishing in post page (cf7d59c)
- post form: add row for link type, add spoiler option (6223cb0)
- post form: enable posting from p/all or p/subscriptions (797d665)
- post form: replace single return with double return on submit, because markdown is mandatory on plebbit, but a user from 4chan won't know that (ccb75fc)
- post menu: add copy link button (share link) (caacd77)
- post menu: add reverse image search (677407c)
- post mobile: add hide and unhide posts and replies (0c02a6b)
- post page: add view specific buttons (f5fefd5)
- post page: scroll to top, show full content, no hide thread (e960f79)
- post: add 'this thread is closed" alert for locked, removed, deleted comments (84f5555)
- post: add "file deleted" img on error (1882446)
- post: add "show original" button to content edit (e4febb9)
- post: add "time ago" tooltip to dates (19222a6)
- post: add block options to mobile menu (3206631)
- post: add content, links, buttons, optimize for feed scroll (67f9334)
- post: add deleted and removed styling, mod reason, file deleted (05a8e91)
- post: add embed button and media to links in post content detected as valid embed links (6bfa899)
- post: add floating preview of media from link in post content (39a48c9)
- post: add links and media info, including embed (d0a3e95)
- post: add mod role to display name (ebf1e42)
- post: add post info row, update themes (992ed5d)
- post: add post menu component with links to other clients (08cb073)
- post: block posts via the minus button (to collapse) or via the post menu (32f5220)
- post: choose date/time format from translations locale (d9ac34e)
- post: don't show link if it's not a valid url (3524803)
- replies: add backlinks (cbc99f4)
- replies: sort by timestamp (35572de)
- reply modal: add c/parentCid above textarea, fix tomorrow theme (5f3ff17)
- reply modal: add link type previewer, spoiler option (c5d55a9)
- reply modal: change displayName from name field, style focused inputs, translate title (1e5c675)
- reply modal: disable draggable on mobile and calculate absolute top position (d6179d0)
- reply modal: show alert before posting if subplebbit might be offline (d71889a)
- reply: add floating quote preview (b44fb15)
- settings: add 'check for updates' button (ca22841)
- settings: add account data settings (b2bfc24)
- settings: add blocked addresses setting (42a6fb4)
- settings: add crypto wallets (ae02eba)
- settings: add expand all button (91d2a5a)
- settings: add interface settings category (d78924f)
- settings: add plebbit options (bf09de9)
- subplebbit: add automatic theme based on nsfw or sfw tags (22c1acd)
- subplebbit: add feed, posts (f1af55e)
- topbar: add search bar (e39c171)
- abstract reply modal logic into hook for post page and board page (ff8882c)
- app: limit load of subplebbit with preload of layout (9626c6c)
- apply cachebuster to not found img and board banners (1f4213a)
- app: memoize board layout, update subplebbit view (f4dba57)
- app: optimize subs loading as much as possible (311896d)
- board nav: reduce animation rerenders with useRef (3eabe70)
- catalog: optimize feed row rendering (34f79bf)
- feed: optimize postsPerPage (b1e3400)
- improve responsiveness (62b83bf)
- markdown: memoize (af5a544)
- post: load post components conditionally (50df786)
- rewrite plebchan completely (c4a5cfe)
- use-theme: refactor for performance, fix initial theme load after refresh (3bb1b2f)
0.1.17 (2023-12-20)
0.1.16 (2023-12-18)
- SettingsModal: don't show signer in account data preview (f1f1eaa)
0.1.15 (2023-12-15)
- add multisub.json (b50dcef)
- share: copy thread link to clipboard instead of post link when sharing a reply, because reply links aren't implemented yet on plebbit (e2da7e7)
- add 'view on seedit' links (83c93c5)
- electron: add plebbit rpc (03b9b82)
- SettingsModal: add export/import full account data (07daa4e)
- share: add seedit to share button (a13fe45)
0.1.14 (2023-10-22)
- anon mode: use a different address also per each thread created by the user (5747b26)
- App.js: remove automatic dark mode, because it's not part of 4chan UX and it's not old school, and the selected style is saved anyway (e3b577b)
- app: new version info toast should only appear once (bdb661b)
- CaptchaModal: improve captcha visibility by fixing margin (a312c64)
- Catalog: added missing post menu button to rules and description (a7a845e)
- catalog: fixed bugged appearance for posts without titles or content (ac7ea57)
- catalog: key warnings (87a019e)
- EditLabel: don't show the edit label if comment.original.content is identical to comment.content (bcbf311)
- embed: wrong srcdoc class syntax prevented some embeds from loading (b8e3dcc)
- home: ensure removed threads don't appear in popular threads box (fee9e6f)
- home: fix displacement of threads while rendered in popular threads box (06decd9)
- home: fix rerender with useEffect dep (c63ade8)
- home: remove fallback image warning (eec7e5c)
- Home: remove preload of boards because it's resource-intensive and doesn't have concurrency maximum (8758996)
- hooks: more accurate state strings (2230049)
- missing keys (0939d65)
- mobile reply: remove unnecessary width calculation for reply images (8e4ca88)
- multifeed: wrong feed data (3964893)
- offline indicator: check for online status every 30 minutes instead of 20 (4eba8e7)
- post form: make subject field optional, not mandatory (548d491)
- Post Form: use defaultValue for Name when displayName is defined (c779c34)
- post: fix misplaced pin and lock icons (3a02990)
- post: fix misplaced user address (1a4f7ac)
- PostOnHover: add embed thumbnail (946606a)
- PostOnHover: fix eslint warning (c0fe218)
- Post: remove markdown links showing them as text (a5a01a8)
- Post: remove unnecessary key property causing warning (2d8ecaa)
- scroll: resolve race condition in onClick scroll-to-top behavior (d5715e2)
- SettingsModal: add page reload for automatic anon mode change for ENS name (7f7c9ff)
- settings: typo bugged success toast (379f3d0)
- Thread: fix undefined (fdebe14)
- Thread: remove useless wrapper for webpage comment.link with no thumbnail (e4b1fc6)
- thread: replying to a reply didn't show the pending comment (9f5f2d1)
- usestatestring: don't show updating state if comment/subplebbit is succeeded (7169366)
- views: add CSS effect for useAuthorAddress jank (40a2ff9)
- views: add missing parser for quote links in thread op content (be8bed7)
- views: fix scrolling jank removing margin between desktop reply cards (288ae4d)
- AdminListModal: inform the user when a board doesn't have moderators yet (8a81177)
- catalog post preview: show displayName of last reply with thread.lastChildCid (a15ad68)
- home: boards box shows list of boards being moderated by the user (fabec54)
- home: improve popular threads box with much more accurate conditions (053ec57)
- home: recent threads box only shows posts with media (de2ac49)
- home: redesigned home to be more similar to 4chan, with boards box listing all boards and thread box showing recent threads (685cbb3)
- ImageBanner: add banner #20 (65cd106)
- imagebanner: add new banner (e9ec981)
- SettingsModal: add button to create an account and automatically switching to it, update setting description and modal width (57c3f71)
- SettingsModal: automatically disable anon mode and tell the user, detecting ENS name when importing account, saving account or saving ENS (c59bbb6)
- SettingsModal: force keep the same account id when saving to allow faster account import (eab5469)
- Share button: add success toast for copying share link to clipboard (f0c0e64)
- views: show board admin role next to usernames, if any, with capcode colors and admin modal function (e9cfdac)
- board: add overscan to virtuoso (fd4bec0)
- board: improve scroll on mobile (183294a)
- board: improve scroll removing hr margin glitch (e33c3fb)
- board: remove redundant margin, might impact virtuoso (a7398f5)
- board: replace margin with padding on mobile (6eee096)
- home: add key to map, remove dep causing a loop (a53f290)
0.1.12 (2023-09-18)
- show new version info toast only once (3f33dcb)
- Revert "add support for non-direct imgur links" (be89323)
- Revert "Update SettingsModal.jsx" (5c72bc6)
- Revert "fix conditional useMemo" (572ce08)
0.1.10 (2023-08-10)
- Revert "add refresh button" (f7ae7e7)
0.1.8 (2023-06-09)
0.1.7 (2023-06-08)
- Revert "refactor toasts" (37d4966)