100 Commits
Author SHA1 Message Date
Tommaso Casaburi 07543646af Merge branch 'codex/chore/ai-workflow-parity' 2026-08-02 17:54:18 +02:00
Tommaso Casaburi 20f8bd902c fix(scripts): treat an omitted agent model as harness-specific in the parity check
`normalizeAgent` rewrote the first `model:` frontmatter line when one was
present, so an agent that pins a model in one toolchain and omits it in another
normalized to different text and looked like body drift.

The bug is latent here rather than firing: every agent whose `.claude` copy
omits `model:` currently has a `.cursor` copy that omits it too. Pinning a
Cursor-only model on any of them turns the gate red for a non-reason —
reproduced by adding `model: composer-2.5-fast` to
`.cursor/agents/code-quality.md`, which fails before this change and passes
after it. The same defect was failing on seedit's master, where those Cursor
copies do pin a model.

Strip the frontmatter `model:` line instead of rewriting it. Scoping the strip
to the leading frontmatter block keeps a body line that begins with "model:"
comparable, so it is still reported as drift. Verified that injected body drift
is still caught.
2026-08-02 17:54:16 +02:00
Tommaso Casaburi 9caee7f831 Merge branch 'codex/chore/pw-session-home-fallback' 2026-08-01 19:36:06 +02:00
Tommaso Casaburi 1a7d756d89 fix(scripts): resolve the pw-session lock path without requiring HOME
`lock_root` dereferenced `$HOME` unconditionally, so under `set -u` the script
died with "HOME: unbound variable" in any environment that starts without it —
even when `PLAYWRIGHT_RESOURCE_LOCK_DIR` made HOME irrelevant. Surfaced by
running the suite under vitest's node environment, where `process.env` is
patched and spreading it does not carry HOME through to the child.

Resolve the lock path in order (explicit override, XDG_CACHE_HOME, HOME) and
fail with a clear message only when none of them is set. The test now names
PATH and HOME explicitly instead of spreading process.env.
2026-08-01 19:36:04 +02:00
Tommaso Casaburi 600fd68414 Merge branch 'codex/chore/browser-resource-budget' 2026-08-01 19:27:47 +02:00
Tommaso Casaburi cc467d4f6f Merge branch 'codex/chore/oxfmt-drift' 2026-08-01 19:27:39 +02:00
Tommaso Casaburi 82adee9642 chore(format): apply oxfmt to the math-tags test
`src/lib/__tests__/math-tags.test.ts` was committed unformatted in #1170, so
`yarn prettier` rewrote it on every unrelated run and contributors had to
remember to revert the churn. The assertion collapses to 153 characters, well
under the configured printWidth of 170.

No other file under `src/**` or `electron/**` is formatter-dirty. Neither
`.oxfmtrc.json` nor the oxfmt version has changed since that commit, so the
drift came from a bypassed lint-staged pre-commit hook rather than a config
change.
2026-08-01 19:26:38 +02:00
Tommaso Casaburi 1a33f7dc88 chore(agents): add a machine-wide Playwright browser resource budget
Playwright disables normal background throttling, so a hidden 5chan page keeps
doing P2P and rendering work after a check finishes. Agents verifying in
parallel across worktrees stacked whole browser engines on one machine.

Add scripts/pw-session.sh, a wrapper that permits one active Playwright browser
at a time and records who holds it:

- The lock is machine-wide, not per-repository, because the contended resource
  is RAM and CPU. Every worktree and checkout shares one slot.
- Acquisition is an atomic mkdir. Stale locks clear themselves: `open` reclaims
  any slot whose recorded browser is no longer `status: open` in
  `playwright-cli list --all`, so an interrupted workflow cannot strand the
  budget. When that list cannot be read the lock is left alone, so a broken CLI
  never silently disables the budget.
- `open` exits 75 when the slot is busy; `--wait[=SECONDS]` blocks instead.
- `close` always stops the browser, even when the lock was already lost, and
  never releases a slot held by a different session.
- `status` reports the holder and whether its browser is still alive.

Agent policy now runs browser engines and profiler batches sequentially, uses
Chrome/Blink during iteration and the full engine matrix only for final
verification, and never uses `close-all` or `kill-all` while other agents may
own sessions.

