Menu

Product Release History

Release Notes

Official alpha releases appear alongside reconstructed Beta lineage milestones from the project that fed into this merged repo.

Running build: 0.84

0.84Official alpha releaseMay 28, 2026

History source: Official GitHub release from HashtagPLUS-MVP-Combined

GitHub code: 1d16670

Sprint 3 Wrap-Up — OG Social Cards, Footer, SEO, and Test Coverage

Completes the Sprint 3 milestone: every post and hashtag page now previews as a rich social card when shared, a legal footer ships sitewide, SEO crawlability is verified in production, and the unit test suite grew from 1,430 to 1,682 passing tests across 18 new pure-function suites.

Latest Features Added

  • Social sharing cards: dynamic `generateMetadata()` on `/post/[code]` and `/hashtag/[tag]` pages generates Open Graph and Twitter Card metadata — titles, descriptions, and OG images — so every link previews richly in iMessage, Slack, Twitter, and LinkedIn.
  • Sitewide footer: legal links (Terms of Service, Privacy Policy, DMCA, Community Guidelines) added to all pages via a Footer component in the root layout.
  • SEO crawlability: `/robots.txt` now returns 200 + valid text/plain, `/sitemap.xml` serves all feed routes and last 1,000 post URLs, `/` redirects 307 to `/feed/hot`, canonical tags added on feed/post/hashtag pages, and HSTS + security headers activated.
  • Production guard: `/api/admin/restart` returns 403 in production (NODE_ENV check) so a stray admin call can no longer crash the Railway container.
  • Unit test suite: 252 new pure-function tests across 18 suites — covering feedRanking, feedAlgorithms, postMedia, readerContent, contentTypeTags, scoreBoost, feedCacheKey, leaderboardScore, urlCanonical, feedEngagementScoring, profileRelations, contentClassifierSettings, postModerationSignals, postIngestionDiagnostics, hashtagAI, anonId, importLimits, and pinLimits.
  • E2E / Playwright fixes: form inputs on login and register pages now have proper `id` attributes for Playwright `getByLabel()` compatibility; rate-limit and honeymoon-timer bypasses added for test environments via `NEXT_PUBLIC_TEST_MODE`.
  • Canary smoke test: 15 production endpoints verified green post-deploy; hashtag page check updated to reflect client-side rendering model.

Try It

  • Hot feedShare any post — preview now appears as a real card
  • Hashtag: photographyHashtag pages now have rich OG previews when shared
  • SitemapLive XML sitemap — submitted to Google Search Console
  • Terms of ServiceLegal footer links now appear on every page

Release Notes

  • Sprint 3 plan files all marked Complete; 19 deferred plans moved to sprint-4 and sprint-5 folders.
  • Coverage thresholds: statements 49.9%, branches 38.0%, functions 51.3%, lines 52.3% — all gates pass.
  • Manual follow-ups for Brian: submit sitemap to Google Search Console + Bing Webmaster Tools; verify staging error tracker dashboard in browser.
0.831Official alpha releaseMay 21, 2026

History source: Official GitHub release from HashtagPLUS-MVP-Combined

GitHub code: hotfix

Hashtag Feed Recovery Hotfix — Dead-Zone Bug Resolved

Critical hotfix to resolve empty hashtag-filtered feeds ('dead-zone' bug) on production when a tag has few fresh posts.

Latest Features Added

  • Hashtag Feed Recovery: Fixed calculating `freshCount` in `apps/web/src/app/api/posts/route.js` to correctly check the freshness limit window (`settings.hotFreshWindowHours` / 24h baseline) instead of the max age limit window (`settings.hotMaxAgeHours` / 14d).
  • Empty Feed Prevention: Corrected fallback to engagement-score sorting when fresh posts under a specific tag are fewer than `minFresh` (default 5). This prevents tag feeds with older, zero-engagement posts from being entirely filtered out by the time-decay ranker.
  • Strict Code Quality: Satisfied codebase rules by replacing magic numbers in API route with named constants (`BASELINE_FRESHNESS_HOURS_LIMIT = 24`, `MS_PER_HOUR = 60 * 60 * 1000`, `DEFAULT_HOT_MIN_FRESH_POSTS = 5`).

