Pixelfed logo

Pixelfed

Photo sharing the way it should be, without algorithmic barriers

Alternative to: Instagram


About Versions (44)

v0.12.11

2026-09-14

Changes since v0.12.10

Full changelog: v0.12.10…staging

  • Fix SoftwareUpdate notices (6ddc803ae)
  • Use now() helper instead of Carbon::now() for current-time access (277b8aa97)
  • Replace Str::of() fluent chains with static Str::/native calls (a42449342)
  • Use LazilyRefreshDatabase instead of plain RefreshDatabase in tests (255bdaa2a)
  • Upgrade to Laravel 13 (42620e584)
  • Fix Redis queue retry_after being shorter than Horizon’s timeout (582083a7f)
  • Update queue.php (4f0610274)
  • Split Horizon into priority-based supervisors, add balanceCooldown and notification routing (bbe7cfa8e)
  • Update horizon.php (7e468230d)
  • Fix dangling DB transactions in CustomFilterController (8fa18ff8c)
  • Stop swallowing overlay ValidationException into a generic 500 (62d3bc840)
  • Fix tests (888fa1bc3)
  • Update dependabot.yml (5b566752e)
  • Update README.md (b64c37d7e)
  • Fix URL construction for API timeline request (caffc40a4)
  • Create .env.full (e8093a28e)
  • Change storage size calculation from floor to ceil (ad686571b)
  • Delete .env.full (2e4562957)
  • Update UserStorageServiceTest.php (07367c4ea)
  • Add redirect for Horizon dashboard (815b13862)
  • Fix story video upload probe path (#7203)
  • Add failure logging to admin:MediaMoveStorageLocalToCloud and enable debug by default (0c68b6a68)
  • polish (b2a068b93)
  • Make original_sha256 verify opt-in in MediaMoveStorageLocalToCloud (441a94e73)
  • Revert debug-by-default in MediaMoveStorageLocalToCloud (438560415)
  • Remove sha256 verification from MediaMoveStorageLocalToCloud (341351c47)
  • polish (6ffdc53de)
  • Fix web notifications not loading (#7195)
  • Add notification epoch inline fallback test (#7162)
  • Normalize cropped story images to the 1080x1920 canvas (#7215)
  • chore(deps-dev): bump laravel/pint from 1.30.5 to 1.31.1 (1ba0535bb)
  • chore(deps): bump league/iso3166 from 4.4.0 to 4.5.0 (d1081f2bc)
  • chore(deps-dev): bump laravel/telescope from 5.23.0 to 5.24.0 (0388d3e4f)
  • chore(deps): bump laravel-notification-channels/webpush (e36d42f66)
  • chore(deps): bump laravel/horizon from 5.48.3 to 5.49.0 (e654143a1)
  • Update NotificationService (9e69d449d)
  • Delete NotificationEpochUpdatePipeline.php (15b46186b)
  • Delete NotificationEpochFallbackTest.php (9c39eaaf9)
  • Delete NotificationEpochUpdate.php (7a98ebfe5)
  • Refactor StatusController (1e6ce226e)
  • Fix StatusDelete job, add logging (6e0d8454f)
  • Update AP Delivery Service, fix signing and delivery (868e09b64)
  • Update HttpSignature, improve signing (ed63be4d4)
  • Fix StatusDelete, handle StatusService deletion (f37137678)
  • Update PublicApiController, fix getStatus to use database check (a3160cdd2)
  • Update federation fanout (5fc343dd4)
  • Improve federation handling (fbd52dd8f)
  • Fix stale-CSRF login recovery render callback (c9c897c4e)
  • Fix missing email verification dispatch on settings email change (9d839f7b5)
  • Update AdminApiController and PublicTimelineService (27bc6e792)
  • Add new admin routes (cb3da9999)
  • Fix NetworkTimelineService (70bab963b)
  • Update AdminApiController, fix missing resource (96229868f)
  • Update AccountService and AdminApiController (6232d35d9)
  • Update AdminApiController, fix typo (b2deebb72)
  • Update AdminStatsService, fix reports_monthly stat (6a2208087)
  • Fix AdminApiController profiles endpoint, dont include deleted accounts (e0550c441)
  • Use absolute path for /horizon dashboard redirect (ac872c12e)
  • Invalidate notification cache when deleting a status (f1e4536d1)
  • Guard home timeline filter against null account (b13c374f2)
  • Escape message in curated register details email to fix reflected XSS (623f03bb6)
  • Update in-app registration (1cead5cf6)
  • Update unbookmark endpoint (b0ca63202)
  • Update StoryComposeController (914ab1196)
  • Lint PostImportController (22108f8f1)
  • Update ApiV1Controller (d2a45ee4d)
  • Update ActivityPub Inbox update handling (13a8a255f)
  • Update InboxWorker, improve handling (96acfb3d9)
  • Update LoginController (538a11ccc)
  • Update LoginController (a27033d2f)
  • Update Helpers (fbd0922fd)
  • Import Purify facade in ApiV1Controller to fix larastan class.notFound (5ec239404)
  • Extend story author-key TTL instead of overwriting so it survives to the longest-lived story (fe382bdb8)
  • Validate report object_id as a positive integer to fix 500 on array input (b4bd3c87a)
  • Send verification email for admin-invite users that require verification (cfbdabdd6)
  • Fix remove-all follower purge chunkById key and gate the route behind dangerzone (7b90bc869)
  • Update PrivacySettings.php (7a5626766)
  • Purge status_edits on account and status deletion (60284a871)
  • Enforce can-post role check on POST /api/v2/media (3a2360657)
  • Validate remote update attachments before detaching existing media (9b829ca56)
  • Mark OIDC login session password-confirmed to fix dangerzone lockout (fbca487bc)
  • Isolate fanout delivery failures from StatusDelete local cleanup (8a4567a5c)
  • fix(federation): swallow ConnectionException on synchronous AP delivery (729396302)
  • test(federation): run AP delivery tests in production env (7b11b72e1)
  • Make the landing page translatable (443962c92)
  • Fix last untranslated strings on the login + explore pages (ac790b1d8)
  • More translatable strings : landing, privacy policy, terms (6537787c4)
  • Update README.md (c517650b5)
  • Automate Crowdin sync via GitHub Action (9002d6ea2)
  • Remove dead notification.php and timeline.php lang files (0f10ec0a4)
  • Use locale_get_display_name for language labels (f4dbddd8b)
  • Revert “Remove dead notification.php and timeline.php lang files” (2eaf0eaf3)
  • polish (07f7631b8)
  • Fix cached-page 500s and flaky smoke/API tests (a14fba166)
  • Update README.md (08914ad8b)
  • Add experimental DB-matrix test workflow (mysql/mariadb/postgres) (983e51240)
  • Modify workflow triggers for staging and unstable branches (d574ddf1f)
  • Compile FFmpeg from source in Docker image (484b92138)
  • Disable buildx provenance/SBOM attestations for GHCR images (19e4620de)
  • Update docker-tag.yml (dfb81a696)
  • Fix MariaDB driver detection and reblog caption null inserts (e3b6cebf2)
  • Add isMysql/isMariadb split helpers for MySQL-vs-MariaDB divergence (30440c5e0)
  • Add db_is_sqlite helper for the test connection (40c95c8aa)
  • Update php-laravel-tests-db-matrix.yml (acc827381)
  • Isolate Redis keys per DB matrix entry; use mariadb connection (fe289c312)
  • Bump DB matrix to PHP 8.5 and mysql 8.5 (5bdc18e47)
  • Make DB matrix workflow manual-only (workflow_dispatch) (8eda1d039)
  • Replace blocked crowdin/github-action with Crowdin CLI (a3931bb07)
  • Build compiled assets (075aa781a)
  • Update CHANGELOG.md (4afbca6c1)
  • Update CHANGELOG.md (9c2e53018)
  • Update crowdin.yml (f49e66033)
  • chore(deps): bump intervention/image-driver-vips from 4.1.4 to 4.1.5 (b8ce1b0e5)
  • chore(deps-dev): bump larastan/larastan from 3.11.0 to 3.12.0 (a372ff6f8)
  • chore(deps-dev): bump laravel/pint from 1.31.1 to 1.32.1 (31022eb79)
  • Update CHANGELOG.md (2b057a9e0)
  • Upgrade resend/resend-php to ^1.0 (e7e83b96e)
  • Update crowdin.yml (516236856)
  • Add HasMany return type to CustomFilter::statuses() for Larastan (11d547415)
  • Fix mobile_registration attribute (c5f69d6ed)
  • Update crowdin.yml (711389a99)
  • Change section title to ‘Host your own instance with’ (a005aa485)
  • Enable auto approval for imported translations (7a59b80cf)
  • Update crowdin.yml (ef13a14b4)
  • Delete .github/workflows/crowdin.yml (b1f35c6a1)
  • Update crowdin.yml (14d970da6)
  • Default image driver to vips (99c3f2f6b)
  • Install libvips on CI runners and test on the vips driver (ddc617a8d)
  • Add AccountRevocationService (83c9b86ae)
  • Update WebfingerService (e67182c9b)
  • Update Instagram Imports (68b1a5596)
  • Remove deprecated command (31c652427)
  • Update ImageThumbnailSupersedeTest.php (79ad66415)
  • Update i18n (4053439e7)
  • fix(docker): stop caching /sw.js long-term, quiet 200 access logs (b3e56b33e)
  • Update docker-compose.yml (a93b28c03)
  • Update docker-compose.yml (32c97df68)