Commit Graph
100 Commits
Author SHA1 Message Date
Tommaso Casaburi 4cc2bf4ea1 fix(flags): resolve comment flags from directory list candidates
Use directory list board entries when the active address is not yet in
the directories cache so /pol and similar boards get correct flag UI.
2026-06-02 15:00:14 +07:00
Tommaso Casaburi ea7883b107 chore(deps): bump react-doctor to 0.2.16 2026-06-02 13:32:57 +07:00
Tommaso Casaburi 75c805c822 fix(post options): link sage warning to FAQ 2026-06-02 12:16:22 +07:00
Tommaso Casaburi 342a8f53a7 Merge branch 'master' of github.com:bitsocialnet/5chan 2026-06-01 13:01:42 +07:00
Tommaso CasaburiandGitHub 829b672053 fix(embed): restore youtube thumbnails and file-row labels (#1148)
* fix(comment-content): render reason text as comment content

* fix(post-form): use native browser styling for flash tag select

Exclude the flash tag dropdown from themed post-form select styling so it
renders with the browser's default select appearance, matching the flag selector.

* fix(p2p-stats): show peer flags for DNS6 relay hostnames

Extract embedded IPv6 addresses from dns6 multiaddrs so geo lookup and country flags work for relay peers that publish IPv6 via DNS hostnames.

* fix(flags): hide geolocation-only selectors on /int/ and /sp/

Country-only boards auto-publish geographic location flags without
showing a flag dropdown, matching existing /bant/ behavior.

* fix(embed): restore youtube thumbnails and file-row labels

Restore thumbnail-first previews for YouTube embeds in post media and markdown hover.
Desktop posts show File with the thumbnail image URL and a youtube video type label.

* fix(embed): address youtube thumbnail review feedback

Translate the youtube video label, handle mobile/music YouTube hosts as standard YouTube URLs, keep affected mocks current, and cap default Vitest workers to reduce local CPU spikes.
2026-06-01 12:57:17 +07:00
Tommaso Casaburi b9ab1ba470 merge: show specific role in moderation posting warning 2026-06-01 12:48:47 +07:00
Tommaso Casaburi 812b6bc79c fix(post): show specific role in moderation posting warning
Replace the generic "posting as moderator" label with the effective role
(5chan dev, owner, admin, or moderator) in post and reply forms.
2026-06-01 12:48:42 +07:00
Tommaso Casaburi d038e7b2f8 merge: sync codex/fix/flash-no-catalog with master 2026-06-01 12:42:45 +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 Casaburi 1bd8d6dc34 fix(flags): hide geolocation-only selectors on /int/ and /sp/
Country-only boards auto-publish geographic location flags without
showing a flag dropdown, matching existing /bant/ behavior.
2026-06-01 10:57:13 +07:00
Tommaso Casaburi 3480dc0505 fix(p2p-stats): show peer flags for DNS6 relay hostnames
Extract embedded IPv6 addresses from dns6 multiaddrs so geo lookup and country flags work for relay peers that publish IPv6 via DNS hostnames.
2026-05-31 18:02:20 +07:00
Tommaso Casaburi 872116b132 fix(post-form): use native browser styling for flash tag select
Exclude the flash tag dropdown from themed post-form select styling so it
renders with the browser's default select appearance, matching the flag selector.
2026-05-31 16:27:02 +07:00
Tommaso Casaburi d3b5c40321 fix(comment-content): render reason text as comment content 2026-05-31 16:09:01 +07:00
Tommaso Casaburi d48cf10ee8 chore(release): v0.9.0 2026-05-31 11:48:49 +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 CasaburiandGitHub e4638ac8c7 fix(media): embed additional direct image formats (#1146) 2026-05-30 23:45:21 +07:00
Tommaso Casaburi f3494cc6bd merge: add playwright-cli low-spec throttling workflow 2026-05-30 17:29:35 +07:00
Tommaso Casaburi 711c97d834 chore(dev): add playwright-cli low-spec throttling workflow
Add pw-throttle.sh and a verification playbook so agents can stress-test UI
on throttled Chromium sessions before claiming perf-sensitive changes feel fast.
2026-05-30 17:29:30 +07:00
Tommaso Casaburi c5a759d34a Merge branch 'codex/chore/dev-overhead-preview' 2026-05-30 17:27:40 +07:00
Tommaso Casaburi 8cc9c401d3 chore(dev): add production preview launcher 2026-05-30 17:26:58 +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 f88b47cf34 merge: hide flash board footer 2026-05-30 16:45:28 +07:00
Tommaso Casaburi 08ebdce29c fix(board): hide feed footer on flash table 2026-05-30 16:44:55 +07:00
Tommaso Casaburi af20b1a452 chore(deps): update vulnerable resolutions 2026-05-30 16:23:47 +07:00
Tommaso Casaburi e8002727d4 docs(ai workflow): prefer local codegraph context 2026-05-30 16:23:38 +07:00
Tommaso Casaburi 05ecfb47a1 Update .gitignore 2026-05-30 16:12:41 +07:00
Tommaso Casaburi 5541c4f047 Merge branch 'master' of github.com:bitsocialnet/5chan 2026-05-30 16:12:29 +07:00
Tommaso CasaburiandGitHub 9b3a95dd95 feat(flash board): add SWF posting support (#1145) 2026-05-30 16:07:41 +07:00
Tommaso Casaburi fa07e4a406 Merge branch 'master' of github.com:bitsocialnet/5chan 2026-05-30 15:39:04 +07:00
Tommaso CasaburiandGitHub 56894700c1 feat(oekaki): add drawing flow for /i/ (#1144)
* feat(oekaki): add drawing flow for /i/

* fix(oekaki): address review feedback

* fix(oekaki): reset Tegaki edit sessions

* fix(oekaki): block drawing during export

* fix(oekaki): destroy Tegaki on preload errors

* fix(oekaki): preserve drawing on export failure

* fix(oekaki): unlock controls after export failure
2026-05-30 15:06:47 +07:00
Tommaso Casaburi 2969a91690 Merge branch 'codex/fix/modal-top-offset' 2026-05-30 13:10:26 +07:00
Tommaso Casaburi b983cfdce4 fix(ui): position disclaimer and directory modals 50px from top
Align home disclaimer and directory submit dialogs near the top of the viewport instead of vertically centering them.
2026-05-30 13:10:22 +07:00
Tommaso Casaburi 55bb873ab1 fix(board-pagination): increase footer pagelist padding 2026-05-30 13:08:54 +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 ac95e58433 Merge branch 'codex/fix/i18next-locize-notice' 2026-05-27 17:43:03 +07:00
Tommaso Casaburi c220c62b82 fix(i18n): disable i18next Locize support notice
Suppress the runtime Locize promo console message during i18next initialization.
2026-05-27 17:43:01 +07:00
Tommaso Casaburi eb23224d35 chore(deps): bump bitsocial-react-hooks to 0.1.13 2026-05-27 17:40:53 +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 029939089f fix(flags): align board flag rendering (#1142)
* fix(flags): align board flag rendering

* ci: run react doctor on changed pr files
2026-05-27 16:06:13 +07:00
Tommaso Casaburi 45a113c621 chore(deps): upgrade react-doctor to 0.2.6
Remove obsolete packageExtensions for react-doctor@0.0.31.
2026-05-26 18:24:57 +07:00
Tommaso Casaburi bd40fe043c chore(deps): bump bitsocial-react-hooks to 0.1.12 2026-05-26 15:13:03 +07:00
Tommaso Casaburi a40b446f14 fix(p2p stats): show peer transfer counters 2026-05-25 15:18:04 +07:00
Tommaso Casaburi 680dd71285 fix(p2p-stats): center loading state and add animated ellipsis
Use LoadingEllipsis for the P2P stats loading message with centered layout and extra bottom spacing.
2026-05-25 14:11:57 +07:00
Tommaso Casaburi 633542a1f7 fix(flags): move reply flag below link and auto-geo on /bant/
Hide the flag selector on /bant/ while still publishing geographic location, and place the reply modal flag field after the link field.
2026-05-24 23:38:15 +07:00
Tommaso Casaburi 2030b8c5bb fix(ui): use native browser styling for flag select
Match 4chan's unstyled flag dropdown by excluding it from themed form select rules.
2026-05-24 23:30:59 +07:00
Tommaso Casaburi 639c627a04 fix(p2p stats): prefer browser IPv4 for own endpoint 2026-05-24 23:18:42 +07:00
Tommaso Casaburi 271cb14ae6 Merge branch 'master' of github.com:bitsocialnet/5chan
# Conflicts:
#	public/translations/ar/default.json
#	public/translations/bn/default.json
#	public/translations/cs/default.json
#	public/translations/da/default.json
#	public/translations/de/default.json
#	public/translations/el/default.json
#	public/translations/en/default.json
#	public/translations/es/default.json
#	public/translations/fa/default.json
#	public/translations/fi/default.json
#	public/translations/fil/default.json
#	public/translations/fr/default.json
#	public/translations/he/default.json
#	public/translations/hi/default.json
#	public/translations/hu/default.json
#	public/translations/id/default.json
#	public/translations/it/default.json
#	public/translations/ja/default.json
#	public/translations/ko/default.json
#	public/translations/mr/default.json
#	public/translations/nl/default.json
#	public/translations/no/default.json
#	public/translations/pl/default.json
#	public/translations/pt/default.json
#	public/translations/ro/default.json
#	public/translations/ru/default.json
#	public/translations/sq/default.json
#	public/translations/sv/default.json
#	public/translations/te/default.json
#	public/translations/th/default.json
#	public/translations/tr/default.json
#	public/translations/uk/default.json
#	public/translations/ur/default.json
#	public/translations/vi/default.json
#	public/translations/zh/default.json
2026-05-24 23:18:28 +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 31329f7856 Merge branch 'codex/fix/option-board-support-alert' 2026-05-24 19:17:55 +07:00
Tommaso Casaburi 5fad3c73ba fix(post): link board-specific option errors to supported boards
When fortune or dice options are used on the wrong board, show which
boards support them with clickable links in the post form and reply modal.
2026-05-24 19:17:50 +07:00
Tommaso Casaburi d19ebf6459 Merge remote-tracking branch 'origin/master' 2026-05-24 18:18:24 +07:00
Tommaso CasaburiandGitHub 804c14fc35 Improve P2P stats peer locations and Kubo display (#1139)
* feat(p2p stats): plot peers by ip location

* fix(p2p stats): show own node map marker

* feat(p2p stats): support full node peers

* fix(p2p stats): clean up kubo stats

* fix(p2p stats): address review feedback
2026-05-24 17:32:05 +07:00
Tommaso Casaburi 03222b033a Merge branch 'codex/feature/pending-approval-reason' 2026-05-24 17:06:16 +07:00
Tommaso Casaburi 348e3393c7 feat(post): show pending approval reason 2026-05-24 17:06:03 +07:00
Tommaso Casaburi a6a1320381 fix(feed): clarify loading states 2026-05-24 16:25:02 +07:00
Tommaso Casaburi 0df81b598e fix(board header): replace loading icon with spinner 2026-05-23 23:30:51 +07:00
Tommaso CasaburiandGitHub f5039285a7 fix(p2p stats): improve own-IP geolocation and world map accuracy (#1138)
* fix(p2p stats): improve own-IP geolocation and world map accuracy

Resolve the user's public endpoint when libp2p only advertises private listen addresses, look up an accurate country flag for "Your IP", snap peer markers to country centroids, and add leeching seeder link plus panel layout tweaks.

* fix(p2p stats): skip caching own-IP lookups cancelled by abort

When the P2P stats panel unmounts mid-request, its AbortSignal cancels
the in-flight fetchOwnPublicEndpoint / fetchOwnIpCountryCode calls. Those
empty results were still cached for 30-60s, so reopening the panel within
that window showed "Your IP" as unavailable or without a country flag even
though nothing had actually failed. Skip caching when the signal aborted so
a later open retries. Addresses Cursor Bugbot finding.
2026-05-23 22:47:41 +07:00
Tommaso Casaburi 9c4bb28940 Merge branch 'codex/feature/prettier-peer-list' 2026-05-23 18:34:05 +07:00
Tommaso Casaburi 782a1f466f feat(p2p stats): redesign connected peers with world map and country flags
Restyle the connected-peers list in the classic square, flat imageboard style,
move it to the end of the panel, and open it by default. Add an offline
approximate world map and per-peer country flags (sprite order taken from the
original 4chan flags.css), plus codify the old-school design rules in DESIGN.md
and point agents to them from AGENTS.md.
2026-05-23 18:33:00 +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 739da79964 Merge branch 'codex/fix/hide-empty-advanced-settings-fields' 2026-05-23 17:23:23 +07:00
Tommaso Casaburi b849f7c376 fix(advanced settings): hide gateway fields in pure p2p mode and align inputs
When pure browser P2P is enabled, the IPFS gateway and pubsub provider
fields no longer apply, so hide them and toggle their visibility reactively
from the now-controlled pure P2P checkbox. Rename "Node RPC" to "Full node
WebSocket RPC", add a placeholder, and drop the old info toggle.

Give the WebSocket RPC text input the same content-box width, border, and
padding as the textareas above it so all field right edges align.
2026-05-23 17:23:05 +07:00
Tommaso Casaburi fb1dbb3917 Merge branch 'master' of github.com:bitsocialnet/5chan 2026-05-23 17:20:18 +07:00
Tommaso CasaburiandGitHub 22c1b4f123 feat(post options): support nonoko board redirects (#1137) 2026-05-23 16:54:38 +07:00
Tommaso Casaburi f4965ee678 Merge branch 'codex/fix/mod-queue-board-summary-dedupe' 2026-05-23 15:36:54 +07:00
Tommaso Casaburi d13f2240e3 fix(mod queue): dedupe board filters 2026-05-23 15:36:39 +07:00
Tommaso Casaburi ff732af9de fix(mod queue): keep empty state inside loaded table 2026-05-23 15:24:21 +07:00
Tommaso Casaburi cf96d3b1ae Merge branch 'codex/feature/pure-p2p-default-web' 2026-05-22 17:31:42 +07:00
Tommaso Casaburi ca13e97dd4 feat(p2p): enable pure browser p2p by default 2026-05-22 17:31:28 +07:00
Tommaso Casaburi 722b6e055a chore(deps): upgrade @pkcprotocol/pkc-js to 0.0.35 2026-05-22 17:28:17 +07:00
Tommaso Casaburi 99eb49cdc5 fix(edit menu): restore moderation reason field 2026-05-22 14:17:25 +07:00
Tommaso Casaburi b6ba1461f8 Merge branch 'codex/fix/bbcode-preview-mod-warning' 2026-05-22 00:44:43 +07:00
Tommaso Casaburi 275d8b0e69 fix(moderation): clarify moderator composer state 2026-05-22 00:44:14 +07:00
Tommaso Casaburi 693c8ad360 fix(theme): match tomorrow directory/archive table headers to 4chan
Use post-form title colors for thead cells and drop borders in Tomorrow theme.
2026-05-22 00:43:21 +07:00
Tommaso CasaburiandGitHub 4c011b3fdd fix(post form): align rules prompt test with bottom placement (#1136) 2026-05-22 00:03:52 +07:00
Tommaso Casaburi 75fb245bfb Merge branch 'master' of github.com:bitsocialnet/5chan 2026-05-21 22:33:51 +07:00
Tommaso CasaburiandGitHub ff6b4cd201 feat(posting): add scoped options and qst formatting (#1135)
* feat(posting): add scoped options and qst formatting

* fix(posting): address post options review feedback

* fix(posting): sync option content before publish

* fix(posting): handle final review nits
2026-05-21 22:12:41 +07:00
Tommaso Casaburi 7d521b1e95 Merge branch 'codex/fix/post-form-rules-row-bottom' 2026-05-21 19:35:07 +07:00
Tommaso Casaburi cab81f0e6a Merge branch 'codex/fix/post-form-thread-button-align' 2026-05-21 19:35:06 +07:00
Tommaso Casaburi 4efa668fec fix(post form): move rules and FAQ prompt to bottom of form
Render the rules/FAQ prompt after the last field instead of between
the file and options rows so it always sits at the bottom.
2026-05-21 19:34:50 +07:00
Tommaso Casaburi 8cd3b65b19 fix(post form): center the collapsed start-new-thread toggle
Re-center the desktop start-new-thread toggle (matching the board
title) while keeping the expanded post form left-aligned with the
blotter.
2026-05-21 19:30:40 +07:00
Tommaso Casaburi 73503eadd0 Merge branch 'codex/chore/translate-post-form-rules-faq-prompt'
Localize post_form_rules_faq_prompt and nothing_found across all supported languages.
2026-05-21 19:05:45 +07:00
Tommaso Casaburi f85c11f66c chore(i18n): translate post form prompt and nothing found
Localize post_form_rules_faq_prompt and nothing_found across all supported languages.
2026-05-21 19:05:40 +07:00
Tommaso Casaburi 1fffe2c428 Merge branch 'codex/fix/post-form-blotter-align' 2026-05-21 19:04:39 +07:00
Tommaso Casaburi b347205136 fix(post form): align desktop post form to blotter left edge
Match the blotter's centered 468px column so the desktop post form
shares its left edge instead of being centered within its own width.
2026-05-21 19:03:47 +07:00
Tommaso Casaburi 7305e40870 feat(post form): add rules and FAQ prompt 2026-05-21 18:55:36 +07:00
Tommaso Casaburi 5fc27fda21 Merge branch 'codex/fix/verbose-board-loading-feed' 2026-05-21 18:02:06 +07:00
Tommaso Casaburi e426bf2ccc fix(board): clarify loading fallback 2026-05-21 18:01:44 +07:00
Tommaso Casaburi bddbb82a58 Merge branch 'codex/fix/board-footer-subscriptions-empty-style' 2026-05-21 18:00:05 +07:00
Tommaso Casaburi 77e46500e2 fix(board): match subscriptions empty state to catalog search styling
Use the same centered red status treatment as catalog "Nothing Found"
instead of a plain red span in the subscriptions footer.
2026-05-21 18:00:01 +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 67ddaee673 docs(blotter): keep release highlights user-facing 2026-05-21 17:50:00 +07:00
Tommaso Casaburi f22c53ec1c Merge branch 'codex/fix/pending-account-comment-not-found' 2026-05-21 17:39:57 +07:00
Tommaso Casaburi e0a42e7899 fix(pending-post): preserve sparse retry routes 2026-05-21 17:39:35 +07:00
Tommaso Casaburi 56c4fdf3c1 fix(mod multiboard): show account import empty state 2026-05-21 17:37:18 +07:00