Try It

  • Hashtag PlaylistBrowse playlist hashtag posts which now correctly load all older-but-relevant posts

Release Notes

  • No schema changes or new migrations were required.
  • Successfully verified locally against production-synced datasets.
0.83Official alpha releaseMay 21, 2026

History source: Official GitHub release from HashtagPLUS-MVP-Combined

GitHub code: 3234345

Sprint 3 — Influencers System, Security Hardening, E2E Tests & Tetris

Major Sprint 3 release introducing an influencer leaderboard, public feed discovery, automated E2E test suites, security audit remediations, an inline Tetris game engine, and robust production dynamic route compiles.

Latest Features Added

  • Influencers system: `/influencers` page tracking user contribution ranks, combined with a automated garbage hashtag auto-filter and custom influencer badge roles.
  • Simplified Admin RSS page: revamped row editors, sticky filters, bulk actions, and category tag sync.
  • Public `/feeds` browsing: allowed users to browse and search indexed RSS feeds with category filters.
  • Security audit remediation: fail-closed staging auth tokens, strict timing safety on credentials, route rate limits, and sanitized HTML feeds.
  • Automated E2E Test Suite: added Playwright tests for auth registration/login, anonymous post submission, search, and hashtag preferences on the self-hosted runner.
  • Next.js Dynamic Route Compile: resolved blocking 500 compilation error on `/feed/hot` by forcing dynamic routing behavior across feed sorts.
  • Tetris game engine: implemented foundational board logic, piece rotation, boundary validation, and score tracking.

Try It

Release Notes

  • Staging runs unit and E2E suites on c3p0 self-hosted runner before deployment checks.
  • The Next.js cache bypass fix (force-dynamic) ensures cookies/session read calls do not crash on static build generation.
  • Staging Access token is now fail-closed and strictly verified on each request.
0.822Official alpha releaseMay 16, 2026

History source: Official GitHub release from HashtagPLUS-MVP-Combined

Sprint 2b polish — Score Boost, Collapsible Sidebar, Image Auto-Retry

Follow-on to 0.821 covering admin-controlled score boost for empty-feed days, responsive collapsible sidebar at medium widths, automatic article re-crawl on post detail pages when images are missing, and a daily Railway/cron health digest.

Latest Features Added

  • Score Boost (admin-controlled): adds a stable per-post display offset (default 1–4) seeded by post ID. Always-additive over real votes so empty feed days still look populated; downvotes still reduce the displayed score.
  • Collapsible right sidebar: appears as a 48px icon rail between 768–1280px viewports (md to xl), expandable on click. Stays as full sidebar at xl+ and hidden below md. Preference persisted in localStorage.
  • Feed toolbar restacking: at narrower widths the tab strip and Viewed/Algorithms controls now stack vertically with horizontal scroll on tabs, so the toolbar never overflows into the right sidebar.
  • Image auto-retry: when a post detail page loads with no image, the client fires the existing /api/posts/[id]/recrawl endpoint and polls for the updated post. If an image is extracted, it appears on the page and is saved to MongoDB.
  • Thumbnail cache fix: images already cached by the browser before React hydration now render immediately instead of getting stuck on the gray loading skeleton.
  • Reader drop-cap removed: the oversized #T first-letter style on reader teasers was removed.
  • Daily Railway + cron health digest email to admin (Sprint-2b carryover that landed on this branch).
  • Founding count now excludes bot accounts; admin delete-user action added (Sprint-2b carryover).
  • Dev-only bypass on /api/admin/rss-feeds/ingest-all when ALLOW_LOCAL_DEV_TOOLS=1, for local ingestion without an admin session.

Try It

