Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
516 commits
Select commit Hold shift + click to select a range
b35b3a8
Fix arg order for non_matching_uri_hosts? call in QuoteRequest (#37425)
MegaManSec Jan 9, 2026
b55982c
Fix Vary parsing in cache control enforcement (#37426)
MegaManSec Jan 9, 2026
a4b8b9f
Fix bug with how Emojibase wasn't stripping characters (#37442)
ChaosExAnima Jan 9, 2026
a9cfddf
AP/AS serialization of Collections (#37434)
oneiros Jan 12, 2026
0fb4e26
Add details to JS browser error spec failure helpers (#37441)
mjankowski Jan 12, 2026
8f70cfc
New Crowdin Translations (automated) (#37447)
github-actions[bot] Jan 12, 2026
012c621
Update dependency sidekiq-unique-jobs to v8.0.13 (#37408)
renovate[bot] Jan 12, 2026
aa3d769
Update dependency ioredis to v5.9.1 (#37388)
renovate[bot] Jan 12, 2026
ed17b3a
Update dependency use-debounce to v10.1.0 (#37432)
renovate[bot] Jan 12, 2026
972ed73
Update DefinitelyTyped types (non-major) (#37456)
renovate[bot] Jan 13, 2026
a63a0db
Update dependency postcss-preset-env to v10.6.1 (#37457)
renovate[bot] Jan 13, 2026
6cb5333
New Crowdin Translations (automated) (#37466)
github-actions[bot] Jan 13, 2026
f8b8fa1
Update dependency pino to v10.1.1 (#37443)
renovate[bot] Jan 13, 2026
9332f48
Simplify status batch removal SQL query (#37469)
ClearlyClaire Jan 13, 2026
9b5986b
Fix `quote_approval_policy` being reset to user defaults when omitted…
shleeable Jan 13, 2026
5b54cd7
Add ability to include inline javascript (#37459)
ClearlyClaire Jan 13, 2026
be60c45
Fix keyboard navigation in media modal after clicking image (#37464)
heathdutton Jan 13, 2026
4163965
Fix `isDarkMode` utility (#37470)
diondiondion Jan 13, 2026
d5264b3
Update dependency aws-sdk-s3 to v1.211.0 (#37396)
renovate[bot] Jan 13, 2026
232b9e9
Fix delivery worker counting unsalvageable HTTP errors as successes (…
shleeable Jan 13, 2026
122b159
Add feature flag detection for profile redesign (#37472)
ChaosExAnima Jan 13, 2026
c6be114
Non-ActivityPub Link header alternate blocks HTML ActivityPub discove…
shleeable Jan 13, 2026
92ad380
Update rubocop to version 1.82.1 (#37475)
mjankowski Jan 13, 2026
19bc3e7
Add spec for quote policy update change (#37474)
mjankowski Jan 13, 2026
ccf3ed0
Update Node.js to 24.13 (#37473)
renovate[bot] Jan 14, 2026
2f91d97
New Crowdin Translations (automated) (#37482)
github-actions[bot] Jan 14, 2026
c218849
Add collection endpoint (#37468)
oneiros Jan 14, 2026
8390f0d
Update dependency rqrcode to v3.2.0 (#37431)
renovate[bot] Jan 14, 2026
d612119
Update dependency thor to v1.5.0 (#37406)
renovate[bot] Jan 14, 2026
6fdef11
Update dependency globals to v17 (#37360)
renovate[bot] Jan 14, 2026
5d03d5d
Update dependency libvips to v8.18.0 (#37282)
renovate[bot] Jan 14, 2026
4bdc9d5
Update dependency vite to v7.3.1 (#37248)
renovate[bot] Jan 14, 2026
10de65e
Fix `FeedManager#filter_from_home` error when handling a reblog of a …
ClearlyClaire Jan 14, 2026
8eff59b
Update dependency httplog to '~> 1.8.0' (#37484)
renovate[bot] Jan 15, 2026
dd52e61
Update opentelemetry-ruby (non-major) (#37480)
renovate[bot] Jan 15, 2026
1482a7b
Update dependency postcss-preset-env to v11 (#37485)
renovate[bot] Jan 15, 2026
47557f5
New Crowdin Translations (automated) (#37492)
github-actions[bot] Jan 15, 2026
2a6c084
Update SECURITY.md (#37506)
ClearlyClaire Jan 15, 2026
f2fb232
Account header split up (#37490)
ChaosExAnima Jan 15, 2026
c09fbeb
MiniCard and MiniCardList components (#37479)
ChaosExAnima Jan 15, 2026
bc2f8a3
Enable theming via new HTML element attributes (#37477)
diondiondion Jan 15, 2026
93f5ed0
Fix directory showing load more button when no more profiles exist (#…
heathdutton Jan 15, 2026
0d9fcb5
New Crowdin Translations (automated) (#37517)
github-actions[bot] Jan 16, 2026
be00db4
Use snowflake ids for collections and their items (#37514)
oneiros Jan 16, 2026
e58084a
Update `theme_color_tags` helper for new theme infrastructure (#37519)
ClearlyClaire Jan 16, 2026
9185637
Update the “embedded” styling to the new theme infrastructure (#37520)
ClearlyClaire Jan 16, 2026
047338e
Profile fields redesign (#37513)
ChaosExAnima Jan 16, 2026
e715bb5
Add high-contrast styles to common stylesheet (#37523)
diondiondion Jan 16, 2026
5b5b000
Update dependency pino to v10.2.0 (#37507)
renovate[bot] Jan 16, 2026
a9bdf5e
Update dependency pg-connection-string to v2.10.0 (#37495)
renovate[bot] Jan 16, 2026
5727b86
Fix error pages not using the new theming infrastructure (#37524)
ClearlyClaire Jan 16, 2026
e21cb9f
Update dependency pg to v8.17.1 (#37494)
renovate[bot] Jan 16, 2026
cc3c7ba
Fix `system` theme being included twice (#37526)
ClearlyClaire Jan 16, 2026
f05e76e
Update dependency postcss-preset-env to v11.1.1 (#37508)
renovate[bot] Jan 19, 2026
4339f0e
Update dependency ioredis to v5.9.2 (#37510)
renovate[bot] Jan 19, 2026
fd78aa9
Update dependency haml_lint to v0.69.0 (#37531)
renovate[bot] Jan 19, 2026
e4c6130
New Crowdin Translations (automated) (#37532)
github-actions[bot] Jan 19, 2026
9b6500f
Skip tombstone creation on deleting from 404 (#37533)
ClearlyClaire Jan 19, 2026
2201157
Fix potential duplicate handling of quote accept/reject/delete (#37537)
ClearlyClaire Jan 19, 2026
ad77ee7
Add coverage for misc "policy" classes (#37525)
mjankowski Jan 19, 2026
51224bb
Add "featured collections" collection to actors (#37512)
oneiros Jan 20, 2026
8ff7662
New Crowdin Translations (automated) (#37545)
github-actions[bot] Jan 20, 2026
fa9b905
Improve `apiRequest` helper types (#37544)
diondiondion Jan 20, 2026
a1c17fe
Profile redesign: Account name (#37527)
ChaosExAnima Jan 20, 2026
7cdc05b
Add `language` attribute to collections (#37549)
oneiros Jan 20, 2026
c2f776b
Merge commit from fork
ClearlyClaire Jan 20, 2026
7a0d3d3
Merge commit from fork
ClearlyClaire Jan 20, 2026
841dfce
Merge commit from fork
ClearlyClaire Jan 20, 2026
028e76f
Merge commit from fork
ClearlyClaire Jan 20, 2026
400c1f3
Bump version to v4.5.5 (#37551)
ClearlyClaire Jan 20, 2026
22ec368
Profile redesign: Badges (#37550)
ChaosExAnima Jan 20, 2026
e65103b
Fix rendering of initial state when `collections` feature is enabled …
oneiros Jan 21, 2026
e7c6600
Fix cross-server conversation tracking (#37559)
ClearlyClaire Jan 21, 2026
783504f
Do not return undiscoverable collections (#37560)
oneiros Jan 21, 2026
24ffa00
Update dependency pino to v10.2.1 (#37543)
renovate[bot] Jan 21, 2026
5d82d48
Update dependency stylelint-config-standard-scss to v17 (#37511)
renovate[bot] Jan 21, 2026
e79d51c
Profile redesign: verified badges (#37538)
ChaosExAnima Jan 21, 2026
1468f94
New Crowdin Translations (automated) (#37555)
github-actions[bot] Jan 21, 2026
22e438d
Update dependency @csstools/stylelint-formatter-github to v2 (#37515)
renovate[bot] Jan 21, 2026
6897475
Adds theming to Storybook (#37562)
ChaosExAnima Jan 21, 2026
3219373
Add profile field limits to instance serializer (#37535)
mkljczk Jan 21, 2026
562ea65
Add coverage for `TagManager#normalize_domain` (#35994)
mjankowski Jan 21, 2026
42b2fdb
Re-download Material Icons (#37571)
ChaosExAnima Jan 22, 2026
9581033
Shorten caching of quote posts pending approval (#37570)
ClearlyClaire Jan 22, 2026
52ca91c
Update dependency pg-connection-string to v2.10.1 (#37558)
renovate[bot] Jan 22, 2026
8dcd388
Update dependency aws-sdk-s3 to v1.212.0 (#37536)
renovate[bot] Jan 22, 2026
7b94792
Typo fix in federation document (#37564)
mjankowski Jan 22, 2026
3a84b73
New Crowdin Translations (automated) (#37569)
github-actions[bot] Jan 22, 2026
157d8c0
Remove deprecated usage of imagemagick (#37488)
mjankowski Jan 22, 2026
3806d15
Update dependency pg to v8.17.2 (#37557)
renovate[bot] Jan 22, 2026
1809048
Safefy: Updated Admin::AccountDeletionWorker to match AccountDeletion…
shleeable Jan 22, 2026
0924171
Add form field components: `TextInputField`, `TextAreaField`, `Select…
diondiondion Jan 22, 2026
1835ce3
Update dependency stylelint to v17 (#37509)
renovate[bot] Jan 22, 2026
e12f39a
New Crowdin Translations (automated) (#37584)
github-actions[bot] Jan 23, 2026
de63b61
Change Collections API shape (#37580)
oneiros Jan 23, 2026
ad735d3
Set up modes for Chromatic (#37586)
ChaosExAnima Jan 23, 2026
6a1afa2
Update dependency sass to v1.97.3 (#37573)
renovate[bot] Jan 23, 2026
e203795
Update dependency cors to v2.8.6 (#37579)
renovate[bot] Jan 23, 2026
53c620b
Update dependency lodash to v4.17.23 [SECURITY] (#37572)
renovate[bot] Jan 23, 2026
0a0e253
Toggle component (#37582)
ChaosExAnima Jan 23, 2026
c5c7031
Return empty array when requesting collections of an account that blo…
oneiros Jan 23, 2026
93bda9c
Update dependency core-js to v3.48.0 (#37574)
renovate[bot] Jan 23, 2026
d05df5c
Fix quote cache invalidation (#37592)
ClearlyClaire Jan 23, 2026
a1acf8f
Add "My collections" page (#37552)
diondiondion Jan 23, 2026
c1414f1
Callout component (#37590)
ChaosExAnima Jan 23, 2026
c36db57
Update dependency faker to v3.6.0 (#37575)
renovate[bot] Jan 23, 2026
29ec2cd
Add `targeted_account_notes` association to simplify usage (#35540)
mjankowski Jan 23, 2026
7022572
Change 'anyone can quote' label to 'quotes allowed' (#37427)
vmstan Jan 26, 2026
1b748ea
Fix irrelevant accounts being passed through `silenced_account_ids` t…
ClearlyClaire Jan 26, 2026
2edcb23
Update dependency vite-tsconfig-paths to v6.0.5 (#37446)
renovate[bot] Jan 26, 2026
f7a2e5c
Use validation matchers for InstanceModerationNote spec (#37597)
mjankowski Jan 26, 2026
876ccfe
Use `Report#local?` delegation more broadly (#37596)
mjankowski Jan 26, 2026
24fb3e8
Use collection render on admin dashboard system checks (#35976)
mjankowski Jan 26, 2026
e317645
New Crowdin Translations (automated) (#37598)
github-actions[bot] Jan 26, 2026
89c1b9a
Update dependency devise-two-factor to v6.3.1 (#37430)
renovate[bot] Jan 26, 2026
6a73618
New Crowdin Translations (automated) (#37621)
github-actions[bot] Jan 27, 2026
60e5e7e
Update dependency axios to v1.13.3 (#37608)
renovate[bot] Jan 27, 2026
f1e0d81
Update dependency postcss-preset-env to v11.1.2 (#37609)
renovate[bot] Jan 27, 2026
cd7ffb5
Update dependency hiredis-client to v0.26.4 (#37610)
renovate[bot] Jan 27, 2026
73fc409
Fix filtering of mentions from filtered-on-their-origin-server accoun…
ClearlyClaire Jan 27, 2026
634ff77
Convert `settings/aliases` spec controller->system (#37617)
mjankowski Jan 27, 2026
604bed2
Convert `oauth/authorizations` spec controller->request (#37613)
mjankowski Jan 27, 2026
142714c
Update dependency pino to v10.3.0 (#37588)
renovate[bot] Jan 27, 2026
aa34770
Convert `oauth/authorized_applications` spec controller->request (#37…
mjankowski Jan 27, 2026
1d4c2c5
Federate creation of collections (#37618)
oneiros Jan 27, 2026
a28ccf2
Use validation matchers for `PollExpirationValidator` spec (#37616)
mjankowski Jan 27, 2026
9ea64fc
Fix `last_status_at` not accurately tracking last status time for rem…
ClearlyClaire Jan 27, 2026
76ab866
Deprecate need for revert-layer CSS (#37632)
ChaosExAnima Jan 27, 2026
7a7c42b
Makes bundle visualizer output JSON when in CI (#37633)
ChaosExAnima Jan 27, 2026
c0616bc
Profile redesign: Username update (#37627)
ChaosExAnima Jan 27, 2026
34f0482
Profile redesign: Account notes (#37593)
ChaosExAnima Jan 27, 2026
48c102a
Use validation matchers for `DateOfBirthValidator` spec (#37631)
mjankowski Jan 27, 2026
a20519d
Clean up arg handling for notification worker (#37587)
ClearlyClaire Jan 27, 2026
7af5ba2
Fix error when encountering invalid tag in updated object (#37635)
ClearlyClaire Jan 27, 2026
5a05c97
Update dependency test-prof to v1.5.1 (#37629)
renovate[bot] Jan 28, 2026
17533cb
Update dependency simple-navigation to v4.4.1 (#37622)
renovate[bot] Jan 28, 2026
8ba87ef
New Crowdin Translations (automated) (#37639)
github-actions[bot] Jan 28, 2026
1ae6b52
Reduce `oauth/authorizations` monkey-patch size (#37615)
mjankowski Jan 28, 2026
6af4696
Add backend support for storing remote actors profile pic and header …
ClearlyClaire Jan 28, 2026
d438161
Unclosed connection leak when replacing pooled connection in SharedTi…
shleeable Jan 28, 2026
3f46034
Tags component (#37638)
ChaosExAnima Jan 28, 2026
ec76288
Profile redesign: Timeline filters (#37626)
ChaosExAnima Jan 28, 2026
f1c00fe
Fix quote cancel button not appearing after edit then delete-and-redr…
PGrayCS Jan 28, 2026
6a995de
Experiment with adding a bundle comparison tool (#37630)
ChaosExAnima Jan 28, 2026
c162648
Group classes in media proxy `rescue_from` declaration (#37304)
mjankowski Jan 28, 2026
f861a5c
Add `action_logs` association for account (#36022)
mjankowski Jan 28, 2026
a495a0c
Fix avatar and header descriptions being returned for suspended accou…
ClearlyClaire Jan 28, 2026
14ca5d0
Use collection partial for rule translation in signup flow (#35932)
mjankowski Jan 28, 2026
42dfd6c
New Crowdin Translations (automated) (#37647)
github-actions[bot] Jan 28, 2026
a688324
Remove unused `nan` locale files (replaced by `nan-TW`) (#37650)
ClearlyClaire Jan 28, 2026
8efcdc0
Add `nan-TW` to interface languages (#34923)
Yoxem Jan 28, 2026
9079a75
Profile redesign: Featured tags (#37645)
ChaosExAnima Jan 29, 2026
8a42689
Prevent account note from appearing on your own profile (#37653)
ChaosExAnima Jan 29, 2026
2427e14
Add initial collections editor page (#37643)
diondiondion Jan 29, 2026
bc3871f
Fix followers with profile subscription (bell icon) being notified of…
ClearlyClaire Jan 29, 2026
23148dc
Update rubocop to version 1.8.40 (#37628)
mjankowski Jan 29, 2026
2cea3cc
Update dependency axios to v1.13.4 (#37640)
renovate[bot] Jan 29, 2026
21f8fc8
New Crowdin Translations (automated) (#37655)
github-actions[bot] Jan 29, 2026
6f53b0b
Implement editing collection settings and deleting collections (#37658)
diondiondion Jan 29, 2026
0196c12
Update dependency dotenv to v17 (#35216)
renovate[bot] Jan 29, 2026
d5d57ac
Add flag to preserve cached media on cleanup (#36200)
northerner Jan 29, 2026
d0502ac
Use "namespace style" for URL generation in `admin/` area forms (#35080)
mjankowski Jan 29, 2026
0997ae0
Clear affected relationship cache on Move activities (#37664)
ClearlyClaire Jan 30, 2026
0688e64
Fix instance api account merging (#37666)
ChaosExAnima Jan 30, 2026
3f16c48
Fix connection recycling pushing symbols to connection pool (#37674)
ClearlyClaire Jan 30, 2026
6a5578a
New Crowdin Translations (automated) (#37668)
github-actions[bot] Jan 30, 2026
a757901
Change bundlesize-compare workflow to compare with the result of the …
ClearlyClaire Jan 30, 2026
a7a33ef
Adds new Checkbox and CheckboxField components (#37665)
diondiondion Jan 30, 2026
6bf2b27
New Crowdin Translations (automated) (#37688)
github-actions[bot] Feb 2, 2026
65ccf89
Update dependency pg-connection-string to v2.11.0 (#37687)
renovate[bot] Feb 2, 2026
1100035
Profile redesign: Additional badges (#37683)
ChaosExAnima Feb 2, 2026
89be203
Update dependency brakeman to v8 (#37673)
renovate[bot] Feb 2, 2026
b3086ff
Update dependency annotaterb to v4.21.0 (#37672)
renovate[bot] Feb 2, 2026
69351b3
Update dependency aws-sdk-s3 to v1.213.0 (#37656)
renovate[bot] Feb 2, 2026
29e5532
Add components `RadioButton` and `Fieldset` (#37685)
diondiondion Feb 2, 2026
c6f5315
Add text-autospace to status content (#37694)
ahxxm Feb 2, 2026
d0cd436
Update dependency pg to v8.18.0 (#37686)
renovate[bot] Feb 2, 2026
9de5463
Add coverage for "too many IDs" scenario in `api/v1/statuses` (#37699)
mjankowski Feb 2, 2026
6188de3
Add ActivityPub serializer specs (#37706)
oneiros Feb 2, 2026
ceb4a87
Add `Select` component (#37702)
diondiondion Feb 2, 2026
c1272c4
New Crowdin Translations (automated) (#37714)
github-actions[bot] Feb 3, 2026
218ca36
Add components `TextInput`, `TextArea`, and `FormStack` (#37705)
diondiondion Feb 3, 2026
346ca87
Profile redesign: Follow button and menu reorg (#37707)
ChaosExAnima Feb 3, 2026
0923e2c
Profile redesign: Fields iteration (#37682)
ChaosExAnima Feb 3, 2026
629125c
Merge commit from fork
ClearlyClaire Feb 3, 2026
c48634c
Bump version to v4.5.6 (#37722)
ClearlyClaire Feb 3, 2026
1cb3b49
New Crowdin Translations (automated) (#37729)
github-actions[bot] Feb 4, 2026
7d4f5ec
Update dependency devise-two-factor to v6.4.0 (#37708)
renovate[bot] Feb 4, 2026
a7aa52c
Update dependency aws-sdk-core to v3.242.0 (#37711)
renovate[bot] Feb 4, 2026
4f99b48
Convert `admin/accounts` controller->request specs (#37727)
mjankowski Feb 4, 2026
ee631bf
Make “Following” correctly translatable (#37671)
valtlai Feb 4, 2026
7f53a77
Refactors header from Status component (#37732)
ChaosExAnima Feb 4, 2026
015d88b
New Crowdin Translations (automated) (#37733)
github-actions[bot] Feb 4, 2026
0d6fc80
Convert `auth/confirmations` spec controller->request (#37735)
mjankowski Feb 4, 2026
8ebe2e6
Split collection editor into dedicated routes (#37731)
diondiondion Feb 4, 2026
7320685
Refactor activity serialization (#37678)
oneiros Feb 5, 2026
8949ef5
Update dependency kt-paperclip to v7.3.0 (#37689)
renovate[bot] Feb 5, 2026
6f47a77
Update dependency test-prof to v1.5.2 (#37726)
renovate[bot] Feb 5, 2026
8a65965
Update dependency brakeman to v8.0.2 (#37728)
renovate[bot] Feb 5, 2026
e82eb2b
Convert `admin/confirmations` spec controller->request/system (#37738)
mjankowski Feb 5, 2026
ed649fb
New Crowdin Translations (automated) (#37740)
github-actions[bot] Feb 5, 2026
e24a19f
Update dependency jsdom to v28 (#37697)
renovate[bot] Feb 5, 2026
c53c42b
Update dependency @vitejs/plugin-react to v5.1.3 (#37698)
renovate[bot] Feb 5, 2026
ffb84ea
Remove `bin/bundle` stub for bundler (#37461)
mjankowski Feb 5, 2026
9cd9416
Federate `Remove` when collection is deleted (#37741)
oneiros Feb 5, 2026
f652c54
Update devise to version 5.0 (#37419)
mjankowski Feb 5, 2026
d2dca82
Cancel quote button appearing in all statuses (#37742)
ChaosExAnima Feb 5, 2026
ecdc7ff
Add defensive check to `AfterUnallowDomainService` (#37744)
shleeable Feb 5, 2026
af5ce5d
Use validation matchers for `DomainValidator` spec (#37662)
mjankowski Feb 5, 2026
da4a149
Update dependency oj to v3.16.14 (#37736)
renovate[bot] Feb 5, 2026
acdd0b3
Pre-update some config file no-op changes from 8.1 branch (#37746)
mjankowski Feb 5, 2026
7a4945c
Show mute end date in badge (#37747)
ChaosExAnima Feb 5, 2026
96de28d
Enable coexistence of horizontal and vertical posts (#37204)
shimon1024 Feb 6, 2026
b1d4459
New Crowdin Translations (automated) (#37755)
github-actions[bot] Feb 6, 2026
5b24f40
Fix processing of object updates with duplicate hashtags (#37756)
ClearlyClaire Feb 6, 2026
2768ab7
Add new components `Combobox` and `EmptyState` (#37748)
diondiondion Feb 6, 2026
7e27ba9
Move account search into hook (#37762)
diondiondion Feb 6, 2026
1310628
Bust relationship cache key (#37760)
ChaosExAnima Feb 6, 2026
2e30044
Profile redesign: Pinned posts (#37761)
ChaosExAnima Feb 6, 2026
08003ba
Update dependency postcss-preset-env to v11.1.3 (#37758)
renovate[bot] Feb 9, 2026
1dbf69d
Update dependency oj to v3.16.15 (#37757)
renovate[bot] Feb 9, 2026
08f9af9
Update dependency dotenv to v17.2.4 (#37753)
renovate[bot] Feb 9, 2026
77bc8f7
Update dependency @types/react to v18.3.28 (#37777)
renovate[bot] Feb 9, 2026
6ec4bd5
New Crowdin Translations (automated) (#37767)
github-actions[bot] Feb 9, 2026
3f845e6
Use bundler version 4.0.6 (#37745)
mjankowski Feb 9, 2026
b9a538e
Pin Actions to SHA (#37764)
oneiros Feb 9, 2026
d3cef82
Refactor `store_current_location` `before_action` in `OAuth::Authoriz…
ClearlyClaire Feb 9, 2026
b4fb256
Fix: Changes to pins update immediately (#37765)
ChaosExAnima Feb 9, 2026
c0f809c
Update actions/checkout action to v6 (#37782)
renovate[bot] Feb 9, 2026
624c25e
Update actions/cache action to v5 (#37781)
renovate[bot] Feb 9, 2026
c1b9454
Update peter-evans/create-pull-request action to v8 (#37783)
renovate[bot] Feb 9, 2026
da91639
Update twk3/rollup-size-compare-action action to v1.2.0 (#37787)
renovate[bot] Feb 9, 2026
665f746
Update artifact actions (major) (major) (#37788)
renovate[bot] Feb 9, 2026
e17bbed
Change: Consolidate collection handling in jsonld helper (#34595)
sneakers-the-rat Feb 9, 2026
0b8ce72
Use validation matchers for `ExistingUsernameValidator` spec (#37749)
mjankowski Feb 9, 2026
837d1de
Add a i18n check in pre-commit for JS files (#37793)
renchap Feb 10, 2026
8aabc86
Fix i18n check for missing source strings (#37801)
ClearlyClaire Feb 10, 2026
0763ad0
Set a more explicit version number for GH Action (#37800)
oneiros Feb 10, 2026
03f7337
Federate updates to collections (#37790)
oneiros Feb 10, 2026
662df23
New Crowdin Translations (automated) (#37797)
github-actions[bot] Feb 10, 2026
920e9fa
Update dependency axios to v1.13.5 [SECURITY] (#37803)
renovate[bot] Feb 10, 2026
b8d7354
Update dependency vite-tsconfig-paths to v6.1.0 (#37773)
renovate[bot] Feb 10, 2026
2774e0f
Reduce stubbing SUT for `EmailMxValidator` spec (#37750)
mjankowski Feb 10, 2026
fb89198
Profile redesign: Quality pass (#37766)
ChaosExAnima Feb 10, 2026
f2eb033
Merge commit '1cb650d107' into update/imastodon
takayamaki Mar 22, 2026
13782a5
Merge commit '92df1c4458' into update/imastodon
takayamaki Mar 22, 2026
41c5745
Merge commit '1211bbc064' into update/imastodon
takayamaki Mar 22, 2026
3bd08fb
Merge commit '157d8c0d99' into update/imastodon
takayamaki Mar 22, 2026
1c3cda5
Merge commit 'c6f5315aa9' into update/imastodon
takayamaki Mar 22, 2026
a07103d
Merge commit 'fb89198460' into update/imastodon
takayamaki Mar 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ RUN /bin/bash --login -i -c "nvm install"
# Install additional OS packages
RUN apt-get update && \
export DEBIAN_FRONTEND=noninteractive && \
apt-get -y install --no-install-recommends libicu-dev libidn11-dev ffmpeg imagemagick libvips42 libpam-dev
apt-get -y install --no-install-recommends libicu-dev libidn11-dev ffmpeg libvips42 libpam-dev

# Disable download prompt for Corepack
ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/setup-javascript/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ runs:
using: 'composite'
steps:
- name: Set up Node.js
uses: actions/setup-node@v6
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
node-version-file: '.nvmrc'

Expand All @@ -23,7 +23,7 @@ runs:
shell: bash
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT

- uses: actions/cache@v4
- uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/setup-ruby/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ runs:
sudo apt-get install -y libicu-dev libidn11-dev libvips42 ${{ inputs.additional-system-dependencies }}
- name: Set up Ruby
uses: ruby/setup-ruby@v1
uses: ruby/setup-ruby@09a7688d3b55cf0e976497ff046b70949eeaccfd # v1
with:
ruby-version: ${{ inputs.ruby-version }}
bundler-cache: true
1 change: 1 addition & 0 deletions .github/renovate.json5
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@
],
matchUpdateTypes: ['major'],
groupName: 'artifact actions (major)',
extends: ['helpers:pinGitHubActionDigests'],
},
{
// Update @types/* packages every week, with one grouped PR
Expand Down
26 changes: 13 additions & 13 deletions .github/workflows/build-container-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
- linux/arm64

steps:
- uses: actions/checkout@v5
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Prepare
env:
Expand All @@ -47,27 +47,27 @@ jobs:
image_names=${PUSH_TO_IMAGES//$'\n'/,}
echo "IMAGE_NAMES=${image_names%,}" >> $GITHUB_ENV

- uses: docker/setup-buildx-action@v3
- uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3
id: buildx

- name: Log in to Docker Hub
if: contains(inputs.push_to_images, 'tootsuite')
uses: docker/login-action@v3
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Log in to the GitHub Container registry
if: contains(inputs.push_to_images, 'ghcr.io')
uses: docker/login-action@v3
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5
if: ${{ inputs.push_to_images != '' }}
with:
images: ${{ inputs.push_to_images }}
Expand All @@ -76,7 +76,7 @@ jobs:

- name: Build and push by digest
id: build
uses: docker/build-push-action@v6
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
with:
context: .
file: ${{ inputs.file_to_build }}
Expand All @@ -100,7 +100,7 @@ jobs:

- name: Upload digest
if: ${{ inputs.push_to_images != '' }}
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
# `hashFiles` is used to disambiguate between streaming and non-streaming images
name: digests-${{ hashFiles(inputs.file_to_build) }}-${{ env.PLATFORM_PAIR }}
Expand All @@ -119,10 +119,10 @@ jobs:
PUSH_TO_IMAGES: ${{ inputs.push_to_images }}

steps:
- uses: actions/checkout@v5
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Download digests
uses: actions/download-artifact@v6
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7
with:
path: ${{ runner.temp }}/digests
# `hashFiles` is used to disambiguate between streaming and non-streaming images
Expand All @@ -131,25 +131,25 @@ jobs:

- name: Log in to Docker Hub
if: contains(inputs.push_to_images, 'tootsuite')
uses: docker/login-action@v3
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Log in to the GitHub Container registry
if: contains(inputs.push_to_images, 'ghcr.io')
uses: docker/login-action@v3
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5
if: ${{ inputs.push_to_images != '' }}
with:
images: ${{ inputs.push_to_images }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-push-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
steps:
# Repository needs to be cloned so `git rev-parse` below works
- name: Clone repository
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- id: version_vars
run: |
echo mastodon_version_metadata=pr-${{ github.event.pull_request.number }}-$(git rev-parse --short ${{github.event.pull_request.head.sha}}) >> $GITHUB_OUTPUT
Expand Down
42 changes: 40 additions & 2 deletions .github/workflows/build-releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,44 @@ permissions:
packages: write

jobs:
check-latest-stable:
runs-on: ubuntu-latest
outputs:
latest: ${{ steps.check.outputs.is_latest_stable }}
steps:
# Repository needs to be cloned to list branches
- name: Clone repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0

- name: Check latest stable
shell: bash
id: check
run: |
ref="${GITHUB_REF#refs/tags/}"

if [[ "$ref" =~ ^v([0-9]+)\.([0-9]+)(\.[0-9]+)?$ ]]; then
current="${BASH_REMATCH[1]}.${BASH_REMATCH[2]}"
else
echo "tag $ref is not semver"
echo "is_latest_stable=false" >> "$GITHUB_OUTPUT"
exit 0
fi

latest=$(git for-each-ref --format='%(refname:short)' "refs/remotes/origin/stable-*.*" \
| sed -E 's#^origin/stable-##' \
| sort -Vr \
| head -n1)

if [[ "$current" == "$latest" ]]; then
echo "is_latest_stable=true" >> "$GITHUB_OUTPUT"
else
echo "is_latest_stable=false" >> "$GITHUB_OUTPUT"
fi

build-image:
needs: check-latest-stable
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: Dockerfile
Expand All @@ -19,13 +56,14 @@ jobs:
# Only tag with latest when ran against the latest stable branch
# This needs to be updated after each minor version release
flavor: |
latest=${{ startsWith(github.ref, 'refs/tags/v4.5.') }}
latest=${{ needs.check-latest-stable.outputs.latest }}
tags: |
type=pep440,pattern={{raw}}
type=pep440,pattern=v{{major}}.{{minor}}
secrets: inherit

build-image-streaming:
needs: check-latest-stable
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: streaming/Dockerfile
Expand All @@ -37,7 +75,7 @@ jobs:
# Only tag with latest when ran against the latest stable branch
# This needs to be updated after each minor version release
flavor: |
latest=${{ startsWith(github.ref, 'refs/tags/v4.5.') }}
latest=${{ needs.check-latest-stable.outputs.latest }}
tags: |
type=pep440,pattern={{raw}}
type=pep440,pattern=v{{major}}.{{minor}}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/bundler-audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ jobs:

steps:
- name: Clone repository
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Set up Ruby
uses: ruby/setup-ruby@v1
uses: ruby/setup-ruby@09a7688d3b55cf0e976497ff046b70949eeaccfd # v1
with:
bundler-cache: true

Expand Down
73 changes: 73 additions & 0 deletions .github/workflows/bundlesize-compare.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Compare JS bundle size
on:
pull_request:
paths:
- 'app/javascript/**'
- 'vite.config.mts'
- 'package.json'
- 'yarn.lock'
- .github/workflows/bundlesize-compare.yml

jobs:
build-head:
name: 'Build head'
runs-on: ubuntu-latest
permissions:
contents: read
env:
ANALYZE_BUNDLE_SIZE: '1'
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Set up Javascript environment
uses: ./.github/actions/setup-javascript

- name: Build
run: yarn run build:production

- name: Upload stats.json
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: head-stats
path: ./stats.json
if-no-files-found: error

build-base:
name: 'Build base'
runs-on: ubuntu-latest
permissions:
contents: read
env:
ANALYZE_BUNDLE_SIZE: '1'
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
ref: ${{ github.base_ref }}

- name: Set up Javascript environment
uses: ./.github/actions/setup-javascript

- name: Build
run: yarn run build:production

- name: Upload stats.json
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: base-stats
path: ./stats.json
if-no-files-found: error

compare:
name: 'Compare base & head bundle sizes'
runs-on: ubuntu-latest
needs: [build-base, build-head]
permissions:
pull-requests: write
steps:
- uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7

- uses: twk3/rollup-size-compare-action@a1f8628fee0e40899ab2b46c1b6e14552b99281e # v1.2.0
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
current-stats-json-path: ./head-stats/stats.json
base-stats-json-path: ./base-stats/stats.json
5 changes: 2 additions & 3 deletions .github/workflows/check-i18n.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v5
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Set up Ruby environment
uses: ./.github/actions/setup-ruby
Expand All @@ -42,8 +42,7 @@ jobs:

- name: Check for missing strings in English YML
run: |
bin/i18n-tasks add-missing -l en
git diff --exit-code
bin/i18n-tasks missing -t used -l en

- name: Check for wrong string interpolations
run: bin/i18n-tasks check-consistent-interpolations
Expand Down
Loading
Loading