* first pass on profiles
* quick test
* wip
* wip
* test post thread
* record embeds
* get author feed profiles
* wip timeline
* fix get timeline
* switch from counter to tid
* tidy into a service
* quick tid test
* pr feedback
* clock -> rev
* update image formatting
* disable migration & build branch
* add recent posts to getAuthorFeed & handle post thread not found errors
* refactor for lag header
* tidy
* rm collections check
* tidy test
* pr feedback
* fix small bug
* build branch
* get migrations into system
* enable migrations
* Add self-label schemas
* switch around array and union for self-labels
* apply self-labels to post and profile views
* test for self labels in pds
* apply self-labels to post and profile views in bsky appview
* test for self labels in bsky appview
* update pds proxied test snapshots
* Add support for self-labels to the mdoeration sdk
* Disable unknown-labeler filtering until 3P support is added
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* labeler: remove redundant 'underwear' label
This commit contains no change to mod policy, app behavior, etc.
We have been creating redundant "underwear" labels along with "sexual"
for many months. "sexual" is the actual label that gets actioned in mod
preferences, etc. The un-specified "underwear" labels are confusing and
take up resources on-disk and in API responses.
* reflect in appview
---------
Co-authored-by: dholms <dtholmgren@gmail.com>
* tighten fuzzy actor search for larger dataset
* add indexes to support post deletion on feed_item, listing user invites on invite_code
* fix migration whitespace
* temp comment migrations and build
* Revert "temp comment migrations and build"
This reverts commit 225d2c00cce1885f2d2cffc4724843eda4b01cee.
* First pass on label definitions and reference-doc generation for them
* Tune labels
* Drop the 'csam' label in favor of using !hide
CSAM is an extremely delicate issue. Moderators must be careful to
remove it from the system without calling direct attention to it.
Using the generic !hide achieves the same effect while obscuring
the reason for the removal. Server and AppView bans will then be
employed (along with any other needed mechanisms) to strip the
content from the network.
There is also a 'false accusation' concern with using the csam
label. Fingerprinting techniques and AI are used to scan for csam.
These are capable of producing false positives which will then be
reverted after human review. The reputational damage caused by a
false positive could be severe, so we want to be careful about any
system which might publicize a false positive.
* Add label definition code generation
* Implement all type signatures for moderation
* Complete a first pass on the labeling sdk
* Add post-moderation test suite
* Add post moderation behavior documentation
* Add self-post behaviors
* Improve post moderation doc
* Tune up the post moderation doc
* Tune up the post moderation doc
* Tune up the post moderation doc
* Simplify the post moderation behavior descriptions
* More behavior description tuneup
* Add profile moderation final behaviors and tests
* Improve generated post-moderation-behaviors doc
* Add profile moderation behaviors doc
* Test muted-by-list specifically
* Fixes to label descriptions
* Fix to muted-by-list behavior
* Dont blur account in moderateProfile() when muting
* Tune label copy
* Apply post embed blurring when account is marked with blurmedia label
* Fix output signature
* Fixes to blocking behavior
* Rename LabelDefinitionPreference to LabelPreference
* Update docs
* Fix test
* Fix: self-harm should blur media only
* Fixes to tests
* Improve label copy
* Remove all labels that do not have a specific policy
Communicating moderation policies with active users is important.
This PR originally included labels which were proposed but did not
yet have policies. While we didn't intend to use them until a
policy was established, I decided it's better to hold off putting
them in the code until we're sure about them. They can be found in
backup files prefixed with "proposed-".
* add lexicon for unspecced applyLabels procedure
* implement label push to pds via unspecced.applyLabels
* add hive retry to bsky appview
* build
* update applyLabels to work with raw label data
* update bsky hive labeler
* remove build
* Allow setting a note when enabling/disabling invite codes
* Add inviteNote to repoView
* ✅ Add test for inviteNote
* ✨ Set to null when note is empty
* ✨ Change note from text to varchar
* 📝 Better description
* setup redis infra for appview indexer
* barebones bsky ingester
* add ioredis to bsky
* remove some indexer functionality from bsky api
* setup for bsky indexer
* tidy
* tidy, observe basic pipeline functioning
* process messages on bsky indexer pipeline, tidy tests and lifecycle
* trim partitions when moving cursor
* simplify config for partitions
* misc fixes for redis setup in bsky tests, add namespacing
* fix pds proxy tests
* remove cursor state from indexer partitions, simplify ingester state
* tidy
* utils for testing w/ multiple indexers, fix off-by-one xtrim
* test reingesting
* test indexer repartitioning
* add entrypoints for bsky ingester and indexer, fix db schema config, api entrypoint name, tidy
* setup and test bsky ingester backpressure, add config
* tidy
* add missing test file
* tidy redis calls, add redis sentinel config
* tidy/test some utils used in bsky pipeline
* tidy bsky pipeline tests, move helpers into dev-env
* fix pds crud test
* support redis host and password config
* better loggin/observability in ingester and indexer, make build
* add bsky ingester initial cursor config
* temporarily remove migrations from indexer/ingester
* allow ingester to batch
* packages/pg becomes packages/dev-infra with some cleanup (#1402)
* packages/dev-infra/
* Extract packages/dev-infra/_common.sh and use it
* Use period instead of source because of /bin/sh
* add docs for redis test script
* fix repartition test
* add logs to debug ci
* simplify repartitioning test, remove ci logs
---------
Co-authored-by: Jerry Chen <jerry@redelm.net>