Release Notes

  • PR #6 (sprint-2b/demand-driven-cron) bundles 0.821 + 0.822. Score boost is OFF by default; enable in /admin/settings if you want to populate empty feed days.
  • Auto-retry fires at most once per post per session; cooldown on the server side prevents abuse.
  • Local-only test settings on the dev DB (hotMaxAgeHours=20000, hotZeroEngagementMaxAgeHours=20000, bypass thresholds = 0) must NOT be synced to prod.
0.821Official alpha releaseMay 15, 2026

History source: Official GitHub release from HashtagPLUS-MVP-Combined

Sprint 2b — Demand-Driven RSS Cron (Budget Mode)

Replaced the always-on RSS cron with a demand-driven tier system that cuts Railway compute costs by ~97% under MVP load. All cron intervals are now governed by a CRON_MODE env var (budget vs growth) and per-feed demand signals.

Latest Features Added

  • Feed tier model: each RSS feed is classified as active (fetched every 6h), dormant (daily 3am), or paused (skipped). Default for new feeds is dormant.
  • Demand signals: following a hashtag, searching for it, or opening the article reader promotes the feed to active for 7 days.
  • Tier recalculation runs daily at 2:05am UTC, automatically promoting and demoting feeds based on follower count and demand activity.
  • Budget mode cuts cache warmer from 4 min to 60 min, trending refresh from 8 min to 60 min, external metrics from 6h to weekly, and RSS ingestion from all-feeds-hourly to active-feeds-every-6h.
  • Admin RSS feed list now shows a tier badge (active/dormant/paused), lastDemandAt timestamp, and a manual tier override dropdown.
  • Hot feed image boost added: image-rich posts rank above no-image posts at low engagement to prevent blank-card dominance.
  • Fixed hashtag sort tabs (Hot/New/Top) becoming permanently disabled after selecting Top.

Try It

