No reviewers
Labels
No labels
area:api
area:core
area:docs
area:infra
area:ux
dependencies
documentation
duplicate
good first issue
help wanted
invalid
question
rust
status:complete
status:partial
status:planned
type:bug
type:design
type:feature
type:infra
type:refactor
type:refactor
type:research
type:ux
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
icub3d/decentcom!108
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/87-91-frontend"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Frontend performance and cleanup work from the 2026-07-07 code review, in one PR.
Closes #87. Closes #91.
#87 — whole-store subscriptions + no virtualization
useShallowslices, so the chat UI no longer reconciles on every incoming WS event.React.memo; the thread-fetch effect now depends on primitivethread_id/reply_countinstead ofmessage.threadobject identity, so it no longer re-fetches on unrelated message updates.@tanstack/react-virtual(new dependency).useMemo.MESSAGE_CREATEnow binary-search inserts into the already-sorted array instead of re-sorting the whole thing per event.#91 — cleanup + minor security
?token=query param, landing in access/proxy logs and history. Now:Authorization: Bearer(non-browser clients) or anaccess_token.<token>WebSocket subprotocol (browsers, which can't set WS headers); it echoesdecentcom.v1back so the handshake never reflects the token; the query-param path is removed entirely. Unit tests added for token extraction.["decentcom.v1", "access_token.<token>"]subprotocols.utils/pubkey.ts(truncatePubkey/shortPubkey) andutils/address.ts(normalizeAddress) replace the copy-pasted local copies in MessageItem/MemberList/Setup/appStore/serverStore.loadServerData()shared byconnect()/revalidate().extractErrorMessage(), reused byapiRequestand the media upload path.Also
package-lock.json(repo uses pnpm);@tanstack/react-virtualis tracked inpnpm-lock.yaml.serde::Serializeimport inserver/src/profiles/handlers.rsleft by #105 — it was breakingcargo clippy -- -D warningson main.Verification
pnpm lint,pnpm test(89 passed),pnpm build— cleancargo clippy --workspace --all-targets -- -D warnings— cleancargo test --workspace— 202 passed🤖 Generated with Claude Code
Superseded by #107, which merged the same underlying commits (
e305ed3,b809ffc) to main; the lockfile and clippy fixes here are also already present on main. Closing.Pull request closed