100 Commits
Author SHA1 Message Date
plebeius 3b341922c4 fix(tests): mock board-buttons and style-selector to avoid Solana import crash 2026-03-09 16:31:06 +08:00
plebeius 892e6e824a fix(settings): restore style selector to interface settings 2026-03-09 15:53:53 +08:00
plebeius 9f2fd12200 chore: update footer links 2026-03-09 15:46:13 +08:00
plebeius dd7dc7dcf8 chore: update translations 2026-03-09 15:33:21 +08:00
plebeius cf55eaa781 feat(markdown): make spoiler tags case-insensitive like BBCode 2026-03-09 15:31:53 +08:00
plebeius c3cfc7d63a feat(catalog): add mobile footer with Return, Archive, Top, Refresh buttons 2026-03-09 15:17:39 +08:00
plebeius 9c79bf2198 fix(i18n): default interface language to english 2026-03-08 21:09:22 +08:00
plebeius fabdd0efe5 fix: stabilize catalog filter coverage imports 2026-03-08 19:40:19 +08:00
plebeius 5d77a33c38 fix: patch bitsocial-react-hooks esm imports on install
Add a `postinstall` repair step for the git-based `@bitsocialhq/bitsocial-react-hooks` package so test and build environments stop tripping over extensionless relative imports in dist. This keeps GitHub Actions aligned with local installs without changing app logic.
2026-03-08 19:28:03 +08:00
plebeius 723a2dee52 fix: share board offline state between post form and reply modal 2026-03-08 19:02:49 +08:00
plebeius 71b0b0fa42 perf(popular-threads): show board-count loading state for popular threads 2026-03-08 17:36:55 +08:00
plebeius 08ec9f31ff fix(reply-modal): align offline warning with post form 2026-03-08 17:10:48 +08:00
plebeius c27590372c fix(popular-posts): randomize popular thread board selection on mount 2026-03-08 16:58:55 +08:00
plebeius 04b98b84a4 feat(popular-threads): show actual feed state string instead of generic loading 2026-03-08 16:50:27 +08:00
plebeius 824c14f538 fix(home): stabilize initial popular threads box
Keep usePopularPosts() keyed to the requested board list, wait to reveal the box until the first result set is stable, and limit the grid to one thread per board. Freeze the first revealed threads until refresh or filter changes so later board loads cannot displace visible cards.
2026-03-08 16:48:38 +08:00
plebeius 2b32866b6b test: cover edit, challenge, advanced settings, and gif preview flows 2026-03-08 16:48:01 +08:00
plebeius 90a01057f2 chore(knip): trim dead exports and tool noise 2026-03-08 16:37:34 +08:00
plebeius b2137c7f91 test: expand markdown and post menu coverage
Adds focused regression coverage for quote previews, markdown link rendering, embed toggles, and desktop/mobile post-menu actions. It also fixes the undefined feed-state crash in use-state-string.ts and removes unnecessary runtime imports with import type.
2026-03-08 16:30:02 +08:00
plebeius 9444d3e01a test: cover comment rendering and edge-route states 2026-03-08 16:00:54 +08:00
plebeius a8ef232b1d fix: erase runtime Comment import in catalog filters store 2026-03-08 16:00:42 +08:00
plebeius 0a392a3f02 fix: stabilize special theme coverage test 2026-03-08 15:50:23 +08:00
plebeius dc5d23d8d9 test: expand hook and utility runtime coverage 2026-03-08 15:46:05 +08:00
plebeius 36616990d4 Update README.md 2026-03-08 15:29:25 +08:00
plebeius 5aec67714a test: cover reply modal and board header flows 2026-03-08 15:19:24 +08:00
plebeius 29b6c85541 test: cover board actions, pagination, and thread routes
Core browsing flows around board controls, pagination, and thread pages were still largely unmeasured in the honest whole-repo report. That left route mismatches, cached-thread hydration, board action wiring, and mod-queue control regressions underprotected in CI.
2026-03-08 14:37:35 +08:00
plebeius 1fbf715aa9 test: cover board, catalog, and publish flows
Board browsing, catalog filtering, post publishing, and reply publishing had little or no honest whole-repo coverage, which let route-level regressions and duplicated form side effects slip through. This pass adds targeted tests for those user flows and fixes the duplicate `PostFormTable` mounting bug they exposed.
2026-03-08 14:29:47 +08:00
plebeius 76eb4b537e test: expand honest whole-repo coverage
Adds broad coverage across stores, hooks, and runtime utilities while switching `vitest.config.ts` to an explicit whole-repo include list. This turns the coverage report into a real repo-wide baseline instead of an imported-file subset.
2026-03-08 13:59:38 +08:00
plebeius 7da0df9466 test: expand interface settings and account editor coverage
Added coverage for version check button states, language selector, fit-expanded-images toggle, and account editor warning gate, continue flow, save/reset, and JSON validation.
2026-03-08 13:19:06 +08:00
plebeius e3907e7420 docs(agents): preserve measured coverage 2026-03-08 13:10:25 +08:00
plebeius 045bea7ff9 fix(android tests): align runner stage assertions 2026-03-08 13:10:17 +08:00
plebeius 725da9c33e Create get-short-address.test.ts 2026-03-08 13:09:06 +08:00
plebeius eda5af7bf2 test: expand directory and electron upload coverage
Added hook coverage for cached directory hydration, alias lookup, and fallback behavior, plus broader Electron automation tests around hidden BrowserWindow upload flows and failure cases. useDirectoriesState() and related fallback paths now stay synchronized when the shared cache is already populated but the GitHub refresh fails.
2026-03-08 13:04:51 +08:00
plebeius 0d34b477e4 test(settings): expand settings and route coverage
Added focused tests for settings flows, subscription behavior, and route helpers, and fixed the account import success path those tests exposed in account-settings.tsx.
2026-03-08 12:52:41 +08:00
plebeius e46c7dd169 ci: add smoke-gated quality checks to the main pipeline
Replaced test.yml with ci.yml, added a built-app smoke runner in scripts/smoke-web-app.js, and inserted a release preflight so tags run the same core checks before packaging.
2026-03-08 12:41:52 +08:00
plebeius 4e3cc06a81 Update vercel.json 2026-03-08 12:02:53 +08:00
plebeius 337603af39 chore(deps): upgrade bitsocial-react-hooks 2026-03-08 11:34:56 +08:00
plebeius 52414853fb chore(tooling): add knip, test:coverage, and agent guidance 2026-03-07 21:31:20 +08:00
plebeius 34e2c2bc4d fix: hold gif thumbnails until first frame is ready
Distinguish GIF frame loading from GIF frame failure in useFetchGifFirstFrame(), so thread and catalog thumbnails no longer render animated GIFs before the still frame arrives. Keep the existing animated fallback when the first-frame fetch actually fails.
2026-03-07 21:16:13 +08:00
plebeius b064cf0511 chore(deps): upgrade bitsocial-react-hooks 2026-03-07 21:15:47 +08:00
plebeius a1423b8c5f fix missing button styling 2026-03-07 20:48:53 +08:00
plebeius 8414fac15c style(mod queue): flatten feed items, add View Thread button for replies 2026-03-07 20:33:08 +08:00
plebeius 38614e39e9 style(mod queue): add missing footer, improve mobile UI 2026-03-07 18:50:24 +08:00
plebeius 76b3e97a31 chore(deps): upgrade bitsocial-react-hooks 2026-03-07 17:10:57 +08:00
plebeius e80a73663f feat(subscriptions): use useAccountSubplebbitAddresses for deduplicated addresses
Integrate bitsocial-react-hooks#16: replace raw useAccountsStore access with
useAccountSubplebbitAddresses so .eth/.bso aliases are deduplicated under .bso.
2026-03-07 16:50:24 +08:00
plebeius 95088300bd refactor(routing): namespace board mod queue under board mod routes
Updated the canonical board mod queue URL to /:boardIdentifier/mod/queue and made legacy /:boardIdentifier/modqueue paths resolve to not found. Tightened route helpers so board-scoped mod URLs no longer fall through as generic board pages.
2026-03-07 16:02:19 +08:00
plebeius 4eed34e4a7 docs(llms): add AI-facing project guide 2026-03-07 14:07:32 +08:00
plebeius 92eed04eb1 fix(seo): serve sitemap and preserve static metadata files 2026-03-07 14:03:07 +08:00
plebeius 58abae7e38 fix: handle purged posts in quote availability and mobile author counts 2026-03-07 13:52:48 +08:00
plebeius 1b9f69839d fix(routing): canonicalize board aliases in thread routes 2026-03-07 13:48:18 +08:00
plebeius 2d8d280365 chore: add missing translations 2026-03-07 13:46:44 +08:00
plebeius 27a294f949 fix(replies): render CommentContent for purged replies so purge message displays 2026-03-07 13:30:32 +08:00
plebeius 08d929bb97 fix(posts): render per-post IDs on initial board load 2026-03-07 12:46:37 +08:00
plebeius 109811d144 chore(deps): upgrade bitsocial-react-hooks 2026-03-07 12:41:37 +08:00
plebeius da7757075f Update 5chan-directories.json 2026-03-06 22:15:54 +08:00
plebeius affea1b3ed fix(comment-content): use info text style for purge message instead of red caps 2026-03-06 21:46:14 +08:00
plebeius ae744d0f78 feat(posts): add purge UI feedback for mods
Show Purged author/ID, red content message, and file-deleted media when
post.commentModeration.purged is true. Mirrors removal UI pattern.
2026-03-06 21:44:33 +08:00
plebeius c69c46442b chore(deps): upgrade bitsocial-react-hooks 2026-03-06 21:42:03 +08:00
plebeius cac3d09698 Update default.json 2026-03-06 21:11:33 +08:00
plebeius ca9f743cef fix(vite.config.js): remove deprecated rolldown dep optimizer config 2026-03-06 21:09:04 +08:00
plebeius 91615dbf47 feat(markdown): use BBCode-style [spoiler][/spoiler] tags 2026-03-06 20:54:11 +08:00
plebeius 0247a392c2 Update yarn.lock 2026-03-06 19:36:19 +08:00
plebeius ec404569e7 fix(quotes): avoid striking unresolved quote links 2026-03-06 19:24:49 +08:00
plebeius b243ec55b8 chore(deps): upgrade bitsocial-react-hooks 2026-03-06 19:24:43 +08:00
plebeius 14262fe887 chore: improve wording, translations 2026-03-06 19:19:05 +08:00
plebeius 65731ceb3a fix(markdown): handle unavailable reply quote links 2026-03-06 14:55:40 +08:00
plebeius 9cc6876887 fix(challenge flow): abandon publish immediately on modal close 2026-03-05 20:47:49 +08:00
plebeius 59851a4b01 fix(publishing): abandon challenge close and clean failed local posts 2026-03-05 19:30:50 +08:00
plebeius 980b5ca572 fix(post): hide stuck Loading and Downloading board for pending comments 2026-03-05 19:09:23 +08:00
plebeius 3fa758ef8c chore(deps): upgrade bitsocial-react-hooks 2026-03-05 19:07:42 +08:00
plebeius 4508f589dd chore(deps): migrate from pkc-react-hooks to bitsocial-react-hooks 2026-03-05 17:14:23 +08:00
plebeius 1f232d38ad chore(release): v0.6.8 2026-03-04 20:14:53 +08:00
plebeius d8a003ed1d Revert "chore(release): v0.6.8"
This reverts commit 8c51c56397.
2026-03-04 20:14:36 +08:00
plebeius 8c51c56397 chore(release): v0.6.8 2026-03-04 20:12:16 +08:00
plebeius c6620dc5a5 chore(deps): upgrade pkc-react-hooks 2026-03-04 20:12:16 +08:00
plebeius 7b15bddbb5 chore(release): replace yarn release script with release agent skill 2026-03-04 20:12:15 +08:00
plebeius 5fe2024a49 feat(home): clarify 5chan is serverless app, use current hostname for share links
- Homepage infobox: merged copy into single line explaining app nature and download link
- Share links (Copy direct link): use window.location.origin instead of hardcoded 5chan.app
- Settings version link: use current origin
- FAQ: add 'Is 5chan just this website?' entry under Basics
- Remove pleb.bz from CHAN_5_HOSTNAMES
2026-03-04 18:49:06 +08:00
plebeius e484f96e3a fix(ci): make portless optional for windows installs 2026-03-04 17:48:31 +08:00
plebeius 0207fad8ad chore(dev): bump portless to 0.5.2 2026-03-04 16:22:06 +08:00
plebeius 7644d59599 perf(media): restrict gif frame extraction to gif media types 2026-03-04 16:04:49 +08:00
plebeius df1bc2071d perf(settings): fix navigate-in-setState, memo sections, defer crypto resolution 2026-03-04 15:41:21 +08:00
plebeius 2f697c6a36 Update README.md 2026-03-04 15:20:41 +08:00
plebeius e6afb041ae refactor(markdown): replace react-markdown with custom imageboard-style text parser 2026-03-04 15:20:06 +08:00
plebeius 1aabe7a6b2 fix(comment-content): prevent doubled >>postnumber quote when cidToNumber resolves late 2026-03-04 14:37:46 +08:00
plebeius 822b6c937a fix(posts): default to hiding user IDs when pseudonymityMode is undefined 2026-03-03 18:38:00 +08:00
plebeius 064d3414f1 feat(release): add yarn release script and v0.6.7 blotter entry 2026-03-03 18:18:33 +08:00
plebeius c3fd256255 style(boards-bar): missing padding 2026-03-03 15:56:58 +08:00
plebeius 17afdc7502 fix(edit-menu): remove redundant double confirm for purge 2026-03-03 15:51:20 +08:00
plebeius 422eacc5c1 fix(publish): use active account at publish time instead of baking stale author data at typing time 2026-03-03 15:50:32 +08:00
plebeius 84e6057bb8 feat(post): add mobile footer to thread view
Post a Reply, Return/Catalog/Top, Update/Auto buttons, stats row (Replies/Images/Page), and license footer links. Matches mobile board view styling.
2026-03-03 15:07:14 +08:00
plebeius 9216791505 fix(popular-posts): rank by time-decayed popularity instead of raw reply count 2026-03-03 14:51:42 +08:00
plebeius 3a9b5ab75f feat(board-buttons): reorganize button layout on mobile and desktop
- Conditional PostForm placement: above MobileBoardButtons in catalog, below in board/post
- Add ArchiveButton (work-in-progress alert) to mobile catalog and desktop board/catalog
- Restructure MobileBoardButtons: board row [Bottom][Catalog][Refresh], secondRow [Vote][Subscribe][Mod Queue]; catalog row [Return][Archive][Bottom][Refresh], no Vote/Subscribe row
- Desktop board left: [Catalog][Archive][Refresh][Mod Queue], right: [Vote][Subscribe]
- Desktop catalog left: [Return][Archive][Bottom][Refresh][Mod Queue], right: (selectors)[Vote][Subscribe][Filters][Search]
- Add whitespace between Vote and Subscribe on desktop right side
- Extend showBottomButton to board paginated view
2026-03-02 21:42:58 +08:00
plebeius 3bd1c0ad4f feat(favicon): swap tab favicon for SFW vs NSFW boards 2026-03-02 21:08:46 +08:00
plebeius ea0789faa1 fix(boards-bar): cancel debounced scroll handler on cleanup 2026-03-02 19:36:56 +08:00
plebeius efd152609d feat(boards-bar): alphabetize mobile board select and show full multiboard titles 2026-03-02 19:19:29 +08:00
plebeius 41a238094c refactor(boards-bar): rename boardsbar to boards-bar 2026-03-02 19:17:59 +08:00
plebeius 1a4e8a624b feat(board): add mobile footer with Start a New Thread, Top, Refresh, pagination, Catalog, Load More 2026-03-01 20:45:26 +08:00
plebeius 5e48483b21 Update index.html 2026-03-01 19:05:59 +08:00
plebeius c9e9506ebd fix(replies-preview): stable sort when recency yields identical Infinity values 2026-03-01 19:05:36 +08:00
plebeius dfa203a506 fix(react-grab): disable Cmd+C shortcut to avoid copy/paste conflicts 2026-03-01 18:58:18 +08:00
plebeius 75b66516fe refactor(replies): remove pinned-thread special handling for reply preview 2026-03-01 18:36:12 +08:00