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
348e3393c7
feat(post): show pending approval reason
2026-05-24 17:06:03 +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 and GitHub
22c1b4f123
feat(post options): support nonoko board redirects ( #1137 )
2026-05-23 16:54:38 +07:00
Tommaso Casaburi
ca13e97dd4
feat(p2p): enable pure browser p2p by default
2026-05-22 17:31:28 +07:00
Tommaso Casaburi
99eb49cdc5
fix(edit menu): restore moderation reason field
2026-05-22 14:17:25 +07:00
Tommaso Casaburi
275d8b0e69
fix(moderation): clarify moderator composer state
2026-05-22 00:44:14 +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
Tommaso Casaburi
75fb245bfb
Merge branch 'master' of github.com:bitsocialnet/5chan
2026-05-21 22:33:51 +07:00
Tommaso Casaburi and GitHub
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
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
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
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
56c4fdf3c1
fix(mod multiboard): show account import empty state
2026-05-21 17:37:18 +07:00
Tommaso Casaburi
75d90c8264
fix(post-form): shorten long uploaded file labels in the form
...
Telegraph and other hosts can produce very long filenames that overflow the
narrow post form upload row; truncate them more aggressively than post media
links and expose the full name via title tooltip.
2026-05-21 15:34:21 +07:00
Tommaso Casaburi and GitHub
536d9ac0b8
fix(directory): load per-directory list files ( #1134 )
...
Merge board directories from the new bitsocialnet/lists per-directory layout on the client side.
Update vendored fallback data, sync tooling, directory references, and tests.
Treat failed board stat fetches as complete on the home page so stats do not stay loading forever.
2026-05-20 23:31:58 +07:00
Tommaso Casaburi
ca6e843a89
fix(mod queue): rename queue dismissal action
2026-05-20 14:48:07 +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
4370e89174
merge: mod bbcode editor
2026-05-19 15:45:36 +07:00
Tommaso Casaburi
d2d047e5de
feat(posts): add mod bbcode editor
2026-05-19 15:45:22 +07:00
Tommaso Casaburi
696b7a1b96
Merge branch 'codex/fix/catalog-search-empty-state'
2026-05-19 15:38:52 +07:00
Tommaso Casaburi
62cff4e207
fix(catalog): improve empty search state and footer layout
...
Show centered Nothing Found for catalog searches with no matches, mirror
search results labels at the bottom footer, split nav from the style row,
and drop the desktop catalog footer top margin.
2026-05-19 15:38:44 +07:00
Tommaso Casaburi
1a57ec44b1
fix(settings): show crypto address validation inline instead of alert
...
Replace window.alert on empty check with a transient status message
next to the check button, matching existing resolution feedback.
2026-05-19 15:05:41 +07:00
Tommaso Casaburi and GitHub
95f3faf31a
fix(post-form): clear stale draft state on form remount ( #1131 )
2026-05-17 17:15:31 +07:00
Tommaso Casaburi
4acd4449ea
fix(post form): show validation errors inline
2026-05-16 16:30:32 +07:00
Tommaso Casaburi
a86c523d17
fix(post form): block temporary media links
2026-05-16 16:11:22 +07:00
Tommaso Casaburi
70cf337895
fix(thread): pass board identity to comments
2026-05-16 13:44:44 +07:00
Tommaso Casaburi
3545fb8845
Merge branch 'codex/fix/close-challenge-done-label'
2026-05-16 00:53:52 +07:00
Tommaso Casaburi
5cfcd8ba04
fix(challenge modal): rename iframe completion button
2026-05-16 00:53:41 +07:00
Tommaso Casaburi
30f395c1c8
fix(reply modal): wrap search status text
2026-05-16 00:53:12 +07:00
Tommaso Casaburi
80d1fc5119
Merge branch 'codex/fix/hidden-catalog-redo'
2026-05-14 17:00:15 +07:00
Tommaso Casaburi
8217bad735
fix(catalog): hide threads across board catalogs
2026-05-14 16:59:55 +07:00
Tommaso Casaburi
cc096c02ae
Merge branch 'codex/fix/media-load-failure-alert'
...
# 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-14 16:38:01 +07:00
Tommaso Casaburi
fe87808a90
fix(media): clarify failed external image embeds
2026-05-14 16:36:20 +07:00
Tommaso Casaburi
d1fbc7f46a
Merge branch 'codex/fix/p2p-stats-core-dev-advice'
2026-05-14 12:34:05 +07:00
Tommaso Casaburi
8cb632f3db
fix(p2p stats): clarify browser peer data
2026-05-14 12:33:48 +07:00
Tommaso Casaburi
6eba22cbc6
Merge branch 'codex/fix/yotsuba-mobile-footer-links'
2026-05-14 11:56:09 +07:00
Tommaso Casaburi
2adb4bb88c
fix(footer): use link color for legal metadata
2026-05-14 11:55:45 +07:00