Commit Graph

12996 Commits (eae6253731f9e8e6b39efd9bea5c1c274c506d8d)
 

Author SHA1 Message Date
Shlee eae6253731
Merge pull request #6958 from pixelfed/fix/remcache-tmp-file-leak
feat: migrate local story media to cloud storage
4 weeks ago
Your Name 9f110bb74c feat: migrate local story media to cloud storage
Ensure story media lands on and stays on cloud storage for S3 instances.

- StoryExpire: archive expiring story media on the same explicit disk the
  media lives on (S3 move is a server-side copy+delete), with error handling
- Add admin:StoryMoveStorageLocalToCloud to migrate local story media
  (active + story_archives) to cloud: copy, verify by size, then delete local
- --orphans option relocates untracked story_archives/ files to cloud using
  the same copy/verify/delete flow (media is moved, never discarded)
- Schedule it hourly alongside the media migration when cloud storage is on
4 weeks ago
Shlee ec1c778c97
Merge pull request #6957 from pixelfed/fix/remcache-tmp-file-leak
Fix/remcache tmp file leak
4 weeks ago
Your Name 9704fd5a36 refactor: use GarbageCollector prefix for GC console command classes
Rename the internal garbage collector commands to a consistent
GarbageCollector* naming scheme (file + class). Command signatures are
unchanged, so the scheduler and cron entries are unaffected.

- MediaGarbageCollector          -> GarbageCollectorMedia
- DatabaseSessionGarbageCollector -> GarbageCollectorDatabaseSession
- FailedJobGC                    -> GarbageCollectorFailedJob
- PasswordResetGC                -> GarbageCollectorPasswordReset
- GCRemcache                     -> GarbageCollectorRemcache
- StoryGC                        -> GarbageCollectorStory
- ImportUploadGarbageCollection  -> GarbageCollectorImportUpload
4 weeks ago
Your Name 57b3bf140b refactor: rename RemcacheGarbageCollector to GCRemcache 4 weeks ago
Your Name 3232761a74 fix: prevent remcache temp file leaks and add GC command
The remote avatar/media fetchers wrote temp files to storage/app/remcache/
and only unlinked them on the happy path. Any exception between the write
and the unlink (e.g. a cloud upload failure) leaked the file, and nothing
swept the directory.

- Wrap post-write logic in fetchAvatar() and remoteToCloud() in try/finally
  so the temp file is always removed, even on failure
- Add gc:remcache command to delete stale remcache files (default >24h old,
  preserves .gitignore, supports --hours and --dry-run)
- Schedule gc:remcache daily to clean up any stragglers

