Commit Graph

493 Commits (40829a417b7f06081493bd550aed2d7bb19f1f82)

Author SHA1 Message Date
Daniel Supernault 91f54c0d0f
Fix Direct Message shims. Fixes #7441 13 hours ago
Daniel Supernault d436821483
Update StatusService 1 day ago
Daniel Supernault 25d9753d87
Fix reblog account to show account who reblogged it, not who posted it 1 day ago
dansup 545ad821b0
Merge pull request #7419 from lilithmooncohen/fix/reblog-media-attachments
Render boosts for clients that only read the top level
2 days ago
Lily Cohen 24259fa489 Honour photo_reblogs_only in the home timeline 2 days ago
Lily Cohen 92dfdeda11 Render boosts in clients that only read the top level 2 days ago
Daniel Supernault 9c81a75ad3
Refactor Direct Messages, add Group Chat support and proper context threading with Mastodon 2 days ago
Daniel Supernault 823efcaad7
Add FEP-044f: Consent-respecting quote posts 4 days ago
Your Name ab972559ea lint 5 days ago
Your Name 28b11b9b35 Larastan 2 5 days ago
Your Name 47c29fe410 lint 5 days ago
Your Name 33a6c642ea Larastan 1 to 2 5 days ago
Your Name 53b698ec48 Revert "StrictArrayParamDimFetchRector"
This reverts commit a28d3df4c4.
5 days ago
Your Name 6beab304a0 lint 5 days ago
Your Name a28d3df4c4 StrictArrayParamDimFetchRector 5 days ago
Your Name 0435d08568 RemoveAlwaysElseRector 5 days ago
Your Name a2e38e5ffe CompactToVariablesRector 5 days ago
Your Name 5949dc21c1 UseIdenticalOverEqualWithSameTypeRector 5 days ago
Your Name c57e5d8ed7 adding type 6 days ago
Your Name 8dcdd93e2b RemoveUnusedVariableInCatchRector 6 days ago
Your Name 9e052883bf StrContains 6 days ago
Your Name 5e76ed99bf fix #7328 1 week ago
Your Name e3b6cebf27 Fix MariaDB driver detection and reblog caption null inserts
Laravel 11 exposes MariaDB as a dedicated 'mariadb' driver, so
config('database.default') === 'mysql' checks silently misclassified
MariaDB as the non-mysql (postgres) branch.

- Add App\Util\Database\DatabaseDriver with isMysqlLike()/isPgsql()
  plus db_is_mysql_like()/db_is_pgsql() global helpers.
- Route all database.default driver checks through the helpers so
  MySQL and MariaDB are treated as one group.
- Use '' (not null) for share/compose caption+rendered, valid whether
  the column is nullable or NOT NULL (it is NOT NULL on MySQL/MariaDB).
- Guard pgsql strtolower() in registration against missing fields.
- Scope CustomEmoji::duplicateShortcodes to the grouped column for
  Postgres GROUP BY validity.
- Remove stale Postgres guard in status:dedup; use havingRaw for
  cross-driver HAVING.
