Tommaso Casaburi and GitHub
da03239bb2
perf: reduce browsing rerenders and startup cost ( #1189 )
...
* chore(profiling): collect serializable react-scan reports
* perf(routing): rerender only when directory winner changes
* perf(zustand): remove shallow warning hot path
* perf(state): narrow directory lifecycle updates
* perf(home): avoid redundant stats render work
* perf(posts): isolate live loading subscriptions
* perf(chrome): skip unchanged shell rerenders
* fix(profiling): drop unsupported render metric
* perf(feeds): skip unchanged loading state renders
* perf(home): stop resolved stats collector renders
* chore(agent run): record rerender verification
* perf(home): defer stats requests until metadata resolves
* perf(startup): load protocol modules on demand
* chore(agent run): record acquisition and startup profiles
2026-07-30 00:29:12 +07:00
Tommaso Casaburi and GitHub
a91c5b588b
fix(community status): use sync lifecycle for availability ( #1187 )
...
* chore(deps): upgrade pkc-js to 0.0.72 and bitsocial-react-hooks to 0.1.31
Update bitsocial internals import paths for the new package dist layout.
* fix(community status): use sync lifecycle for availability
* fix(community status): handle terminal sync without cache
* fix(directory routing): resolve candidate sync aliases
* fix(directory routing): preserve fresh cached winners
2026-07-24 16:36:09 +07:00
Tommaso Casaburi and GitHub
e5e46907d6
fix(routing): avoid nested hashes in shared links ( #1185 )
2026-07-11 00:09:30 +07:00
Tommaso Casaburi
e2dc9413a0
fix(trash board): keep hidden special boards on canonical BSO identity
...
Resolve trash and other hidden special board routes to their canonical BSO
address and public key instead of stale directory aliases.
2026-07-07 23:45:13 +07:00
Tommaso Casaburi and GitHub
099fdd6f3e
Add hidden trash board ( #1183 )
...
* feat(trash-board): add hidden trash board
* fix(trash-board): resolve special board transfer lookups
* fix(trash-board): exclude source aliases from transfers
* fix(trash-board): avoid hidden rules hash
2026-07-02 21:22:19 +07:00
Tommaso Casaburi and GitHub
f1022fc2d9
fix: consume enriched account comments directly ( #1178 )
...
* fix: consume enriched account comments directly
* fix(account comments): use empty lookup patch
2026-06-24 16:23:42 +07:00
Tommaso Casaburi and GitHub
371de88e22
chore(architecture): finish refactor audit
...
Merge the architecture audit refactors and follow-up UX fixes: remove release notes from generated LLM context, keep author edit controls delete-only, stabilize board refresh rendering, and address review feedback for role loading, refresh holds, moderation actions, and P2P stats polling.
2026-06-23 18:48:47 +07:00
Tommaso Casaburi
dcc47c7bbd
feat(board-header): show subtitle on /all view
...
Add all_subtitle copy and render it in the board header when browsing
the aggregated all-directories feed.
2026-06-08 22:30:14 +07:00
Tommaso Casaburi and GitHub
e082c7b428
fix(react): address Doctor findings ( #1143 )
...
Accessibility/semantics pass aligned with React Doctor: role-based spans/divs become real buttons, role=status becomes <output>, modals use native <dialog>, author/peer flags render as <img>, and embed/challenge iframes are sandboxed. Includes review follow-ups: correct button chrome/centering/themed dialog colors and focus rings, the missing aria-label i18n keys (all languages), the Yandex image-search URL, clearer .bso setup steps, a keyboard-accessible image-search dropdown, and removal of the post-edit ('comment edited') display (mod edits unchanged).
2026-05-29 17:09:07 +07:00
Tommaso Casaburi
df0936a4f9
fix(ui): hardcode /all/ and /mod/ multiboard titles
...
Use fixed labels in the board header and mobile board selector instead of
directories metadata or translated mod copy.
2026-05-21 17:59:52 +07:00
Tommaso Casaburi and GitHub
cda1f7519f
Add board directory view ( #1132 )
...
* feat(directory): add board directory view
* fix(directory): populate board status
* style(directory): tighten board table
* docs(board manager): point board owners to manager
* fix(directory): show loading status
* style(directory): center board column in directory table
* perf(directory): cap board status checks
* style(directory): simplify board row links
* test(ci): stabilize coverage run
* test(ci): stabilize coverage harness
* test(ci): avoid async app flush act
* test(app): narrow layout harness coverage
* test(ci): stabilize app update distribution mock
* test(ci): preload app harness before route tests
* fix(directory): address final review findings
2026-05-19 23:34:33 +07:00
Tommaso Casaburi
c046c542b6
chore(deps): use published bitsocial react hooks
2026-04-20 22:11:36 +07:00
Tommaso Casaburi
4cae9c3caa
fix(board status): resolve offline indicators with strict community refs
2026-04-17 12:51:14 +07:00
Tommaso Casaburi and GitHub
c2e8e169c2
fix(accounts): adapt 5chan to compact account history hooks ( #1118 )
...
* chore(cursor): use composer-2 for subagents
* fix(accounts): adapt 5chan to compact account history hooks
* fix(accounts): address 5chan account-history review findings
2026-03-20 21:25:57 +08:00
Tommaso Casaburi and GitHub
aedee9fb83
feat(archive): implement comment.archived and add archive page ( #1074 )
...
* feat(archive): implement comment.archived and add archive page
Add isCommentArchived() utility, /board/:boardIdentifier/archive route,
archive view with filtered feed, and UI integration (board buttons, edit
menu, catalog row, post). Archived indicator on catalog and posts.
* fix(archive): address review feedback from Bugbot and CodeRabbit
Add missing i18n keys (archived, thread_archived, view, loading_archive),
add /archive/settings route, replace hardcoded English in archive.tsx, and
fix mobile test state.
2026-03-13 16:06:36 +08:00
Tommaso Casaburi and GitHub
d7703953fb
refactor: migrate 5chan to the community hooks API ( #1073 )
...
* refactor(community-api): migrate 5chan to community hooks
* fix(review): address PR feedback
* fix(review): preserve legacy board context fallbacks
* fix(review): address latest bot feedback
* fix(review): use communityAddress in edit menu privileges
2026-03-13 13:25:10 +08:00
plebeius
417482060d
refactor: org name changed from bitsocialhq to bitsocialnet
2026-03-09 17:01:35 +08:00
plebeius
4508f589dd
chore(deps): migrate from pkc-react-hooks to bitsocial-react-hooks
2026-03-05 17:14:23 +08:00
plebeius
e556a9e662
chore(deps): replace plebbit/plebbit-react-hooks with bitsocialhq/pkc-react-hooks
...
bitsocialhq/pkc-react-hooks is a fork of plebbit-react-hooks that we're maintaining temporarily as an attempt to modernize the original repository using AI tools, possibly merging changes back into plebbit-react-hooks, which should also be rebranded to pkc-react-hooks eventually, under the org pkcprotocol.
2026-02-28 15:02:56 +08:00
plebeius
4bdee0362d
perf(bundle): replace plebbit-js imports with local utility, split chunks, fix CLS and rerenders
...
Eliminate direct @plebbit/plebbit-js (8.7MB) imports from all UI components by replacing
Plebbit.getShortAddress() with a local get-short-address utility. Add Vite manual chunks for
plebbit-js, plebbit-react-hooks, and react-spring/use-gesture. Fix catalog CLS by matching
skeleton to wrapper dimensions. Lazy-load ChallengeModal and ReplyModal. Add failed-URL cache
to useFetchGifFirstFrame, optimize useHide selector, and memoize useFeed options in mod-queue.
2026-02-26 16:42:36 +08:00
plebeius
e51f5b968c
refactor(react-doctor): raise score from 79 to 90
2026-02-24 15:15:44 +08:00
plebeius
e0ed510fc6
perf(react-doctor): fix compiler-blocking patterns, raise score 72→81
...
Replace sync setState-in-effect with keyed remount and render-derived patterns in app, error-display, topbar-edit-modal, catalog-filters; use useCurrentTime() instead of Date.now() in hot paths; fix conditional hooks, passive scroll listeners, lodash path imports.
2026-02-18 15:31:01 +08:00
plebeius
901f40f6b8
feat(board-header): add hover tooltip for address subtitle
2026-02-12 18:15:11 +08:00
plebeius
18cea185e7
refactor: replace default lodash imports with named imports
...
Replaced `import _ from 'lodash'` with specific named imports (`capitalize`, `lowerCase`, `debounce`, `startCase`) across 18 files. This reduces bundle size and improves tree-shaking efficiency.
2026-02-11 19:01:09 +08:00
plebeius
63ee8aa168
refactor: rebrand default subplebbits to 5chan directories
2026-01-28 16:51:27 +08:00
plebeius
fa32833b2a
perf(components): prevent rerenders from updatingState
...
Use Zustand selectors with custom equality functions to only subscribe to specific fields needed by components, avoiding unnecessary rerenders when transient state like updatingState changes. Extract offline indicators into separate components to isolate rerenders. Memoize card components in catalog and popular threads views.
2026-01-02 16:42:16 +01:00
plebeius
4cb3bda38c
fix: update Plebbit.getShortAddress calls to use object parameter
2025-12-24 13:29:09 +01:00
plebeius
bb596bff0d
feat(i18n): add translations for subscriptions subtitle
...
Replace hardcoded subscriptions subtitle string with i18next translation supporting pluralization across all 35 languages
2025-12-15 16:53:36 +01:00
plebeius
4f49ec6666
fix(board header): limit clickable area of subscriptions counter to text only
2025-11-14 13:14:34 +01:00
plebeius
cc28224c91
feat(board header): make subscriptions subtitle clickable to go to subs settings
2025-11-14 13:05:52 +01:00
plebeius
1675ab7d40
feat(board-header): show subscription count in subscriptions view
2025-11-14 12:59:26 +01:00
plebeius
e91a0494ae
remove useless subtitle for multiboards
2025-11-13 12:21:10 +01:00
plebeius
12101fe75e
feat: add Multiboards category with /subs/ and /all/
2025-11-12 16:35:38 +01:00
plebeius
d78fed1fda
refactor(routing): migrate to directory-based board routing
2025-11-07 12:50:58 +01:00
plebeius
f44b9aefbb
feat(board-header): prioritize default subplebbit title over store title
2025-11-06 17:24:09 +01:00
plebeius
f26da13c77
refactor: implement scalable asset manifest system for dynamic images
...
Created build-time script to generate TypeScript manifest from public/assets, avoiding import.meta.glob limitations. Images stay in public/ for scalability (supports hundreds), while components get type-safe auto-discovery. Manifest auto-regenerates before builds.
2025-11-01 19:39:22 +01:00
plebeius
a92892a604
update vite glob syntax, simplify path handling
2025-11-01 17:25:38 +01:00
plebeius
e350311308
refactor(board header): use dynamic banner discovery with Vite glob imports
...
Replaced hardcoded banner array with Vite's import.meta.glob to automatically discover all banner files at build time. Now supports unlimited banners without code changes. Works across all platforms (web, Electron, Android).
2025-11-01 16:46:51 +01:00
plebeius
07831cb8b0
feat(board header): add banners, add support to gif banners
2025-10-30 22:21:17 +01:00
plebeius
70eaaaf7e9
remove old banners
2025-10-27 15:01:36 +01:00
plebeius
7374465c4f
fix(pending post page): prevent crash and ensure redirect to "not found" on invalid URL
2025-06-12 17:51:08 +02:00
Tom (plebeius.eth)
339a9bc18a
fix(mod multisub): mod page was missing post form
2025-06-04 16:37:17 +02:00
Tom (plebeius.eth)
bc80533740
fix(board header): subplebbit address could be too long
2025-06-04 14:54:11 +02:00
Tom (plebeius.eth)
6edbed8d16
add banner
2025-03-07 16:53:19 +01:00
Tom (plebeius.eth)
dcb05ed3a0
perf: prioritize cached data from API, improving navigation speed and memory consumption
2025-03-06 13:15:33 +01:00
Tom (plebeius.eth)
ba5753d85e
feat: add p/mod feed for all subs the user moderates
2025-03-05 17:38:34 +01:00
Tom (plebeius.eth)
2df9a964e6
fix(board header): banner could change while subplebbit is loading
2025-02-24 12:21:59 +01:00
Tom (plebeius.eth)
1639600d7c
add banner
2025-02-24 12:18:02 +01:00
Tom (plebeius.eth)
5e5cfd60c7
fix tooltips
2025-02-21 17:31:16 +01:00
Tom (plebeius.eth)
eb3a630cc3
feat: add christmas theme
2024-12-24 17:13:12 +01:00