Release Notes

  • CRON_MODE=budget is set in Railway production. Flip to CRON_MODE=growth when active user count reaches 100.
  • The redundant rss-cron Railway service was deleted in the prior hotfix (PR #5). This release is the full demand-driven implementation (PR #6).
  • Railway cost target: under $20/month at MVP scale with CRON_MODE=budget.
0.82Official alpha releaseMay 15, 2026

History source: Official GitHub release from HashtagPLUS-MVP-Combined

Sprint 2 — Feed Intelligence, Geo Foundation, and Staging Hardening

Shipped a broad sprint covering hashtag feed UX, Reddit content diversity controls, a full offline geo-location system, staging auth gating, and a Gemini AI kill switch after a spend incident.

Latest Features Added

  • Hashtag feed pages now have Hot/New/Top sort tabs, a List/2/3/4/5 column selector, Standard/Photo/Read display mode filters, and a compact sticky header.
  • Trending hashtag page rebuilt as a top-40 grid with time-range selector (1h/6h/24h/7d).
  • Reddit throttle limits Reddit-sourced posts to a configurable cap % per feed for anonymous users, preventing any single source from dominating.
  • Feed diversity rules are now DB-driven (FeedDiversityRule model) instead of hardcoded constants.
  • Offline geo-location system: GeoNames ETL loaded cities1000 + admin codes into MongoDB. Reverse geocode API (/api/location/reverse) resolves coordinates to city/state/country with Geohash caching. Location hierarchy slider and #NearMe pin added to the local news surface.
  • Geo hashtag prefix (#geo-XXXXX) search wired to the posts API. Location tags stored on Post schema.
  • Staging auth gate: staging.hashtagplus.com now requires a shared secret; admin and mod accounts bypass automatically via NextAuth session detection.
  • Daily prod→staging DB sync added as a cron job with an admin trigger button.
  • Gemini AI kill switch (HASHTAG_AI_ENABLED=false) implemented after a spend incident where every RSS article hit Gemini due to missing cache and failing local providers on Railway.
  • Too-broad hashtag queue is now publicly visible; moderation action buttons are admin/mod only.
  • UX: sticky sort/filter bar on feed scroll, sticky action bar on long posts and detail page, image-first post rendering, pull-to-refresh, thumbnail collapse when no image.

Release Notes

  • Geo location features (location tags, #NearMe, hierarchy slider) are foundation work — user-facing location settings UI is not yet shipped.
  • HASHTAG_AI_ENABLED=false is active in production. AI hashtag generation is off until the cost-free provider chain (Sprint 3, HP-039) is implemented.
  • Staging gate secret is managed via STAGING_GATE_SECRET env var on c3p0.
0.811Official alpha releaseMay 1, 2026

History source: Official GitHub release from HashtagPLUS-MVP-Combined

Sprint 1 Production Closeout

Closed out the full Sprint 1 alpha release in production and captured the real shipped surface from the branch, PR, and release history instead of leaving it implied in plan files and merge metadata.

Latest Features Added

  • Sprint 1 shipped the redesigned visual system, vertical PostCard layout, restored post actions, and tighter CommentThread styling.
  • Page-speed work pushed the main feed and detail surfaces toward sub-1-second visible content with server-first rendering, deferred sidebars, and stronger reader fallbacks.
  • Reader and engagement work added expand-content fallback, viewed-post tracking and persistence, bookmark-adjacent controls, sticky feed sorting, and sticky detail actions on long posts.
  • Discovery and profile work added followed-hashtag sidebar flows, profile follow/block controls, profile image dedupe, system hashtag filtering, safer Navbar search behavior, and stronger comment sharing.
  • Feed quality work added anonymous topic-feed imports, stagnant-post cleanup, broken-image collapse, and ongoing freshness and health monitoring.
  • Operations work moved alpha production to Railway, kept c3p0 as staging, restored release-note syncing, and hardened the release and backup workflow for ongoing sprints.

Release Notes

  • This 0.811 patch release publishes the missing Sprint 1 release notes to https://alpha.hashtagplus.com/release-notes.
  • Confirmed against GitHub release history: no official alpha release was published between April 7, 2026 and April 28, 2026; April 5, 2026 is the other nearby alpha release.
  • Future releases must update apps/web/src/data/releases.json, sync CHANGELOG.md, review git and GitHub comments for follow-up items, update the root README.md as needed, and verify /release-notes before the release is considered complete.
alpha-2026.04.28Official alpha releaseApril 28, 2026

History source: Official GitHub release from HashtagPLUS-MVP-Combined

Staging Topology, Brand Identity Refresh, and Backup Tooling

Stood up real c3p0 staging on Tailscale, aligned the brand identity with the 2026 design brief, and replaced the broken alpha backup with a working mongodump.

Latest Features Added

  • c3p0 is now the canonical staging environment (Tailscale-only, port 3002), with deploy workflow, watchdog tooling, and a backup-restore path.
  • Daily alpha mongodump backup replaced with a real, working implementation.
  • Brand identity refreshed to match docs/design/DESIGN-BRIEF-2026.md: tight #+ mark, all-caps PLUS in red, Helvetica Neue heading stack site-wide.
  • CommentThread visual design aligned with the v042226 stitch spec.
  • Vertical PostCard layout shipped with content-type detection.

Release Notes

  • Staging build label now reads "staging" (was "alpha-dev") and is baked at image build time.
alpha-2026.04.07Official alpha releaseApril 7, 2026

History source: Official GitHub release from HashtagPLUS-MVP-Combined

Developer Status, Page Load Visibility, and Sync Source Management

Added richer developer environment visibility, improved page-load diagnostics, and moved database sync sources into an encrypted admin-managed workflow.

Latest Features Added

  • New developer environment status modal shows local build, git branch state, DB health, and drift versus staging and alpha/prod.
  • The admin page-load dashboard now has sortable tables, direct open links, and stronger route-level visibility for performance tuning.
  • Database sync sources can now be created, tested, and managed in the admin UI instead of relying only on environment variables.
  • Sync-source credentials are stored with modern encrypted handling so admins can configure staging/prod data connections more safely.

Release Notes

  • This release also includes performance tuning work for user-facing pages, environment-status UX refinements, and staging-local workflow improvements.
alpha-2026.04.05Official alpha releaseApril 5, 2026

History source: Official GitHub release from HashtagPLUS-MVP-Combined

Viewed History and Production Error Tracking

Added viewed-post filtering and history plus broader production error logging and alpha deploy verification.

Latest Features Added

  • New viewed-post tracking hides already-opened items from feed reloads while re-surfacing your own posts and followed-tag conversations with new comments.
  • New /viewed page shows the last 7 days of viewed history for logged-in users and anonymous visitors.
  • Added server and React error tracking hooks across the app so production failures are reported to the shared tracker instead of disappearing silently.
  • Alpha deploy scripts now run stronger predeploy checks, release-note sync, and post-deploy verification against alpha.hashtagplus.com.

Release Notes

  • This release also includes supporting feed, API, and deployment script updates required to keep viewed-history behavior and production diagnostics working in alpha.
alpha-2026.04.01Official alpha releaseApril 1, 2026

History source: Official GitHub release from HashtagPLUS-MVP-Combined

GitHub code: b4dbf49

Community Hashtags and Feed Intelligence

Rolled out hashtag explorer UX, media-intent classifier controls, and stronger feed interaction signals for alpha.

Latest Features Added

  • New /hashtags explorer page adds searchable hashtag cards with in-modal follow/block actions and post previews.
  • Admin content classifier settings are now configurable with guarded thresholds, weights, and batch reclassification controls.
  • Post interaction tracking now records click/open events for ranking and analytics signals.
  • Author display and profile handling is more consistent for RSS/system content and anonymous identities.
  • Admin database sync controls now support source-to-target upsert/replace sync flows across allowed collections.

Release Notes

  • This release also includes feed/presentation refinements across cards, hashtag views, and related API behavior.
alpha-2026.03.30Official alpha releaseMarch 30, 2026

History source: Official GitHub release from HashtagPLUS-MVP-Combined

GitHub code: f313b69

Build Visibility and Release Notes

Added visible build metadata, in-app release popup, and a dedicated release notes page.

Latest Features Added

  • Running build now appears beneath the About HashtagPlus block.
  • Clicking the build opens a popup with release notes and the latest feature highlights.
  • New /release-notes page tracks release history with newest releases first.

Release Notes

  • This release introduces the first public-facing release note surface for alpha users.
alpha-2026.03.24Official alpha releaseMarch 24, 2026

History source: Official GitHub release from HashtagPLUS-MVP-Combined

GitHub code: f313b69

Alpha Deployment Baseline

Stabilized alpha deployment flow and core feed behavior.

Latest Features Added

  • Post feed sorting and hashtag navigation are available in the alpha environment.
  • Core posting, comments, and reader mode behavior are stable for day-to-day testing.

Release Notes

  • This release established the baseline for ongoing alpha feature drops.
alpha-2026.03.20Official alpha releaseMarch 20, 2026

History source: Official GitHub release from HashtagPLUS-MVP-Combined

GitHub code: f313b69

Core Reader + Hashtag Experience

Delivered foundational sharing and discovery experience.

Latest Features Added

  • Users can share links with captions and discover content by hashtags.
  • Reader mode extraction and generated hashtag workflows are integrated.
  • Anonymous and account-based participation flows are available.

Release Notes

  • This release created the foundation for current product iteration.
beta-lineage-2026.03.16Beta lineage milestoneMarch 16, 2026

History source: Backfilled from HashtagPLUS-MVP-Beta commit history

GitHub code: f7212c9

Beta Restructure Handoff

Captured the final standalone Beta checkpoint before ongoing work moved into the merged MVP alpha repository.

Latest Features Added

  • Saved the Beta codebase at the repo-restructure handoff point.
  • Deployment guidance was expanded and aligned with the shared agent workflow used across the Active workspace.
  • This checkpoint acts as the bridge between standalone Beta work and later HashtagPLUS-MVP-Combined alpha development.

Release Notes

  • Backfilled from HashtagPLUS-MVP-Beta commit history because no GitHub release object exists for the Beta repo.
  • Use this milestone as the last standalone Beta snapshot before merged-alpha development took over.
beta-lineage-2026.03.09Beta lineage milestoneMarch 9, 2026

History source: Backfilled from HashtagPLUS-MVP-Beta commit history

GitHub code: 4415886

RSS Feed Admin and Deployment Stabilization

Finished RSS ingestion management in Beta and stabilized deploy/runtime behavior for ongoing testing.

Latest Features Added

  • Completed RSS feed management UI, endpoints, and background worker sync flows.
  • Fixed Beta deployment issues around Next.js static assets and Docker Compose networking.
  • Added a local dev admin backdoor to speed up testing and operational recovery.

Release Notes

  • Backfilled from HashtagPLUS-MVP-Beta commit history because no GitHub release object exists for the Beta repo.
  • This milestone marks the point where Beta became much easier to operate and feed-manage day to day.
beta-lineage-2026.03.07Beta lineage milestoneMarch 7, 2026

History source: Backfilled from HashtagPLUS-MVP-Beta commit history

GitHub code: e30c8bf

Algorithms, Analytics, and Interface Polish

Broadened ranking and admin controls while tightening the overall Beta product surface.

Latest Features Added

  • Expanded the algorithms page so feed behavior could be explored more intentionally.
  • Added admin settings and analytics improvements to support ongoing tuning.
  • Bundled multiple rounds of UI polish into a Beta-wide product update.

Release Notes

  • Backfilled from HashtagPLUS-MVP-Beta commit history because no GitHub release object exists for the Beta repo.
  • This release cluster represented a broad Beta refinement pass rather than a single published release.
beta-lineage-2026.03.06Beta lineage milestoneMarch 6, 2026

History source: Backfilled from HashtagPLUS-MVP-Beta commit history

GitHub code: 119fa52

Private Posts and GG Permalinks

Introduced private-sharing controls and direct post permalink flows that carried forward into later alpha work.

Latest Features Added

  • Added E2EE private posts, invite management, and a dedicated #Private landing flow.
  • Made PostCards clickable to direct /post/[ggCode] permalinks.
  • Detected #GG codes on import so shared content linked more cleanly into the app.

Release Notes

  • Backfilled from HashtagPLUS-MVP-Beta commit history because no GitHub release object exists for the Beta repo.
  • This milestone captures the Beta work that made direct post pages and privacy controls feel product-ready.
beta-lineage-2026.03.05Beta lineage milestoneMarch 5, 2026

History source: Backfilled from HashtagPLUS-MVP-Beta commit history

GitHub code: c7e90d2

Community Controls and Admin Expansion

Built out the core community management layer around hashtags, votes, invites, moderation, and feed variation.

Latest Features Added

  • Added working votes, GG codes, follow and block flows, hashtag stats, and richer admin panels.
  • Introduced invite management, domain blocking, profile pages, and stronger hashtag editing/moderation tools.
  • Expanded discovery with live search improvements and the #Random feed algorithm.

Release Notes

  • Backfilled from HashtagPLUS-MVP-Beta commit history because no GitHub release object exists for the Beta repo.
  • This was the biggest early Beta feature burst and laid down many systems the merged alpha still builds on.
beta-lineage-2026.03.04Beta lineage milestoneMarch 4, 2026

History source: Backfilled from HashtagPLUS-MVP-Beta commit history

GitHub code: 2cda71d

Beta Initial Publish

Published the first Beta foundation for hashtag-driven link sharing with reader mode and smart discovery.

Latest Features Added

  • Initial Beta codebase was published and aligned around the HashtagPLUS product direction.
  • Added live search with smart recommendations on the same first-day development push.
  • Established the starting point that later evolved into the merged MVP alpha repository.

Release Notes

  • Backfilled from HashtagPLUS-MVP-Beta commit history because no GitHub release object exists for the Beta repo.
  • This milestone rolls up the initial publish plus same-day foundational Beta work.