1 week ago
Your Name 5ec239404b Import Purify facade in ApiV1Controller to fix larastan class.notFound 1 week ago
Daniel Supernault d2a45ee4d3
Update ApiV1Controller 1 week ago
Daniel Supernault b0ca632026
Update unbookmark endpoint 1 week ago
Daniel Supernault fbd52dd8fc
Improve federation handling 2 weeks ago
Shlee caffc40a45
Fix URL construction for API timeline request 2 weeks ago
Your Name 277b8aa970 Use now() helper instead of Carbon::now() for current-time access
Aligns with the app's dominant convention (413 now()/today() call
sites vs 12 Carbon::now()). Carbon::parse() calls are untouched since
they parse arbitrary date strings, not current-time access.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2 weeks ago
Daniel Supernault 7975ba9c75
Fix StoryCarousel cache invalidation 2 weeks ago
Daniel Supernault 915879ff57
Update account suggestions 2 weeks ago
Daniel Supernault 9aafa37364
Update ApiV1Controller.php 2 weeks ago
Daniel Supernault 6a33716870
Update ApiV1Controller, fix account suggestions 2 weeks ago
Your Name 6496904293 Fix account storage limit not freeing on media deletion (#7169)
users.storage_used only ever grew: uploads incremented it but no deletion
path decremented it, so users hit the account size limit even when their
real media usage was well below it.

- Decrement storage_used in MediaDeletePipeline when media is removed
- Add UserStorageService::increaseStorageUsed / decrementStorageUsed as the
  fast, symmetric hot-path counter updates (floor-based, clamped at zero)
- Refactor the 6 upload call sites to use increaseStorageUsed instead of
  duplicated inline writes (also fixes ceil/floor drift vs the reconciler)
- Add (user_id, size) covering index so per-user SUM(size) is not a full
  table scan (INPLACE/LOCK=NONE, skipped on sqlite)
- Add user:storage:recalculate command to repair affected accounts, with a
  daily --stale=168 scheduled reconciler to correct any drift
- Add regression tests for the pipeline and UserStorageService
2 weeks ago
Daniel Supernault 13aa36efb4
Update ApiV1Controller.php 2 weeks ago
Your Name d190ba7b66 Only dispatch SharePipeline for newly-created reblogs 2 weeks ago
Shlee fe8c53ddd7
Merge pull request #7127 from shleeable/fix/favourites-pagination-off-by-one
Fix favourites pagination skipping one favourite per page
2 weeks ago
Shlee 602e498f0a
Update ApiV1Controller.php 2 weeks ago
Your Name e79135a771 Fix favourites pagination skipping one favourite per page boundary 2 weeks ago
Your Name 3b951d41d8 Fix accounts statuses max_id pagination returning duplicate boundary status 2 weeks ago
Daniel Supernault 7376a007a5
Update ApiV1Controller.php 2 weeks ago
Daniel Supernault 085eabccf9
Update account statuses endpoint 2 weeks ago
Shlee 003953eb3e
Merge pull request #7045 from pixelfed/perf/follower-service-following-ids
Deduplocation: add FollowerService::getFollowingIds for common function
3 weeks ago
Daniel Supernault c9b0ee3bdd
Refactor NotificationService 3 weeks ago
Your Name 667f6e2fc9 Extract following-ids lookup into FollowerService::getFollowingIds
The Cache::remember('profile:following:'.$pid, ...) block that plucks
following_id and appends the caller's own id was copy-pasted across four
call sites, with inconsistent TTLs (1440 minutes vs 1209600 seconds).

Add FollowerService::getFollowingIds($pid), which owns the cache key that
add()/remove() already invalidate, and use it from InternalApiController,
PublicApiController, ApiV1Controller and HashtagUnfollowPipeline. Removes
the now-unused Follower/Cache imports left behind.

Adds a test covering the followed-ids-plus-self result and the
follows-nobody case.
3 weeks ago
Daniel Supernault 9e33bed630
Add only_reposts 3 weeks ago
Daniel Supernault 4c4a457fe4
Update ApiV1Controller, fix napi in timelines 3 weeks ago
Shlee 7c3644c3e1
Update ApiV1Controller.php 3 weeks ago
Your Name c0cde2f682 refactor: move 52 legacy models from App\ to App\Models\
Move all Eloquent models from the app/ root directory to app/Models/
for consistency with modern Laravel conventions. The project already had
54 models in App\Models; this migrates the remaining 52 legacy models.

Changes:
- Move 52 model files from app/ to app/Models/
- Update namespace declarations in each model
- Update all ~1000 import references across the codebase
- Add Relation::morphMap() in AppServiceProvider for backward
  compatibility with existing polymorphic database records
- Add missing HasSnowflakePrimary imports for models that relied
  on same-namespace resolution
4 weeks ago
Your Name 54cfdf3c2b refactor: add return type declarations to controller methods
Adds explicit return type declarations to 498 controller methods
across 88 files. Types inferred from return statements:

- JsonResponse for response()->json() returns
- RedirectResponse for redirect()/back() returns
- View (contract) for view() returns
- Response for response() returns
- void for methods with no return value
- array for array returns
- string/int/bool for scalar returns

Also fixes 3 methods with incorrect bare returns:
- AvatarController::deleteAvatar - bare return → json response
- ImportPostController::checkPermissions - bare return → true
- RemoteAuthController::accountToId - bare return → empty array
4 weeks ago