Tommaso Casaburi
3ece699a6f
fix(post form): publish twimg query-format links with path extension
...
Normalize pbs.twimg.com media URLs that use ?format= to their file-extension form at publish time without rewriting the input field.
2026-06-04 18:00:25 +07:00
Tommaso Casaburi
8badc2b7a5
Merge branch 'codex/fix/tor-flag-tooltip'
2026-06-04 17:19:07 +07:00
Tommaso Casaburi
0f6d74592e
fix(flags): label Tor country flag
2026-06-04 17:18:35 +07:00
Tommaso Casaburi
a7997592be
Merge branch 'codex/fix/challenge-modal-drag-snapback'
2026-06-04 17:16:51 +07:00
Tommaso Casaburi
0ee3fb00bd
fix(challenge modal): stop drag position snapback on re-render
...
Replace react-spring position state with imperative DOM transforms so re-renders no longer animate the modal back to its centered origin.
2026-06-04 17:16:44 +07:00
Tommaso Casaburi
54f2cf2b84
fix(markdown): render moderation reason links
2026-06-04 15:54:15 +07:00
Tommaso Casaburi and GitHub
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
49d6723225
Merge branch 'codex/fix/neutral-mod-approval-reason'
2026-06-03 18:53:31 +07:00
Tommaso Casaburi
be2b774382
fix(mod queue): show pending approval reasons directly
2026-06-03 18:53:11 +07:00
Tommaso Casaburi
40bafa2a0f
fix: default mod queue to feed view
2026-06-03 18:32:51 +07:00
Tommaso Casaburi
248ee5b0d5
Merge branch 'codex/fix/post-form-link-media-validation'
2026-06-03 17:10:52 +07:00
Tommaso Casaburi
95f3a54b9d
fix(post form): reject non-media file links
2026-06-03 17:10:37 +07:00
Tommaso Casaburi
72aca22723
fix(faq): scroll direct hash links
2026-06-03 17:06:24 +07:00
Tommaso Casaburi
188c44a923
Merge branch 'codex/feature/homepage-stats-scope'
2026-06-03 14:48:16 +07:00
Tommaso Casaburi
d357514397
feat(home stats): load stats progressively
2026-06-03 14:47:51 +07:00
Tommaso Casaburi and GitHub
d09d2d05d1
fix(fortune): scope s5s fortune markup ( #1150 )
...
* fix(markdown): scope fortune markup to fortune boards
* fix(fortune): store fortune output as bbcode
* fix(fortune): keep legacy fortune rendering
* fix(tests): resolve catalog button mock merge
* fix(fortune): validate hidden fortune length
2026-06-03 13:49:35 +07:00
Tommaso Casaburi
84f357cba1
merge: integrate master post-form and youtube changes
2026-06-02 15:00:19 +07:00
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
8f4b02727c
merge: integrate master board selector fix
2026-06-02 14:59:22 +07:00
Tommaso Casaburi
0a601c9392
fix(post-form): auto-convert YouTube links to thumbnail URLs
...
Add a countdown notice and shared hook to replace YouTube watch links
with img.youtube.com thumbnails in post and reply forms, with i18n copy.
2026-06-02 14:59:14 +07:00
Tommaso Casaburi
a7cd3ac87f
fix(post-form): restore native board selector appearance
...
Exclude the board dropdown from post-form field chrome so it keeps the
browser default select styling, matching flag selector behavior.
2026-06-02 14:58:32 +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 Casaburi and GitHub
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 Casaburi and GitHub
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 and GitHub
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 Casaburi and GitHub
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 Casaburi and GitHub
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 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
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 Casaburi and GitHub
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 Casaburi and GitHub
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 Casaburi and GitHub
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 Casaburi and GitHub
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 Casaburi and GitHub
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 Casaburi and GitHub
4c011b3fdd
fix(post form): align rules prompt test with bottom placement ( #1136 )
2026-05-22 00:03:52 +07:00