Commit Graph

2487 Commits

Author SHA1 Message Date
kim
6a6a499333 [performance] rewrite timelines to rely on new timeline cache type (#3941)
* 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 🤦

* 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-26 09:56:15 +00:00
tobi
ffde1b150f [chore] Move deps to code.superseriousbusiness.org (#4054) 2025-04-25 15:15:36 +02:00
tobi
68ed7aba25 [chore] Update activity to v1.14.0 (#4038) 2025-04-24 11:20:03 +02:00
Ember
768ee70b88 [docs] Mention where to run the command to grant CREATE permissions (#4050) 2025-04-24 11:00:20 +02:00
tobi
ab2044ef02 [chore/frontend] Update skulk, caniuse (#4044) v0.19.0 2025-04-23 17:44:25 +02:00
tobi
9241a0c337 [chore/frontend] rejig server picker recommendations (#4042) 2025-04-22 17:00:46 +02:00
dependabot[bot]
d6232663e3 Bump http-proxy-middleware from 2.0.7 to 2.0.9 in /web/source (#4041) v0.19.0-rc3 2025-04-22 10:58:08 +00:00
dependabot[bot]
355482baf6 [chore]: Bump golang.org/x/net from 0.38.0 to 0.39.0 (#4034) 2025-04-22 10:57:59 +00:00
dependabot[bot]
d1abbd0290 [chore]: Bump github.com/gin-contrib/sessions from 1.0.2 to 1.0.3 (#4033)
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 12:35:14 +02:00
dependabot[bot]
356c2adddc [chore]: Bump golang.org/x/oauth2 from 0.27.0 to 0.29.0 (#4035)
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 12:33:25 +02:00
dependabot[bot]
c670493ad9 [chore]: Bump github.com/tdewolff/minify/v2 from 2.23.0 to 2.23.1 (#4036)
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 12:32:55 +02:00
dependabot[bot]
f170bbcd49 [chore]: Bump github.com/yuin/goldmark from 1.7.8 to 1.7.10 (#4037)
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 12:32:39 +02:00
tobi
075cae3d55 [chore/frontend] Reorder JS a little bit to avoid visible text changes (#4039) 2025-04-22 12:20:54 +02:00
tobi
0992ffc057 [bugfix] Use util.IsNil for checking DomainPermission (#4040) 2025-04-22 12:20:45 +02:00
tobi
a87be80c90 [feature/frontend] add autocomplete + other helpful attributes to auth html pages (#4029)
* [feature/frontend] add autocomplete + other helpful attributes to auth html pages

* add autocorrect="off"
2025-04-20 17:46:25 +02:00
tobi
e9f6d186dc [bugfix] Fix '+'-separated scopes not being recognized (#4028)
* [bugfix] Fix '+'-separated scopes not being recognized

* comment
2025-04-19 21:57:50 +02:00
tobi
d308fd0d0a [chore] Little settings panel report view tweak (#4025) v0.19.0-rc2 2025-04-19 13:36:35 +02:00
tobi
2863561c89 [chore] Update robots.txt with latest ai bullshit (#4024) 2025-04-19 13:34:20 +02:00
kim
14899733c8 [bugfix] new token API issues (#4022)
* 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 17:37:50 +02:00
tobi
2fce027808 [feature/frontend] Hide "engagement" stats, edits, and other info under a 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-18 17:36:26 +02:00
tobi
d694666436 [chore] Don't push latest Docker image on prerelease (#4017) v0.19.0-rc1 2025-04-15 17:18:46 +02:00
tobi
245d6db979 [chore/bugfix] fix import file on click (#4016) 2025-04-15 11:17:45 +02:00
tobi
0ce9bed3d1 [chore/frontend] Fix id on recent posts/media heading (#4015) 2025-04-15 10:20:29 +02:00
tobi
2b98432ca2 [chore] Change "federating with" to "knows of" (#4014) 2025-04-15 10:19:06 +02:00
tobi
5b2fe1f9a0 [chore/performance] Reuse Intl.DateTimeFormat for formatting times (#4013) 2025-04-15 10:04:47 +02:00
tobi
b510f3c539 [bugfix/frontend] Fix photoswipe layout issues, keyboard shortcuts (#4010)
* fix photoswipe layout issues (chrome)

* aaaaaaaaaaaaaa

* wwwwwwwwwwww
2025-04-14 15:12:21 +02:00
kim
f5ce219844 [bugfix] websocket header token not always returned (#4009)
* 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-14 15:12:09 +02:00
kim
67fc1fd904 ensure 'none' gets included in serializable visibilities (#4007) 2025-04-14 13:33:37 +01:00
kim
36758ea0de [bugfix] media v2 endpoint fix unset url (#4008)
* update semantics of when media URL is left unset

* fix test
2025-04-14 13:32:49 +01:00
tobi
a44065726c [chore] Update + add fonts for additional scripts, use locally installed font if available (#3997)
* [chore] Update + add fonts for additional scripts, use locally installed font if available

* update comments
2025-04-14 12:57:58 +02:00
kim
a07ca92752 don't panic on non-fully populated status edits, it may not always be possible (#4006) 2025-04-14 11:22:05 +01:00
tobi
6ff0d3355c [feature/frontend] Add visibility icon for posts (#4005) 2025-04-14 10:18:18 +01:00
dependabot[bot]
f8d17a7e76 [chore]: Bump github.com/prometheus/client_golang from 1.21.1 to 1.22.0 (#4003)
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.21.1 to 1.22.0.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.21.1...v1.22.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-version: 1.22.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-14 09:46:09 +02:00
dependabot[bot]
df5d8b42da [chore]: Bump github.com/miekg/dns from 1.1.64 to 1.1.65 (#4001)
Bumps [github.com/miekg/dns](https://github.com/miekg/dns) from 1.1.64 to 1.1.65.
- [Changelog](https://github.com/miekg/dns/blob/master/Makefile.release)
- [Commits](https://github.com/miekg/dns/compare/v1.1.64...v1.1.65)

---
updated-dependencies:
- dependency-name: github.com/miekg/dns
  dependency-version: 1.1.65
  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-14 09:44:34 +02:00
dependabot[bot]
94963b0f24 [chore]: Bump github.com/jackc/pgx/v5 from 5.7.3 to 5.7.4 (#4002)
Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.7.3 to 5.7.4.
- [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jackc/pgx/compare/v5.7.3...v5.7.4)

---
updated-dependencies:
- dependency-name: github.com/jackc/pgx/v5
  dependency-version: 5.7.4
  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-14 09:44:11 +02:00
dependabot[bot]
51b9ef5c34 [chore]: Bump github.com/gin-contrib/gzip from 1.2.2 to 1.2.3 (#4000)
Bumps [github.com/gin-contrib/gzip](https://github.com/gin-contrib/gzip) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/gin-contrib/gzip/releases)
- [Changelog](https://github.com/gin-contrib/gzip/blob/master/.goreleaser.yaml)
- [Commits](https://github.com/gin-contrib/gzip/compare/v1.2.2...v1.2.3)

---
updated-dependencies:
- dependency-name: github.com/gin-contrib/gzip
  dependency-version: 1.2.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-14 09:43:56 +02:00
Phil Hagelberg
c803620531 [docs] Remind the user that password resets don't work without restarting. (#3998)
Every time I reset the password, I assume that something went wrong,
because I forget that the server will not pick up on the reset
password until it's been restarted according to the docs:

https://docs.gotosocial.org/en/latest/admin/cli/#gotosocial-admin-account-password

A reminder here would help reduce confusion.
2025-04-13 23:03:09 +02:00
tobi
c8a780e12a [bugfix] Fix setting bot on/off (#3986)
* [bugfix] Fix setting bot on/off

* read client messages in tests

* test fix
2025-04-11 15:36:40 +01:00
tobi
eb4114bf12 [chore] Fix header insets (#3987) 2025-04-11 15:50:14 +02:00
OniriCorpe
b51aa23458 [docs] add a command to know if the system is compatible with the standard builds (#3980) 2025-04-11 12:42:18 +02:00
heddxh
1e59795ff4 [docs] add instruction about postgres permission (#3981) 2025-04-11 12:41:50 +02:00
tobi
be9e307418 [chore] render avatar in photoswipe slide, remove repeated alt text (#3985)
* [chore] render avatar in photoswipe slide, remove repeated alt text

* bwap bwap
2025-04-11 12:05:26 +02:00
tobi
e032c959e1 [feature] Implement /oauth/revoke for token revocation (#3983) 2025-04-10 16:24:17 +02:00
kim
b1a4d54c14 [chore] add IPPrefixes type so we don't need separate rate limit parsed field (#3982)
* add IPPrefixes type so we don't need separate rate limit parsed field

* sshhhh please linter, mommy's working
2025-04-09 17:32:13 +01:00
tobi
19cfa8d126 [bugfix] Fix a couple accessibility issues with :focus elements (#3979)
* [bugfix/frontend] Fix accessibility/focus issues in settings + web ui

* fix little error

* tweaks
2025-04-09 14:14:20 +02:00
tobi
365b575341 [feature] add TOTP two-factor authentication (2FA) (#3960)
* [feature] add TOTP two-factor authentication (2FA)

* use byteutil.S2B to avoid allocations when comparing + generating password hashes

* don't bother with string conversion  for consts

* use io.ReadFull

* use MustGenerateSecret for backup codes

* rename util functions
2025-04-07 16:14:41 +02:00
tobi
6f24205a26 [bugfix] Don't assume "manuallyApprovesFollowers": true if not set (#3978)
* [bugfix] Don't assume `"manuallyApprovesFollowers": true` if not set

* whoops, tests
2025-04-07 12:52:24 +01:00
dependabot[bot]
bce643286c [chore]: Bump github.com/minio/minio-go/v7 from 7.0.85 to 7.0.89 (#3977)
Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.85 to 7.0.89.
- [Release notes](https://github.com/minio/minio-go/releases)
- [Commits](https://github.com/minio/minio-go/compare/v7.0.85...v7.0.89)

---
updated-dependencies:
- dependency-name: github.com/minio/minio-go/v7
  dependency-version: 7.0.89
  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-07 11:05:51 +01:00
dependabot[bot]
e0ea77b730 [chore]: Bump github.com/tdewolff/minify/v2 from 2.22.4 to 2.23.0 (#3974)
Bumps [github.com/tdewolff/minify/v2](https://github.com/tdewolff/minify) from 2.22.4 to 2.23.0.
- [Release notes](https://github.com/tdewolff/minify/releases)
- [Commits](https://github.com/tdewolff/minify/compare/v2.22.4...v2.23.0)

---
updated-dependencies:
- dependency-name: github.com/tdewolff/minify/v2
  dependency-version: 2.23.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-07 11:05:22 +01:00
dependabot[bot]
920e20c2d2 [chore]: Bump golang.org/x/crypto from 0.36.0 to 0.37.0 (#3975)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.36.0 to 0.37.0.
- [Commits](https://github.com/golang/crypto/compare/v0.36.0...v0.37.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.37.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-07 11:04:56 +01:00