summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFiles
2025-04-29[docs] small changes to the proof-of-work scraper deterrence docs (#4084)Libravatar kim3
- moves it to the advanced section - adds it to the mkdocs config - adds warning about it not covering RSS endpoints Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4084 Co-authored-by: kim <grufwub@gmail.com> Co-committed-by: kim <grufwub@gmail.com>
2025-04-28[feature] proof of work scraper deterrence (#4043)Libravatar kim16
This adds a proof-of-work based scraper deterrence to GoToSocial's middleware stack on profile and status web pages. Heavily inspired by https://github.com/TecharoHQ/anubis, but massively stripped back for our own usecase. Todo: - ~~add configuration option so this is disabled by default~~ - ~~fix whatever weirdness is preventing this working with CSP (even in debug)~~ - ~~use our standard templating mechanism going through apiutil helper func~~ - ~~probably some absurdly small performance improvements to be made in pooling re-used hex encode / hash encode buffers~~ the web endpoints aren't as hot a path as API / ActivityPub, will leave as-is for now as it is already very minimal and well optimized - ~~verify the cryptographic assumptions re: using a portion of token as challenge data~~ this isn't a serious application of cryptography, if it turns out to be a problem we'll fix it, but it definitely should not be easily possible to guess a SHA256 hash from the first 1/4 of it even if mathematically it might make it a bit easier - ~~theme / make look nice??~~ - ~~add a spinner~~ - ~~add entry in example configuration~~ - ~~add documentation~~ Verification page originally based on https://github.com/LucienV1/powtect Co-authored-by: tobi <tobi.smethurst@protonmail.com> Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4043 Reviewed-by: tobi <tsmethurst@noreply.codeberg.org> Co-authored-by: kim <grufwub@gmail.com> Co-committed-by: kim <grufwub@gmail.com>
2025-04-28[chore/docs] add symmetry to the politics (#4081)Libravatar Nicole Mikołajczyk1
Signed-off-by: Nicole Mikołajczyk <git@mkljczk.pl> ## Checklist - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [ ] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have not leveraged AI to create the proposed changes. - [ ] 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. - [ ] I/we have run tests and they pass locally with the changes. - [ ] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4081 Co-authored-by: Nicole Mikołajczyk <git@mkljczk.pl> Co-committed-by: Nicole Mikołajczyk <git@mkljczk.pl>
2025-04-28[chore] Remove unused import (#4077)Libravatar tobi1
Remove an unused import that was causing the testrig not to build properly. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4077 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com>
2025-04-28[chore/docs] Put some politics in the code (#4076)Libravatar tobi2
The code didn't have enough politics so this fixes that. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4076 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com>
2025-04-28[docs] Move docs links to codeberg (#4074)Libravatar tobi10
Update more links from github -> codeberg in the docs. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4074 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com>
2025-04-28bump dependencies: minio-go, go-sqlite3, goldmark, otel, x/image/webp (#4075)Libravatar kim31
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4075 Co-authored-by: kim <grufwub@gmail.com> Co-committed-by: kim <grufwub@gmail.com>
2025-04-28[chore] Update build to use new woodpecker dind container, bump version ↵Libravatar tobi3
numbers (#4073) As described! Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4073 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com>
2025-04-27[chore] Override woodpecker plugin for snapshot + release to get tags (#4069)Libravatar tobi2
We need tags to do snapshots + releases properly! Another cheeky little difference from drone. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4069 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com>
2025-04-27[chore] Fix CI/CD snapshot / release (#4068)Libravatar tobi2
🤦 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4068 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com>
2025-04-27[docs] clearer structure for "combining blocks and allows" section (#4065)Libravatar İ. Göktuğ Kayaalp1
# Description This patch moves figures around in `admin/federation_modes.md` in order to make the text more approachable. Reading it, I found that I dwelled long on the chart, not thinking that there would be an easier to read explanation below, so I thought it'd make sense to swap the places. I also felt like the warning at the bottom was important enough that it'd better be up near the top of the section, highlighting the importance of understanding the explanation below. I did not see a commit message style guide in project docs so I improvised based on recent commit 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 checkbox 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). - [ ] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [X] I/we have not leveraged AI to create the proposed changes. - [ ] I/we have performed a self-review of added code. - [ ] 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. - [ ] I/we have run tests and they pass locally with the changes. - [ ] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4065 Co-authored-by: İ. Göktuğ Kayaalp <self@gkayaalp.com> Co-committed-by: İ. Göktuğ Kayaalp <self@gkayaalp.com>
2025-04-27[chore] Disable default issue templateLibravatar daenney1
2025-04-27[chore] Bring back the issue and PR templatesLibravatar Daenney5
2025-04-27[chore] Rewrite all remaining Github linksLibravatar Daenney67
2025-04-27[chore] add woodpecker ci/cd pipelines (#4061)Libravatar tobi6
Removes our now unused drone stuff and adds pipelines for our new woodpecker instance. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4061 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com>
2025-04-26[chore] Fix daenney being bad at sed (#4060)Libravatar Daenney15
Co-authored-by: Daenney <daenney@users.noreply.github.com> Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4060 Co-authored-by: Daenney <daenney@noreply.codeberg.org> Co-committed-by: Daenney <daenney@noreply.codeberg.org>
2025-04-26[feature] Move to code.superseriousbusiness.orgLibravatar Daenney1195
2025-04-26[chore] Set up Github to be a mirrorLibravatar Daenney9
2025-04-26[chore] fix testrig build (#4059)Libravatar tobi2
2025-04-26[feature] Update attachment format, receive + send `focalPoint` prop + use ↵Libravatar tobi18
it on the frontend (#4052) * [feature] Update attachment format, receive + send `focalPoint` prop + use it on the frontend * whoops * boop * restore function signature of ExtractAttachments
2025-04-26[performance] rewrite timelines to rely on new timeline cache type (#3941)Libravatar kim108
* start work rewriting timeline cache type * further work rewriting timeline caching * more work integration new timeline code * remove old code * add local timeline, fix up merge conflicts * remove old use of go-bytes * implement new timeline code into more areas of codebase, pull in latest go-mangler, go-mutexes, go-structr * remove old timeline package, add local timeline cache * remove references to old timeline types that needed starting up in tests * start adding page validation * fix test-identified timeline cache package issues * fix up more tests, fix missing required changes, etc * add exclusion for test.out in gitignore * clarify some things better in code comments * tweak cache size limits * fix list timeline cache fetching * further list timeline fixes * linter, ssssssssshhhhhhhhhhhh please * fix linter hints * reslice the output if it's beyond length of 'lim' * remove old timeline initialization code, bump go-structr to v0.9.4 * continued from previous commit * improved code comments * don't allow multiple entries for BoostOfID values to prevent repeated boosts of same boosts * finish writing more code comments * some variable renaming, for ease of following * change the way we update lo,hi paging values during timeline load * improved code comments for updated / returned lo , hi paging values * finish writing code comments for the StatusTimeline{} type itself * fill in more code comments * update go-structr version to latest with changed timeline unique indexing logic * have a local and public timeline *per user* * rewrite calls to public / local timeline calls * remove the zero length check, as lo, hi values might still be set * simplify timeline cache loading, fix lo/hi returns, fix timeline invalidation side-effects missing for some federated actions * swap the lo, hi values :facepalm: * add (now) missing slice reverse of tag timeline statuses when paging ASC * remove local / public caches (is out of scope for this work), share more timeline code * remove unnecessary change * again, remove more unused code * remove unused function to appease the linter * move boost checking to prepare function * fix use of timeline.lastOrder, fix incorrect range functions used * remove comments for repeat code * remove the boost logic from prepare function * do a maximum of 5 loads, not 10 * add repeat boost filtering logic, update go-structr, general improvements * more code comments * add important note * fix timeline tests now that timelines are returned in page order * remove unused field * add StatusTimeline{} tests * add more status timeline tests * start adding preloading support * ensure repeat boosts are marked in preloaded entries * share a bunch of the database load code in timeline cache, don't clear timelines on relationship change * add logic to allow dynamic clear / preloading of timelines * comment-out unused functions, but leave in place as we might end-up using them * fix timeline preload state check * much improved status timeline code comments * more code comments, don't bother inserting statuses if timeline not preloaded * shift around some logic to make sure things aren't accidentally left set * finish writing code comments * remove trim-after-insert behaviour * fix-up some comments referring to old logic * remove unsetting of lo, hi * fix preload repeatBoost checking logic * don't return on status filter errors, these are usually transient * better concurrency safety in Clear() and Done() * fix test broken due to addition of preloader * fix repeatBoost logic that doesn't account for already-hidden repeatBoosts * ensure edit submodels are dropped on cache insertion * update code-comment to expand CAS accronym * use a plus1hULID() instead of 24h * remove unused functions * add note that public / local timeline requester can be nil * fix incorrect visibility filtering of tag timeline statuses * ensure we filter home timeline statuses on local only * some small re-orderings to confirm query params in correct places * fix the local only home timeline filter func
2025-04-25[chore] Move deps to code.superseriousbusiness.org (#4054)Libravatar tobi955
2025-04-24[chore] Update `activity` to v1.14.0 (#4038)Libravatar tobi216
2025-04-24[docs] Mention where to run the command to grant CREATE permissions (#4050)Libravatar Ember1
2025-04-23[chore/frontend] Update skulk, caniuse (#4044)v0.19.0Libravatar tobi2
2025-04-22[chore/frontend] rejig server picker recommendations (#4042)Libravatar tobi1
2025-04-22Bump http-proxy-middleware from 2.0.7 to 2.0.9 in /web/source (#4041)v0.19.0-rc3Libravatar dependabot[bot]1
2025-04-22[chore]: Bump golang.org/x/net from 0.38.0 to 0.39.0 (#4034)Libravatar dependabot[bot]3
2025-04-22[chore]: Bump github.com/gin-contrib/sessions from 1.0.2 to 1.0.3 (#4033)Libravatar dependabot[bot]33
Bumps [github.com/gin-contrib/sessions](https://github.com/gin-contrib/sessions) from 1.0.2 to 1.0.3. - [Release notes](https://github.com/gin-contrib/sessions/releases) - [Changelog](https://github.com/gin-contrib/sessions/blob/master/.goreleaser.yaml) - [Commits](https://github.com/gin-contrib/sessions/compare/v1.0.2...v1.0.3) --- updated-dependencies: - dependency-name: github.com/gin-contrib/sessions dependency-version: 1.0.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-22[chore]: Bump golang.org/x/oauth2 from 0.27.0 to 0.29.0 (#4035)Libravatar dependabot[bot]5
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.27.0 to 0.29.0. - [Commits](https://github.com/golang/oauth2/compare/v0.27.0...v0.29.0) --- updated-dependencies: - dependency-name: golang.org/x/oauth2 dependency-version: 0.29.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-22[chore]: Bump github.com/tdewolff/minify/v2 from 2.23.0 to 2.23.1 (#4036)Libravatar dependabot[bot]4
Bumps [github.com/tdewolff/minify/v2](https://github.com/tdewolff/minify) from 2.23.0 to 2.23.1. - [Release notes](https://github.com/tdewolff/minify/releases) - [Commits](https://github.com/tdewolff/minify/compare/v2.23.0...v2.23.1) --- updated-dependencies: - dependency-name: github.com/tdewolff/minify/v2 dependency-version: 2.23.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-22[chore]: Bump github.com/yuin/goldmark from 1.7.8 to 1.7.10 (#4037)Libravatar dependabot[bot]14
Bumps [github.com/yuin/goldmark](https://github.com/yuin/goldmark) from 1.7.8 to 1.7.10. - [Release notes](https://github.com/yuin/goldmark/releases) - [Commits](https://github.com/yuin/goldmark/compare/v1.7.8...v1.7.10) --- updated-dependencies: - dependency-name: github.com/yuin/goldmark dependency-version: 1.7.10 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-22[chore/frontend] Reorder JS a little bit to avoid visible text changes (#4039)Libravatar tobi6
2025-04-22[bugfix] Use util.IsNil for checking DomainPermission (#4040)Libravatar tobi1
2025-04-20[feature/frontend] add autocomplete + other helpful attributes to auth html ↵Libravatar tobi2
pages (#4029) * [feature/frontend] add autocomplete + other helpful attributes to auth html pages * add autocorrect="off"
2025-04-19[bugfix] Fix '+'-separated scopes not being recognized (#4028)Libravatar tobi6
* [bugfix] Fix '+'-separated scopes not being recognized * comment
2025-04-19[chore] Little settings panel report view tweak (#4025)v0.19.0-rc2Libravatar tobi4
2025-04-19[chore] Update robots.txt with latest ai bullshit (#4024)Libravatar tobi1
2025-04-18[bugfix] new token API issues (#4022)Libravatar kim4
* fix incorrect endpoint being registered for /token/{id} * update the maximum page value for tokens endpoint to 100 * update the available tokens page options * set a default limit of 25 to match the first available settings panel option * ensure OnInvalidateToken() hook is called during token delete
2025-04-18[feature/frontend] Hide "engagement" stats, edits, and other info under a ↵Libravatar tobi14
little drop down to unclutter status info bar (#4021) * dick about with stats a bit * more dicking abuot * lil tweaks * more about-dicking * weee * comments * fixie uppie
2025-04-15[chore] Don't push `latest` Docker image on prerelease (#4017)v0.19.0-rc1Libravatar tobi1
2025-04-15[chore/bugfix] fix import file on click (#4016)Libravatar tobi1
2025-04-15[chore/frontend] Fix id on recent posts/media heading (#4015)Libravatar tobi2
2025-04-15[chore] Change "federating with" to "knows of" (#4014)Libravatar tobi1
2025-04-15[chore/performance] Reuse Intl.DateTimeFormat for formatting times (#4013)Libravatar tobi2
2025-04-14[bugfix/frontend] Fix photoswipe layout issues, keyboard shortcuts (#4010)Libravatar tobi18
* fix photoswipe layout issues (chrome) * aaaaaaaaaaaaaa * wwwwwwwwwwww
2025-04-14[bugfix] websocket header token not always returned (#4009)Libravatar kim1
* always include headerToken response if provided, because Chrome *sigh* * wording * Update internal/api/client/streaming/stream.go Co-authored-by: Ilia Pozdnyakov <iliazeus@proton.me> --------- Co-authored-by: Ilia Pozdnyakov <iliazeus@proton.me>
2025-04-14ensure 'none' gets included in serializable visibilities (#4007)Libravatar kim2
2025-04-14[bugfix] media v2 endpoint fix unset url (#4008)Libravatar kim2
* update semantics of when media URL is left unset * fix test
2025-04-14[chore] Update + add fonts for additional scripts, use locally installed ↵Libravatar tobi105
font if available (#3997) * [chore] Update + add fonts for additional scripts, use locally installed font if available * update comments