When use-default-subscriptions resolves to [] (the expected case
while seedit-default-subscriptions.json is empty or 404s), the
auto-subscribe effect was early-returning before removing the
account from the checking set. That kept isCheckingSubscriptions
true forever and prevented the "no subscriptions" empty state
from ever rendering on home.
Fix by ensuring removeCheckingAccount is always called once the
auto-subscribe pass completes, even when there is nothing to
auto-subscribe to.
Rename the hook file and exports from use-default-subplebbits to
use-default-subscriptions. Switch the fetch URL from
plebbit/lists default-multisub.json to bitsocialnet/lists
seedit-default-subscriptions.json.
A 404 from the new (not-yet-populated) list gracefully resolves
to empty defaults so new users see an empty subscription feed
(like a fresh Reddit account). The list will be populated later.
- Use getCommunityIdentifier in every useCommunity / useCommunityStats
call site so hash-style (publicKey) community addresses are routed
to the correct CommunityIdentifier branch instead of always being
treated as { name }.
- Move the create-community redirect in community-settings.tsx out
of the render body and into useEffect to avoid the "cannot update
a component while rendering" warning and re-fire on every render.
- useMemo Object.keys(accountCommunities) in mod.tsx so feedOptions
and the three useFeed calls receive a stable communityAddresses
array.
- Simplify the tautological logo-avatar guard in header.tsx.
- (Verified flattenCommentsPages import resolves; left as-is.)
- (Comment import in mod.tsx confirmed from @bitsocial/...)
Cosmetic rename of local variables, prop names, type names, CSS classes,
function names, and code comments from the legacy `subplebbit` terminology
to `community` across components, hooks, stores, views, and utilities.
API protocol keys (e.g. `subplebbitAddress:` in publish options) are
intentionally preserved. A new `getCommentCommunityAddress` dual-read
helper in `comment-utils.ts` reads `communityAddress` first and falls
back to the legacy `subplebbitAddress` field for backward compat.
Renamed hook files:
- use-is-nsfw-subplebbit.ts → use-is-nsfw-community.ts
- use-is-broadly-nsfw-subplebbit.ts → use-is-broadly-nsfw-community.ts
Apply the broader subplebbit -> community rebrand on top of the
package switch:
- Rename hook usages (useSubplebbit -> useCommunity, useSubplebbits
-> useCommunities, useSubplebbitStats -> useCommunityStats,
useSubplebbitsStates -> useCommunitiesStates,
useAccountSubplebbits -> useAccountCommunities,
usePublishSubplebbitEdit -> usePublishCommunityEdit,
usePlebbitRpcSettings -> usePkcRpcSettings) and types (Subplebbit
-> Community, PublishSubplebbitEditOptions ->
PublishCommunityEditOptions).
- Rename seedit identifiers (variables, types, store names) from
subplebbit/Subplebbit to community/Community.
- git mv view directories, store files, hook files, and CSS modules
from subplebbit-* to community-*. Update all imports.
- Rename the React Router :subplebbitAddress route param to
:communityAddress (path /s/ unchanged).
- Update English translation values for community-related strings.
- Drop src/lib/bitsocial-react-hooks-compat.ts (no longer needed
now that @bitsocial/bitsocial-react-hooks exposes the community
names natively).
- Add src/hooks/use-community-identifier.ts and
src/lib/utils/address-utils.ts as small adapters for the new
CommunityIdentifier shape and short-address utility.
- Fix src/hooks/use-default-subplebbits.ts to import Community
instead of Subplebbit (PR #813 will rename the file in a
follow-up; tiny merge conflict expected on that one file).
Build, lint, and type-check all pass.
Mechanical scope rename across src/. Build is intentionally broken
at this commit — Phase 3 renames the symbols (useSubplebbit ->
useCommunity, etc.) to match the new package's API.
- Drop the @bitsocialnet/bitsocial-react-hooks tarball install in favor
of the canonical @bitsocial/bitsocial-react-hooks@0.1.2 from npm.
- Remove kubo direct dep (now bundled inside pkc-js via the hooks).
- Bump i18next 23 -> 25, react-i18next 13 -> 16,
i18next-http-backend 2 -> 3, @vitejs/plugin-react 4 -> 6 to
match 5chan.
- Remove the obsolete scripts/patch-bitsocial-react-hooks-esm.cjs
postinstall hook (only patched the old tarball layout).
- Update AGENTS.md package scope reference.
Wrap setAccount in the compat layer so seedit keeps internal account fields during partial updates, and extend the install-time hooks patching to normalize legacy account communities data and guard role-sync lookups.
Swap the app to the latest bitsocial-react-hooks commit, add a local compatibility shim for the legacy subplebbit API surface, and keep the in-flight account-history improvements that now use hook-side paging/filtering.
Migrated build system from electron-builder to Electron Forge with new configuration in forge.config.js. Replaced manual IPFS binary downloads with kubo npm package, updating start-ipfs.js to resolve binaries from node_modules. Simplified CI workflows to use new build scripts and verification helpers. Added scripts to find and verify executables in Forge output directory.
Refactored timeout and interval management across components to use refs for proper cleanup. Fixed memory leak in use-time-filter hook by tracking interval lifecycle. Improved error handling type safety in error-display component.
Updated @types/react and @types/react-dom from 18.x to ^19.1.2 to match React 19. Upgraded react-markdown from 8.0.6 to ^10.1.0 for React 19 compatibility. Fixed TypeScript errors across components including useRef initial values, ref type mismatches, JSX namespace issues, and react-markdown component prop types.