Commit Graph

147 Commits (c002e6d466d6f84c8ba6a1d9ee229764e6d51ae9)

Author SHA1 Message Date
Daniel Supernault f5fb32d202
Add ide helper 3 days ago
Shlee 9ec46005df
Merge pull request #7309 from pixelfed/feature/laravel-cap
Refactor: Captcha provider - HCaptcha, Turnstile and Cap
1 week ago
Your Name 4c0bbe014e Translated French 1 week ago
Your Name 13124bb57a chore: add composer build script for i18n export + prod assets
Adds a 'composer build' script that exports the latest i18n strings
(php artisan i18n:export), installs npm deps, and compiles production
frontend assets (npm run production).
1 week ago
Your Name e8f4ee86bd polish 1 week ago
Your Name a0b56980cc polish 1 week ago
Your Name 163cd9f589 polish 1 week ago
Your Name e7e83b96e1 Upgrade resend/resend-php to ^1.0
Bump from ^0.13.0 to ^1.0 (installs v1.14.0). The only breaking change
in v1.0.0 is the removal of $resend->sendEmail in favor of
$resend->emails->send. Pixelfed uses the SDK only through Laravel's
'resend' mail transport, which already calls emails->send and declares
support for resend/resend-php ^1.0, so no application code changes are
needed. Verified the resend mailer resolves and email tests pass.
1 week ago
dependabot[bot] e36d42f668
chore(deps): bump laravel-notification-channels/webpush
Bumps [laravel-notification-channels/webpush](https://github.com/laravel-notification-channels/webpush) from 10.5.0 to 13.0.1.
- [Release notes](https://github.com/laravel-notification-channels/webpush/releases)
- [Changelog](https://github.com/laravel-notification-channels/webpush/blob/master/CHANGELOG.md)
- [Commits](https://github.com/laravel-notification-channels/webpush/compare/10.5.0...13.0.1)

---
updated-dependencies:
- dependency-name: laravel-notification-channels/webpush
  dependency-version: 13.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2 weeks ago
Your Name 42620e584b Upgrade to Laravel 13
- laravel/framework ^12.0 -> ^13.0
- spatie/laravel-backup ^9.2.9 -> ^10.0 (forced: 9.x pins
  illuminate/notifications ^12.40, incompatible with L13)
- Drop psalm/plugin-laravel + vimeo/psalm (dev-only static analysis):
  the only version chain compatible with L13's testbench-core needs
  vimeo/psalm ^7.0.0-beta, which requires narrowing the project's
  declared PHP floor (composer platform.php is pinned to 8.3.0 to
  keep composer.lock installable on the oldest supported PHP patch;
  the psalm 7 betas require specific 8.3.16+/8.4.3+/8.5.0+ floors).
  Its CI workflow (.github/workflows/php-psalm.yml) was already
  disabled (`on: []`, "too many errors"). Larastan/PHPStan remains
  as the project's static analysis tool, unaffected.
- Rename VerifyCsrfToken/ValidateCsrfToken -> PreventRequestForgery
  in bootstrap/app.php and config/sanctum.php (the L13 rename; old
  classes remain as deprecated aliases but new code should reference
  the new name), and validateCsrfTokens() -> preventRequestForgery()
  in the middleware config.

Everything else (cache serializable_classes, cache/session/redis key
prefixes, upsert() uniqueBy, JobAttempted/QueueBusy event properties,
pagination view names, Manager::extend bindings, model-boot nested
instantiation) was checked against the app's actual code and found
to be either already handled, already using the new convention, or
not applicable to any pattern in this codebase.

All 715 tests pass (verified against a clean baseline with Redis
available locally via Docker); Pint and Larastan (the project's
configured `composer analyse` scope) are both clean.
2 weeks ago
Daniel Supernault 6ddc803ae1
Fix SoftwareUpdate notices 2 weeks ago
Your Name ce4343e3e2 Replace custom register token with spatie/laravel-honeypot
Swap the custom 'rt' register token anti-spam mechanism for
spatie/laravel-honeypot on the registration and parental-controls
invite flows.

- Add spatie/laravel-honeypot and publish config/honeypot.php
- Remove getRegisterToken() and the rt validation rule from RegisterController
- Replace the rt hidden field with the @honeypot directive in both forms
- Attach ProtectAgainstSpam middleware to POST /register and the
  parental-controls invite register route
- Update RegisterTest to disable honeypot for the valid registration case
2 weeks ago
Your Name dcc4f87ba0 Require ext-redis to support phpredis client
Add ext-redis as a required PHP extension so phpredis can be used as
the Redis client without manual setup. predis remains available, so
users can switch between REDIS_CLIENT=phpredis and predis freely.
3 weeks ago
dependabot[bot] 7eded54f1c
chore(deps)(deps): bump laravel/tinker from 2.11.1 to 3.0.2
Bumps [laravel/tinker](https://github.com/laravel/tinker) from 2.11.1 to 3.0.2.
- [Release notes](https://github.com/laravel/tinker/releases)
- [Changelog](https://github.com/laravel/tinker/blob/3.x/CHANGELOG.md)
- [Commits](https://github.com/laravel/tinker/compare/v2.11.1...v3.0.2)

---
updated-dependencies:
- dependency-name: laravel/tinker
  dependency-version: 3.0.2
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
3 weeks ago
Shlee 8a0368ab00
Update composer.json 3 weeks ago
Shlee 32bec52edb
Merge pull request #6985 from pixelfed/chore/laravel12-skeleton-uplift-v2
Laravel 12 skeleton uplift v2
3 weeks ago
Daniel Supernault 584ce27f71
Add Sanctum support 3 weeks ago
Shlee b86e4f7318 Update composer.json 3 weeks ago
Your Name 80214c5e71 chore: uplift framework skeleton toward Laravel 12 defaults
Modernize artisan and public/index.php to the streamlined bootstrap form,
migrate factories/seeders autoload to PSR-4 (database/seeds -> seeders), and
backfill missing env-driven config keys across app, session, database, queue,
mail, logging, and cache. All changes are additive and preserve existing
Pixelfed behavior and defaults.
3 weeks ago
Your Name 7aa1f8936d Revert "Merge pull request #6981 from pixelfed/chore/laravel12-skeleton-uplift"
This reverts commit 39384e2f93, reversing
changes made to f76bcfa3f9.
3 weeks ago
Shlee 54a0b3ee96
Update composer.json 3 weeks ago
Your Name 4e83eb0867 chore: uplift framework skeleton toward Laravel 12 defaults
Modernize artisan and public/index.php to the streamlined bootstrap form,
migrate factories/seeders autoload to PSR-4 (database/seeds -> seeders), and
backfill missing env-driven config keys across app, session, database, queue,
mail, logging, and cache. All changes are additive and preserve existing
Pixelfed behavior and defaults.
3 weeks ago
Your Name 6eea565bab chore: add composer psalm:report script for a full local txt report
Adds a psalm:report script that ignores the baseline and writes a full
human-readable report to psalm-report.txt, including informational issues,
so all outstanding items to fix are surfaced in one file.
4 weeks ago
Your Name 4e0c567ecd Add vimeo/psalm and composer scripts 4 weeks ago
Your Name 1a234c3920 chore: add Psalm static analysis (plugin-laravel, baseline, CI)
Port PR #6646 onto staging: add psalm/plugin-laravel with psalm.xml,
a staging-generated baseline, and a CI workflow that emits GitHub
annotations and uploads SARIF to Code Scanning. Fix the psalm.xml schema
for Psalm 6.5 (drop unsupported ClassMustBeFinal handler) and ignore
generated report artifacts in git/docker.
4 weeks ago
Daniel Supernault 1810caac2d
Update composer 4 weeks ago
Your Name 1696dfacaa chore: remove unused direct dependencies
- Remove endroid/qr-code: never imported in app code; only
  bacon/bacon-qr-code is used directly (for 2FA QR generation).
- Remove nesbot/carbon: already pulled in transitively by
  laravel/framework, laravel/horizon, and laravel/pulse.
4 weeks ago
Your Name 0c849ca4e7 fix: unpin symfony/http-foundation to allow patch updates
Changes constraint from exact '7.4.13' to '^7.4.13'. The pin was
introduced for CVE-2026-48736 but is overly restrictive — any 7.4.x
release >= 7.4.13 includes the fix. This allows future security
patches to install via composer update.

Note: Symfony 8.x is blocked by laravel/framework ^12 which requires
symfony/http-foundation ^7.2.0. Symfony 8 support arrives with Laravel 13.
4 weeks ago
Your Name 8a2649b3ff feat: add critical path test suite and fix auth/config issues
Test Infrastructure:
- Modernize phpunit.xml (bootstrap, source block, Laravel 12 env vars)
- Configure tests/Pest.php with pest()->extend(TestCase::class)->in('Feature')
- Add docker-compose.test.yml (Redis for test suite)
- Add composer test/test:quick scripts
- Rename CACHE_DRIVER to CACHE_STORE across config (backwards compatible)
- Update .env.testing for in-memory SQLite + Docker Redis

Test Coverage (190 tests):
- CriticalRoutes: public routes, auth routes, API endpoints, middleware, schedule
- Auth/LoginTest: login, logout, rate limiting, redirect behavior
- Auth/RegisterTest: registration flow, validation, disabled registration
- Auth/PasswordResetTest: reset request, token validation, password update
- Auth/TwoFactorTest: 2FA checkpoint, setup behind password confirmation
- Auth/PasswordConfirmationTest: sudo mode flow via Laravel password.confirm
- Api/ScopeTest: scope enforcement, public endpoints, admin access

Bugs Fixed:
- Fix unauthenticated API returning 500 instead of 401 (AuthenticationException
  not handled in custom exception renderer in bootstrap/app.php)
- Replace custom DangerZone middleware with Laravel password.confirm
- Add HasFactory trait to Profile model for test factories

Bugs Documented (known-bugs group):
- Registration crashes with str_ends_with TypeError (RegisterController:82)
- OAuth routes use legacy array syntax causing ReflectionFunction TypeError
4 weeks ago
Your Name edb4368b08 refactor: replace deprecated laravel/helpers with native alternatives
Replace all deprecated helper function calls:
- str_slug() → Str::slug()
- starts_with() → str_starts_with()
- ends_with() → str_ends_with()
- array_first() → Arr::first()
- array_last() → Arr::last()
- array_flatten() → Arr::flatten()

Remove laravel/helpers package from composer.json as it is no longer
needed and will not be maintained for Laravel 13.
4 weeks ago
Daniel Supernault e4033b05bd
Update composer 4 weeks ago
Your Name 79541afaa0 Merge origin/staging, resolve conflicts keeping matomo/device-detector over jenssegers/agent 4 weeks ago
Your Name 552a55c2d2 Upgrade images to v4 4 weeks ago
Shlee 833c34e3a7
Merge branch 'staging' into shleeable-patch-6 4 weeks ago
Your Name 9a9726af7c Install Larastan for static analysis
- Add larastan/larastan v3.10 (dev dependency)
- Configure phpstan.neon at level 0 with Laravel extension
- Generate baseline for existing errors (711 items)
- Exclude files with missing class references
- Fix one non-ignorable return type error in BearerTokenResponse
- Add composer analyse script

Usage: composer analyse
4 weeks ago
Shlee 64eb52596b
Add linting scripts to composer.json 4 weeks ago
Your Name 651f0de74f Replace jenssegers/agent with matomo/device-detector
- Remove unmaintained jenssegers/agent package (no releases since 2021)
- Add matomo/device-detector v6.5 as actively maintained replacement
- Create App\Services\UserAgentService wrapper for drop-in compatibility
- Update UserDevice model and ApiV1Dot1Controller to use new service
4 weeks ago
Severin 971b3b7ac1
Update symfony/http-foundation requirement due CVE-2026-48736
Pushing symfony/http-foundation to the newest 7.x version that fixes the CVE (see also https://packagist.org/security-advisories/PKSA-y6py-qpv1-h52p)
3 months ago
Daniel Supernault a78a022283
Update passport. Fixes #6480 7 months ago
Ramon van Belzen 373aa01dfc
composer: accept php 8.5 9 months ago
Daniel Supernault 09bb93af51
Update composer 10 months ago
Daniel Supernault a3532c2e21
Update composer, fix deps 10 months ago
dansup d4cf6b9f62
Merge branch 'staging' into laravellock1 10 months ago
dansup eae2dafcac
Merge branch 'staging' into intervention-laravel-clean 10 months ago
dansup 35285b73a3
Merge branch 'staging' into predis 10 months ago
Your Name 6a931d6516 update 10 months ago
Your Name 26f1af3bcd update 10 months ago
Your Name c05cf8a824 update 10 months ago
Shlee 064e98be50
Update composer.json 10 months ago
Your Name cea1076c9c Update 10 months ago