Commit Graph

12845 Commits (6cce2103215450498428194097d812ebb384026a)
 

Author SHA1 Message Date
Shlee 6cce210321
Refactor boilerplate examples for deduplication
Updated boilerplate examples for ActivityPub Delivery, Username validation, and Notification services to replace repeated code snippets with concise method calls.
4 weeks ago
Shlee 4982839c5a
Update DeduplicationChanges.md 4 weeks ago
Shlee 27c778f4bf
Remove duplicate boilerplate code in documentation
Removed duplicate lines from username validation, notification, and fractal boilerplate sections.
4 weeks ago
Shlee 101b529acf
Update DeduplicationChanges.md 4 weeks ago
Shlee 0b6f8e4ab6
Rename DeduplicationChanges.md to notes/DeduplicationChanges.md 4 weeks ago
Shlee d1ea7a5be7
Create DeduplicationChanges.md 4 weeks ago
Shlee 30810936e0
Merge pull request #6908 from pixelfed/refactor/pixelfed-username-rule
Deduplication - username validation in 8 places
4 weeks ago
Your Name 7c5d93e96b refactor: consolidate username validation into PixelfedUsername rule
Replace 7 duplicated inline username validation closures across 6
controllers (ApiV1Dot1, RemoteAuth, CuratedRegister, AdminInvite x2,
AppRegister, Auth/Register) with the existing PixelfedUsername rule.

Add the 'must contain at least one alphabetical character' check to
the rule so all call sites share consistent, stricter validation.

Add PixelfedUsernameTest covering all validation branches.
4 weeks ago
Daniel Supernault 44275154ea
Fix cache error 4 weeks ago
Daniel Supernault 1810caac2d
Update composer 4 weeks ago
Daniel Supernault e3a2640704
Fix endsWith. Closes #6904 4 weeks ago
Shlee 00fa9a2fd0
Merge pull request #6903 from pixelfed/stagingfix
refactor: migrate LikePipeline to use NotificationService::firstOrCre…
4 weeks ago
Your Name 8b53f23e77 refactor: migrate LikePipeline to use NotificationService::firstOrCreateNotification 4 weeks ago
Shlee 97c1c4b944
Merge pull request #6902 from pixelfed/stagingfix
fix: resolve larastan class.notFound errors
4 weeks ago
Your Name 941c305104 fix: resolve larastan class.notFound errors
- Add missing FractalService import to Groups/GroupCommentService and
  Groups/GroupPostService (wrong namespace resolution)
- Update Inbox handler traits to use App\Models\* namespace instead of
  old App\* references (Status, Profile, DirectMessage, Media, Follower,
  Like, Instance, Story, User, FollowRequest, Notification, UserFilter,
  StoryView)
- Update HttpClientMigrationTest to use App\Models\* namespace
4 weeks ago
Shlee ea01a26666
Merge pull request #6901 from pixelfed/refactor/extract-duplicate-patterns
refactor: extract duplicate patterns into shared methods
4 weeks ago
Your Name e7b70c6084 refactor: extract duplicate patterns into shared methods
1. Add FractalService with static item() and collection() helpers
   replacing 22 call sites that repeated the 4-line Fractal Manager
   + ArraySerializer boilerplate.

2. Add AccountInterstitial::createFromStatus() factory method
   consolidating 4 identical 15-line blocks that create interstitials
   with status metadata.

3. Add NotificationService::createNotification() to handle the
   repeated pattern of creating, caching, and registering a
   notification in the recipient's feed.

4. Add NotificationService::firstOrCreateNotification() for
   idempotent notifications (share/boost, mention) that should
   only notify once per actor+action+item combination.
4 weeks ago
Shlee 3c14234fd9
Merge pull request #6898 from pixelfed/refactor/activitypub-delivery-service
refactor: extract shared ActivityPub pool
4 weeks ago
Your Name 9c9e2a5a22 refactor: extract shared ActivityPub pool delivery into ActivityPubDeliveryService
Add ActivityPubDeliveryService::pool() using Laravel's Http::pool() to
consolidate the duplicated delivery pattern found across 10 jobs.

Updated jobs:
- StatusActivityPubDeliver
- StatusDelete
- StatusLocalUpdateActivityPubDeliverPipeline
- FanoutDeletePipeline
- SharePipeline
- UndoSharePipeline
- StoryFanout
- StoryExpire
- StoryDelete
- ProfileMigrationDeliverMoveActivityPipeline

