Skip to content

Releases: ecency/vision-web

4.4.1

Choose a tag to compare

@feruzm feruzm released this 13 Aug 12:47
a53c17c

What's Changed

  • fix: restore snippet edit + optimistic wave vote updates by @feruzm in #1016
  • Block exchange-like and uid-numeric usernames at signup by @feruzm in #1017
  • fix(sentry): drop synthetic DOM Event captures in beforeSend by @feruzm in #1018
  • feat(api): add /api/speak-audio transcode endpoint for Liketu Speak voice posts by @feruzm in #1019
  • Recognize snapie.io and hivesuite.app post links by @feruzm in #1021
  • fix(vote): open vote slider without blocking on the previous-vote fetch by @feruzm in #1022
  • fix(sentry): broaden Firefox contentWindow null error filter by @sentry[bot] in #1020
  • fix(profile): paint profile card above the fold without a hydration-gated fade by @feruzm in #1023
  • perf(ssr): strip active_votes from anonymous feed + profile SSR payloads by @feruzm in #1024
  • fix(vote-strip): strip the profile feed's initialFeed prop (RSC props channel) by @feruzm in #1025
  • perf(feed): defer per-card ProfilePopover machinery + content-visibility below the fold by @feruzm in #1026
  • fix(sentry): prevent unhandled rejection from key-input error re-throw by @sentry[bot] in #1027
  • feat(mobile): smaller waves publish, header notification actions, wavy-dash Waves icon by @feruzm in #1028
  • feat(waves): show tip count + already-tipped state in the waves feed by @feruzm in #1031
  • chore(waves): remove the dead masonry feed view by @feruzm in #1032
  • feat(waves): pinnable custom-feed tag tabs with a scrollable tab bar by @feruzm in #1034
  • feat(waves): source (container) custom feeds + 50/50 base tabs by @feruzm in #1035
  • fix(waves): show the feed tip count even when 0 (mobile parity) by @feruzm in #1036
  • fix(sentry): prevent unhandled rejection from empty post body error by @sentry[bot] in #1033
  • fix: prevent unhandled rejections from missing account and failed post-link lookups by @feruzm in #1038
  • feat(waves): Shorts (reels) tab + SDK shorts feed query by @feruzm in #1039
  • fix(waves): bare 3Speak player in reels + clean caption by @feruzm in #1040
  • fix(waves): cap quoted-wave embed depth at one level by @feruzm in #1041
  • Recover stale tabs from deploy skew without a service worker by @feruzm in #1042
  • Remove Hive account and Hive post chip labels from rendered content by @feruzm in #1043
  • fix(waves): keep shorts reel engagement controls legible by @feruzm in #1044
  • feat(waves): native HLS reels player (fill, aspect-aware) by @feruzm in #1045
  • fix(sentry): reclassify Safari iframe teardown error by @sentry[bot] in #1046
  • fix(waves): shorts reel crash (React #130) — curated mute icon by @feruzm in #1047
  • fix(waves): align reel engagement rail + show vote & tip counts by @feruzm in #1048
  • fix(waves): reel like = tap-to-upvote heart (drop chevron + slider) by @feruzm in #1049
  • Show Ecency source badge across feeds, comments and search by @feruzm in #1051
  • feat(entry): durable on-post internal links + visible breadcrumb by @feruzm in #1050
  • fix(routing): resolve bare community URL /hive-NNNNN (404) by @feruzm in #1052
  • refactor(entry): compact 3-column related footer by @feruzm in #1053
  • feat(profile): crawlable numbered archive pages for author sections by @feruzm in #1054
  • feat(feed,community): cursor-token archive pagination for tag + community feeds by @feruzm in #1055
  • feat(sdk): REST-node runtime config, escalating 429 backoff, and getAccountFull round-trip reduction by @feruzm in #1056
  • feat(seo): consistent brand title + social-card metadata by @feruzm in #1057
  • test: drop hapi.ecency.com from web read-node pool (hapi-decommission canary) by @feruzm in #1058
  • Attribute and reclassify stackless script-parse errors in Sentry by @feruzm in #1059
  • feat(seo): snippet quality, hub breadcrumbs, archive-gate pin fix by @feruzm in #1060
  • fix(sdk): keep every pinned entry in ranked community feeds by @feruzm in #1061
  • chore(packages): link ecency.com from package homepages and READMEs by @feruzm in #1062
  • Remove SPK Network support by @feruzm in #1063
  • fix(sdk): drop hapi from restNodes default (+ techcoderx; add syncad) by @feruzm in #1064
  • feat(seo): State of the Hive Creator Economy report page by @feruzm in #1065
  • fix(creator-economy): layout wrapper, svg titles, chart a11y by @feruzm in #1066
  • feat(creator-economy): internal links + footer discovery link by @feruzm in #1067
  • feat(sdk): adaptive read timeouts + budgeted hedged reads for tail latency by @feruzm in #1069
  • fix(creator-economy): six quarters, authors-ranked communities, curation section by @feruzm in #1068
  • fix: integer adaptive timeout delay (sdk) + stuck notifications sidebar (ui) by @feruzm in #1070
  • refactor: replace framer-motion with a CSS animation system by @feruzm in #1072
  • feat(ui): micro-interaction animation polish by @feruzm in #1073
  • feat(creator-economy): full history since the Hive fork (25 quarters) by @feruzm in #1074
  • feat(creator-economy): hover values on trend lines by @feruzm in #1075
  • Surface Translate CTA when reader and post languages differ by @feruzm in #1076
  • chore: drop Chainstack/Chainz env plumbing by @feruzm in #1078
  • Add compose-side translation to publish editor by @feruzm in #1080
  • Points top-up CTA at insufficient-balance moments by @feruzm in #1077
  • Streak Freeze: buy UI + SDK by @feruzm in #1081
  • Add post templates to publish flow by @feruzm in #1079
  • ci: drop decommissioned SG origin from prod deploy by @feruzm in #1082
  • Fix publish menu crash: missing icon in local unicons by @feruzm in #1083
  • Surface save-as-template in the publish action menu by @feruzm in #1084
  • Blog hosting launch — pricing, x402, card via ePoints (hosting-api) by @feruzm in #1085
  • Surface daily quest and streak in composers by @feruzm in #1086
  • Require GFM adjacency for translate table detection by @feruzm in #1088
  • Add scheduled post published notification type by @feruzm in #1089
  • Blog hosting signup page (card + HBD) by @feruzm in #1090
  • Add scheduled posts to the notifications filter menu by @feruzm in #1091
  • Stub SVGAnimatedString for browsers with SVG interfaces disabled by @feruzm in #1092
  • Hosting: default to live API + lazy-load Stripe by @feruzm in #1093
  • Hosting: allow api.blogs.ecency.com in CSP connect-src by @feruzm in #1094
  • feat(pro): purchasable Ecency Pro membership and profile badge by @feruzm in #1095
  • fix(sdk): skip vote cache update when entry already reflects the vote by @feruzm in #1096
  • Perks: tidy the Pro/AI/spin row + card graphics by @feruzm in #1097
  • Pro: unlock any creator's Insights for Pro members by @feruzm in #1098
  • Gate profile insights behind a server-verified viewer by @feruzm in #1099
  • Hosting: honor plan on internal activate (Pro tier) by @feruzm in https://gith...
Read more

4.4.0

Choose a tag to compare

@feruzm feruzm released this 25 Jun 05:15
d21636e

What's Changed

  • test(sdk): cover similar-entries timeout split + fix retry comment by @feruzm in #905
  • fix(web): give pasted editor images a valid filename before upload by @feruzm in #904
  • fix(web): align mobile scroll-to-top with FAB; lead publish bar with community selector by @feruzm in #906
  • fix(web): unify publish mode label into one aligned header by @feruzm in #907
  • fix(web): fully hide mobile FAB + scroll-to-top when navbar hides (no half-cut) by @feruzm in #908
  • Soft-moderate new-account posts with outbound links (SEO/backlink-farm) by @feruzm in #909
  • Server-side CAPTCHA: Turnstile on free signup (+ web 4.4.0) by @feruzm in #910
  • fix(web): block open redirect via decoded path in middleware by @feruzm in #911
  • Add Spotlight type and getSpotlightsQueryOptions to @ecency/sdk by @feruzm in #912
  • Add feature-spotlight sidebar widget to the feed by @feruzm in #913
  • Spotlight: feed layout tweaks, CTA button fix, Plausible tracking by @feruzm in #914
  • feat(profile): show followers/following as page sections instead of modals by @feruzm in #915
  • feat(web): agent-readable post endpoints (.md / .json / .discussion.json) + llms.txt by @feruzm in #916
  • Spotlight: guests-only audience (replace auth boolean) by @feruzm in #917
  • Read next: render cards visible in SSR (CSS entrance, not framer-motion opacity:0) by @feruzm in #918
  • Hide proposal announcements from users who already voted by @feruzm in #919
  • fix(sentry): Filter Hive RPC "category/tag does not exist" errors from RSS feeds by @sentry[bot] in #921
  • Parameterize web replica count (WEB_REPLICAS) by @feruzm in #922
  • Make prod deploy fail loudly instead of silently passing by @feruzm in #923
  • Latency-aware adaptive node selection in hive-tx by @feruzm in #924
  • Read next: add staleTime so SSR-hydrated data skips the redundant client refetch by @feruzm in #925
  • vapi: pin search backend to origin IP (bypass broken CF colo path) by @feruzm in #926
  • fix(sdk): adaptive node selection — cold-start order + caller-abort handling by @feruzm in #927
  • Default search to Relevance over all time by @feruzm in #929
  • render-helper: cache-safe per-format image negotiation (web/self-hosted) by @feruzm in #928
  • fix(entry): skip LCP preload when the cover URL can't be resolved (no double-download) by @feruzm in #930
  • fix(rss): also treat Hive bridge "invalid tag" assert as transient by @feruzm in #931
  • perf(web): keep tus-js-client and qrcode off the read-path bundle by @feruzm in #932
  • fix(discover): stop double-converting curator rewards to HP by @feruzm in #934
  • fix(3speak): stop duplicate video uploads (use token embed URL) by @feruzm in #933
  • feat(seo): add tags.xml sitemap shard of top tag hub pages by @feruzm in #936
  • fix(chat): make sidebar 3-dot menu discoverable and fix broken theming by @feruzm in #935
  • fix(chat): reply preview quotes the parent message, not itself by @feruzm in #937
  • fix(chat): thread panel shows the full conversation, not just loaded posts by @feruzm in #938
  • feat(entry): oEmbed provider + replace in-post link scrape by @feruzm in #939
  • feat(chat): modernize channel/DM list with borderless rows by @feruzm in #940
  • fix(oembed): return 400 (not 501) for unsupported format by @feruzm in #941
  • fix(signup): serve Turnstile widget from a hosted /embed route for mobile WebView by @feruzm in #942
  • fix(entry-stats): date-scope + canonical-path Plausible queries by @feruzm in #943
  • fix(stats-proxy): exact-match post pages to stop sibling-permlink overmatch by @feruzm in #944
  • Security hardening: embed sanitization, CSP, Mattermost admin authz, import proxy by @feruzm in #945
  • CSP reports: route through a de-duplicating first-party collector (fix Sentry flood) by @feruzm in #946
  • CSP collector: log report-only violations instead of sending them to Sentry by @feruzm in #947
  • Allowlist real feature deps surfaced by CSP report-only monitoring by @feruzm in #948
  • Serve /embed/turnstile as self-contained static HTML by @feruzm in #949
  • Allow WASM eval in the Turnstile embed CSP (fixes stuck 'Verifying…') by @feruzm in #950
  • perf: mobile CWV (1/2) — homepage redesign, mobile-only navbar search, lighter shared bundle by @feruzm in #951
  • fix(ci): drop @ecency/sdk from optimizePackageImports to fix build OOM on develop by @feruzm in #952
  • fix(home): visible footer social icons, Contributors link, expanded About copy by @feruzm in #953
  • fix(home): correct About email + CF-verified visitor stat by @feruzm in #955
  • perf(sentry): defer Sentry SDK off every route's eager bootstrap (-67KB First Load JS/route) by @feruzm in #954
  • perf(feed): replace the 30s all-card re-render fan-out with a self-ticking TimeLabel by @feruzm in #956
  • perf(feed): defer below-the-fold card action-bar hydration (feed TBT fix) by @feruzm in #957
  • perf(navbar): lazy-load sidebar search to evict the search graph from the eager bundle by @feruzm in #958
  • feat(home): lead the hero with the Ecency wordmark instead of the logo mark by @feruzm in #959
  • perf(navbar): defer the 5 sidebar user dialogs out of the eager navbar chunk by @feruzm in #960
  • fix(home): hero subtitle copy, Signup as primary CTA, brand kicker treatment by @feruzm in #961
  • feat(sdk): label server-side Hive requests with a real User-Agent by @feruzm in #962
  • chore(deps): bump ws from 8.18.3 to 8.21.0 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #963
  • chore(deps): bump dompurify from 3.4.0 to 3.4.9 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #964
  • fix: don't autoplay videos in waves feed by @feruzm in #965
  • fix(web): make Extensions login reliable and quiet Permissions-Policy warnings by @feruzm in #966
  • fix(sdk): classify "missing required active/owner authority" for auth fallback by @feruzm in #967
  • fix(web): harden MetaMask snap login (version guard + benign cancel) by @feruzm in #968
  • fix(web): stop external-transfer dialog from auto-prompting MetaMask connect by @feruzm in #969
  • fix(web): always show the extension picker when 2+ extensions are installed by @feruzm in #970
  • feat(waves): show payout + correct vote count on waves cards by @feruzm in #971
  • chore(deps): bump dompurify from 3.4.9 to 3.4.11 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #972
  • feat(waves): show payout/votes/replies on following + tag feeds by @feruzm in #973
  • fix(waves): publish time on custom feeds + tag selection on Following by @feruzm in #974
  • infra(web): cap US replicas to 3 and bound SSR memory (arena + heap + mem_limit) by @feruzm in #975
  • fix(sdk): preserve unrelated metadata on account_update2 writes by @feruzm in #976
  • chore(deps): bump undici from 6.25.0 to 6.27.0 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #977
  • fix(sdk): default Transaction.signatures to [] (hive-uri sign crash) by @fe...
Read more

4.3.9

Choose a tag to compare

@feruzm feruzm released this 03 Jun 20:23
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 acros...
Read more

4.3.8

Choose a tag to compare

@feruzm feruzm released this 28 Apr 04:25
db06713

What's Changed

Full Changelog: 4.3.7...4.3.8

4.3.7

Choose a tag to compare

@feruzm feruzm released this 25 Mar 05:38
e1754a4

What's Changed

New Contributors

Full Changelog: 4.3.6...4.3.7

4.3.6

Choose a tag to compare

@feruzm feruzm released this 04 Mar 08:49
dc471e3

What's Changed

Full Changelog: 4.3.5...4.3.6

4.3.5

Choose a tag to compare

@feruzm feruzm released this 06 Feb 20:25
435cf48

What's Changed

New Contributors

Full Changelog: 4.3.4...4.3.5

4.3.4

Choose a tag to compare

@feruzm feruzm released this 02 Jan 14:17
a27d4c9

What's Changed

  • New notification types weekly Streaks and monthly progress by @feruzm in #590
  • New Crowdin updates by @feruzm in #588
  • Tipping engine tokens and tips summary by @feruzm in #591
  • Chats: Pinning messages, websocket realtime updates, typing indicator by @feruzm in #594
  • Editor redirect, image upload, draft saving improvements by @feruzm in #597
  • LCP optimizations by @feruzm in #596
  • Tipping to external wallets BTC, ETH, SOL, BNB, TRX, TON, APT and profile search bug fix by @feruzm in #598
  • Waves: Tipping to authors by @feruzm in #599
  • parentNode handling by @feruzm in #600

Full Changelog: 4.3.3...4.3.4

4.3.3

Choose a tag to compare

@feruzm feruzm released this 13 Dec 13:58

What's Changed

  • Improve wallet filters by @feruzm in #582
  • New Crowdin updates by @feruzm in #580
  • Noindex criteria by @feruzm in #584
  • Use react querys built-in state management instead of custom __loaded flag by @feruzm in #586
  • New Crowdin updates by @feruzm in #583
  • Chats UI and functionality improvements
  • Insights page to give overview/analytics of each content and page for users.

Full Changelog: 4.3.2...4.3.3

4.3.2

Choose a tag to compare

@feruzm feruzm released this 26 Nov 08:57

What's Changed

Full Changelog: 4.3.1...4.3.2