Commit Graph
634 Commits
Author SHA1 Message Date
Tommaso CasaburiandGitHub ecb7f9e4cc fix(catalog): use search hashes for board routes
Use 4chan-style #s= catalog search hashes for redirected board search routes and quotelinks.
2026-06-27 17:45:38 +07:00
Tommaso Casaburi 51c0a16249 feat(directories): add /q/ feedback directory and link site footer
Register /q/ in directory defaults and board codes, ship the feedback
directory list, merge remote defaults with bundled fallbacks, and route
footer Feedback to /q/ instead of GitHub issues.
2026-06-26 18:12:05 +07:00
Tommaso Casaburi 2ff7b8bc88 fix(board): preserve feed order during hydration 2026-06-25 23:49:21 +07:00
Tommaso Casaburi fb004469e3 feat(p2p): enable pure browser p2p by default 2026-06-25 18:36:37 +07:00
Tommaso CasaburiandGitHub 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 CasaburiandGitHub 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 cb74ba803d fix(account-data-editor): restore Ace load ordering 2026-06-22 12:58:02 +07:00
Tommaso Casaburi 87df18162c chore(release): v0.9.4 2026-06-18 19:07:21 +07:00
Tommaso CasaburiandGitHub eb47214f08 Fix empty board loading state and browser P2P patch (#1175)
* fix(board): show loaded empty boards

* fix(p2p): patch browser hooks runtime

* fix(board): stop flash loading for explicit empty boards

* fix(board): wait for feed on preloaded empty pages
2026-06-18 18:54:48 +07:00
Tommaso Casaburi 57805d60e5 Merge branch 'codex/fix/thread-author-controls' 2026-06-18 15:59:20 +07:00
Tommaso Casaburi 6297edb49f fix(post): restore thread author controls after publish navigation
Overlay local account comment author data on thread pages so edit/delete controls stay available after navigation from publish.
2026-06-18 15:59:14 +07:00
Tommaso Casaburi d2f058a5ed fix(home): point footer Blog link to bitsocial.net 2026-06-18 15:57:33 +07:00
Tommaso Casaburi f4eb1d28d2 chore(home): replace Telegram footer link with Blog
Reorder footer links and add Home; Blog points to bitsocial.app/blog?q=5chan.
2026-06-18 15:57:02 +07:00
Tommaso Casaburi 1278cf42c0 fix(pubsub): restore browser pure p2p publishing 2026-06-17 23:09:39 +07:00
Tommaso Casaburi 6006a658fb fix(rules): re-scroll directory hash when data refreshes
Remove the one-shot scroll guard so /rules#code anchors scroll again when directory data updates after the initial render.
2026-06-15 18:39:49 +07:00
Tommaso Casaburi f3565f0dda perf(mod queue): stabilize moderation subscriptions 2026-06-15 18:10:58 +07:00
Tommaso CasaburiandGitHub 33bb1d1356 perf(mod queue): stabilize empty loading state
Keep the mod queue empty state visible while background P2P loading continues, reduce footer-driven rerenders, and preserve footer errors when retained queue history rows are rendered.
2026-06-14 20:38:25 +07:00
Tommaso Casaburi b0193b34be fix(archive): preserve button link text color on desktop
Exclude .button links from the nav unset rule and apply mobile button
spacing to anchor buttons so archive actions keep theme text color.
2026-06-10 16:47:31 +07:00
Tommaso Casaburi e9c729a9e3 fix(rules): use hash links for directory deep links
Switch rules navigation from /rules/:code paths to /rules#code hashes,
reject legacy subpaths, and ignore address hashes in markdown links.
2026-06-10 16:38:31 +07:00
Tommaso Casaburi 9de2e6a851 fix(failed-publish): keep bracket actions on one line
Replace mobile-only line breaks with CSS so retry/delete actions wrap
as a block without splitting bracket labels across lines.
2026-06-09 16:51:35 +07:00
Tommaso CasaburiandGitHub a3ff6b2e33 fix(mod queue): reset board filter on navigation (#1166) 2026-06-09 16:06:13 +07:00
Tommaso CasaburiandGitHub bd12b47db6 fix(pending-post): keep retrying failed posts on the pending route (#1161)
* fix(pending-post): keep retrying failed posts on the pending route

Retrying a failed post deletes the pending row before republishing, which
briefly leaves the pending comment non-addressable with no active challenge —
the same state PendingPost's abandoned-challenge guard uses to redirect back to
the board. A shared use-failed-post-retry-store marks the index being retried so
PendingPost skips that redirect until the republished row is created and its own
navigation to the new pending route takes over.

* fix(pending-post): harden retry flag lifecycle against abandoned-challenge race

Address Cursor Bugbot review on the retry flow. Clear the retry flag (and
isRetryRedirectPending) when the republish challenge is abandoned so an abandon
mid-retry falls through to the normal board redirect instead of stranding an
empty pending view. Also navigate to the new pending row before clearing the
flag in the redirect effect so PendingPost never observes an old-index route
with the flag already cleared.
2026-06-08 16:08:51 +07:00
Tommaso CasaburiandGitHub c2b222c4d5 fix(thread update): refresh stale reply caches (#1160)
* fix(thread update): refresh stale reply caches

Evict the current thread comment and known reply-page cache entries before manual refresh so stale local data does not keep replies hidden. Also defer broader multiboard suggestion feeds until the current /all time window is exhausted to reduce renderer pressure.

* fix(thread update): evict alternate reply page caches

* fix(board): hide stale time-window suggestions
2026-06-08 14:44:38 +07:00
Tommaso Casaburi 04af198140 feat(directory): add submit board link 2026-06-07 22:47:09 +07:00
Tommaso Casaburi bc67e961fc fix: use body color for brackets around inline action buttons
Wrap copy-error and failed-publish bracket characters in spans so they use body text color instead of inheriting the action button color.
2026-06-06 23:15:29 +07:00
Tommaso Casaburi 404a464310 feat: use s.5chan.app share links and remove report menu items
Copy share links as path-based s.5chan.app URLs so the share server can render social previews, rename the menu label, remove the stub report action, and update the FAQ.
2026-06-06 19:06:04 +07:00
Tommaso CasaburiandGitHub 9f58bf7e22 chore(deps): upgrade react to 19.2.7 and react types to 19.x (#1154)
Bump react and react-dom 19.1.2 -> 19.2.7 and @types/react and
@types/react-dom from v18 to v19. Keeps babel-plugin-react-compiler,
which is a separate build-time tool, not part of the React 19 runtime.

The @types v19 upgrade surfaced 21 type-only errors, all fixed without
runtime behavior changes:

- useRef<T>() now requires an explicit argument: pass undefined
- DOM element refs are RefObject<T | null>: widen PostFormFields and
  AdvancedSettings ref prop types accordingly
- retype reply-modal onInput handler to FormEvent + currentTarget
- add a null guard for the boards-bar search input
- update test mocks for stricter cloneElement/forwardRef typings

Verified: type-check, lint, 1051 tests, and build pass; react-doctor
score unchanged at 54; browser smoke across Chromium/Firefox/WebKit
plus mobile viewport clean.
2026-06-05 18:43:28 +07:00
Tommaso CasaburiandGitHub 12977fa24a fix(mod-queue): rework excerpt hover preview, scope pending-age alerts (#1152)
Render the compact mod queue excerpt hover preview like the quote-link previews (clean read-only Post via useFloating, anchored to the right of the excerpt on desktop / below on mobile), cap its content at 350 chars, and scope the red pending-age timestamp to posts actually awaiting approval. Adds keyboard handlers to the span fallback.
2026-06-05 17:29:04 +07:00
Tommaso Casaburi 54f2cf2b84 fix(markdown): render moderation reason links 2026-06-04 15:54:15 +07:00
Tommaso CasaburiandGitHub 608402b5c8 fix(board): prevent transient no threads state (#1151)
* fix(board): prevent transient no threads state

* fix(board): scope raw thread fallback by sort

* fix(board): keep flash table loading during feed sync
2026-06-04 13:43:52 +07:00
Tommaso Casaburi be2b774382 fix(mod queue): show pending approval reasons directly 2026-06-03 18:53:11 +07:00
Tommaso Casaburi 72aca22723 fix(faq): scroll direct hash links 2026-06-03 17:06:24 +07:00
Tommaso Casaburi d357514397 feat(home stats): load stats progressively 2026-06-03 14:47:51 +07:00
Tommaso Casaburi 75c805c822 fix(post options): link sage warning to FAQ 2026-06-02 12:16:22 +07:00
Tommaso Casaburi b686def1a1 fix(board-buttons): hide catalog controls on flash upload boards
Flash boards do not use catalog view, so hide catalog links and OP search
without leaving empty bracket placeholders in desktop board controls.
2026-06-01 12:42:21 +07:00
Tommaso CasaburiandGitHub b442e05191 feat(rules page): rebuild directory rules page with vendored lists (#1147)
* feat(rules page): rebuild directory rules page with vendored lists

Mirror per-directory JSON from lists into src/data/5chan-directories, rework /rules layout to match 4chan (sidebar nav, category boxes, P2P load), and keep spoiler markup visible in rule text via parseSpoilers.

* fix(rules): keep directory defaults cache atomic

* fix(rules): derive defaults from shared directory refresh

* fix(rules): address directory refresh edge cases
2026-05-31 11:39:40 +07:00
Tommaso Casaburi 5412fd5277 merge: fix ROBOT9002 board name in directory list 2026-05-30 17:18:38 +07:00
Tommaso Casaburi d9c040d5f7 fix(boards): use ROBOT9002 board name in directory list
The home boards list still linked ROBOT9001 after the board was renamed.
2026-05-30 17:18:28 +07:00
Tommaso Casaburi 08ebdce29c fix(board): hide feed footer on flash table 2026-05-30 16:44:55 +07:00
Tommaso CasaburiandGitHub 9b3a95dd95 feat(flash board): add SWF posting support (#1145) 2026-05-30 16:07:41 +07:00
Tommaso Casaburi 5a0b4909b8 Merge branch 'codex/fix/directory-loading-center' 2026-05-29 17:47:53 +07:00
Tommaso Casaburi a435d93c8a fix(home): unify stats loading state with feed status string
Show a single centered loader without stat labels until all directory
stats resolve, using useFeedStateString like popular threads. Center
directory table status loading in its cell.
2026-05-29 17:47:47 +07:00
Tommaso Casaburi 0469f61a45 feat(theme): add halloween special theme 2026-05-29 17:45:18 +07:00
Tommaso CasaburiandGitHub 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 30dde0944d fix(rules): show friendly loading state string for board rules
Replace hardcoded loading text in BoardRulesDisplay with useStateString and LoadingEllipsis so rules loading matches other views like board downloads from peers.
2026-05-27 17:39:06 +07:00
Tommaso CasaburiandGitHub f74b33f43b feat(flags): add comment flags (#1140)
* feat(flags): add comment flags

* fix(flags): address review feedback

* fix(flags): clear stale flag publish data
2026-05-24 23:14:36 +07:00
Tommaso Casaburi a6a1320381 fix(feed): clarify loading states 2026-05-24 16:25:02 +07:00
Tommaso Casaburi 1a09c7e891 Merge branch 'codex/fix/pending-escape-board-redirect'
# Conflicts:
#	src/components/post-form/post-form.tsx
2026-05-23 17:26:47 +07:00
Tommaso Casaburi e95dcb8af5 fix(pending-post): return to board after abandoned challenge 2026-05-23 17:24:22 +07:00
Tommaso Casaburi fb1dbb3917 Merge branch 'master' of github.com:bitsocialnet/5chan 2026-05-23 17:20:18 +07:00