Skip to content

4.3.9

Choose a tag to compare

@feruzm feruzm released this 03 Jun 20:23
· 1667 commits to develop since this release
5fea7dd

What's Changed

  • Aggragated balance customizing by @feruzm in #767
  • Fix transaction id extraction by @feruzm in #768
  • Improve buttons/icons for screen reader by @feruzm in #769
  • Post age caching, Nextjs upgrade, Redis by @feruzm in #770
  • Cache logged-in users on auth-class-equivalent routes by @feruzm in #771
  • Move /chats /decks /waves /perks /search to a 60s cacheable tier by @feruzm in #772
  • Fix redirect loop on paths with brackets ([object Object]) by @feruzm in #773
  • Fix React #418 hydration mismatch on /@user/wallet by @feruzm in #774
  • Read post-age L2 (Redis) on the request path by @feruzm in #775
  • Stream Mattermost channels & members instead of paginating by @feruzm in #776
  • Update mattermost-channels spec for streaming fetchers by @feruzm in #777
  • View more tags by @feruzm in #778
  • Fix/event loop monitor zombies by @feruzm in #779
  • Feeds Performance improvements by @feruzm in #780
  • Release commit hash based for source map by @feruzm in #781
  • Fix ReDoS in render-helper that hung SSR for >30s by @feruzm in #782
  • Warn on slow markdown renders in @ecency/render-helper by @feruzm in #783
  • Add scan-post-corpus.mjs to find slow renderPostBody inputs by @feruzm in #785
  • Block ReDoS regexes via eslint-plugin-regexp in render-helper by @feruzm in #784
  • Send idempotency_key on AI assist POST by @feruzm in #786
  • Noindex NSFW posts via tag, community, and title detection by @feruzm in #787
  • Consolidate post URLs onto bare /@author/permlink (canonical + redirect) by @feruzm in #788
  • Search and key verification fix by @feruzm in #789
  • fix: profile page dates cause Firefox hydration teardown by @feruzm in #790
  • fix(images): serve images via SNI-resilient i.ecency.com host by @feruzm in #791
  • fix(chat): make the Mattermost bootstrap path idempotent (fixes 502s) by @feruzm in #792
  • Render helper fix, Wallet improvements by @feruzm in #793
  • Similar content improved by @feruzm in #794
  • perf(cwv): cut hydration-time JS & fix LCP image preload (mobile Core Web Vitals) by @feruzm in #795
  • Remaining image hoster fixes by @feruzm in #796
  • fix(chat): differentiate transient bootstrap failures from genuine outages by @feruzm in #798
  • Reply/wave canonical model + shared isIndexable by @feruzm in #797
  • SEO: abuse-blacklist + empty-content noindex signals; sitemap route handlers by @feruzm in #799
  • SEO: communities sitemap shard; flatten posts shard name by @feruzm in #800
  • SEO: expand static sitemap; harden seocron deploy prime by @feruzm in #801
  • SEO: stale-preserving guard for posts/authors sitemap + patient RPC by @feruzm in #802
  • seo: sitemap never emits third-party canonical URLs (fix GSC "URL not allowed") by @feruzm in #803
  • fix(similar-entries): correct full_posts, merge both sources, render ≥2, pin HiveSense nodes by @feruzm in #804
  • Memo encryption + similar-entries thumbnail/body fix by @feruzm in #805
  • perf(post-renderer): chunk medium-zoom out of SSR-critical client bundle by @feruzm in #807
  • build(deps): bump the npm_and_yarn group across 2 directories with 16 updates by @dependabot[bot] in #806
  • fix(sentry): widen botnet filter for null/undefined document access by @sentry[bot] in #808
  • fix(sentry): extend parentNode hydration error filter to Firefox/Safari by @sentry[bot] in #809
  • fix(rss,sentry): cache RSS feeds and silence transient RPC noise by @feruzm in #811
  • build(deps): bump the npm_and_yarn group across 2 directories with 7 updates by @dependabot[bot] in #810
  • fix(sdk): widen hive-tx retry budget and deprioritise deathwing in public-nodes by @feruzm in #812
  • security: close 115 of 136 open CodeQL alerts on develop by @feruzm in #813
  • security: close residual CodeQL alerts (18 → 3) by @feruzm in #814
  • security(api/import): pin DNS to validated IP (closes SSRF #23) by @feruzm in #815
  • perf(chat): parallelize bootstrap MM provisioning + Hive subscriptions by @feruzm in #816
  • fix(sdk): broadcast failover for browser errors + similar-entries limit by @feruzm in #817
  • fix(web): use callRPCBroadcast for MetaMask snap broadcasts by @feruzm in #818
  • Search: add Show NSFW toggle on advanced form by @feruzm in #819
  • fix: route Hive RPC through @ecency/sdk + remove dead payment listener by @feruzm in #821
  • build(deps): bump js-cookie from 3.0.5 to 3.0.7 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #820
  • fix(keychain): surface real broadcast errors and retry via a known-good node by @feruzm in #823
  • fix(web): Prevent TypeError on OnboardingFrame unmount by @sentry[bot] in #822
  • Point notifications WebSocket to enotify.ecency.com by @feruzm in #824
  • fix(notifications): keep notification websocket alive and respect permission by @feruzm in #825
  • fix(ui/modal): only call onHide on a real open→close transition by @feruzm in #826
  • fix(notifications): show in-app toast in foreground (OS notification was suppressed) by @feruzm in #827
  • fix(post): guard react-tweet rendering with an error boundary + bump to 3.3.0 by @feruzm in #828
  • feat(notifications): make the notification toast clickable to open related content by @feruzm in #829
  • chore: remove discontinued post-boost operations by @feruzm in #830
  • fix(entry-stats): show visit duration directly instead of dividing it by @feruzm in #831
  • feat(entry-stats): reload-proof Views (visits) + entry-page avg visit duration by @feruzm in #832
  • Show Ecency source badge on post page by @feruzm in #833
  • Run a single web replica on staging by @feruzm in #835
  • Daily quests tracker (SDK module + Perks UI) by @feruzm in #834
  • Rename navbar Perks button label (Plus → Perks) by @feruzm in #837
  • Point the streak/quests reminder notification to perks (web) by @feruzm in #838
  • Leaderboard: badge for completing all daily quests by @feruzm in #839
  • Content-forward home page + site-wide JSON-LD structured data by @feruzm in #840
  • fix(web): ignore browser-extension window[eFuncName] error in Sentry by @feruzm in #842
  • Read next: Elasticsearch More Like This + SSR prefetch by @feruzm in #841
  • Read-next: short SSR timeout for /similar by @feruzm in #844
  • Parallel 3Speak uploads (TUS Concatenation) by @feruzm in #843
  • SEO: make bare-canonical post redirect permanent (307 → 308) by @feruzm in #845
  • SEO: enrich BlogPosting JSON-LD + tune post SERP snippet by @feruzm in #846
  • Sequential fallback for parallel 3Speak uploads by @feruzm in #847
  • seo: canonical author URLs in sitemap + raise post-walk time budget to 90s by @feruzm in #849
  • build(deps): bump the npm_and_yarn group across 2 directories with 1 update by @dependabot[bot] in #848
  • fix(sentry): suppress old Chrome 'parentNode' errors in beforeSend by @sentry[bot] in #836
  • perf(web): lazy-load emoji picker; stop barrelling it into shared bundles (−508KB post first-load) by @feruzm in #850
  • feat(render-helper): support Skatehype video embeds by @feruzm in #851
  • perf(web): bound similar-entries client fetch, lazy comment composer, fix emoji loading by @feruzm in #852
  • feat(decks): gate Decks behind auth with a guided first-run by @feruzm in #853
  • fix(web): restore classic editor input width after barrel de-export by @feruzm in #854
  • Index menu improvements by @feruzm in #855
  • fix(render-helper): proxy ecency uploads so resize, srcset, blur & WebP/AVIF apply by @feruzm in #856
  • fix(web): auto-capture entry render crashes to Sentry with component stack by @feruzm in #857
  • feat(render-helper): strip First Context attribution footer in cleanReply by @feruzm in #858
  • fix(web): stop SW precaching deleted source maps (persistent 500s) by @feruzm in #859
  • fix(web): deployment skew protection for post-deploy chunk crashes by @feruzm in #860
  • fix(web): pin number-format locale to stop hydration removeChild crash (1DRM) by @feruzm in #861
  • fix(web): Sentry noise cleanup (1FMZ Firefox skew, 1AA7, XA0) by @feruzm in #863
  • fix(web): repair /publish link editing and select-all in composer by @feruzm in #862
  • fix(web): fix /publish crash on link click (missing curated icons) by @feruzm in #864
  • Engagement: easier commenting, navigation & login-on-action (desktop + mobile) by @feruzm in #865
  • Engagement alpha fixes: publish header, mobile perks placement & badge by @feruzm in #866
  • Mobile top navbar: full-width sticky bar + hide-on-scroll by @feruzm in #867
  • Mobile nav: expanding search, pen FAB icon, scroll-to-top placement by @feruzm in #869
  • Mobile search: native autoFocus (review follow-up) by @feruzm in #872
  • fix(web): stop browser-translation DOM crash (insertBefore 500, 1FP9) by @feruzm in #871
  • fix(deps): migrate to vitest 4 (make #868 pass) by @feruzm in #873
  • chore(deps): bump the npm_and_yarn group across 5 directories with 2 updates by @dependabot[bot] in #868
  • chore: upgrade to Node 24 + unify pnpm 10.34.1 (drop unused sharp) by @feruzm in #875
  • Inline proposal support from the announcement banner by @feruzm in #876
  • fix(web): let users pick which Hive extension signs by @feruzm in #874
  • refactor(web): unify the Sign with Extension button with a shared chooser by @feruzm in #878
  • Add SVG favicon (Yandex recommendation + modern browsers) by @feruzm in #879
  • chore: upgrade pnpm to 11.5.0 by @feruzm in #877
  • ci(i18n): on-demand label-triggered Crowdin sync (no more per-language commits) by @feruzm in #880
  • fix(hosting-api): build native deps on node:24-alpine (better-sqlite3) by @feruzm in #881
  • ci(i18n): fix Crowdin sync — set the project branch (download was failing) by @feruzm in #882
  • chore(i18n): sync translations from Crowdin by @github-actions[bot] in #883
  • chore(i18n): sync translations from Crowdin by @github-actions[bot] in #884
  • feat(i18n): enable Thai & Turkish in the language picker by @feruzm in #885
  • fix: build post links in bare /@author/permlink form by @feruzm in #886
  • test(web): consolidate runnable co-located specs into src/specs; remove dead react-router-era specs by @feruzm in #888
  • chore(i18n): sync translations from Crowdin by @github-actions[bot] in #887
  • chore(i18n): remove 5 unused locale files by @feruzm in #890
  • test(web): add specs for high-value untested shared components by @feruzm in #889
  • fix(web): run Next directly in prod image; fail deploys on Swarm rollback by @feruzm in #891
  • fix(web): enhance bare /@author/permlink post links by @feruzm in #892
  • docs(cache): worker no longer performs bot gating by @feruzm in #894
  • fix(nav): align mobile compose FAB and scroll-to-top as a 48px circle pair by @feruzm in #893
  • perf(web): keep the post editor off the entry read page; reserve cover image box by @feruzm in #895
  • fix(web): tame post-deploy Sentry noise — deploy-skew reclassification + RC-exhaustion handling by @feruzm in #896
  • perf(web): make entry thumbnail SSR-discoverable to un-gate feed/profile/community LCP by @feruzm in #897
  • perf(web): tree-shake shared barrel + lazy tip Transfer — evict write-flow from read pages by @feruzm in #898
  • perf(web): evict bip39 wordlists from read pages (lazy key derivation + @scure/bip39) by @feruzm in #899
  • fix(sentry): separate staging environment + reclassify $RS hydration-resume noise by @feruzm in #900
  • fix(web): keep @user/#tag chip styles after read-page tree-shaking by @feruzm in #901
  • feat(entry): merge post title into author card for prominence by @feruzm in #902

New Contributors

  • @dependabot[bot] made their first contribution in #806
  • @github-actions[bot] made their first contribution in #883

Full Changelog: 4.3.8...4.3.9