* **feat**: add support for setting watch state via category ID and member UID in route params
* **feat**: update category watch/privilege routes and logic to use `member` param instead of `uid`/`member` body field
* **feat**: add support for unfollowing via actor parameter in category routes
* **feat**: add deprecation warnings for legacy category routes and refactor privilege fetching to inline async call
* docs: add openapi specs for new category routes with path parameters
Co-authored-by: aider (ollama/ministral-3:8b) <aider@aider.chat>
* fix: some minor errors in file paths
* feat: support path extraction from req.query in assert.path middleware
Co-authored-by: aider (ollama/ministral-3:8b) <aider@aider.chat>
* feat: support message from both query and body in removeQueuedPost
Co-authored-by: aider (ollama/ministral-3:8b) <aider@aider.chat>
* fix: remove ai-added check that path is defined, it is not required
* fix: send message as query param instead of in body, when rejecting queued post
* lint: comma dangle
* `feat(openapi): add optional query parameter support for topic delete endpoints`
Co-authored-by: aider (ollama/ministral-3:8b) <aider@aider.chat>
* feat: add query parameter and make request body optional for topic thumbnail deletion
Co-authored-by: aider (ollama/ministral-3:8b) <aider@aider.chat>
* feat: support query params for thumb path and crosspost id in topics endpoints
Co-authored-by: aider (ollama/ministral-3:8b) <aider@aider.chat>
* feat: add query params for mute/unmute reason and timestamp
Co-authored-by: aider (ollama/ministral-3:8b) <aider@aider.chat>
* docs: update unmute API to support query params for reason and until timestamp
Co-authored-by: aider (ollama/ministral-3:8b) <aider@aider.chat>
* docs: update unmute endpoint to support reason via request body
Co-authored-by: aider (ollama/ministral-3:8b) <aider@aider.chat>
* feat: add reason parameter support to users.unmute
Co-authored-by: aider (ollama/ministral-3:8b) <aider@aider.chat>
* feat: allow unban reason to be sent via req.query
* fix: timestamps are unix timestamps not 8601
* docs: mute shouldn't have been updated
* chore: remove deprecation warnings
---------
Co-authored-by: aider (ollama/ministral-3:8b) <aider@aider.chat>
* fix: dont use sass-embedded on freebsd, #13867
* fix: #13715, dont reduce hardcap if usersPerPage is < 50
* fix: closes#13872, use translator.compile for notification text
so commas don't cause issues
* fix: remove bidiControls from notification.bodyShort
* refactor: move change owner call to rest api
deprecate socket method
* fix spec
* test: one more fix
* test: add 404
* test: fix tests :rage1:
* test: update test to use new method
* fix: dont use sass-embedded on freebsd, #13867
* fix: #13715, dont reduce hardcap if usersPerPage is < 50
* fix: closes#13872, use translator.compile for notification text
so commas don't cause issues
* fix: remove bidiControls from notification.bodyShort
* refactor: move change owner call to rest api
deprecate socket method
* fix spec
* test: one more fix
* test: add 404
* test: fix tests :rage1:
* test: update test to use new method
* refactor: move post uploads to post hash
* test: add uploads to api definition
* refactor: move thumbs to topic hash
* chore: up composer
* refactor: dont use old zset
* move post queue from socket.io to rest api
* move harmony post-queue to core
add canEdit, allow users to edit their queued posts
* fix: openapi spec
* lint: whitespace
store number of announces on post hash, show announces like votes, with tooltip and a way to see all, remove them from topic.events so they dont load all tid:<tid>:posts everytime topic is loaded