main
100
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
60b693f9c7 |
[bugfix/frontend] turn DateTimeMinute and DateTimeSecond into proper components (#4911)
Fixes https://codeberg.org/superseriousbusiness/gotosocial/issues/4906 by turning `DateTimeMinute` and `DateTimeSecond` into proper memoized components instead of functions that return jsx elements. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4911 |
||
|
|
b2e789e952 |
[bugfix] Allow hyphen in usernameRelaxed regex (#4902)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Fix issue like the one described in https://codeberg.org/superseriousbusiness/gotosocial/issues/4878#issuecomment-17953256 where instance accounts containing hyphens can't send activities from their outbox. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4902 |
||
|
|
0419b4d86d |
[performance] Use CROSS JOIN LATERAL for Postgres home timeline queries (#4891)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. This pull request updates the home timeline query for Postgres specifically, to use a [LATERAL subquery](https://www.postgresql.org/docs/current/queries-table-expressions.html#QUERIES-LATERAL), avoiding the creeping heap fetch issue described in https://codeberg.org/superseriousbusiness/gotosocial/issues/4757 Before: ``` EXPLAIN ANALYZE WITH "_data" ("account_id") AS ( VALUES ('010KJCAZVGX7RSXT3XZJ8HK2A3'::char(26)), ('010TBJR4TJSFVSWN9YQT3QT308'::char(26)), ('011B59FH6XSWKT63JE80WEZ2NG'::char(26)), ('011JJ4G01DZEGWRAPYSQWG91XM'::char(26)), ('0124HQ0KF2DCSH5GAR78GBHZRZ'::char(26)), ('0124WH8BQBD6CDQDPD3CG3T29M'::char(26)), ('01358MRD0D94D01KWTJWRFHDJM'::char(26)), ('013H20V1Z3AVWZ9JZEJWZKD8WX'::char(26)), ('013JFKQR8M9Y5QK1AZF9WT2FNX'::char(26)), ('013P1NVPH1BP8Q1SXT4TCAN36M'::char(26)), ('014598E8FAY9SZVZFB2M8MEGTP'::char(26)), ('0149CR6CGH91FT3JVAQ52WF0EP'::char(26)), ('014BGPSBD4H955CS79HQ3ECHN6'::char(26)), ('014G5NATJBNEH77F8XVK6JY99X'::char(26)), ('014J0W8RBS84BRZYK79WGS0QSJ'::char(26)), ('014S45FWJT45H1Z49R9HWZWV20'::char(26)), ('014T7SBR0968GES9A375JSH7MP'::char(26)), ('01535NNG059DGY5ZPGJQAAVS13'::char(26)), ('01541VDMNWAEM9JEXDTRRCH6P3'::char(26)), ('015CCGAC1MH1MYY80KCXPDRXR9'::char(26)), ('015DR5MYCZFFM6ZP6SZ4PSW31K'::char(26)), ('015G42YMDNQM092QNN41NY5KMY'::char(26)), ('015NJAK04RVZ8KRR20JYD77AWJ'::char(26)), ('015P4N1NZZQNYPSRJX0AT5ENDV'::char(26)), ('015R6PN8ZWA63Z9AA4NFHMNMJ7'::char(26)), ('015W3DJEV77410AEB438CSKKXF'::char(26)), ('015XXSW55D0M0H85HHXERB7X9F'::char(26)), ('015ZFRFGNVQVJCATSQRT35APK8'::char(26)), ('0163NDE688GY0SK8DHZ5KTHEB1'::char(26)), ('0165CM61ZJVWSX9ZT8Q151W51Y'::char(26)), ('0169Y8TJHWBRSCKNV1F0QH8C00'::char(26)), ('016FV57FJMJTP6GM1AX97SBSWZ'::char(26)), ('016MK747JE82KNF0A5BH9Q28ZS'::char(26)), ('016Q2N8M9TKPM2HXAPBMAMG8BA'::char(26)), ('016THHHCAM5AQ2QJETYWMF6M37'::char(26)), ('016VP4S3BP3QSJBACEQ6J1VFDX'::char(26)), ('0171075Q5V357NS00ZJQRGH6NW'::char(26)), ('017DWBB1TX5NHZV3JZKTVKKMZB'::char(26)), ('017GAWN8JR7RECEDX82EM94X7D'::char(26)), ('017K2RG96VDWJHG35GV1R03R5Y'::char(26)), ('017T6N57D3KKBHYS2H352DEY9D'::char(26)), ('01824Y24R5NPZTVK9GJSG6QR3R'::char(26)), ('0186ZVSYZ208XSE4PAJETQZHW9'::char(26)), ('01876Q3TJ0Y2W577YN0BMP49HW'::char(26)), ('018KRFQSART3AQ49TRPM0BX2C8'::char(26)), ('018N9WEKHBQTKVMZW8GNHQJ629'::char(26)), ('018SWC5NJ3B114BZSA9AEPAC7T'::char(26)), ('018XGGK71Q1ZVA8T9XKXFC3KKN'::char(26)), ('0190MK7YXNR7N18KC398TE1M8S'::char(26)), ('019980EV8ZSWMDEM9XJ1CZGC85'::char(26)), ('0199G3RXT4MH8QZRV9401KSHNV'::char(26)), ('019C55VGC39DAHMEB5ZKFESEC9'::char(26)), ('019EF14SHK5KKSQ6QWMSYQB3XJ'::char(26)), ('019XW6CMB06QTQ42DPXYD461AY'::char(26)), ('01A1Y8X9P39FTJGRPJWVJFF1VQ'::char(26)), ('01A72AZ44N5SBX6WGXEF4QPGDN'::char(26)), ('01A9FXTTV7VNDWXTW3MAT5F8TS'::char(26)), ('01AES78TJ171V5GBQ9A4FT6M0Y'::char(26)), ('01AJHSYXPR0AMD1FHX29QSPVH4'::char(26)), ('01AKS3VNBE7ESZJ32CR7Y1KHZ8'::char(26)), ('01AQKRF3JZNQ3FDB1JXNS88SPE'::char(26)), ('01AQVEFV1BR9ZJEWXJHVM9SMSW'::char(26)), ('01AYKM70B4TFR0CVBGA1YBE9BQ'::char(26)), ('01B43VVFAZB6CNY4XPS8SSP7CT'::char(26)), ('01B5EBWSQ2S6EBR7538WB34FZZ'::char(26)), ('01B945BBPG17A3HSGESWBVASTX'::char(26)), ('01B9XSMFQBEBH1AB8YZGPR9Z8C'::char(26)), ('01BD3HDDQMAEPHNKW0YCRVR0EK'::char(26)), ('01BKJ18EXS58K8N3W0GK5B2CTH'::char(26)), ('01BQQEA5S9F1HYA6N9SR0F2DH1'::char(26)), ('01BRC1CJGEX49HE6J3RYBTW5FT'::char(26)), ('01BSXJ28K4FQ2F2Q1QD43XCY69'::char(26)), ('01BT8W7M439Q1HR9DAETJK56KS'::char(26)), ('01BVFQWHSCNBZMEAA55P433V47'::char(26)), ('01BWJ34SVG4CTE9578D896FASZ'::char(26)), ('01C59JW86JBETRK0GYYJGYGWK4'::char(26)), ('01CH1E9YADSKPZPE3XZTK43859'::char(26)), ('01CH4ZMGKE45Z2NR3D2Z68FTND'::char(26)), ('01CJ50FJ12YNXBZ3XJPDDD3ERQ'::char(26)), ('01CP37J1CYA9R8HAD2STHNM1XQ'::char(26)), ('01CQTJGAPTBAZ3A4A8PFWKY3JN'::char(26)), ('01CTYR17YFS9KQFQT2JM7ZJGMF'::char(26)), ('01D7683PBJ8TVSP7QM7532M0FP'::char(26)), ('01D8ENRT7SJK7ZHFMF002S3MNW'::char(26)), ('01DAVJYVPXHW7JGWKZHWMGB6JB'::char(26)), ('01DDBJ121GX2DNHSHW0HYYW1WX'::char(26)), ('01DFT35G3Z545GWAG4NSN875VR'::char(26)), ('01DPAEFQHWVTSABRBH00F9KY2J'::char(26)), ('01DQHDPZ28ZNDZSNVQT39DYM24'::char(26)), ('01DTE9GFAQGY0JQKPQ9JJJWAYV'::char(26)), ('01DVBSWPME78F8TH90NPRTHZCZ'::char(26)), ('01DVDGADC6FM0V1EF3VJCPS8Q0'::char(26)), ('01DWZ5TRHQVDW59Q6J3JYBTRPM'::char(26)), ('01DX4SSBV3XP1Y7Q71T1WYJWP9'::char(26)), ('01E5VH11BBERND2HZY335HCXMV'::char(26)), ('01EA5VC37PEJE4WM9JYN85063M'::char(26)), ('01EGE516AN5QNP732DVAJRH5TD'::char(26)), ('01EHZAJA1H76RFX9Q3XFSRF6X2'::char(26)), ('01EKEGWRA0N538W5TZ3XT1XVQB'::char(26)), ('01EN6FJ0Y6700K6QZRVADCMZ1S'::char(26)), ('01ER8ZNXY2QPGH7EKP16SYMGVK'::char(26)), ('01F0SN5XZG0KY17MFB3QV3AKZ7'::char(26)), ('01F3S2ZGZ69S1WD3VB7XBB4VPV'::char(26)), ('01F57NK3Y6Y1D48KTDCQKR15JG'::char(26)), ('01F68RGWGACB0JN7YZ8WKNM5A5'::char(26)), ('01F7R73S31QXK3GVSTT70P0S3W'::char(26)), ('01FC2TW4B5A9QMBMTQCGXJCVB1'::char(26)), ('01FF8FEM0Y88D0FKE3GF5CPTYE'::char(26)), ('01FGQCQH103C9YMKG977KW7YBC'::char(26)), ('01FJGZY8BTYGHWQ9S644YMJJ1J'::char(26)), ('01FJPDPAJE39YG6QE0P4H9CJ54'::char(26)), ('01FJR0V05745PHYMFFRF582N9G'::char(26)), ('01FM11CJCJ3MANFFGY6XQ6A2SN'::char(26)), ('01FQ9CAR2P7P5KECTNFBWB3RZT'::char(26)), ('01FTBPN8GDNABBXPXP5CV9HVCN'::char(26)), ('01FTPP74QV8JBEJ0X9SVE9GJPW'::char(26)), ('01FVB3WQCDQQ58RWVZTNN1BCHH'::char(26)), ('01FYC489JJYSFBBMGPW4TEWFMB'::char(26)), ('01FYYFYM41APHPC10ZP34M0AGA'::char(26)), ('01G132DPQFCN1ZMDG05STFF5DM'::char(26)), ('01G2PXNZEFNX0WTBKJD0KJQZVZ'::char(26)), ('01G9SX5PABE3YFWB10R3P2YG8M'::char(26)), ('01G9Z5NNWVNP7EP1PPYMDB7FTS'::char(26)), ('01GCSJSFCX8GA4FSZZRYR5WY8H'::char(26)), ('01GEP0VQ9MK4YC6YSS2D65B42X'::char(26)), ('01GFQHFQ5G9J1X5VR39QS9JNZH'::char(26)), ('01GK985EDCKDNZ9VTA2EH0588A'::char(26)), ('01GRE1KVX7WTE6A17CFEK9QFKW'::char(26)), ('01GRFDT0RHNCRXM5XVDFBWCV1V'::char(26)), ('01GS7YBHJR6XEJ9902EQ38V2HC'::char(26)), ('01GSRE95Z0M3MBYNQTTM768PY4'::char(26)), ('01GT6VW7C843F7R52W41X21SE8'::char(26)), ('01GTBN1KPV1S4JD7YW0WF9EYKX'::char(26)), ('01GWN8985RZZQS76R08GC5V2AG'::char(26)), ('01GWQEWKAX8NK2E0P0K59PAKKB'::char(26)), ('01GXPBCAA4NK53WDKZT7N8H3CG'::char(26)), ('01GYWHQH01T8MHHH9GX2HN74FT'::char(26)), ('01H0YSAJK57SNT6FZ9ZYQCHY4A'::char(26)), ('01H344S14HT8PPRBK994R7SH3G'::char(26)), ('01H3975PZZF4E88FN0AF9CW1WA'::char(26)), ('01H431FJ6V4YAHCGFFW34X8896'::char(26)), ('01H5M6GATV1PCDX9Z8KM9VWZ9Z'::char(26)), ('01H625GSHDQHQX31EGRNYZHAQV'::char(26)), ('01H66W8RF1V73Q8DJTF7B4YGBH'::char(26)), ('01H6K463ABNQYK7WF4HYDBM93N'::char(26)), ('01H7X3RGHVMTFEFQAB3XB1JNT2'::char(26)), ('01H80SYN2ZF3QX1GZCANNW7958'::char(26)), ('01H8QAXECJCE3ZNCWKAG2PVE41'::char(26)), ('01HAHVRP3F28R8RJMZR6T9ATAR'::char(26)), ('01HBGD567VD5ZHMBA7P9WM8777'::char(26)), ('01HCY101HMDM4HYD7YEG8GN8YF'::char(26)), ('01HCYS169BFFQNHT5J4XD7FZJY'::char(26)), ('01HD8JAVHAKJ02AF29QMZPNGGM'::char(26)), ('01HDJ42G3V41CFDV51HN0B86BV'::char(26)), ('01HEDHXHEE1XVXR8NTGG88MXWH'::char(26)), ('01HG4W3KW1D6TPS316BQZKBNVH'::char(26)), ('01HGD8K8NGJHF4Z4DYS4BDQJFT'::char(26)), ('01HHSZCR1K6T0SYF2BD93APMVB'::char(26)), ('01HJP92D74N69C4FCME4AF3DRK'::char(26)), ('01HK0GPCACF9Z9G4HM9VRRMBZT'::char(26)), ('01HN2W94S2S2NJ4ZH58KMPD3HC'::char(26)), ('01HN62BPR4M2K87D3689SNZ6G9'::char(26)), ('01HXFZ2MSSDTFKGBCSACD3NG74'::char(26)), ('01HYMYMBNFPH02VMAF5C1T3HA5'::char(26)), ('01HYY39CQ9AMRZ4GSKQ1V1ZY56'::char(26)), ('01HZW2HXDP1QVZT4E5XDZZAZ53'::char(26)), ('01J0H6RPP9PB60VGY6KRZD3B2V'::char(26)), ('01J0NRYK08SKHNSBRW4C02K2A0'::char(26)), ('01J0P2W9CEV8B8CRG68NVSF5W2'::char(26)), ('01J1MT22HF3472SQA7VE34KC3H'::char(26)), ('01J42T81TFY33QMK2G99MJBAXX'::char(26)), ('01J4C59KK3CJ0VN7XN5CJFTY67'::char(26)), ('01J58695478QX17FKNQ4ZVAVM1'::char(26)), ('01J75WP4DCTGFD0TV2MTE41HWX'::char(26)), ('01J75XE4WWMTSWGKBYE67NY95W'::char(26)), ('01J75XJR9YD6ESS5QF1V9TV1AS'::char(26)), ('01J75XQ353QSRNQ7VZHVRTCWX7'::char(26)), ('01J75Y2WHTQ8BY1WG3KDC4VH0T'::char(26)), ('01J75Y99MQRE4KZY1Y05T0VV7Z'::char(26)), ('01J75Y9XQQ3CM9C9XCGM35KGHM'::char(26)), ('01J9QVAB4BM3V4CM37DWM30K5M'::char(26)), ('01JCR3D1D3ZY3QVN5A61B1SK8G'::char(26)), ('01JEM6XKK9BKD2TG76FHMH4QDA'::char(26)), ('01JEMBY612J7PMW87T8XYEA091'::char(26)), ('01JEYV93PT3072YYWWAP3JEGPV'::char(26)), ('01JFSNJVY31X2T8RJT24BBDRST'::char(26)), ('01JG1WG1JK6DTHHBWAC3N22CGY'::char(26)), ('01JG44P0SND7T0B5ACX3A2FH9D'::char(26)), ('01JGFQ6VK2HDWJEEAS3VYPYYQP'::char(26)), ('01JGH4RQPT4TD8PYM1ETVDZBEB'::char(26)), ('01JH4FXVNPMAZB1TKET514AV9X'::char(26)), ('01JK12R970J9E43T5P5HWTENM4'::char(26)), ('01JK138N5MBCFERV2WCYYEXVQ1'::char(26)), ('01JKXMV3DZQ3HX1G6JDJQW2XDF'::char(26)), ('01JNE4XKDF5Z1CDR720PZNHKVV'::char(26)), ('01JNGBFNBBYVP1DYK7JNDFZQGQ'::char(26)), ('01JNHRW3KDVE6XAHZGBRZT62XE'::char(26)), ('01JPZPXCWQ7MCA40CNWSH28GR6'::char(26)), ('01JQCAB3DW1ZXQ6D5DX1BHJ8BP'::char(26)), ('01JQGZV6VZDFM9SC1JNPGFQD8N'::char(26)), ('01JR0WC1HZ1RPSXEHX8KFHVR6Z'::char(26)), ('01JRN5X6RYF1WS5FG707HY5QZA'::char(26)), ('01JRNNF1W627Z3TBWKS06TWFBW'::char(26)), ('01JRP9VAJRSV0R24F8TGCVZBHG'::char(26)), ('01JRTSGH6C7GFG42H6NY6SJBHG'::char(26)), ('01JRY8B2Z583SC5ZEACZ1K5XQ0'::char(26)), ('01JT3HPZZB0AVB5E8MK5MKPGZM'::char(26)), ('01JTGCC5GP27W4HNKG42Y6MF09'::char(26)), ('01JTSYQ7KAH9M98DSA3PPVP0WZ'::char(26)), ('01JVQZ68F7BTK5CNCK3HVVH592'::char(26)), ('01JW3QF7KAER5453T8PGACVZAJ'::char(26)), ('01JWWQ51HR3R0EC87SSRTK3XFQ'::char(26)), ('01JWXEQT4NB6ABSWNA8DM4318A'::char(26)), ('01K0QTBJE82WA2ZAWJJTTCFJSD'::char(26)), ('01K0Z2QJHF2E1M8585621P7AF7'::char(26)), ('01K2N8WH4HGG4DWCP7C72RK0DS'::char(26)), ('01K2XFKN0X9FGP0Z4HAVQSFQAN'::char(26)), ('01K727MG9QK1GFXZA8F49G1CHN'::char(26)), ('01KBE39J8P0ESVNTP3B7MJPZ8A'::char(26)), ('01KCGJEEG3GJ0JQPD99E0H0RAG'::char(26)), ('01KCSZ5HEYHZMEVDZQT4FDQYTG'::char(26)), ('01KDVC85NAB4JMQBXC552G9H51'::char(26)), ('01KHBNS8H8WZK70MVXWSMP1ADC'::char(26)), ('01KJATPHVFZVEJT7Z6JDYHVB4A'::char(26)), ('01KJG9PW50AZBTVW5D2NH1RMX3'::char(26)), ('01KPPCN19EGJ2N3JD3JK8Z96NN'::char(26)), ('01KPVMMF4YESS9EGYFCEQRCT7D'::char(26)), ('01KPZZ2WYYW70KRZMJR60NNFDS'::char(26)), ('01KS8K2G7ZT18H3ZA83S7GEMTX'::char(26)), ('01KT11HEJAMNQ7YS8N7FZH4HC4'::char(26)), ('01KTHFS76VYMX80XFVAEH2187Y'::char(26)), ('01KTYJAREWNQ0GM4YVW8WSMB5D'::char(26)), ('01KXPZT066KZ6SWTC9F8BT3VSZ'::char(26)), ('01KXRB11VCGSKA78P4P4W18N1Q'::char(26)), ('01KYVKABD7MKBPMHA3WAVVSSAT'::char(26)), ('01M7EPSSYTVQ8P5BHN9NEPCA7T'::char(26)), ('01M9RN3FGWA0F1ABHDHZNB8SCT'::char(26)), ('01MAJKA5157GYGH4V4B9GZ5CCV'::char(26)), ('01MF0JERZ55TY0G8TRTE867G0B'::char(26)), ('01MWZZM0QH26BDJPR7RG03JCYR'::char(26)), ('01MZ7FEMK09RT3C50Z7QQWXQNA'::char(26)), ('01N0Y1793BXPMM3P9Q7XM7QZQN'::char(26)), ('01N115BNT5ERRNNYXB2W0453J4'::char(26)), ('01N2ZE39DZBC1EH7MZQ3JBZVZE'::char(26)), ('01N3JVRFENQN5BSN9RHY2R29GG'::char(26)), ('01N5P9CR9QWS27CPBKMP1T373M'::char(26)), ('01N6MMSD28WQPZ8FFKHAV1SZPB'::char(26)), ('01N7WZNC8MVRCZFX1J3F0MXMED'::char(26)), ('01NQN2F3VJG4SMRSD42QMXYDC1'::char(26)), ('01NR1PXBYGRAJ28PCP19JYB756'::char(26)), ('01P3DC4H9Z263RM2JKYSZ0X4SN'::char(26)), ('01P539RH13YRVFDWW8MVPZKRW8'::char(26)), ('01P8KSW8B0RW2K466364V6BY7D'::char(26)), ('01P8QYNX7VKY4E43MB3X2DKN8V'::char(26)), ('01PB3YCAGVVTVM7JTSFK8WRWV9'::char(26)), ('01PCF3SAFKH1KVDHMD458MPS5N'::char(26)), ('01PX7AGFX66M57HV6YJTPT3EBM'::char(26)), ('01PZNHC63PPYTHMQ8A9HY1YP7X'::char(26)), ('01Q7ZJ700HE0J7ZV7WM4ZFPXX1'::char(26)), ('01QATDFQQSYK4F5T6P9AXDM637'::char(26)), ('01QBYS90D60720RA1N2J7CREG9'::char(26)), ('01QENWN77TSEM0VB4NGP4BXRNX'::char(26)), ('01QHTD5X15MVEFNBAJ5VPMMDTD'::char(26)), ('01QJKCF8WM7H1GD7CRT3H2VEE4'::char(26)), ('01QKNFYCBFNANRKDXQYWH246GK'::char(26)), ('01QVJBA4F63YYFH9EXN4NF41EC'::char(26)), ('01R03G2X49H8BS4Z52QF8GT3M2'::char(26)), ('01R8RZJ6EGRBK8VSJ7268SXWEG'::char(26)), ('01R9A1SYQA68ZWQY9H9QR2PS3R'::char(26)), ('01RDTES621167B0APPR4WMRPK9'::char(26)), ('01RHDD9SPJ5SC854MGJB3T49KM'::char(26)), ('01RJB6W1QNC1DMK4X9W8GFKEKR'::char(26)), ('01RMB7EYFBKZAF8WWQGKZKSZT6'::char(26)), ('01RPX6K11S6TC7KQDGT0HH575R'::char(26)), ('01RSQ1ZTFX936KW051ECGBBDBV'::char(26)), ('01RW9HW9TW15K16ZAQY5RA1B59'::char(26)), ('01RZPPDRD8XVTPVBBP2YHBJ17S'::char(26)), ('01S865K6GN8KJRCABY71HWH6EF'::char(26)), ('01S8ERTNETXDNXQ72BZ7Y4VPQS'::char(26)), ('01S9VR99FTHRWFJBTG1G722EAC'::char(26)), ('01SCJNCKYRS2V849HPFWCNJP98'::char(26)), ('01SDTT0Q72WSHCJ285XPPPR2G3'::char(26)), ('01SHJ4763YJTWVPY4V4CEE5MRP'::char(26)), ('01SMTYCEY76XY9R7NNKCFSSB79'::char(26)), ('01SRYWNXEYHKAXDW4Y7Y08JNKX'::char(26)), ('01STFTTQBQEXS1TVHSZG1BRK80'::char(26)), ('01T5R2T5EDMC987FEG7WWT8VXA'::char(26)), ('01T9SSP6YVMZJ9DS98E9403YH5'::char(26)), ('01TAWCEMQEN84TZ5RB276SNPFC'::char(26)), ('01TGBRWAWZ6HS48S9GVDV7ZFYR'::char(26)), ('01TQXC952JHY2XEE233WASVEK9'::char(26)), ('01TR5EDP73NPR12S85ENCWR5P3'::char(26)), ('01TTR9AXJMTBN6AD5PZGCAJSC2'::char(26)), ('01TYKK51B54F3BBE05HG0EYGWT'::char(26)), ('01VJXQ59Z0NHFYE5CR9Q2JVXJW'::char(26)), ('01VM56ZSRWX45817Y1Y9Y4RM01'::char(26)), ('01W71JQ9P3T94PABFZ1YVB43AA'::char(26)), ('01W9Q4NS5SPEJ0K676XFHJE5FY'::char(26)), ('01WCTCDT0PJAS0YEHS0P6K1QF7'::char(26)), ('01WMXHPHHFA602G42ZR69GFYZ1'::char(26)), ('01X8J6P8B3TRAC8N0VPB8AJCEB'::char(26)), ('01XDZ19FWPMJX6MKEHFWZMZYW8'::char(26)), ('01XHKD009T4W7MGC7FQTMRSSQ4'::char(26)), ('01XWC8MK7BYH164Z0W9M7N1E5F'::char(26)), ('01YAJ3172F4K9E269SJJVMKY1V'::char(26)), ('01YW7XGKSQC13GN3Q42BRQZATR'::char(26)), ('01ZED2MTT6VP2YAXS4FJQ6F8CZ'::char(26)), ('01ZFQ73C2GSJ3W5VCSC7Q0ZM3C'::char(26)), ('020MYYBFHE385P3SFG5CW9NFA1'::char(26)) ) SELECT "status"."id" FROM "statuses" AS "status", "_data" WHERE ( "status"."account_id" = "_data"."account_id" ) AND ("flags" & 32 = 0) AND ("flags" & 2 = 0) AND ( "status"."id" < '01KVJY68YK0000000000000000' ) ORDER BY "status"."id" DESC LIMIT 100; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Limit (cost=13.89..13.90 rows=2 width=27) (actual time=9655.114..9655.440 rows=100 loops=1) -> Sort (cost=13.89..13.90 rows=2 width=27) (actual time=9655.114..9655.224 rows=100 loops=1) Sort Key: status.id DESC Sort Method: top-N heapsort Memory: 35kB -> Hash Join (cost=8.28..13.88 rows=2 width=27) (actual time=30.580..8448.281 rows=1023510 loops=1) Hash Cond: (status.account_id = "*VALUES*".column1) -> Index Only Scan using statuses_home_timeline_idx on statuses status (cost=0.56..5.86 rows=74 width=54) (actual time=0.352..4250.809 rows=2986943 loops=1) Index Cond: (id < '01KVJY68YK0000000000000000'::bpchar) Heap Fetches: 12628 -> Hash (cost=3.86..3.86 rows=309 width=108) (actual time=0.921..0.985 rows=309 loops=1) Buckets: 1024 Batches: 1 Memory Usage: 26kB -> Values Scan on "*VALUES*" (cost=0.00..3.86 rows=309 width=108) (actual time=0.009..0.485 rows=309 loops=1) Planning Time: 2.596 ms Execution Time: 9655.882 ms (14 rows) ``` After: ``` EXPLAIN ANALYZE SELECT "status"."id" FROM ( VALUES ('010KJCAZVGX7RSXT3XZJ8HK2A3'::char(26)), ('010TBJR4TJSFVSWN9YQT3QT308'::char(26)), ('011B59FH6XSWKT63JE80WEZ2NG'::char(26)), ('011JJ4G01DZEGWRAPYSQWG91XM'::char(26)), ('0124HQ0KF2DCSH5GAR78GBHZRZ'::char(26)), ('0124WH8BQBD6CDQDPD3CG3T29M'::char(26)), ('01358MRD0D94D01KWTJWRFHDJM'::char(26)), ('013H20V1Z3AVWZ9JZEJWZKD8WX'::char(26)), ('013JFKQR8M9Y5QK1AZF9WT2FNX'::char(26)), ('013P1NVPH1BP8Q1SXT4TCAN36M'::char(26)), ('014598E8FAY9SZVZFB2M8MEGTP'::char(26)), ('0149CR6CGH91FT3JVAQ52WF0EP'::char(26)), ('014BGPSBD4H955CS79HQ3ECHN6'::char(26)), ('014G5NATJBNEH77F8XVK6JY99X'::char(26)), ('014J0W8RBS84BRZYK79WGS0QSJ'::char(26)), ('014S45FWJT45H1Z49R9HWZWV20'::char(26)), ('014T7SBR0968GES9A375JSH7MP'::char(26)), ('01535NNG059DGY5ZPGJQAAVS13'::char(26)), ('01541VDMNWAEM9JEXDTRRCH6P3'::char(26)), ('015CCGAC1MH1MYY80KCXPDRXR9'::char(26)), ('015DR5MYCZFFM6ZP6SZ4PSW31K'::char(26)), ('015G42YMDNQM092QNN41NY5KMY'::char(26)), ('015NJAK04RVZ8KRR20JYD77AWJ'::char(26)), ('015P4N1NZZQNYPSRJX0AT5ENDV'::char(26)), ('015R6PN8ZWA63Z9AA4NFHMNMJ7'::char(26)), ('015W3DJEV77410AEB438CSKKXF'::char(26)), ('015XXSW55D0M0H85HHXERB7X9F'::char(26)), ('015ZFRFGNVQVJCATSQRT35APK8'::char(26)), ('0163NDE688GY0SK8DHZ5KTHEB1'::char(26)), ('0165CM61ZJVWSX9ZT8Q151W51Y'::char(26)), ('0169Y8TJHWBRSCKNV1F0QH8C00'::char(26)), ('016FV57FJMJTP6GM1AX97SBSWZ'::char(26)), ('016MK747JE82KNF0A5BH9Q28ZS'::char(26)), ('016Q2N8M9TKPM2HXAPBMAMG8BA'::char(26)), ('016THHHCAM5AQ2QJETYWMF6M37'::char(26)), ('016VP4S3BP3QSJBACEQ6J1VFDX'::char(26)), ('0171075Q5V357NS00ZJQRGH6NW'::char(26)), ('017DWBB1TX5NHZV3JZKTVKKMZB'::char(26)), ('017GAWN8JR7RECEDX82EM94X7D'::char(26)), ('017K2RG96VDWJHG35GV1R03R5Y'::char(26)), ('017T6N57D3KKBHYS2H352DEY9D'::char(26)), ('01824Y24R5NPZTVK9GJSG6QR3R'::char(26)), ('0186ZVSYZ208XSE4PAJETQZHW9'::char(26)), ('01876Q3TJ0Y2W577YN0BMP49HW'::char(26)), ('018KRFQSART3AQ49TRPM0BX2C8'::char(26)), ('018N9WEKHBQTKVMZW8GNHQJ629'::char(26)), ('018SWC5NJ3B114BZSA9AEPAC7T'::char(26)), ('018XGGK71Q1ZVA8T9XKXFC3KKN'::char(26)), ('0190MK7YXNR7N18KC398TE1M8S'::char(26)), ('019980EV8ZSWMDEM9XJ1CZGC85'::char(26)), ('0199G3RXT4MH8QZRV9401KSHNV'::char(26)), ('019C55VGC39DAHMEB5ZKFESEC9'::char(26)), ('019EF14SHK5KKSQ6QWMSYQB3XJ'::char(26)), ('019XW6CMB06QTQ42DPXYD461AY'::char(26)), ('01A1Y8X9P39FTJGRPJWVJFF1VQ'::char(26)), ('01A72AZ44N5SBX6WGXEF4QPGDN'::char(26)), ('01A9FXTTV7VNDWXTW3MAT5F8TS'::char(26)), ('01AES78TJ171V5GBQ9A4FT6M0Y'::char(26)), ('01AJHSYXPR0AMD1FHX29QSPVH4'::char(26)), ('01AKS3VNBE7ESZJ32CR7Y1KHZ8'::char(26)), ('01AQKRF3JZNQ3FDB1JXNS88SPE'::char(26)), ('01AQVEFV1BR9ZJEWXJHVM9SMSW'::char(26)), ('01AYKM70B4TFR0CVBGA1YBE9BQ'::char(26)), ('01B43VVFAZB6CNY4XPS8SSP7CT'::char(26)), ('01B5EBWSQ2S6EBR7538WB34FZZ'::char(26)), ('01B945BBPG17A3HSGESWBVASTX'::char(26)), ('01B9XSMFQBEBH1AB8YZGPR9Z8C'::char(26)), ('01BD3HDDQMAEPHNKW0YCRVR0EK'::char(26)), ('01BKJ18EXS58K8N3W0GK5B2CTH'::char(26)), ('01BQQEA5S9F1HYA6N9SR0F2DH1'::char(26)), ('01BRC1CJGEX49HE6J3RYBTW5FT'::char(26)), ('01BSXJ28K4FQ2F2Q1QD43XCY69'::char(26)), ('01BT8W7M439Q1HR9DAETJK56KS'::char(26)), ('01BVFQWHSCNBZMEAA55P433V47'::char(26)), ('01BWJ34SVG4CTE9578D896FASZ'::char(26)), ('01C59JW86JBETRK0GYYJGYGWK4'::char(26)), ('01CH1E9YADSKPZPE3XZTK43859'::char(26)), ('01CH4ZMGKE45Z2NR3D2Z68FTND'::char(26)), ('01CJ50FJ12YNXBZ3XJPDDD3ERQ'::char(26)), ('01CP37J1CYA9R8HAD2STHNM1XQ'::char(26)), ('01CQTJGAPTBAZ3A4A8PFWKY3JN'::char(26)), ('01CTYR17YFS9KQFQT2JM7ZJGMF'::char(26)), ('01D7683PBJ8TVSP7QM7532M0FP'::char(26)), ('01D8ENRT7SJK7ZHFMF002S3MNW'::char(26)), ('01DAVJYVPXHW7JGWKZHWMGB6JB'::char(26)), ('01DDBJ121GX2DNHSHW0HYYW1WX'::char(26)), ('01DFT35G3Z545GWAG4NSN875VR'::char(26)), ('01DPAEFQHWVTSABRBH00F9KY2J'::char(26)), ('01DQHDPZ28ZNDZSNVQT39DYM24'::char(26)), ('01DTE9GFAQGY0JQKPQ9JJJWAYV'::char(26)), ('01DVBSWPME78F8TH90NPRTHZCZ'::char(26)), ('01DVDGADC6FM0V1EF3VJCPS8Q0'::char(26)), ('01DWZ5TRHQVDW59Q6J3JYBTRPM'::char(26)), ('01DX4SSBV3XP1Y7Q71T1WYJWP9'::char(26)), ('01E5VH11BBERND2HZY335HCXMV'::char(26)), ('01EA5VC37PEJE4WM9JYN85063M'::char(26)), ('01EGE516AN5QNP732DVAJRH5TD'::char(26)), ('01EHZAJA1H76RFX9Q3XFSRF6X2'::char(26)), ('01EKEGWRA0N538W5TZ3XT1XVQB'::char(26)), ('01EN6FJ0Y6700K6QZRVADCMZ1S'::char(26)), ('01ER8ZNXY2QPGH7EKP16SYMGVK'::char(26)), ('01F0SN5XZG0KY17MFB3QV3AKZ7'::char(26)), ('01F3S2ZGZ69S1WD3VB7XBB4VPV'::char(26)), ('01F57NK3Y6Y1D48KTDCQKR15JG'::char(26)), ('01F68RGWGACB0JN7YZ8WKNM5A5'::char(26)), ('01F7R73S31QXK3GVSTT70P0S3W'::char(26)), ('01FC2TW4B5A9QMBMTQCGXJCVB1'::char(26)), ('01FF8FEM0Y88D0FKE3GF5CPTYE'::char(26)), ('01FGQCQH103C9YMKG977KW7YBC'::char(26)), ('01FJGZY8BTYGHWQ9S644YMJJ1J'::char(26)), ('01FJPDPAJE39YG6QE0P4H9CJ54'::char(26)), ('01FJR0V05745PHYMFFRF582N9G'::char(26)), ('01FM11CJCJ3MANFFGY6XQ6A2SN'::char(26)), ('01FQ9CAR2P7P5KECTNFBWB3RZT'::char(26)), ('01FTBPN8GDNABBXPXP5CV9HVCN'::char(26)), ('01FTPP74QV8JBEJ0X9SVE9GJPW'::char(26)), ('01FVB3WQCDQQ58RWVZTNN1BCHH'::char(26)), ('01FYC489JJYSFBBMGPW4TEWFMB'::char(26)), ('01FYYFYM41APHPC10ZP34M0AGA'::char(26)), ('01G132DPQFCN1ZMDG05STFF5DM'::char(26)), ('01G2PXNZEFNX0WTBKJD0KJQZVZ'::char(26)), ('01G9SX5PABE3YFWB10R3P2YG8M'::char(26)), ('01G9Z5NNWVNP7EP1PPYMDB7FTS'::char(26)), ('01GCSJSFCX8GA4FSZZRYR5WY8H'::char(26)), ('01GEP0VQ9MK4YC6YSS2D65B42X'::char(26)), ('01GFQHFQ5G9J1X5VR39QS9JNZH'::char(26)), ('01GK985EDCKDNZ9VTA2EH0588A'::char(26)), ('01GRE1KVX7WTE6A17CFEK9QFKW'::char(26)), ('01GRFDT0RHNCRXM5XVDFBWCV1V'::char(26)), ('01GS7YBHJR6XEJ9902EQ38V2HC'::char(26)), ('01GSRE95Z0M3MBYNQTTM768PY4'::char(26)), ('01GT6VW7C843F7R52W41X21SE8'::char(26)), ('01GTBN1KPV1S4JD7YW0WF9EYKX'::char(26)), ('01GWN8985RZZQS76R08GC5V2AG'::char(26)), ('01GWQEWKAX8NK2E0P0K59PAKKB'::char(26)), ('01GXPBCAA4NK53WDKZT7N8H3CG'::char(26)), ('01GYWHQH01T8MHHH9GX2HN74FT'::char(26)), ('01H0YSAJK57SNT6FZ9ZYQCHY4A'::char(26)), ('01H344S14HT8PPRBK994R7SH3G'::char(26)), ('01H3975PZZF4E88FN0AF9CW1WA'::char(26)), ('01H431FJ6V4YAHCGFFW34X8896'::char(26)), ('01H5M6GATV1PCDX9Z8KM9VWZ9Z'::char(26)), ('01H625GSHDQHQX31EGRNYZHAQV'::char(26)), ('01H66W8RF1V73Q8DJTF7B4YGBH'::char(26)), ('01H6K463ABNQYK7WF4HYDBM93N'::char(26)), ('01H7X3RGHVMTFEFQAB3XB1JNT2'::char(26)), ('01H80SYN2ZF3QX1GZCANNW7958'::char(26)), ('01H8QAXECJCE3ZNCWKAG2PVE41'::char(26)), ('01HAHVRP3F28R8RJMZR6T9ATAR'::char(26)), ('01HBGD567VD5ZHMBA7P9WM8777'::char(26)), ('01HCY101HMDM4HYD7YEG8GN8YF'::char(26)), ('01HCYS169BFFQNHT5J4XD7FZJY'::char(26)), ('01HD8JAVHAKJ02AF29QMZPNGGM'::char(26)), ('01HDJ42G3V41CFDV51HN0B86BV'::char(26)), ('01HEDHXHEE1XVXR8NTGG88MXWH'::char(26)), ('01HG4W3KW1D6TPS316BQZKBNVH'::char(26)), ('01HGD8K8NGJHF4Z4DYS4BDQJFT'::char(26)), ('01HHSZCR1K6T0SYF2BD93APMVB'::char(26)), ('01HJP92D74N69C4FCME4AF3DRK'::char(26)), ('01HK0GPCACF9Z9G4HM9VRRMBZT'::char(26)), ('01HN2W94S2S2NJ4ZH58KMPD3HC'::char(26)), ('01HN62BPR4M2K87D3689SNZ6G9'::char(26)), ('01HXFZ2MSSDTFKGBCSACD3NG74'::char(26)), ('01HYMYMBNFPH02VMAF5C1T3HA5'::char(26)), ('01HYY39CQ9AMRZ4GSKQ1V1ZY56'::char(26)), ('01HZW2HXDP1QVZT4E5XDZZAZ53'::char(26)), ('01J0H6RPP9PB60VGY6KRZD3B2V'::char(26)), ('01J0NRYK08SKHNSBRW4C02K2A0'::char(26)), ('01J0P2W9CEV8B8CRG68NVSF5W2'::char(26)), ('01J1MT22HF3472SQA7VE34KC3H'::char(26)), ('01J42T81TFY33QMK2G99MJBAXX'::char(26)), ('01J4C59KK3CJ0VN7XN5CJFTY67'::char(26)), ('01J58695478QX17FKNQ4ZVAVM1'::char(26)), ('01J75WP4DCTGFD0TV2MTE41HWX'::char(26)), ('01J75XE4WWMTSWGKBYE67NY95W'::char(26)), ('01J75XJR9YD6ESS5QF1V9TV1AS'::char(26)), ('01J75XQ353QSRNQ7VZHVRTCWX7'::char(26)), ('01J75Y2WHTQ8BY1WG3KDC4VH0T'::char(26)), ('01J75Y99MQRE4KZY1Y05T0VV7Z'::char(26)), ('01J75Y9XQQ3CM9C9XCGM35KGHM'::char(26)), ('01J9QVAB4BM3V4CM37DWM30K5M'::char(26)), ('01JCR3D1D3ZY3QVN5A61B1SK8G'::char(26)), ('01JEM6XKK9BKD2TG76FHMH4QDA'::char(26)), ('01JEMBY612J7PMW87T8XYEA091'::char(26)), ('01JEYV93PT3072YYWWAP3JEGPV'::char(26)), ('01JFSNJVY31X2T8RJT24BBDRST'::char(26)), ('01JG1WG1JK6DTHHBWAC3N22CGY'::char(26)), ('01JG44P0SND7T0B5ACX3A2FH9D'::char(26)), ('01JGFQ6VK2HDWJEEAS3VYPYYQP'::char(26)), ('01JGH4RQPT4TD8PYM1ETVDZBEB'::char(26)), ('01JH4FXVNPMAZB1TKET514AV9X'::char(26)), ('01JK12R970J9E43T5P5HWTENM4'::char(26)), ('01JK138N5MBCFERV2WCYYEXVQ1'::char(26)), ('01JKXMV3DZQ3HX1G6JDJQW2XDF'::char(26)), ('01JNE4XKDF5Z1CDR720PZNHKVV'::char(26)), ('01JNGBFNBBYVP1DYK7JNDFZQGQ'::char(26)), ('01JNHRW3KDVE6XAHZGBRZT62XE'::char(26)), ('01JPZPXCWQ7MCA40CNWSH28GR6'::char(26)), ('01JQCAB3DW1ZXQ6D5DX1BHJ8BP'::char(26)), ('01JQGZV6VZDFM9SC1JNPGFQD8N'::char(26)), ('01JR0WC1HZ1RPSXEHX8KFHVR6Z'::char(26)), ('01JRN5X6RYF1WS5FG707HY5QZA'::char(26)), ('01JRNNF1W627Z3TBWKS06TWFBW'::char(26)), ('01JRP9VAJRSV0R24F8TGCVZBHG'::char(26)), ('01JRTSGH6C7GFG42H6NY6SJBHG'::char(26)), ('01JRY8B2Z583SC5ZEACZ1K5XQ0'::char(26)), ('01JT3HPZZB0AVB5E8MK5MKPGZM'::char(26)), ('01JTGCC5GP27W4HNKG42Y6MF09'::char(26)), ('01JTSYQ7KAH9M98DSA3PPVP0WZ'::char(26)), ('01JVQZ68F7BTK5CNCK3HVVH592'::char(26)), ('01JW3QF7KAER5453T8PGACVZAJ'::char(26)), ('01JWWQ51HR3R0EC87SSRTK3XFQ'::char(26)), ('01JWXEQT4NB6ABSWNA8DM4318A'::char(26)), ('01K0QTBJE82WA2ZAWJJTTCFJSD'::char(26)), ('01K0Z2QJHF2E1M8585621P7AF7'::char(26)), ('01K2N8WH4HGG4DWCP7C72RK0DS'::char(26)), ('01K2XFKN0X9FGP0Z4HAVQSFQAN'::char(26)), ('01K727MG9QK1GFXZA8F49G1CHN'::char(26)), ('01KBE39J8P0ESVNTP3B7MJPZ8A'::char(26)), ('01KCGJEEG3GJ0JQPD99E0H0RAG'::char(26)), ('01KCSZ5HEYHZMEVDZQT4FDQYTG'::char(26)), ('01KDVC85NAB4JMQBXC552G9H51'::char(26)), ('01KHBNS8H8WZK70MVXWSMP1ADC'::char(26)), ('01KJATPHVFZVEJT7Z6JDYHVB4A'::char(26)), ('01KJG9PW50AZBTVW5D2NH1RMX3'::char(26)), ('01KPPCN19EGJ2N3JD3JK8Z96NN'::char(26)), ('01KPVMMF4YESS9EGYFCEQRCT7D'::char(26)), ('01KPZZ2WYYW70KRZMJR60NNFDS'::char(26)), ('01KS8K2G7ZT18H3ZA83S7GEMTX'::char(26)), ('01KT11HEJAMNQ7YS8N7FZH4HC4'::char(26)), ('01KTHFS76VYMX80XFVAEH2187Y'::char(26)), ('01KTYJAREWNQ0GM4YVW8WSMB5D'::char(26)), ('01KXPZT066KZ6SWTC9F8BT3VSZ'::char(26)), ('01KXRB11VCGSKA78P4P4W18N1Q'::char(26)), ('01KYVKABD7MKBPMHA3WAVVSSAT'::char(26)), ('01M7EPSSYTVQ8P5BHN9NEPCA7T'::char(26)), ('01M9RN3FGWA0F1ABHDHZNB8SCT'::char(26)), ('01MAJKA5157GYGH4V4B9GZ5CCV'::char(26)), ('01MF0JERZ55TY0G8TRTE867G0B'::char(26)), ('01MWZZM0QH26BDJPR7RG03JCYR'::char(26)), ('01MZ7FEMK09RT3C50Z7QQWXQNA'::char(26)), ('01N0Y1793BXPMM3P9Q7XM7QZQN'::char(26)), ('01N115BNT5ERRNNYXB2W0453J4'::char(26)), ('01N2ZE39DZBC1EH7MZQ3JBZVZE'::char(26)), ('01N3JVRFENQN5BSN9RHY2R29GG'::char(26)), ('01N5P9CR9QWS27CPBKMP1T373M'::char(26)), ('01N6MMSD28WQPZ8FFKHAV1SZPB'::char(26)), ('01N7WZNC8MVRCZFX1J3F0MXMED'::char(26)), ('01NQN2F3VJG4SMRSD42QMXYDC1'::char(26)), ('01NR1PXBYGRAJ28PCP19JYB756'::char(26)), ('01P3DC4H9Z263RM2JKYSZ0X4SN'::char(26)), ('01P539RH13YRVFDWW8MVPZKRW8'::char(26)), ('01P8KSW8B0RW2K466364V6BY7D'::char(26)), ('01P8QYNX7VKY4E43MB3X2DKN8V'::char(26)), ('01PB3YCAGVVTVM7JTSFK8WRWV9'::char(26)), ('01PCF3SAFKH1KVDHMD458MPS5N'::char(26)), ('01PX7AGFX66M57HV6YJTPT3EBM'::char(26)), ('01PZNHC63PPYTHMQ8A9HY1YP7X'::char(26)), ('01Q7ZJ700HE0J7ZV7WM4ZFPXX1'::char(26)), ('01QATDFQQSYK4F5T6P9AXDM637'::char(26)), ('01QBYS90D60720RA1N2J7CREG9'::char(26)), ('01QENWN77TSEM0VB4NGP4BXRNX'::char(26)), ('01QHTD5X15MVEFNBAJ5VPMMDTD'::char(26)), ('01QJKCF8WM7H1GD7CRT3H2VEE4'::char(26)), ('01QKNFYCBFNANRKDXQYWH246GK'::char(26)), ('01QVJBA4F63YYFH9EXN4NF41EC'::char(26)), ('01R03G2X49H8BS4Z52QF8GT3M2'::char(26)), ('01R8RZJ6EGRBK8VSJ7268SXWEG'::char(26)), ('01R9A1SYQA68ZWQY9H9QR2PS3R'::char(26)), ('01RDTES621167B0APPR4WMRPK9'::char(26)), ('01RHDD9SPJ5SC854MGJB3T49KM'::char(26)), ('01RJB6W1QNC1DMK4X9W8GFKEKR'::char(26)), ('01RMB7EYFBKZAF8WWQGKZKSZT6'::char(26)), ('01RPX6K11S6TC7KQDGT0HH575R'::char(26)), ('01RSQ1ZTFX936KW051ECGBBDBV'::char(26)), ('01RW9HW9TW15K16ZAQY5RA1B59'::char(26)), ('01RZPPDRD8XVTPVBBP2YHBJ17S'::char(26)), ('01S865K6GN8KJRCABY71HWH6EF'::char(26)), ('01S8ERTNETXDNXQ72BZ7Y4VPQS'::char(26)), ('01S9VR99FTHRWFJBTG1G722EAC'::char(26)), ('01SCJNCKYRS2V849HPFWCNJP98'::char(26)), ('01SDTT0Q72WSHCJ285XPPPR2G3'::char(26)), ('01SHJ4763YJTWVPY4V4CEE5MRP'::char(26)), ('01SMTYCEY76XY9R7NNKCFSSB79'::char(26)), ('01SRYWNXEYHKAXDW4Y7Y08JNKX'::char(26)), ('01STFTTQBQEXS1TVHSZG1BRK80'::char(26)), ('01T5R2T5EDMC987FEG7WWT8VXA'::char(26)), ('01T9SSP6YVMZJ9DS98E9403YH5'::char(26)), ('01TAWCEMQEN84TZ5RB276SNPFC'::char(26)), ('01TGBRWAWZ6HS48S9GVDV7ZFYR'::char(26)), ('01TQXC952JHY2XEE233WASVEK9'::char(26)), ('01TR5EDP73NPR12S85ENCWR5P3'::char(26)), ('01TTR9AXJMTBN6AD5PZGCAJSC2'::char(26)), ('01TYKK51B54F3BBE05HG0EYGWT'::char(26)), ('01VJXQ59Z0NHFYE5CR9Q2JVXJW'::char(26)), ('01VM56ZSRWX45817Y1Y9Y4RM01'::char(26)), ('01W71JQ9P3T94PABFZ1YVB43AA'::char(26)), ('01W9Q4NS5SPEJ0K676XFHJE5FY'::char(26)), ('01WCTCDT0PJAS0YEHS0P6K1QF7'::char(26)), ('01WMXHPHHFA602G42ZR69GFYZ1'::char(26)), ('01X8J6P8B3TRAC8N0VPB8AJCEB'::char(26)), ('01XDZ19FWPMJX6MKEHFWZMZYW8'::char(26)), ('01XHKD009T4W7MGC7FQTMRSSQ4'::char(26)), ('01XWC8MK7BYH164Z0W9M7N1E5F'::char(26)), ('01YAJ3172F4K9E269SJJVMKY1V'::char(26)), ('01YW7XGKSQC13GN3Q42BRQZATR'::char(26)), ('01ZED2MTT6VP2YAXS4FJQ6F8CZ'::char(26)), ('01ZFQ73C2GSJ3W5VCSC7Q0ZM3C'::char(26)), ('020MYYBFHE385P3SFG5CW9NFA1'::char(26)) ) as "_data"("account_id") CROSS JOIN LATERAL ( SELECT "status"."id" FROM "statuses" AS "status" WHERE ( "status"."account_id" = "_data"."account_id" ) AND ("flags" & 32 = 0) AND ("flags" & 2 = 0) AND ( "status"."id" < '01KVJY68YK0000000000000000' ) ORDER BY "status"."id" DESC LIMIT 100 ) AS "status" ORDER BY "status"."id" DESC LIMIT 100; QUERY PLAN ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Limit (cost=1435.53..1435.78 rows=100 width=27) (actual time=238.533..238.557 rows=100 loops=1) -> Sort (cost=1435.53..1436.30 rows=309 width=27) (actual time=238.533..238.540 rows=100 loops=1) Sort Key: status.id DESC Sort Method: top-N heapsort Memory: 36kB -> Nested Loop (cost=0.56..1423.72 rows=309 width=27) (actual time=0.419..197.809 rows=26106 loops=1) -> Values Scan on "*VALUES*" (cost=0.00..3.86 rows=309 width=108) (actual time=0.000..2.037 rows=309 loops=1) -> Limit (cost=0.56..4.57 rows=1 width=27) (actual time=0.041..0.418 rows=84 loops=309) -> Index Only Scan using statuses_home_timeline_idx on statuses status (cost=0.56..4.57 rows=1 width=27) (actual time=0.039..0.199 rows=84 loops=309) Index Cond: ((account_id = "*VALUES*".column1) AND (id < '01KVJY68YK0000000000000000'::bpchar)) Heap Fetches: 275 Planning Time: 1.391 ms Execution Time: 239.187 ms (12 rows) ``` Full credit to @cdn0x12 and @oliphant for tireless investigation and suggesting this way or organizing the query. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4891 |
||
|
|
5caf33de0d |
[bugfix] Ensure timeline side effects triggered for relayed Announces (#4901)
Fix Announce coming from relays not appearing in timeline streams. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4901 |
||
|
|
4bb89d213f |
[bugfix] Add support for public:remote stream type (#4899)
Adds support for the `public:remote` stream type, ie., the federated timeline with *only* remote posts in it (as used by masto-fe in the "live feeds -> other servers" tab). Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4899 |
||
|
|
d51bec4999 |
[bugfix/frontend] Fix docs links + remove trailing code for some relay stuff (#4898)
Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4894 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4898 |
||
|
|
9d03fc482a |
[bugfix] Depunify account domain in api instance response + web pages (#4897)
Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4893 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4897 |
||
|
|
ce6fd30017 |
[bugfix] Don't return 500 on forwarded Update targeting an actor (#4892)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Instead of returning 500 when someone tries to update someone else's account, return 202 if the receiver is the instance account (likely forwarded Update from a relay) or return 403 otherwise. Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4889 ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4892 Reviewed-by: kim <gruf@noreply.codeberg.org> |
||
|
|
663d725c92 |
[bugfix] Call dereferencer hook for relayed status to put in timeline(s) (#4887)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Fixes an issue where newly dereferenced statuses sent to us by a relay were not being added to timelines properly. Credit to lisko (matrix chat) for finding the bug. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4887 Reviewed-by: kim <gruf@noreply.codeberg.org> |
||
|
|
d40aefec8a |
[bugfix] fix erroneus use of RelayConnectionCreateRequest when updating a relay push (#4884)
Whoops! Fixes `Code 400: Bad Request: Key: 'RelayConnectionCreateRequest.RelayActorURI' Error:Field validation for 'RelayActorURI' failed on the 'required' tag` when updating a relay push. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4884 |
||
|
|
8737f05c47 |
[feature] Unfollow relay actor if no connections exist targeting that actor (#4880)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. As it says, if a connection targeting a relay actor gets removed, any follow (req) targeting that relay actor will also now be undone if no connections to that actor remain in the db. This allows instance admins to remove all connections targeting an actor, and create them again, essentially retrying sending the follow request. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4880 |
||
|
|
67b8b88b76 |
[chore] Just debug log wrong type (eg., dereffing Announce of Announce) in createAnnounceFromRelay (#4881)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Log only at debug level when we try get delivered an Announce of an Announce by a relay and try to deref the wrapped Announce as a status, we don't need to handle these or log big errors when we encounter them. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4881 |
||
|
|
c53f27bc1c |
[bugfix] don't error on db.ErrNoEntries in OnMediaDereference callback (#4874)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Handles all those `error dereferencing media: func3: db error getting status: sql: no rows in result set` error messages. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4874 |
||
|
|
26eb2c7e94 |
[chore] use time.Now() when published prop not present on Announce from relay actor (#4872)
As it says on the tin! Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4872 |
||
|
|
4e47c7625b |
[docs] Add note about Postgres docker shm-size parameter (#4873)
As it says! It's a common error when doing the second VACUUM command. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4873 |
||
|
|
b201dbeda5 |
[bugfix] Remove admin check on user-level relay push matchers (#4870)
🤦 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4870 |
||
|
|
b833c9666e |
[bugfix] set statuses-cleanup-remote-older-than to "0s", skip scheduling if 0 (#4869)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Fixes https://codeberg.org/superseriousbusiness/gotosocial/issues/4868 by changing default to 0s instead of 0. Also skips scheduling statuses cleanup if duration is not > 0 as there's no point. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4869 |
||
|
|
aec4f4610a |
[bugfix] Update go-sqlite3 to v0.35.1 to fix out of memory panic during migration (#4864)
Regression was introduced in v0.34.1; all versions above that panic as described in https://codeberg.org/superseriousbusiness/gotosocial/issues/4862, until the fix from https://github.com/ncruces/go-sqlite3/commit/d581398704480342712fd89572d55cb064ad6fcc Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4862 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4864 |
||
|
|
1a58374aa7 |
[bugfix] Fix account domain being used incorrectly in api instance responses (#4863)
Fixes a cheeky little bug I wrote 😎 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4863 |
||
|
|
ed164e831e |
[chore] HTTP server/client config stuff (#4861)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Removes unused setting `MaxOpenConnsPerHost`, document http server + client advanced config defaults, set MaxConnsPerHost to default `maxprocs * 10`. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4861 |
||
|
|
c6388ed088 |
[frontend] tweak account directory styling (#4860)
Makes it look a bit better on smaller screens by removing unnecessary padding. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4860 |
||
|
|
40ed94590f |
[docs] Update db maintenance docs, add status cleanup docs, update media cleanup docs (#4857)
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4857 Reviewed-by: kim <gruf@noreply.codeberg.org> |
||
|
|
4ce10bdb5e |
[bugfix] Fix error message for account-domain/host validation being the wrong way around (#4851)
Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4850 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4851 |
||
|
|
8bc9103f01 |
[chore] Return 202 when we're *forwarded* an activity originating from a domain we block (#4844)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Solves an annoying issue where we returning 403 to inbox posts when the caller wasn't actually blocked, but was forwarding us an activity originating from a domain that is blocked. Instead we now just return 202 and drop the activity. Also removes a bit of cruft with a custom error type and uses gtserror.NotRelevant instead. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [ ] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4844 |
||
|
|
3fe273cbd9 |
[feature] Show explanation when user shows no posts on the web (#4846)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. This pull request updates some of our templating to add a little explainer at the bottom of the page when a profile doesn't show posts on the web view, and also renders such a profile in a wide view as there's no need for a double-column thingy if there's no posts.  ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4846 |
||
|
|
a77b44caec |
[feature] better error pages + handling for hidden or gone statuses (#4840)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Update some of our templating and error handling so that deleted local statuses return 410 Gone with a page explaining what's up, and statuses not visible in the web view return a 401 Unauthorized page with a link to copy the status and paste it into a client.   ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4840 |
||
|
|
10244f032b |
[docs] Update database maintenance docs to specify using the gts binary to run analyze (#4843)
That's it! Reason for the change is explained in the added docs: ```markdown It's very important that when doing an analyze, you use the GoToSocial binary, and **not** the `sqlite3` command line tool. This is because the version of SQLite used in the GoToSocial binary has the compile-time flag `SQLITE_ENABLE_STAT4` enabled, which leads to much more thorough analysis and better query plans. If you run `analyze` using the `sqlite3` command line tool, you risk severely degrading performance for certain timeline and profile page queries! For more info on `SQLITE_ENABLE_STAT4`, see [the SQLite compilation flag docs](https://sqlite.org/compile.html#enable_stat4). ``` Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4843 |
||
|
|
47772362b9 |
[frontend] Update media cleanup form to better reflect API (#4839)
Clarify a bit of language on the form so users know they can submit duration strings as well as days. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4839 |
||
|
|
cc3af19e78 |
[feature] Allow sorting access tokens by last_used, allow setting name per access token (#4833)
This pull request adds database + frontend functionality to sort the token view by last used time (most recent to oldest), and allows users to set a name per token, as a reminder of why the token was created / what device is using it, etc. Also updates the token "last_used" updater to allow per-minute granularity instead of per-hour, since sorting by last_used is very confusing when you've just used a token but it's not shown up at the top of the list yet because you used it some time within the last hour. Closes: https://codeberg.org/superseriousbusiness/gotosocial/issues/4689 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4833 |
||
|
|
c8f6ef8028 |
[chore] Don't error message when unable to enrich mention because remote is blocked (#4838)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Updates logging when failing to enrich mentions, so that we don't log at error level when the mention isn't enriched because the remote is blocked. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4838 |
||
|
|
de2e6a066e |
[bugfix] Always return 401 unauthorized when deref of pubkey fails (#4836)
We should only be returning a 500 internal error for this when there's actually an internal error. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4836 |
||
|
|
b765e749be |
[feature] Forward outgoing creates, updates, and deletes to relay pushes (#4820)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. This should be the last PR finishing off relay support. Adds forwarding of creates, updates, and deletes of statuses to push relays configured by the author, using the instance account to do the forwarding. Related to https://codeberg.org/superseriousbusiness/gotosocial/pulls/4810, https://codeberg.org/superseriousbusiness/gotosocial/pulls/4796, and https://codeberg.org/superseriousbusiness/gotosocial/issues/1123 ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4820 |
||
|
|
7161b5c7db |
[chore] Add more bullshit crawlers to robots.txt 🖕 (#4829)
Beep boop. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4829 |
||
|
|
e0bc24aadc |
[bugfix] don't return 500 error on unsupported Announce forwards (#4828)
Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4750 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4828 |
||
|
|
6a5794e6bb |
[bugfix] Check error type when dereferencing threads, to avoid spurious error messages (#4824)
Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4512 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4824 |
||
|
|
126959d7f3 |
[feature/frontend] Add data-name="{{- .Name -}}" to fields to allow for per-field styling (#4827)
Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4736 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4827 |
||
|
|
8198126b3e |
[bugfix/frontend] Validate domain name for new domain perms earlier to avoid confusing err messages (#4826)
Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4733 by doing domain validation a bit earlier, and doing better domain validation on the "new domain perm" form thingy. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4826 |
||
|
|
3b63e8979d |
[chore] remove unused auth_flow.sh script (#4822)
Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/2421 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4822 |
||
|
|
bafe562b39 |
[docs] Update config examples for crons (#4821)
weeeeeee Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4821 |
||
|
|
12e6d0c76b |
[feature] Dereference + store statuses delivered by a followed relay actor (#4810)
This pull request implements incoming federation side effects for receiving statuses from subscribed relays (either as announces or forwarded Creates). Follow up to https://codeberg.org/superseriousbusiness/gotosocial/pulls/4796 closes https://codeberg.org/superseriousbusiness/gotosocial/issues/1123 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4810 |
||
|
|
603c849740 |
[feature] Add button to clear instance delivery errors (#4818)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Should be useful: if you've defederated from an instance cuz it's not online anymore, you don't need those delivery errors hanging around forever. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [ ] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4818 |
||
|
|
dd81a521a5 |
[bugfix] Fix logic error on outgoing poll votes (#4813)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4812 (see explanation there). Credit to @oliphant for the fix. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4813 |
||
|
|
39ad509968 |
[feature] Add db functions, api endpoints, and settings panel sections for relay subscriptions + pushes (#4796)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. This pull request: - adds database functionality + tables for three new models: RelayPush, RelaySubscription, and RelayMatcher. - adds api endpoints `/api/v1/admin/relay_subscriptions` etc, and `/api/v1/relay_pushes` etc, to allow admins to manage relay subscriptions, and users to manage relay push connections. - adds settings panel sections for admins to manage relay subscriptions and relay subscription matchers, and for users to manage relay push connections and relay push matchers - adds documentation for all of the above The goal is, unlike other ActivityPub server softwares, to make a split between relay subscriptions (accepting delivery of posts from a relay), and relay push connections (pushing posts to a relay). Relay subscriptions are an admin-level thing, as they can cause ballooning storage size and we don't necessarily want users to be able to do that. On the other hand, relay pushes are a user level thing, as users should be able to configure on a granular level which posts of theirs are sent to which relays. Using relay flags and relay matchers (see documentation), admins and users can configure exactly which posts are pulled and pushed via relays.  Relates to https://codeberg.org/superseriousbusiness/gotosocial/issues/1123 but doesn't quite close it yet. **THIS DOES NOT YET ADD BACKEND FUNCTIONALITY FOR ACTUALLY PUSHING POSTS + ACCEPTING POSTS** -- that will come in a separate PR. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [x] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4796 |
||
|
|
85050eec41 |
[feature] Serve instance actor AP representation without auth (#4798)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Adapted from https://codeberg.org/superseriousbusiness/gotosocial/pulls/4235, all credit to @daenney, I just made this into a separate PR because it's easier than updating the 10-month old one. Getting to this now because it'll be needed for the relay stuff (we use the instance actor for relay stuff, but not all relays do signed GETs). Closes https://codeberg.org/superseriousbusiness/gotosocial/pulls/4235 ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [x] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4798 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
cc1316b498 |
[feature] Store delivery errors, add remote instances overview to view stored errors (#4741)
- reworks the `instances` table significantly, to remove a lot of stuff we weren't using, and add fields for storing delivery errors
- adds an `instance_settings` table that just stores local instance settings like title, description, etc, and uses this table for building responses to `/api/v1/instance` and and `/api/v2/instance`, instance metadata, etc
- passes a database connection to delivery workers so that they can store delivery errors or clear delivery errors on successful delivery
- adds admin instance endpoints `/api/v1/admin/instances` and `/api/v1/admin/instances/{instance}` for fetching admin view of instances
- adds setting panel stuff for viewing instances and whatnot
Relates to https://codeberg.org/superseriousbusiness/gotosocial/issues/2493
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4741
Co-authored-by: tobi <tobi.smethurst@protonmail.com>
Co-committed-by: tobi <tobi.smethurst@protonmail.com>
|
||
|
|
e5f7b69df3 |
[chore] Update gotosocial-woodpecker-build version number (#4774)
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4774 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
92d7e6c456 |
[chore/performance] Set lazy loading in HTML for status header avatars (#4772)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Since we now make it possible to show reblogs on an account's web view, it's possible that the browser will wanna load lots of avatars at once when loading the web view (including images that aren't currently cached). This PR adds lazy loading for these avatars so they get loaded in as the user scrolls down the page instead of all at once. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [ ] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4772 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
40fff696ba |
[feature] Add config option smtp-from-display-name for customization of email from address display name (#4769)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4765 Tested + working on goblin.technology with mailgun. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4769 Reviewed-by: Daenney <daenney@noreply.codeberg.org> Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
beb928196c |
[bugfix] Preescape backslashes when doing plaintext parsing (#4770)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4762 ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [x] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4770 Reviewed-by: kim <gruf@noreply.codeberg.org> Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
fe460402d3 |
[chore] Use bun.Ident() in GetCachedAttachments (#4753)
I'd be very much surprised if this was causing https://codeberg.org/superseriousbusiness/gotosocial/issues/4735 but you never know I suppose. In any case it's good practice to do it this way and it's consistent with how we do things elsewhere sooooo. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4753 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
a2cbe8cf28 |
[docs/bugfix] Fix link to example systemctl file (#4751)
Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4744 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4751 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
085448e30d |
[bugfix] Only insert status pins if slice not empty (#4743)
Fix a little migration oopsie. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4743 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
ad85f89956 |
[bugfix] Fix 404 for local audio files with no cover image (#4739)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4734 by accounting for media attachments without thumbnail when doing `Cached()` check. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4739 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
b49939a6a0 |
[bugfix] Check replyAuthorization prop on statuses, fall back to deprecated approvedBy (#4732)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. We weren't checking for `replyAuthorization` on incoming statuses, still using the deprecated `approvedBy` property. Whoopsieeee. closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4728 ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4732 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
d1f330e9cd |
[bugfix] Fix missing prometheus go runtime metrics (#4718)
Force prometheus exporter instead of using autoexport and relying on experimental env flags to get prometheus go runtime metrics. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4718 Reviewed-by: kim <gruf@noreply.codeberg.org> Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
ec69200777 |
[feature] Add instance directory page for accounts that opt-in to discoverability (#4707)
This pull request adds the `/api/v1/directory` endpoint, and an instance directory page at `/directory` that shows a list of all accounts on the instance (local only) that have opted in to being discoverable in the account settings panel. Also adds two new config variables: `instance-directory-mode`, and `instance-robots-allow-indexing`, which provide instance admins with granular controls over whether to expose the instance directory at all, and whether to allow search engine crawlers access to the directory. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4707 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
020c3683b9 |
[bugfix] Fix error when federating Update of local bot account (#4713)
Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4710 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4713 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
1be91f98ac |
[bugfix] Fix suspend account reason not stored for manual admin actions (#4702)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Due to a frontend issue the reason for suspension of an account by an admin wasn't being stored when an admin did a manual suspend account action. This fixes that! closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4678 ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [x] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4702 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
942688718b |
[bugfix] invalidate timelines on domain limit change to avoid including filter="hide" statuses (#4693)
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4693 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
980f2ca227 |
[bugfix] Fix incorrect domain limit statuses policy serialization (#4692)
fix tiniest but very annoying serialization error Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4692 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
812a6c5353 |
[bugfix] Vary "order by" statement when doing unions according to driver in use (#4691)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. See comment in code. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [x] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4691 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
db1184e9b6 |
[bugfix] Fix boosts not showing on web view of profile when show public + unlisted is selected (#4690)
# Description
> If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements.
>
> If this is a documentation change, please briefly describe what you've changed and why.
Fixes boosts not showing on web view of profile when show public + unlisted is selected.
Also updates our web status selection to use a `UNION ALL` query where appropriate to select both unlisted and public statuses. This ensures that the proper indexes on the statuses table get used. Without the union, the query planner (at least in sqlite) gets confused, and creates a temporary index, which is leagues slower.
```
QUERY PLAN
`--MERGE (UNION ALL)
|--LEFT
| |--SEARCH status USING INDEX statuses_profile_web_view_including_boosts_idx (local=? AND account_id=? AND visibility=? AND in_reply_to_uri=? AND federated=?)
| |--SEARCH boost_of_account USING INDEX sqlite_autoindex_accounts_1 (id=?) LEFT-JOIN
| `--SEARCH boost_of USING INDEX sqlite_autoindex_statuses_1 (id=?) LEFT-JOIN
`--RIGHT
|--SEARCH status USING INDEX statuses_profile_web_view_including_boosts_idx (local=? AND account_id=? AND visibility=? AND in_reply_to_uri=? AND federated=?)
|--SEARCH boost_of_account USING INDEX sqlite_autoindex_accounts_1 (id=?) LEFT-JOIN
`--SEARCH boost_of USING INDEX sqlite_autoindex_statuses_1 (id=?) LEFT-JOIN
```
## Checklist
Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]`
If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want).
- [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md).
- [x] I/we have not used so-called 'AI' to create the proposed changes.
- [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat.
- [x] I/we have performed a self-review of added code.
- [x] I/we have written code that is legible and maintainable by others.
- [x] I/we have commented the added code, particularly in hard-to-understand areas.
- [x] I/we have made any necessary changes to documentation.
- [x] I/we have added tests that cover new code.
- [x] I/we have run tests and they pass locally with the changes.
- [x] I/we have run `go fmt ./...` and `golangci-lint run`.
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4690
Co-authored-by: tobi <tobi.smethurst@protonmail.com>
Co-committed-by: tobi <tobi.smethurst@protonmail.com>
|
||
|
|
df4c875633 |
[bugfix] Fix manualApproval not always serialized (#4688)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. `manualApproval` wasn't being serialized properly on outgoing AP notes, this fixes it! ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [x] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4688 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
7fa9ed12ce |
[bugfix] Check boosted statuses for media when doing web media_only statuses queries (#4685)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Now that we have an option to include reblogs, we needed to rejig the web "gram-style view" db queries to also look for media on reblogged / boosted statuses and include those too. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [x] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4685 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
9696ef4fbe |
[feature] Opt-in to show boosts on web view of profile (respecting visibility settings) (#4680)
This pull request adds a new setting to allow GtS users to opt in to showing boosts on the web view of their profile. The default is "no", preserving existing behavior. If an account allows showing boosts, web visitors can still toggle between including / excluding boosts on the web view, with a new link next to the "recent posts" header. Privacy settings are respected for boosted posts, including hides_cc_public_from_unauthed_web and hides_to_public_from_unauthed_web. To make this work, the web view index was recreated, and a new index was added for including boosts. closes https://codeberg.org/superseriousbusiness/gotosocial/issues/926 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4680 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
8ac11f58db |
[feature] Add language dropdown to sign-in form, fall back to first instance language if not provided (#4679)
This pull request makes the `locale` parameter on account sign up optional, adds a language selector dropdown thingy to the sign up form, and uses that as an account's default posting language if provided. If not, falls back to the instance's first language (if configured). Otherwise, falls back to "en" (default behavior before this change). Relates to https://codeberg.org/superseriousbusiness/gotosocial/issues/2061 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4679 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
c4f1988a30 |
[feature/frontend] Expand/collapse all spoilers button for threads (#4672)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Adds a button in the column header of the thread view to expand/collapse all spoilers in the thread *if* there's more than one text-spoiler'd post in the thread. Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4471  WIP as I still want to check how the button looks in each CSS theme and make adjustments if necessary. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4672 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
409b286dc2 |
[bugfix] Fix statuses not being timelined + notified when dereffed rather than delivered (#4667)
This pull request pulls the "surfacing" logic in `processing/workers` into a separate `surfacing` package, which exposes a `surfacer` struct with functions set on it for things like notifying, timelining, emailing, and streaming. The surfacer is then set on sub-processors, so that those sub-processors can call surfacing functions as necessary (during status creation etc). To fix issues like https://codeberg.org/superseriousbusiness/gotosocial/issues/4627, where posts are not appearing in timelines or being notified for, because they entered the instance in ways other than being POSTed to an inbox, dereferencer functions now accept an optional `newThreadEntryCallback` function that will be triggered for each *new* status dereferenced as part of (asynchronous) thread dereferencing. As such, in common race conditions where we see a status by doing parent / search / thread dereferencing *BEFORE* that status actually gets POSTed to our inbox, the status should still be timelined + notified (as appropriate). Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4627 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4667 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
dd294194f4 |
[performance] Create index for poll expiry scheduling to prevent long startup times (#4670)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. This pull request creates a partial index (https://sqlite.org/partialindex.html, https://www.postgresql.org/docs/current/indexes-partial.html) for selection of local polls that need to be scheduled for expiry. This should massively decrease startup time on instances with lots of statuses in the database (goblin.technology I'm looking at you...), going from minutes to seconds! ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4670 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
74d5a2fb30 |
[chore] Clean up web push subscription if access token no longer exists (#4669)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. As it says! Adds an extra condition for cleaning up a web push subscription, and consolidates the clean up into a utility function. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4669 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
c5d255fb33 |
[bugfix] Use ipv6 cidr for trusted proxies req when clientIP is ipv6; check for empty clientIP before parsing (#4666)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4636 Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4479 ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4666 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
55df1b8cf9 |
[bugfix] Disallow registration via sign up page when OIDC is enabled (#4665)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. This pull request disallows registration via POSTing the sign up form, when OIDC is enabled. Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4483 ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4665 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
c1708c211f |
[bugfix] Don't return 500 when someone tries to Delete or Update something they don't own (#4663)
# Description
> If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements.
>
> If this is a documentation change, please briefly describe what you've changed and why.
Noticed Friendica doing a weird thing where they're sending out deletes of someone else's *tombstone* (?):
```json
{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
{
"Hashtag": "as:Hashtag",
"PropertyValue": "schema:PropertyValue",
"conversation": "ostatus:conversation",
"dfrn": "http://purl.org/macgirvin/dfrn/1.0/",
"diaspora": "https://diasporafoundation.org/ns/",
"directMessage": "litepub:directMessage",
"discoverable": "toot:discoverable",
"featured": {
"@id": "toot:featured",
"@type": "@id"
},
"litepub": "http://litepub.social/ns#",
"manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
"ostatus": "http://ostatus.org#",
"quoteUrl": "as:quoteUrl",
"schema": "http://schema.org#",
"sensitive": "as:sensitive",
"toot": "http://joinmastodon.org/ns#",
"value": "schema:value",
"vcard": "http://www.w3.org/2006/vcard/ns#"
}
],
"actor": "https://sfba.social/users/godzero",
"cc": "https://sfba.social/users/godzero/followers",
"id": "https://thegoatery.dyndns.org/objects/01e8a30d-e643609307c99234-626ae548/Delete",
"instrument": {
"id": "https://thegoatery.dyndns.org/friendica",
"name": "Friendica 'Interrupted Fern' 2024.12-1576",
"type": "Application",
"url": "https://thegoatery.dyndns.org"
},
"object": {
"id": "https://sfba.social/users/godzero/statuses/111846802224346241",
"type": "Tombstone"
},
"published": "2024-01-30T20:32:42Z",
"to": [
"https://thegoatery.dyndns.org/profile/goatsarah",
"https://www.w3.org/ns/activitystreams#Public"
],
"type": "Delete"
}
```
This was triggering an error in the activity library which annoyingly isn't wrapped in an error type, but we can catch it by checking the error string and just returning 403 if we see it, instead of 500. It's not actually an internal server error after all.
## Checklist
Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]`
If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want).
- [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md).
- [x] I/we have not used so-called 'AI' to create the proposed changes.
- [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat.
- [x] I/we have performed a self-review of added code.
- [x] I/we have written code that is legible and maintainable by others.
- [x] I/we have commented the added code, particularly in hard-to-understand areas.
- [ ] I/we have made any necessary changes to documentation.
- [ ] I/we have added tests that cover new code.
- [x] I/we have run tests and they pass locally with the changes.
- [x] I/we have run `go fmt ./...` and `golangci-lint run`.
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4663
Co-authored-by: tobi <tobi.smethurst@protonmail.com>
Co-committed-by: tobi <tobi.smethurst@protonmail.com>
|
||
|
|
0436499694 |
[feature] include canQuote = author only, on outgoing posts (#4662)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Always set to author only at the moment as we don't (yet) support quote posts. Part of https://codeberg.org/superseriousbusiness/gotosocial/issues/4462 ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4662 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
ce571b73d8 |
[bugfix] Don't return 500 Internal Server Error for QuoteAuthorization deletes (#4661)
WIP! https://codeberg.org/superseriousbusiness/gotosocial/issues/4660 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4661 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
696fc66619 |
[feature] Preserve whitespace in opengraph meta description elements (#4658)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. More dicking about with opengraph meta stuff. This one preserves whitespace and newlines and indentation and stuff inside of ogmeta description tags. Should make multi-line posts look a LOT better when linked in discord etc.  Also closes https://codeberg.org/superseriousbusiness/gotosocial/issues/2452 for all intents + purposes, since text inside description tags is now converted to text, and go templating escapes them instead of them being escaped and *then* truncated. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [x] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4658 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
6151130843 |
[bugfix] Don't allow decrement of account stats below 0 (#4657)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. This pull request prevents decrementing account stats below 0, using `GREATEST` function for Postgres, and `MAX` function for SQLite. Also fixes a little bug where we were decrementing rather than incrementing when someone pinned a status. Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4653 ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4657 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
53ad3d6b8e |
[chore] Dick about with ogmeta tags a bit more (#4656)
Dicks about with opengraph a bit to try to make it a bit more coherent. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4656 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
5295d4fad8 |
[chore] More interaction tidying (#4655)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. - Removes sending out the deprecated `approvedBy` field, now that we use polite requests. - Always add `result` to accepts of interaction requests. - Update tests. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4655 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
5d824d2698 |
[chore/performance] avoid serializing empty / null AS properties (#4651)
As it says! There's lots of places where we serialize empty arrays, default false values, or null summary props, when sending ActivityStreams objects over the wire, so this cuts down on that by skipping those if they're nil / empty. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4651 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
3b4454d574 |
[docs] fix indentation in interaction controls doc (#4650)
Fixes an indentation error that was causing the docs to be rendered weirdly. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4650 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
b45385d197 |
[docs] Update interaction control docs to >=v0.21.0 way of doing things (#4648)
This ginormous PR updates our docs to the up-to-date way of doing things that will be the behavior of v0.21.0 and subsequent GtS versions. It took fucking ages to write and I've gone insane unfortunately, whoops. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4648 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
531ada22ce |
[bugfix] Mark targets of pre-approved polite interaction requests as no longer pending approval (#4647)
Fix a little bug written by yours truly, where we weren't marking the targets of pre-approved ReplyRequests and AnnounceRequests as no longer pending approval. Only just found this now because of testing with polite requests. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4647 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
d4521f9184 |
[feature] Send out and serve polite LikeRequest, ReplyRequest, and AnnounceRequest objects (#4642)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. This pull request updates a bunch of our logic to send out polite LikeRequests, ReplyRequests, and AnnounceRequests where appropriate, instead of sending out "impolite" Likes, Create.Notes, and Announces. GtS v0.20.0 and above should be compatible with these changes, but it will break compatibility for versions of GtS below that version, which do not understand LikeRequest, ReplyRequest, and AnnounceRequest (unfortunately!). Not much to be done about that, unfortunately! This is part of the process of bringing GtS's way of doing interactions in line with the stuff Mastodon introduced in their QuoteRequest stuff, and paves the way to us also doing QuoteRequests at some point. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. <-- going to do this in a separate PR - [x] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4642 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
af53aa0e2b |
[chore] Remove deprecated always and with_approval properties in favor of automatic_approval and manual_approval (#4643)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Does as it says! We do still check for `always` and `manualApproval` when deserializing federated interaction policies though, but this will be removed in v0.22.0. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4643 Reviewed-by: kim <gruf@noreply.codeberg.org> Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
c74c5b7404 |
[feature] Implement domain limit StatusesPolicy and AccountsPolicy side effects (#4621)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Adds side effects for `StatusesPolicy` and `AccountsPolicy`, and does a bit of cleaning up. Side effects for `StatusesPolicy`: return filtered = true, or hide status, when a domain limit is matched and the StatusesPolicy says it should be warn or hide filtered. Side effects for `AccountsPolicy`: return muted = true when an account (or account boosted by that account) is not followed from the perspective of the requester. Notifications are unaffected. That's it! Related #2676, #4554 ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [x] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Co-authored-by: kim <grufwub@gmail.com> Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4621 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
17208a6fb2 |
[docs] Add docs for domain limits (#4624)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Related #2676, #4554 ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4624 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
b619f902eb |
[chore] Update robots.txt md5 hashes for etags (#4623)
Forgot to update these in https://codeberg.org/superseriousbusiness/gotosocial/pulls/4622 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4623 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
cbaf513375 |
[chore] Update robots.txt with latest list of "ai" bullshit user-agents (#4622)
Love this timeline. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4622 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
e1186f4594 |
[feature] Add domain limit follows policy side effects (#4617)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Does as it says! This adds automatic rejection of follows where necessary, and other bits + bobs. Related #2676, #4554 ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [x] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4617 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
e8e27f4412 |
[feature] Prepend domain limit content warning to posts as appropriate (#4618)
Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/9 Related #2676, #4554 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4618 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
b1ffb66ba3 |
[feature] add /api/v1/admin/media_purge endpoint (#4613)
This pull request implements a media purge endpoint that allows admins to stub all media (attachments, avatars, headers, emojis) from a given domain. This will cause media to be removed from storage. Metadata like image description, remote URL, and blurhashes will be kept. This is useful in combination with domain limits, when an admin wants to immediately purge a domain's media after creating a limit. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4613 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
74718a6cec |
[feature] Add domain limit media Reject and MarkSensitive side effects (#4611)
This pull request implements the side effects of domain limit media policy values `Reject` and `MarkSensitive`. - In typeutils, `sensitive` is forced to `true` if necessary. - In the dereferencer, limits are checked and the `RejectMedia` flag is passed through on media and emoji info. - In the media manager, if `RejectMedia` is set to true, then `stubOnly` will be set on processing media and emojis, and the data function will not be called. Instead, any cached media will be uncached instead. Important note about this: uncaching will be done *lazily*, ie., media won't be all deleted immediately as soon as the domain limit is put in place. It will take a while. ~~I'm thinking about adding some kind of purge media API endpoint...~~ - https://codeberg.org/superseriousbusiness/gotosocial/pulls/4613 Related: https://codeberg.org/superseriousbusiness/gotosocial/issues/2676, https://codeberg.org/superseriousbusiness/gotosocial/pulls/4554 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4611 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
3c6817fbca |
[bugfix] Allow mention namestrings to include unicode emoji in username + domain parts (#4609)
Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4571 by allowing up to unicode 17 emojis in usernames + domains in the namestring regex. Co-authored-by: kim <grufwub@gmail.com> Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4609 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
a9cefbb9ef |
[bugfix] Check follow req as well as follow when building relationship model (#4605)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Fixes an issue where you could click the bell on pending follow requests (as is expected), but the little bell would not light up!! Turns out it's because we only checked follows and not follow requests for those fields when building up the relationship API model. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [x] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4605 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
9a84303db9 |
[bugfix] Remove follow (req) notifications on Follow Undo (#4604)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4590 ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [x] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4604 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
4996d894d1 |
[chore] Flag release archive files as 0644 explicitly (#4603)
Goreleaser must have changed their defaults at some point. Anyway, this marks release assets as 0644 explicitly. Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4509 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4603 Reviewed-by: kim <gruf@noreply.codeberg.org> Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
3c5b43e2fe |
[bugfix] Fix my migration crimes (#4602)
I made a mistake where the migration updated ALL actors to type 5 -_- This fixes that. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4602 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
a54a30b4d5 |
[bugfix] Preserve significant whitespace for new local plain posts + incoming remote posts (#4599)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. This PR updates normalization of incoming remote statuses to preserve whitespace -- which may be significant -- and updates our own parser to replace significant whitespace in new plaintext posts with non-breaking space characters. Parsing of new local markdown posts is not affected, since using ` ` to represent significant whitespace is not part of the markdown spec afaik. Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4533 ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first two checkboxes must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have not used so-called 'AI' to create the proposed changes. - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [x] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4599 Reviewed-by: kim <gruf@noreply.codeberg.org> Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |
||
|
|
4780662511 |
[chore] Swap Application and Service actor types for better Smithereen compat (#4598)
Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4565 Tested on local postgres + sqlite. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4598 Reviewed-by: Daenney <daenney@noreply.codeberg.org> Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com> |