summaryrefslogtreecommitdiff
path: root/internal
AgeCommit message (Collapse)AuthorFiles
2024-06-23[chore] Update our robots.txt (#3033)Libravatar Daenney1
This syncs our copy with the current state of the ai.robots.txt repository. Upstream has tightened their scope to be AI-only, whereas before it included a bunch of SEO and "web intelligence" marketing stuff. I've kept those but moved them into their own section.
2024-06-22[bugfix] add Date and Message-ID headers for email (#3031)Libravatar Julian4
* [bugfix] add Date and Message-ID headers for email This should make spam filters more happy, as most of them grant some negative score for not having those headers. Also the Date is convenient for the user receiving the mail. * make golangci-lint happy
2024-06-20[feature] add worker task serialization logic (#2989)Libravatar kim9
* improved server shutdown with more precise shutdown of modules + deferring of ALL of it * move delivery and workers into separate files * add worker task model and Serialize() / Deserialize() methods for message types * start adding message serialize / deserialize tests * start adding test cases * update body rewinding to rely on standard library mechanism of r.GetBody() * remove request rewinding (http.Client{} should already handle this) * standard library already handles rewinding * improved code comment * move the newPOST() function contents to prepare(), fits better with current API * add Serialize() / Deserialize() implementations for Delivery{} type * finish writing FromClientAPI sserialize / deserialize tests * start adding FromFediAPI{} serialize / deserialize test cases * fix FromFediAPI{} tests * add tests for delivery message type * fix repeat code * missing license header * use testrig status and accounts for marshal / unmarshaling tests * add a specific test for checking account RSA keys are preserved
2024-06-18[bugfix] rename `include_types[]` to `types[]` (#3023)Libravatar tobi6
2024-06-18[feature/frontend] Reports frontend v2 (#3022)Libravatar tobi30
* use apiutil + paging in admin processor+handlers * we're making it happen * fix little whoopsie * styling for report list * don't youuuu forget about meee don't don't don't don't * last bits * sanitize content before showing in report statuses * update report docs
2024-06-17[feature] Implement types[] param for notifications (#3009)Libravatar Vyr Cossont9
Counterpart of exclude_types[]. Also updates Swagger spec for types[] to use the correct param name and enumerate possible values. Fixes #3003
2024-06-14[bugfix] avoid v. long notification clear query (#3007)v0.16.0-rc3Libravatar tobi2
2024-06-14[feature] filter API v2: Restore keywords_attributes and statuses_attributes ↵Libravatar Vyr Cossont7
(#2995) These filter API v2 features were cut late in development because the form encoding version is hard to implement correctly and because I thought no clients actually used `keywords_attributes`. Unfortunately, Phanpy does use `keywords_attributes`.
2024-06-13[chore] Update move test (#3005)Libravatar tobi1
2024-06-12[chore] Don't render sign-up form when registrations closed (#3001)Libravatar tobi1
2024-06-12[bugfix] Ensure side effects handled for local unlocked follows (#2998)Libravatar tobi2
2024-06-12[bugfix] Correct Swagger path for poll voting (#2996)Libravatar Vyr Cossont1
Updates the Swagger spec to match the router. Fixes #2994
2024-06-11[bugfix] Deref stats async, serve stub collections if handshaking (#2990)v0.16.0-rc2Libravatar tobi13
* [bugfix] Deref stats async, allow peek if handshaking * don't return totalItems when handshaking or hiding collections * use GetLimit() * use StubAccountStats
2024-06-10[bugfix] boost and account recursion (#2982)Libravatar kim7
* fix possible infinite recursion if moved accounts are self-referential * adds a defensive check for a boost being a boost of a boost wrapper * add checks on input for a boost of a boost * remove unnecessary check * add protections on account move to prevent move recursion loops * separate status conversion without boost logic into separate function to remove risk of recursion * move boost check to boost function itself * formatting * use error 422 instead of 500 * use gtserror not standard errors package for error creation
2024-06-10[chore] Roll back use of `(created)` pseudo-header pending #2991 (#2992)Libravatar tobi1
2024-06-07[chore] Warn about email/password change when using OIDC (#2975)Libravatar tobi5
* [chore] Warn about email/password change when using OIDC * go fmt
2024-06-07[feature] Implement filters_changed stream event (#2972)Libravatar Vyr Cossont30
2024-06-06[bugfix] Filter fixes (#2971)Libravatar Vyr Cossont11
* Add Filter.Expired convenience method, consistent with mutes * Add missing Swagger for filter keyword/status delete and for 403s on moved accounts
2024-06-06[feature] User muting (#2960)Libravatar Vyr Cossont43
* User muting * Address review feedback * Rename uniqueness constraint on user_mutes to match convention * Remove unused account_id from where clause * Add UserMute to NewTestDB * Update test/envparsing.sh with new and fixed cache stuff * Address tobi's review comments * Make compiledUserMuteListEntry.expired consistent with UserMute.Expired * Make sure mute_expires_at is serialized as an explicit null for indefinite mutes --------- Co-authored-by: tobi <tobi.smethurst@protonmail.com>
2024-06-06[bugfix] update media if more than just url changes (#2970)Libravatar kim3
* refactor status media handling into separate functions, handle case of changed metadata * update fetchRemoteAccount{Avatar,Header} to use new refactored {load,update}Attachment() functions * whoops, nearly marked avatars as headers :') * reformatting to improve legibility
2024-06-06[feature] Self-serve email change for users (#2957)Libravatar tobi42
* [feature] Email change * frontend stuff for changing email * docs * tests etc * differentiate more clearly between local user+account and account * populate user
2024-06-06drop date (#2969)Libravatar tobi1
2024-06-06[feature] do not uncache status / emoji media if attached status is ↵Libravatar kim16
bookmarked (#2956) * do not uncache status / emoji media if attached status is bookmarked * add status bookmark and bookmark IDs caches * update status bookmark tests * move IsStatusBookmarkedBy() to StatusBookmark{} interface, rely on cache * fix envparsing.sh test
2024-06-06[bugfix] Don't nil emojis + fields on blocked accounts (#2968)Libravatar tobi3
* [bugfix] Don't nil emojis + fields on blocked accounts * comment * swagger
2024-06-06[bugfix] concurrent map writes in dereferencer media processing maps (#2964)Libravatar kim4
* removes the avatar / header deref maps as we now have per-uri status / account locks, adds retries on data-races, adds separate emoji map mutex * work with a copy of account / status for each retry loop * revert to old data race behaviour, it gets too complicated otherwise --------- Co-authored-by: tobi <tobi.smethurst@protonmail.com>
2024-06-05[chore] Fiddle with CI tests; use wasmsqlite3 for CI tests (#2966)Libravatar tobi1
* [chore] Update CI test stuff * don't bother with ldflags * use wasmsqlite3
2024-06-04Compile filter keyword regexps when touched through PutFilter or ↵Libravatar Vyr Cossont1
UpdateFilter (#2951) Followup to #2903
2024-06-03[feature] log worker startup counts (#2958)Libravatar kim3
* log number of each worker kinds started, and log when stopped * remove worker debug logging * whoops, fix the count of media workers
2024-06-03[feature/frontend] Add debug sections to settings panel (#2950)Libravatar tobi3
* [feature/frontend] Add debug sections to settings panel * max-width * swagger
2024-05-31[feature] Add from: search operator and account_id query param (#2943)Libravatar Vyr Cossont8
* Add from: search operator * Fix whitespace in Swagger YAML comment * Move query parsing into its own method * Document search * Clarify post search scope
2024-05-31[feature] Implement Filter API v2 (#2936)Libravatar Vyr Cossont64
* Use correct entity name * We support server-side filters now * Document filter v1 methods that can throw a 409 * Validate v1 filter phrase as filter title * Always check v1 filter API status codes in tests * Document keyword minimum requirement on filter API v1 * Make it possible to specify filter keyword update columns per filter keyword * Implement v2 filter API * Fix lint and tests * Update Swagger spec * Fix filter update test * Update Swagger spec *correctly* * Update actual files Swagger spec was generated from * Remove keywords_attributes and statuses_attributes * Add test for serialization of empty filter * More helpful messages when object is owned by wrong account
2024-05-30[chore] Make worker run messages debug output (#2944)Libravatar Daenney3
On startup and shutdown of a worker, we log a message of the worker being started together with a textual representation of a memory address. Though this can be handy for developers to debug startup/shutdown sequencing issues of the workers, it's typically not very useful or informative for an admin. We can also output a lot of these (on my system I get 265 lines of these during startup). This changes the messages from Info to Debug, to not print them under normal circumstances.
2024-05-29[chore] improved startup / shutdown (#2925)Libravatar kim2
* improved server shutdown with more precise shutdown of modules + deferring of ALL of it * make the same changes to the testrig server * use testrig specific func * update variable name to fix nilptr * fix removal of setting db on state
2024-05-29[feature] Implement profile API (#2926)Libravatar Vyr Cossont5
* Implement profile API This Mastodon 4.2 extension provides capabilities missing from the existing Mastodon account update API: deleting an account's avatar or header. See: https://docs.joinmastodon.org/methods/profile/ * Move profile media methods to media processor * Remove check for moved account
2024-05-29[feature] Debug admin endpoint to clear caches (#2940)Libravatar tobi5
* [feature] Debug admin endpoint to clear caches * go fmt
2024-05-28[chore/bugfix] Don't cache MovedTo account (#2939)Libravatar tobi1
2024-05-27[feature/frontend] Let admins send test email to validate SMTP config (#2934)Libravatar tobi4
* [feature/frontend] Let admins send test email to validate SMTP config * wee
2024-05-27[experiment] add alternative wasm sqlite3 implementation available via ↵Libravatar kim20
build-tag (#2863) This allows for building GoToSocial with [SQLite transpiled to WASM](https://github.com/ncruces/go-sqlite3) and accessed through [Wazero](https://wazero.io/).
2024-05-27[chore] Fix report email link (#2932)Libravatar tobi1
2024-05-22[performance] update storage backend and make use of seek syscall when ↵Libravatar kim13
available (#2924) * update to use go-storage/ instead of go-store/v2/storage/ * pull in latest version from codeberg * remove test output :innocent: * add code comments * set the exclusive bit when creating new files in disk config * bump to actual release version * bump to v0.1.1 (tis a simple no-logic change) * update readme * only use a temporary read seeker when decoding video if required (should only be S3 now) * use fastcopy library to use memory pooled buffers when calling TempFileSeeker() * update to use seek call in serveFileRange()
2024-05-21[performance] cache v2 filter keyword regular expressions (#2903)Libravatar kim5
* add caching of filterkeyword regular expressions * formatting * fix WholeWord nil check
2024-05-13[performance] update go-structr and go-mutexes with memory usage ↵Libravatar kim1
improvements (#2909) * update go-structr and go-mutexes with memory usage improvements * bump to go-structr v0.8.4
2024-05-06update the total ratios calculation to include ALL caches (previously was ↵Libravatar kim2
missing a few!) (#2907)
2024-05-06feature: filters v2 server-side warning/hiding (#2793)Libravatar Vyr Cossont23
* Remove dead code * Filter statuses when converting to frontend representation * status.filtered is an array * Make matching case-insensitive * Remove TODOs that don't need to be done now * Add missing filter check for notification * lint: rename ErrHideStatus * APIFilterActionToFilterAction not used yet * swaggerino docseroni * Address review comments * Add apimodel.FilterActionNone --------- Co-authored-by: tobi <31960611+tsmethurst@users.noreply.github.com> Co-authored-by: tobi <tobi.smethurst@protonmail.com>
2024-05-05close + drain body if response body is too large (#2897)Libravatar kim1
2024-05-05[feature] Add HTTP header permission section to frontend (#2893)Libravatar tobi2
* [feature] Add HTTP header filter section to frontend * tweak naming a bit
2024-05-02add missing caches to the main cache sweep command (#2891)Libravatar kim1
2024-05-02[bugfix] Lock when checking/creating notifs to avoid race (#2890)Libravatar tobi15
* [bugfix] Lock when checking/creating notifs to avoid race * test notif spam
2024-05-01[feature] Page through accounts as moderator (#2881)Libravatar tobi8
* [feature] Page through accounts as moderator * aaaaa * use COLLATE "C" for Postgres to ensure same ordering as SQLite * fix typo, test paging up * don't show moderation / info for our instance acct
2024-05-01[bugfix] function queue memory pools limitlessly grow (#2882)Libravatar kim1
* updates the simple queue memory pool to actually self-clean + limit growth * update memory pool cleaning frequency