* 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>
* (do not merge) search test branch
* perf
* fix up search pagination
* more parity and perf work
* expand what parity does
* fix author query
* approach parity even without explicit parity enabled
* remove old parity code
* fix shear
* fix
* fmt
* 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
* 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