The shared method accepts a Profile (sender), audience (inbox URLs),
and activity (payload array), handling signing, user-agent, timeout,
and concurrency in one place. No direct Guzzle usage remains in
app/Jobs/.
4 weeks ago
Shlee ab54a0bf88
Merge pull request #6897 from pixelfed/refactor/split-inbox-handlers
refactor: split ActivityPub Inbox
4 weeks ago
Shlee a1b3d2463d
Merge branch 'staging' into refactor/split-inbox-handlers 4 weeks ago
Your Name f4b6d03ae6 refactor: split ActivityPub Inbox into focused traits with shared helpers
- Extract InboxHelpers trait with common utilities (domain/user blocking, actor validation, notification deletion, cache clearing)
- Create domain-specific handler traits: HandlesFollows, HandlesLikes, HandlesCreates, HandlesAnnouncements, HandlesDeletes, HandlesUndos, HandlesStories, HandlesFlags, HandlesUpdates, HandlesMoves
- Merge duplicate story reaction/reply handlers into single handleStoryInteraction method
- Break handleDirectMessage into focused sub-methods
- Reduce Inbox.php to thin verb router (~167 lines)
- No behavioral changes; public API preserved
4 weeks ago
Shlee f018004b56
Merge pull request #6892 from pixelfed/refactor/move-models-to-namespace
Refactor/move models to namespace
4 weeks ago
Shlee b4afda12d5
Merge pull request #6889 from pixelfed/refactor/status-delete-http-client
refactor: replace Guzzle pool with Laravel HTTP client in StatusDelete
4 weeks ago
Your Name aae7700bf3 fix: resolve 3 remaining Larastan errors from model migration
- AccountInterstitial middleware: fix FQCN reference
- Like/UndoLike transformers: fix aliased import namespace
4 weeks ago
Your Name 4231ce9938 test: verify morph map resolves legacy model namespaces
Ensures that existing database records using the old App\Status,
App\Profile, etc. morph types correctly resolve to the new
App\Models\ classes via Relation::morphMap().
4 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 a142db87b4 polish 4 weeks ago
Shlee 9770ac1aeb
Merge pull request #6891 from pixelfed/fix/code-review-security-and-bugs
polish
4 weeks ago
Your Name 2b1c9c818b polish 4 weeks ago
Shlee 609646459e
Merge pull request #6890 from pixelfed/refactor/new-status-pipeline-retry-config
fix: improve NewStatusPipeline retry configuration
4 weeks ago
Your Name a0f721781a fix: improve NewStatusPipeline retry configuration
Previous config (timeout=5, tries=1) was too aggressive — a single
transient failure would permanently lose the status publication.

New config:
- timeout: 5 → 30 (sufficient for DB check + job dispatch)
- tries: 1 → 3 (recover from transient Redis/DB issues)
- maxExceptions: 1 (don't retry actual bugs)
- backoff: [5, 10] (exponential delay between retries)
4 weeks ago
Your Name 00dd5b3d92 refactor: replace Guzzle pool with Laravel HTTP client in StatusDelete
Replace direct GuzzleHttp\Client and Pool usage in fanoutDelete()
with Laravel's Http::pool() facade. This provides:

- Testability via Http::fake() in tests
- Consistent timeout/retry configuration
- No direct Guzzle dependency in application code
- Proper integration with Laravel's HTTP client features
4 weeks ago
Shlee df9aebcf9b
Merge pull request #6888 from pixelfed/refactor/controller-return-types
refactor: add return type declarations to controller methods
4 weeks ago
Your Name 17a5b5c3de fix: resolve 6 Larastan errors in controller return types
- DeckController: add missing View contract import
- CuratedRegisterController::proceed(): add default switch case
- GroupController::reportAction(): add default switch case
- InstallController::checkDatabase/precheckDatabase: add missing return
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
Shlee 89a0aa3bf7
Merge pull request #6887 from pixelfed/shleeable-patch-1
Move ValidateCsrfToken middleware to a new position
4 weeks ago
Shlee 46393bd9fc
Move ValidateCsrfToken middleware to a new position 4 weeks ago
Shlee 9aa2df66cb
Merge pull request #6885 from pixelfed/shleeable-patch-1
Revert ValidateCsrfToken to PreventRequestForgery change - wait for Laravel 13
4 weeks ago
Shlee 2c704d9a76
Update app.php 4 weeks ago
Shlee e9dcbf70e3
Merge pull request #6884 from pixelfed/fix/test-improvements
pint /tests
4 weeks ago
Your Name 412c29bb47 Improve test assertions and imports 4 weeks ago
Daniel Supernault db636ee08a
Pint database/ 4 weeks ago
Shlee 7fa0615448
Merge pull request #6883 from pixelfed/shleeable-patch-1
Revert strict tests in nonprod
4 weeks ago
Shlee f13a891ff4
Update AppServiceProvider.php 4 weeks ago
Daniel Supernault 42f361540c
Pint config/ 4 weeks ago
Daniel Supernault 33dce75f2c
Pint app/ 4 weeks ago
dansup e1b60d070b
Merge pull request #6882 from pixelfed/shleeable-patch-2
Refactor: Add additional strict modes for testing environments only
4 weeks ago
Shlee de8de9251b
Update AppServiceProvider.php 4 weeks ago
Shlee 1ae0feb129
Update AppServiceProvider.php 4 weeks ago