StoryFetch already handled cleanup via try/catch and was left unchanged.
4 weeks ago
Shlee 1f85fc8da2
Merge pull request #6954 from pixelfed/add-psalm-report-script
Add psalm report script
4 weeks ago
Your Name 878775cab9 chore: resolve psalm issues in admin commands and auth
- Add return type hints (void) and final class markers
- Guard null returns from newestBackup() and putFileAs() in BackupToCloud
- Type ask() default values as strings
- Fix uses_left fallback condition for null/zero max_uses
- Annotate AdminInvite::whereInviteCode and cast Str::uuid() to string
- Ignore local redis-data and mysql-9-data dev directories
4 weeks ago
Your Name fb69275cd7 chore: target PHP 8.4 in psalm config
Set phpVersion="8.4" so Psalm targets 8.4 explicitly instead of
inferring 8.3 from composer.json's ^8.3|^8.4 constraint.
4 weeks ago
Shlee 4b45ac72b8
Merge pull request #6953 from pixelfed/add-psalm-report-script
chore: add composer psalm:report script for a full local txt report
4 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
Shlee bbc15a64e7
Merge pull request #6952 from pixelfed/revert-hashtags-collation
Revert hashtags collation migration from #6098
4 weeks ago
Your Name 4056747666 Revert hashtags collation migration from #6098
Migration failed with a duplicate entry error: recollating to
utf8mb4_unicode_520_ci causes previously-distinct hashtag names/slugs
to collide on the unique indexes. Reverting until the data is
de-duplicated first.
4 weeks ago
Shlee 0e77345930
Merge pull request #6951 from pixelfed/shleeable-patch-1
Shleeable patch 1
4 weeks ago
Shlee 765e10ea66
Update php-pint.yml 4 weeks ago
Shlee 338d4da427
Update php-laravel-tests.yml 4 weeks ago
Shlee 9dfb5c062e
Update php-larastan.yml 4 weeks ago
Shlee 336f5f899f
Merge pull request #6098 from bpeel/hashtags-outside-bmp
Fix hashtags usings scripts outside the BMP on MySQL
4 weeks ago
Shlee 27768cd69c
Create HashtagCollationTest.php 4 weeks ago
Shlee e53e82faf3
Update 2025_07_31_164635_change_hashtags_collation.php 4 weeks ago
Shlee 94362ba8b9
Merge pull request #6950 from pixelfed/fix/6588-compacted-note-attachments
Fix/6588 compacted note attachments
4 weeks ago
Your Name 87ed60d675 Accept compacted Note attachments (#6588)
Normalize JSON-LD compacted single attachments (a bare object instead of a
one-item array) in getAttachments(), and route verifyAttachments() through it
so validation and import share one normalization path.

Includes PR #6589's tests plus additional edge-case coverage: list-form
preservation, bare-input normalization, and guards for missing/empty/scalar
attachments.
4 weeks ago
Shlee 4f9fafbc23
Merge pull request #6949 from pixelfed/fix/oidc-test-larastan
Fix/OIDC test larastan
4 weeks ago
Your Name d86fd28e34 polish 4 weeks ago
Your Name b7c15dc7ca Fix larastan errors in RemoteOidcTest: import Test attribute and RefreshDatabase, replace removed str_random helper 4 weeks ago
Shlee 79af98f9d0
Merge pull request #6667 from vinzgreg/fix/blurhash-memory-strands-video-uploads
Fix videos never reaching cloud storage by downscaling in Blurhash (#2652)
4 weeks ago
Shlee 186fa7c860
Update VideoThumbnail.php 4 weeks ago
Shlee d0ed7293e9
Merge pull request #6948 from pixelfed/add-psalm
Add vimeo/psalm and composer scripts
4 weeks ago
Your Name 4e0c567ecd Add vimeo/psalm and composer scripts 4 weeks ago
Shlee b291b7bf65
Merge pull request #6783 from thomasjacumin/dev
Use Mastodon username convention for OIDC
4 weeks ago
Shlee a82dc91295
Merge branch 'staging' into dev 4 weeks ago
Shlee f710b5eee8
Merge pull request #6947 from pixelfed/shleeable-patch-1
Update php-psalm.yml
4 weeks ago
Shlee 27f7127ccd
Update php-psalm.yml 4 weeks ago
Shlee 32aa90301f
Merge pull request #6946 from pixelfed/shleeable-patch-1
Update php-psalm.yml
4 weeks ago
Shlee 3058d3f816
Update php-psalm.yml
Comment out the SARIF report check and upload steps in the workflow.
4 weeks ago
Shlee 6d9521e1c8
Merge pull request #6945 from pixelfed/chore/add-psalm-static-analysis
Chore/add psalm static analysis
4 weeks ago
Your Name 25494c4911 ci(psalm): run analyzer on PHP 8.4 to avoid 8.5 crash
Psalm 6.5.0 fatally crashes on PHP 8.5 (deprecated SplObjectStorage::attach
escalated by its error handler) before analyzing anything. Pin the Psalm
job to 8.4 so it runs and produces SARIF; revert to 8.5 once Psalm supports
it.
4 weeks ago
Your Name aed7936e4e ci(psalm): skip SARIF upload when report is missing
Replace the blank-SARIF fallback with an existence check; uploading an
empty SARIF would clear existing Code Scanning alerts. Now the upload is
skipped (with a warning) when Psalm produced no report.
4 weeks ago
Your Name 5cecde6708 ci(psalm): guarantee SARIF file exists and upgrade upload-sarif to v4
Add a fallback step that writes a minimal valid SARIF report when Psalm
exits before producing one, so the Code Scanning upload never hard-fails
the job. Bump github/codeql-action/upload-sarif v3 -> v4.
4 weeks ago
Shlee aa46ca2ba2
Merge pull request #6944 from pixelfed/chore/add-psalm-static-analysis
chore: add Psalm static analysis (plugin-laravel, baseline, CI)
4 weeks ago
Your Name 6945277e2c ci(psalm): align workflow with php-* conventions, test on PHP 8.5
Rename psalm.yml to php-psalm.yml to match sibling workflows, bump PHP
8.4 -> 8.5, use the shared checkout/setup-php/cache/composer steps and
staging/dev/unstable triggers. Keeps report-only behavior and SARIF
Code Scanning upload.
4 weeks ago
Your Name 2617211c1f ci(psalm): report findings but never fail the job 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
Shlee cca9eb426d
Merge pull request #6942 from pixelfed/feature/fix-post-counts-command
Feature/fix post counts command
4 weeks ago
Your Name 078380723f style: import DB facade in FixPostCounts test (pint) 4 weeks ago
Your Name ec5be52418 test: add feature tests for admin:fixPostCounts
Cover source-of-truth resync of likes/boosts/comments, dry-run, no-op on
correct data, --type restriction, argument validation, and bulk --all
mode. Includes regression tests for the two reporting bugs: the summary
now lists only drifted metrics, and a null reply_count renders as 0.
4 weeks ago
Your Name de850836ca fix: make admin:fixPostCounts summary report only changed metrics
The resynced summary printed all three counts unconditionally, which
made an untouched metric (e.g. an already-correct comments count) look
like it had been resynced. Drive the summary from the drifted set and
show before->after values, so it matches the drift detection exactly.
4 weeks ago
Your Name d50024a578 fix: display comments count as 0 instead of blank in admin:fixPostCounts
reply_count is a nullable column, so NULL rendered as an empty string in
the resync summary. Cast the summary output to int so a null/absent
comment count prints as 0. No behavior change to the reconcile logic.
4 weeks ago
Shlee 303182daf8
Merge pull request #6940 from pixelfed/feature/fix-post-counts-command
feat: add admin:fixPostCounts to resync post like/boost/comment counts
4 weeks ago
Your Name 73b8353dab refactor: move admin:fix*Counts commands to Admin/
FixProfileCounts and FixPostCounts use the admin: signature prefix and
are operator-run maintenance tools, so move them from FixBugs/ to Admin/
(namespace updated) and refresh the README tables to match.
4 weeks ago