Covered by scripts/pw-session.test.js.
2026-08-01 19:21:01 +02:00
Tommaso CasaburiandGitHub a9040a5425 perf(settings): speed up board settings navigation (#1191)
* perf(settings): speed up board settings navigation

* perf(settings): parallelize account section loading
2026-08-01 19:12:20 +02:00
Tommaso Casaburi 660cdf8a2d fix(board-header): keep banner stable during directory route resolution
Key the banner image by route identifier instead of the resolved community address so directory candidates do not reshuffle the banner mid-load.
2026-08-01 18:51:28 +02:00
Tommaso CasaburiandGitHub a67c66de0d perf(electron): speed up Windows packaging with ASAR (#1190)
* perf(electron): package Windows app with ASAR

* fix(electron): use portable ASAR unpack glob

* fix(electron): unpack native modules from ASAR
2026-08-01 12:50:23 +02:00
Tommaso Casaburi f2f6c0ecb7 fix(deps): deduplicate pkc-js for Windows packaging 2026-07-30 02:31:16 +08:00
Tommaso Casaburi 5d595a9812 chore(release): v0.9.16 2026-07-30 01:57:49 +08:00
Tommaso CasaburiandGitHub 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 27cc4767c6 fix(transfer): link trash transfer success to new post 2026-07-28 15:01:25 +07:00
Tommaso Casaburi 56b22e7ea9 fix(transfer): hide transferred label on trash board posts
Posts moved to /trash/ should not show the transferred tag since the move is the intended outcome.
2026-07-28 14:28:37 +07:00
Tommaso Casaburi de47749c52 chore(deps): upgrade react-router-dom to 7.18.1 for Dependabot alerts
Clears GHSA-wrjc-x8rr-h8h6 (open redirect via backslash in <Link>/useNavigate)
and GHSA-337j-9hxr-rhxg (arbitrary constructor injection in deserializeErrors),
neither of which has a 6.x backport. Drops the now-unused @remix-run/router
resolution, since v7 no longer depends on it.
2026-07-26 16:06:48 +07:00
Tommaso Casaburi c48ea43ee3 fix(directory): center loading ellipsis in status column
Add a centered loading ellipsis variant and use it for directory row loading states.
2026-07-25 15:57:34 +07:00
Tommaso Casaburi bc819336c4 chore(agents): inherit session model for judgment-tier subagents
Drop the pinned `model: sonnet` from the reasoning-heavy subagents so they
follow the session model instead of being forced down to Sonnet. Running an
Opus session now gets Opus subagents; deliberately dropping to a cheaper
session model is respected too.

Mechanical agents (browser-check, profiler, translator) keep their haiku pin
— that pin is a capability statement, not a stale default, and should hold
regardless of session model.
2026-07-25 15:07:01 +07:00
Tommaso Casaburi 8ac0d68bfd chore(deps): bump transitive deps to clear dependabot alerts
Raise resolution pins to the patched versions for 14 open Dependabot
alerts (1 critical, 8 high, 5 medium):

- brace-expansion 1.1.14 -> 1.1.16, 2.1.0 -> 2.1.2, 5.0.7 -> 5.0.8 (DoS)
- tar 7.5.16 -> 7.5.22 (decompression DoS, infinite loop, PAX crashes)
- postcss 8.5.15 -> 8.5.23 (source map path traversal)
- fast-uri 3.1.2 -> 3.1.4 (host confusion)
- sharp 0.34.5 -> 0.35.3 (inherited libvips CVEs)
- shell-quote 1.8.4 -> 1.9.0 (quadratic parse DoS)
- js-yaml 4.2.0 -> 4.3.0 (merge-key CPU exhaustion)

The two react-router advisories (GHSA-wrjc-x8rr-h8h6, GHSA-337j-9hxr-rhxg)
are not addressed: they are only patched in 7.18.0 and 6.30.4 is the final
v6 release, so clearing them needs a v6 -> v7 migration.
2026-07-25 14:02:33 +07:00
Tommaso Casaburi 35a574362b feat(banners): add banner-6 2026-07-25 13:53:03 +07:00
Tommaso CasaburiandGitHub c437b59850 chore(deps): upgrade bitsocial-react-hooks to 0.1.32 (#1188) 2026-07-25 13:51:30 +07:00
Tommaso CasaburiandGitHub 7538403b4c fix(composer): preserve drafts by location (#1186)
* fix(composer): preserve drafts by location

* fix(composer): address review feedback

* fix(composer): remount drafts on location changes
2026-07-24 16:42:00 +07:00
Tommaso CasaburiandGitHub 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 047bb1d5ab chore(skills): drop GitHub issue/project finalization from PR workflow skills
GitHub Projects are no longer used in this repo. Remove issue/project
finalization from review-and-merge-pr and the project-board step from
make-closed-issue in all three toolchain mirrors, record the surprise
in known-surprises.md, and regenerate llms files.
2026-07-23 18:59:30 +07:00
Tommaso Casaburi 0f2c56440c fix(author badges): recognize legacy developer address 2026-07-23 16:42:44 +07:00
Tommaso Casaburi 0ddf25bb44 fix(home stats): include replies in total post count 2026-07-23 16:27:59 +07:00
Tommaso Casaburi 01e5bdf19a chore(deps): upgrade @chenglou/pretext to 0.0.8
Update pretext height estimation to use layoutNextLineRange from the new release.
2026-07-22 12:37:03 +07:00
Tommaso Casaburi 715acb4c9a chore(deps): bump axios, protobufjs, and brace-expansion for Dependabot alerts
Resolve open security advisories by pinning patched versions in Yarn resolutions.
2026-07-22 12:09:03 +07:00
Tommaso Casaburi cfcb8cdb8c style(footer): shrink Bitsocial logo to 18px and drop 1px 2026-07-20 16:52:22 +07:00
Tommaso Casaburi 829e90d65c fix(footer): point About link to 5chan app page 2026-07-20 16:34:47 +07:00
Tommaso Casaburi 4aef06b56c Merge branch 'codex/feature/footer-bitsocial-attribution'
Add Bitsocial attribution to site legal meta footer.
2026-07-20 16:33:50 +07:00
Tommaso Casaburi 192007d632 feat(footer): add Bitsocial attribution to site legal meta
Show a powered-by Bitsocial link with logo in the footer license line and add translations for the new copy.
2026-07-20 16:33:44 +07:00
Tommaso Casaburi 87553414a8 fix(transfer): publish trash board transfers with canonical community name
Use the trash board address as communityAddress and communityName instead of the public key, while still passing communityPublicKey for identity.
2026-07-20 16:22:57 +07:00
Tommaso Casaburi 32dea15e86 chore: upgrade react-grab to 0.1.48 2026-07-19 14:44:32 +07:00
Tommaso Casaburi e6dc405faf chore: upgrade react-doctor to 0.8.1 2026-07-19 14:35:27 +07:00
Tommaso Casaburi 3431c26755 chore(data): replace plebeius.bso with bitsocialist.bso
Update board directory owners, known developer registry, and related tests to use the new bitsocialist.bso address.
2026-07-18 16:43:39 +07:00
Tommaso Casaburi bbc2d5860d chore(release): v0.9.15 2026-07-17 16:37:51 +07:00
Tommaso Casaburi e74952a016 Merge branch 'codex/fix/thread-cid-community-route'
Resolve thread community from CID and redirect stale directory routes.
2026-07-17 16:32:06 +07:00
Tommaso Casaburi cb15128ee8 fix(post): resolve thread community from CID and redirect stale routes
Fetch the comment community from the CID payload for initial useComment hints, and redirect directory thread URLs to the authoritative community instead of 404.
2026-07-17 16:32:01 +07:00
Tommaso Casaburi d0c515e70f fix(deps): upgrade @libp2p/gossipsub to 16.0.4 for CVE-2026-49866
Resolves Dependabot alert #302 (CPU DoS via oversized IHAVE/IWANT arrays).
2026-07-17 15:03:51 +07:00
Tommaso Casaburi e14efac63a chore(deps): upgrade bitsocial-react-hooks to 0.1.30 and bso-resolver to 0.0.10 2026-07-14 16:43:34 +07:00
Tommaso Casaburi eadf048d5e fix(android): support TypeScript 7 builds 2026-07-14 15:02:30 +07:00
Tommaso Casaburi 8cf425717b chore(release): v0.9.14 2026-07-14 14:54:02 +07:00
Tommaso Casaburi 3d49781c3d chore(deps): upgrade bitsocial-react-hooks to 0.1.29 2026-07-14 14:14:09 +07:00
Tommaso Casaburi 2068894cbd chore(deps): upgrade pkc-js to 0.0.71 2026-07-14 14:04:41 +07:00
Tommaso Casaburi e3f45a6112 fix(ui): hide account author ID on pending replies 2026-07-14 01:08:04 +07:00
Tommaso CasaburiandGitHub e5e46907d6 fix(routing): avoid nested hashes in shared links (#1185) 2026-07-11 00:09:30 +07:00
Tommaso Casaburi 1e9cdab9a6 chore(deps): bump pkc and hooks packages 2026-07-10 20:26:23 +07:00
Tommaso Casaburi 7ff9c19331 chore(ai workflow): add Ponytail simplicity pass 2026-07-10 15:30:55 +07:00
Tommaso Casaburi 9dfdf2f147 Merge branch 'codex/fix/favicon-route-ownership' 2026-07-10 15:22:19 +07:00
Tommaso Casaburi 56f451719d fix(ui): centralize favicon updates and tighten route ownership for mod views
Gate document theme and favicon side effects behind GlobalLayout, restore the default favicon after leaving not-found, and treat valid mod and trailing-slash routes as recognized views.
2026-07-10 15:22:12 +07:00
Tommaso Casaburi 5456ba2fb8 chore(codex agents): inherit parent model settings 2026-07-10 14:45:05 +07:00
Tommaso Casaburi ece58da78b chore(deps): drop @typescript/native-preview in favor of typescript 7 native tsc
TypeScript 7's own tsc is the Go-native compiler, so the separate tsgo
binary from the dev-preview package is redundant. yarn type-check now
runs tsc --noEmit. Bump tsconfig target to ES2018 and add types: [node]
to fix the pre-existing NodeJS namespace, global, and /s regex flag
errors that stable tsc reports but tsgo did not.
2026-07-09 15:17:35 +07:00
Tommaso Casaburi 217fccf2d6 chore: upgrade typescript to 7.0.2 2026-07-09 14:46:00 +07:00
Tommaso Casaburi 6753f4b3e6 fix(deps): satisfy yauzl API for Windows packaging 2026-07-09 00:57:27 +07:00
Tommaso Casaburi ba4e2f42cc chore(release): v0.9.13 2026-07-09 00:41:54 +07:00
Tommaso Casaburi c6dadc6355 fix(deps): replace vulnerable decompress with @xhmikosr/decompress
The unmaintained decompress package (<=4.2.1) allows archive extraction
outside the target directory. Migrate electron before-pack to the patched
@xhmikosr/decompress fork (11.1.3) to resolve Dependabot alert #301.
2026-07-08 21:44:18 +07:00
Tommaso Casaburi 1e1de76f8f chore(deps): upgrade bitsocial-react-hooks to 0.1.27 2026-07-08 15:18:30 +07:00
Tommaso Casaburi bf0577ab13 chore(deps): upgrade pkc-js to 0.0.65 2026-07-08 15:18:10 +07:00
Tommaso Casaburi f07e0df098 Merge branch 'codex/fix/trash-board-canonical-bso'
Keep hidden special boards on canonical BSO identity.
2026-07-07 23:45:25 +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 CasaburiandGitHub abe1e5a6a2 fix(post ids): never display account identity as a post user id (#1184)
* fix(post ids): never display account identity as a post user id

In per-post pseudonymity mode, local account comment data is overlaid on
published comments so author edit/delete controls keep working, but the
overlay also replaced the displayed User ID with the account author
address in logged-in thread views.

Split the two concerns: getCommentUserID now reads only the published
author.shortAddress, and preservePublishedUserID mirrors the published
ID back onto comments after any local account/edit overlay.

* test(post): cover published user id restore over edited comment overlay
2026-07-07 16:27:41 +07:00
Tommaso Casaburi 6c9c57794c chore(release): v0.9.12 2026-07-06 23:46:18 +07:00
Tommaso Casaburi d6f83e8abe fix(post transfer): publish trash with public key 2026-07-05 00:11:48 +07:00
Tommaso Casaburi 716d8d93a5 Merge branch 'codex/fix/mod-queue-trash-only' 2026-07-04 23:51:09 +07:00
Tommaso Casaburi 177ccb7c40 Revert "Merge branch 'codex/fix/trash-transfer-publication-identity'"
This reverts commit 63eac48110, reversing
changes made to 5111954081.
2026-07-04 23:51:04 +07:00
Tommaso Casaburi 9dfd638b71 fix(mod queue): restrict trash action to trash board 2026-07-04 23:48:43 +07:00
Tommaso Casaburi 63eac48110 Merge branch 'codex/fix/trash-transfer-publication-identity' 2026-07-04 23:48:31 +07:00
Tommaso Casaburi ad091d2be8 fix(post transfer): publish trash with public key 2026-07-04 23:48:19 +07:00
Tommaso Casaburi 5111954081 fix: avoid pending post cleanup crash 2026-07-04 23:13:49 +07:00
Tommaso Casaburi dad43a0830 Merge branch 'codex/chore/ai-workflow-improvements'
AI workflow improvements: skills, subagents, hooks, and agent playbooks.
2026-07-03 18:21:45 +07:00
Tommaso Casaburi bbc696dcec ci: make coverage badge publishing advisory 2026-07-03 14:24:38 +07:00
Tommaso Casaburi 2088c4b50d docs(agent playbooks): fix stale CI references and index committed skills
Corrects the react-doctor PR-check command and workflow filename, marks the
superseded hooks-tarball surprises now that bitsocial-react-hooks comes from
npm, rewrites hooks-setup.md around the real per-harness entry points and drops
its drifted inline script copies, points the Task Router translations row at
the translate skill, and adds a committed skills/subagents index so agents can
discover the tooling that already exists.
2026-07-03 13:58:38 +07:00
Tommaso Casaburi 1ac3e5883b fix(agent hooks): wire hooks into real harness entry points and fix payload parsing
Claude Code never reads a standalone .claude/hooks.json, so the PostToolUse and
Stop pipeline is moved into .claude/settings.json and hooks.json is removed;
.cursor/hooks.json is rewritten in Cursor's version+afterFileEdit/stop schema;
.codex/hooks.json is already Codex-valid and stays. The shared scripts now
parse both the Cursor file_path and Claude/Codex tool_input.file_path stdin
shapes and normalize absolute paths, so the format, yarn-install, and
react-pattern-review hooks stop being silent no-ops. verify.sh blocks with
exit 2 plus a stderr reason, guards stop_hook_active, and skips clean trees;
react-pattern-review surfaces its reminder via hookSpecificOutput on
PostToolUse; sync-git-branches no longer misreports open PRs as merged. The
validator now checks that the three harness-specific entry points wire the
same hook scripts instead of requiring byte-identical hooks.json copies.
2026-07-03 13:58:36 +07:00
Tommaso Casaburi 0166f2f4e8 fix(subagents): restrict read-only agent tools and remove machine-specific paths
browser-check and profiler get an explicit read-only tools list mirroring the
Codex sandbox_mode, and test-apk no longer hardcodes one contributor's
ANDROID_HOME and project paths.
2026-07-03 13:58:35 +07:00
Tommaso Casaburi 21bbc5f07c fix(ai skills): correct stale branch names, rg flags, and commit scope rules
Fixes deslop diffing against nonexistent main, an invalid rg --type tsx flag
in fix-merge-conflicts, a Codex-specific phrase leaking into the Claude/Cursor
inspect-elements description, and aligns commit-format with the required-scope
convention the commit skill and git history already use. Rewrites the readme
skill from 764 lines of Rails-specific guidance to a lean version matching
this Vite/Capacitor/Electron repo.
2026-07-03 13:58:34 +07:00
Tommaso Casaburi 57310867ec chore(release): v0.9.11 2026-07-03 01:43:41 +07:00
Tommaso CasaburiandGitHub 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 19530d1d99 Revert "chore(release): v0.9.11"
This reverts commit 6fb4adc0b2.
2026-07-02 16:18:10 +07:00
Tommaso Casaburi 6fb4adc0b2 chore(release): v0.9.11 2026-07-02 16:15:24 +07:00
Tommaso Casaburi e50e4e630b fix(transfer modal): remember dragged position 2026-07-02 16:07:25 +07:00
Tommaso CasaburiandGitHub b4a6f0a65a feat(mod queue): transfer posts across boards (#1182)
* feat(mod queue): transfer posts across boards

* fix(mod queue): polish transfer modal and reason

* fix(mod queue): recover abandoned transfer challenges

* fix(mod queue): address transfer review feedback

* fix(mod queue): hide transfer for unavailable posts

* fix(mod queue): prevent repeat transfer submit

* fix(mod queue): sync transfer state with queue actions

* fix(mod queue): omit transfer temp index

* fix(mod queue): harden transfer failure states

* fix(mod queue): keep hidden transfer lock

* fix(mod queue): release hidden transfer lock
2026-07-02 14:52:06 +07:00
Tommaso Casaburi 546ee99f12 fix(reply modal): remember desktop position across opens in session
Dragged reply modal positions persist in sessionStorage for the tab and restore on the next desktop open, while mobile viewports still center the modal.
2026-07-01 22:51:30 +07:00
Tommaso Casaburi fde4f0ac6a Merge branch 'codex/fix/reply-preview-modal-width' 2026-07-01 16:43:40 +07:00
Tommaso Casaburi c0537cc680 fix(reply modal): align composer controls 2026-07-01 16:43:21 +07:00
Tommaso Casaburi 4bfe298d4b fix(reply modal): insert YouTube links at cursor and enable conversion everywhere
YouTube thumbnail conversion now inserts links at the textarea caret instead of prepending, runs in reply modals even when media links are optional, and preserves the YouTube brand label on desktop posts.
2026-07-01 16:33:32 +07:00
Tommaso Casaburi 21056ae6b9 feat(bbcode preview): allow resizing preview pane 2026-07-01 16:08:53 +07:00
Tommaso Casaburi b90138f1d9 fix(reply modal): constrain bbcode preview width 2026-07-01 16:01:31 +07:00
Tommaso Casaburi 5aaee154d2 chore(deps): bump pkc and hooks packages 2026-06-29 20:18:44 +07:00
Tommaso Casaburi 3c3236c0bd docs(product): document the no-emoji-affordances policy and rationale
Explain why emoji render as raw Unicode but get no picker, shortcode/emote system, or Twemoji styling: imageboard expressive norms (greentext, reaction images, kaomoji/ASCII art), emoji as an outsider marker, and structural-not-cosmetic differentiation from 4chan. Add the matching DESIGN.md guardrail and regenerate the LLM index.
2026-06-29 15:34:08 +07:00
Tommaso Casaburi e52aa3a44f chore(release): v0.9.10 2026-06-29 10:07:32 +07:00
Tommaso Casaburi 69ba4ace7a fix(post form): respect reply link rules 2026-06-29 09:55:55 +07:00
Tommaso Casaburi 3b3a5a5e6c chore(release): v0.9.9 2026-06-29 00:44:49 +07:00
Tommaso Casaburi deb7c841b7 chore(deps): upgrade bitsocial-react-hooks to 0.1.25 2026-06-29 00:41:39 +07:00
Tommaso CasaburiandGitHub 7258e21f6f fix(markdown): render code tags on code-enabled boards
Enable [code] tag parsing for both /g/ and /q/ rendering paths, show the post-form hint on code-enabled boards, and preserve whitespace in BBCode previews.
2026-06-28 23:37:59 +07:00
Tommaso Casaburi 1de28afd45 chore(deps): upgrade bitsocial-react-hooks to 0.1.24 2026-06-28 23:22:11 +07:00
Tommaso Casaburi 64dd30ff24 fix(post-content): keep visited link colors on theme palette
Apply post link and quotelink CSS variables to visited anchors in
bbcode and markdown so they match unvisited styling.
2026-06-28 23:14:23 +07:00
Tommaso Casaburi 6e361e224d chore(deps): upgrade pkc-js to 0.0.59 2026-06-28 22:57:57 +07:00
Tommaso Casaburi e24685a234 Merge branch 'codex/fix/q-topbar-category' 2026-06-28 15:47:17 +07:00