* Add helper to consume subscription message frames
* Implement xrpc subscription consumer
* Simplify subscription consumer params
* Remove duped test
* Reconnect to subscription on initial setup
* Add reconnect hook on subscription, for logging
* Make subscription consumption cancelable
* Include error information in sub reconnect hook
* Setup table for tracking subscription state on app view
* Support ending app-view leader, clean disconnects from xrpc subscription consumer
* Frame out stateful app-view repo subscription
* Setup app-view lifecycle, run repo subscription
* Add logging to repo sub. Add jitter to leader polling.
* Support configuring app-view repo host
* Allow running pds/app-view dev env with an external repo host
* Fix subscription abort test
* Add test for app-view repo subscription
* Skip invalid repo sub messages w/ log, tidy
* Ensure app-view is permissive of reindexing
* Tidy app-view, renaming sync config, improve error logging
* Fix sync cursor todo, order migrations
* Map new ops field in repo subscription
* In-progress, support indexing updates
* Revert "In-progress, support indexing updates"
This reverts commit 4e082daf535c11c5d4cf69474e5d48a1a3fbe8aa.
* Support indexing record updates
* Prep notifications for post updates. Basic tests for indexing.
* Update indexing tests to better exercise indexes
* Setup app migration machinery
* Skip appMigration() tests on sqlite
* make an app_migration table
* patch up test
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* integrating new plc lib
* patching up did-resolver
* buffing up pds tests
* didResolver on ctx & plc in postgres
* bring dev env up to date
* re-add extension for linting
* tidy
* use current env vars
* pr feedback
* Separate app.bsky methods out into app view
* Fix websocket issue while splitting-out app view
* Start organizing app-view tables out of pds
* Move feed service, getTimeline, vote table into app-view
* Move record processing/indexing logically out of pds and into app-view
* Pull actor service functionality into app-view
* Factor app-view user functionality out of pds, replace actor w/ account service
* Tidy
* Add lexicon for post embeds
* Model post embeds
* Handle and present post embeds
* Test and tidy post embeds
* Generalize post embeds to record embeds
* Tidy
* change pkey on user table to did & rename to user_account
* migration
* tidy
* fixes suggested by bryn
* missed merge thing
* some updating hanldes
scheams
* impl + passing test
* more handle tests
* tidy
* update did doc + some new tests
* one more test
* test handle casing
* basic support for dns resolution on handles
* handle resolution
* fix up account create
* tsconfig
* workshop handle constraints
* bring pds up to speed w handle changes
* change dns subdomain
* another lil test
* bugfix
* update dns record format
* typo
* Add lexicon for getProfiles
* Split out presentation of profiles, implement getProfiles, test
* Cull actor/profile view lexicons down to three variants
* Map viewer in profile view, mark todos, lex tweak
* Apply basic profile view to methods, lex fix
* Switch searchTypeahead to actor-with-info view
* Switch getVotes to actor-with-info view
* Switch getMutes to actor-with-info view
* Switch getFollows and getFollowers to actor-with-info view
* Switch getRepostedBy to actor-with-info view
* Switch feed and notification views to use updated actor-with-info view
* change pkey on user table to did & rename to user_account
* migration
* tidy
* fixes suggested by bryn
* missed merge thing
* some updating hanldes
scheams
* impl + passing test
* more handle tests
* tidy
* update did doc + some new tests
* one more test
* test handle casing
* Fix did pkey down migration
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* Initialize post_hierarchy index
* Build post_hierarchy index from posts
* Power getPostThread method with post hierarchy index
* Generate ancestor reply notifications, fix tests and down migration
* Generate notifications for all reply ancestors
* Scaffold xrpc-stream
* Write and test stream frames
* Write and test stream server
* Test bad stream frame parsing cases
* Proof of concept streaming on xrpc-server
* Test bad streaming endpoint
* Make frame stream to fix buffering frame bytes together
* reorg
* some lex-cli things
* better codegen for subscriptions
* scaffolding repo subscriptions
* wip
* remove repo ops
* setup notify/listen for db
* end pool to fix hanging test
* small comment in test
* basic sequencer
* some refactoring
* switch to event emitter
* reconnect on listener error
* rename notifyClient
* remove payload on channels
* pr feedback
* subscribeRepo outbox
* some cleanup
* wip
* wip
* bugfixin
* only send msgs after tx is committed
* better handle event-emitter -> generator
* max buffer size
* cleanup
* Sync-up xrpc subscriptions with current iteration of the spec
* Allow missing encoding for subscriptions
* track sequencedAt & eventType as well
* Resolve streaming type codes, streaming tests
* Fix interface for hooking into http server for streaming, fix stream routing
* Minor reorg how streaming is enabled in xrpc-server
* Server codegen for xrpc subscriptions, supporting types in xrpc-server
* fix up buffer overloading
* Rename data frame to message frame, rename subscription lex output to message
* Move body param first for streaming frames
* Tidy
* clean up evt types
* buff up tests
* missed merge conflict
* new schema
* blobs on subscriptions
* rm genned client subscription methods
* backfill limits
* testing subscription route & quick outbox bugfix
* fix up migration
* cascade on delete
* comments & naming
* fix dev env
* delete seqs on account deletion
* tidy
* fixing things up with db notify system for schemas
* fix duplicates in outbox
* tidy
* Break out of stream handler when socket closes
* fixing up some timing issues
* tidy
* terminate ws after using
* bump up timer on async reader
* fixing up NOTIFY in txns
* pr feedback
* pr bugfixes
* make order asc explicit
* bringing tests up to speed w atpagent
* bump up max listeners on sequencer
* increase timeouts for reading from generators
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* Refactor @atproto/api to use the simplified AtpAgent API
* xrpc package: Export the defaultFetchHandler to reuse in api
* api package: Use the defaultFetchHandler defined in xrpc
* Update all usages of the api for the new AtpAgent
* Clear promise on thrown codepath
* Avoid updating the atpagent session until ready to return
* Lexicon updates for moderating blobs
* Add tracking of blob takedowns to moderation system
* Handle blobs in record takedown reversal
* Apply blob takedowns w/ image invalidation
* Test blob takedowns
* Implement cloudfront image invalidator
* Update lexicons for current moderation action on records and blobs
* Fix migration for postgres
* Enforce single current action per repo and blob, present current action on repo and blob
* Test single active mod action per repo, record, and blob
* Continue to resolve handles for moderated repos
* setup notify/listen for db
* end pool to fix hanging test
* small comment in test
* switch to event emitter
* reconnect on listener error
* rename notifyClient
* remove payload on channels
* pr feedback
* poor guy cant spell