* feat(labrinth): project disclosures model
* feat(labrinth): project disclosures database model
* feat(labrinth): project disclosures get endpoint
* feat(labrinth): censor user ids if set by moderator
* feat(labrinth): wrap disclosures in struct
* feat(labrinth): edit project disclosures endpoint
* style(labrinth): cargo fmt
* style(labrinth): fix typo
* feat(labrinth): add fields for ai content disclosure
* fix(labrinth): field typo
* chore(labrinth): update query cache
* feat(labrinth): index disclosures in search
* refactor(labrinth): use enum instead of bools
* feat(labrinth): trigger incremental index on disclosure change
* feat(labrinth): change archived status to disclosure
* feat(labrinth): use disclosure for archival status
* fix(labrinth): error type for deserialization
* fix(labrinth): migration timestamp
* fix(labrinth): add disclosures to elasticsearch schema
* fix(labrinth): don't remove archival disclosure when changing status via v3 api
* feat(labrinth): derive str for ai usages and telemtry consent
* feat(labrinth): include ai usages and telemetry consent in disclosure types
* refactor(labrinth): move disclosure parsing to document creation
* fix(labrinth): prevent removing moderator added archival disclosures
* fix(labrinth): dedupe ai usages
* fix(labrinth): auth logic on archived disclosure removal
* feat(labrinth): add interactions field
* style(labrinth): cargo fmt
* feat(labrinth): soft delete disclosures
* feat(labrinth): return soft-deleted disclosures
* fix(labrinth): update disclosure on removal
---------
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
* feat(labrinth): shared instance report type
* style(labrinth): cargo fmt
* feat(labrinth): check that instance exists when reporting
* style(labrinth): cleanup unused import
* feat(labrinth): store version id for shared instance reports
* style(labrinth): satisfy clippy
* fix(labrinth): use string id instead of int
* wip
* ui edits
* better logic for syncing tech review state in a single centralized place
* never automatically finish a tech review report
* fix css
* fix clippy
* prepr
* fix: link to user using id instead of username
* feat: show org in project card
* fix: account for outdated documents
* refactor: use struct to store owner information
* fix: default new fields
* fix lint
* wip: add v2 docs, routes to config, paths
* fix up path prefixes
* fix leading slashes
* fix slash route
* fix more slashes
* wip: full utopification of v2
* convert last few v2 routes to utoipa
* initial elasticsearch impl
* working elastic cluster
* replace SearchError with ApiError for preparation of search backend
* start factoring meili out to trait
* move meili to backend
* update routes to use search backend trait
* wip
* Update projects.rs
* search backend is only init'd once in config
* wip
* wip: backend agnostic
* change search internal routes to delegate to backend
* initial elasticsearch impl
* fix filtering
* elastic impl
* refactor indexing into its own module
* clean up elastic code
* fix ci
* fix tests
* fix elastic health check
* fix up env rebase
* fix compile
* dummy commit to update github pr
* Fix rebase
* Elastic basic https auth
* Fix duplicate projects showing up
* Fix up tests
* Replace search `ApiErrors` with `eyre::Reports`, propagate background task errors
* clean up agents files
* make index chunk size configurable
* make `match_phrase` in elastic case-insensitive
* use current/next indices and swap between them
* test case for error body
* Fix failing case
* da merge
* factor out common stuff from search backends
* allow fetching hit metadata from search results
* allow customising elasticsearch search config
* bit of docs
* add mappings to indices for elastic
* Implement Typesense
* wip
* fix up some sort fields stuff
* use different approach to filterable field sets
* remove a bunch of search fields which weren't used for filtering
* bucket text matches
* Bucketing by text_match for typesense
* fix tombi lint
* fix some sentry errors and dont prioritise 2+ term matches
* tweak ts query settings
* expose some more search settings
* query sort changes
* small fixes
* should fix pagination stuff
* fix healthcheck maybe
* ragebait ci
* tests
* tests
* revert environment
* Taplo and typos in CI
* Clean up Cargo.toml files
* Fix CI
* Fix CI
* Run typos in CI
* Loosen typos a bit
* Fix typos
* Fix taplo
* Switch to Tombi
* Fix Tombi errors
* Remove unused typos config
* Tombi fmt
* Remove extraneous cargo fmt
* fix typos
* Some new notification types
* Fix error
* Use existing DB models rather than inline queries
* Fix template fillout
* Fix ModerationThreadMessageReceived
* Insert more notifications, fix some formatting
* chore: query cache, clippy, fmt
* chore: query cache, clippy, fmt
* Use outer transactions to insert notifications instead of creating a new one
* Join futures
* feat(labrinth): rework v3 side types to a single `environment` field
This field is meant to be able to represent the existing v2 side type
information and beyond, in a way that may also be slightly easier to
comprehend.
* chore(labrinth/migrations): use proper val for `HAVING` clause
* feat(labrinth): add `side_types_migration_review_status` field to projects
* Put all ID types in the labrinth::models::ids, and reduce code duplication with them
* Rewrite labrinth::database::models::ids and rename most DB interface ID structs to be prefixed with DB
* Run sqlx prepare
---------
Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
* Update some Labrinth dependencies
* Update some Labrinth dependencies
* Update some Labrinth dependencies
* Update zip in Labrinth
* Update itertools in Labrinth
* Update validator in labrinth
* Update thiserror in labrinth
* Update rust_decimal, redis, and deadpool-redis in labrinth
* Update totp-rs and spdx in labrinth
* Update maxminddb and tar in labrinth
* Update sentry and sentry-actix in labrinth
* Update image in labrinth
* Update lettre in labrinth
* Update derive-new and rust_iso3166 in labrinth
* Update async-stripe and json-patch in labrinth
* Update clap and iana-time-zone in labrinth
* Update labrinth to Rust 2024
* Cargo fmt
* Just do a full cargo update
* Update daedelus to Rust 2024
* Update daedelus_client to Rust 2024
* Set the formatting edition to 2024
* Fix formatting
IntelliJ messed up my formatting