Commit Graph

299 Commits

Author SHA1 Message Date
rafael dacb0e8005 group chat declaration hydration (#4868)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 10:43:20 -03:00
Eric Bailey aa1763df0f [APP-1775] Hydrate labels for actor statuses (#4555)
* Add labels to statusView, hydrate and return them

* Add test

* Add moderateStatus API SDK method

* Changeset

* Format
2026-04-08 16:06:27 -05:00
devin ivy 7000746941 bsky: do not apply blocks viewed by trusted mod service (#4837)
* bsky: skip blocks against mod viewer

* bsky: test mod service blocks fix

* changeset
2026-04-07 18:03:52 -04:00
Matthieu Sieben d0c136cba2 Move PDS code over to @atproto/lex (#4408) 2026-03-23 18:10:16 +01:00
DS Boyce b86dbfcbe3 Remove feature gate for new user onboarding (#4775)
* Remove feature gate for new user onboarding

* Add changeset

* Remove feature gate from enum

* Remove unused type

* Attempt to fix tests
2026-03-19 13:55:01 -07:00
Eric Bailey 3b41b81e27 Remove deprecated handling from getSuggestedFollowsByActor (#4747)
* Remove deprecated handling from getSuggestedFollowsByActor

* Remove very old test that is not testing existing functionality

* Import sort

* Softer off-ramp if suggestionsAgent
2026-03-18 18:36:20 -05:00
rafael bc69b03f53 improve checking for zero dates and test (#4762) 2026-03-17 14:23:51 -03:00
devin ivy 139b2941d6 bsky: remove feature gate for including format in image URLs (#4755)
* bsky: remove feature gate on urls containing image format

* changeset

* bsky: fix test

* tidy
2026-03-16 16:46:20 -04:00
devin ivy 7ed57043c1 bsky: switch default image format to jpeg temporarily (#4723)
Co-authored-by: rafaeleyng <rafaeleyng@gmail.com>
2026-03-05 15:29:42 -03:00
rafael 7444295e79 use feature gate to remove image format from URL (#4721)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 14:05:21 -03:00
devin ivy 383e157021 bsky: remove format from img urls by default (#4712)
* bsky: remove format from img urls, w/ config to control rollout. default webp.

* tidy

* changeset

* tidy
2026-03-04 22:41:44 -05:00
rafael d69c81e335 Fix invalid handle showing verification (#4634) 2026-02-23 10:22:14 -03:00
Matthieu Sieben c4b04899c8 Attempt at fixing flaky BSKY test (#4673)
Attempt at fixin CI
2026-02-20 20:26:27 +01:00
Eric Bailey 978a99efad [ALG-58] Use existing getOnboardingSuggestedUsersSkeleton method name (#4647)
* Use existing method name

* Fix import

* Wait no, still wrong

* Changeset
2026-02-16 21:48:32 -06:00
rafael 50dfbec512 Add separate onboarding suggested users endpoint (#4632) 2026-02-10 19:18:59 -03:00
Matthieu Sieben d54d7077eb DID document validation (#4580)
* DID document validation

* relax `import/no-deprecated` lint rule
2026-01-27 08:25:13 +01:00
Eduardo Cuducos e6e43f3ad3 Adds GrowthBook feature flag for suggested users from Discover (#4526)
* Adds GrowthBook feature flag for suggested users from Discover

* Moves GrowthBook URL to envvar

* Reverts search feature

* Some minor fixes

* Adds GrowthBook feature flag for suggested users from Discover

* Moves GrowthBook URL to envvar

* Some minor fixes

* Keep search filtering exploration around but disable until migration

* Properly initialize GrowthBook client

* Cleans up

* Migrate flags

* Tweak context creation and types

* Add refetching and more error handling

* Rename config to be a little more clear

* Remove check validation, not needed

* Yeah ok we can do this

* Changeset

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2026-01-23 12:56:10 -06:00
rafael 5905eb94a6 Drafts implementation (#4549) 2026-01-22 18:23:56 -03:00
bnewbold 9bdd35881a Experiment: wire-through germ chat declaration in bsky appview backend (#4415)
* lexicons: add germ chat declaration record, and ref from profile view

* codegen germ record for bsky pkg

* make lex-client build happy by including germ ref

* add germ chat declaration methods to dataplane .proto

* dataplane codegen

* start wiring up germ chat records

* germ lex in api package

* api codegen

* initial attempt at germ record test

* update germ lexicon

* make codegen

* updates for germ declaration NSID rename

* implement new germ hydration

* more progress on germ integration

* fix germ profile test

The main issue here was forgetting the '.associated.' bit in the data
path.

* remove unnecessary germ imports/refs

* hydrate germ metadata in basic profile view (as per schema)

* type fixes for germ appview test

* prettier

* synchronize bsky.proto with dataplane; run buf:gen

* add changeset for Germ declaration records
2026-01-20 17:15:58 -08:00
Eric Bailey d2ed7311a2 [APP-1758] Improve status takedowns (#4520)
* Refactor includeTakedowns overrides, add one for statuses specifically

* Add view carve-out

* Add isDisabled to statusView

* Handle filtering of takendown statuses

* Changeset

* Only add isDisabled for owner

* Revert unneeded changes

* Update tests

* Format
2026-01-08 11:55:55 -06:00
Eric Bailey 7750b91500 [APP-1750] Add uri and cid to statusView on profile responses (#4516)
* Codegen

* Add uri and cid to status view

* Changeset

* Snapshotty

* Snapshots again

* Oh duh it's the uris
2026-01-07 20:39:57 -06:00
Eric Bailey 7ef893563b [AAv2] Add minAccessAge to Age Assurance regional configs (#4513) 2026-01-07 18:38:40 -03:00
rafael d5414b0b14 Rewire takedowns inclusion for getActors (#4514)
Co-authored-by: Eric Bailey <git@esb.lol>
2026-01-07 18:38:29 -03:00
Matthieu Sieben e1ca2ff2a4 lint 2026-01-02 14:15:44 +01:00
Eric Bailey 45928bfcd6 [AAv2] Retain existing status/access when re-starting AA flow (#4441)
* Retain existing status/access when re-starting AA flow

* Add test, fix dataplane v1-v2 bug
2025-12-10 15:17:25 -06:00
Jim Calabro 397c62fe9c Sitemap Handlers (#4434)
* add sitemap protos

* cd packages/bsky && npm run buf:gen

* implement user sitemap handlers

* add a test

* lint:fix

* use /external

* use Readable pipe for slightly more effecient data transfer

* rename functions to include the word user

* improve not found case and add test
2025-12-10 11:50:44 -05:00
Eric Bailey 6fab3940f6 [AAv2] Allow users to re-init Age Assurance if not in blocked state (#4428)
* Allow users to re-init Age Assurance if not in blocked state

* Skip test
2025-12-09 15:49:11 -06:00
rafael fb95dc6e6f bsky: Remove not found profiles from queries (#4417) 2025-12-05 13:39:39 -03:00
Eric Bailey 90f15698ee Age Assurance V2 (#4407)
Age Assurance v2 endpoints and config
2025-12-02 10:58:29 -06:00
Matthieu Sieben 261968fd65 New TS SDK (#4366)
* lex

* packaging

* moke packaging

* revert test changes

* do not build temp

* tidy

* automatically build the list of `@atproto/lex/com` lexicons

* fix build

* Remove "com" export

* ridy

* remove manifest option

* tidy

* rename

* tidy

* tidy

* tidy

* tests

* add procedure params

* stricter tests

* tidy

* Improve ui8 parsing

* tidy

* tidy

* code split

* code split

* fix reserved keywords conflict

* exclude packages/lex/src/tests/lexicons from lint

* reserved keywords

* safe identifier

* fix build

* move lib.js to src/lib.ts

* Move tests dir

* fix ci ?

* increast lint size

* Remove `Record` type alias for recordsz

* fix package json exports

* Add support for unsafe characters in defs and nsids

* tidy

* token tests

* tidy

* name consistency

* remove unused `unknownKeys` params option

* Fix "moving" keys in `DictSchema` (remove `IntersectionSchema`)

* REview comments

* adapt shebang in `env`

* Make sure union object have their $type property set in typings

* fix

* Improve typing of `UnknownTypedObject`

* lex improvements

* code reorg

* split lex-builder

* tidy

* improve packaging

* rename lex-validation to lex-schema

* lex client

* rename prettifier option

* add lex-client as dependency to "lex"

* Export client as part of main export

* re-write example app using @atproto/lex

* add missing lex-client to tsconfig

* tidy

* add "null" schema type

* Smaller bundle code footprint

* tidy

* correctness

* tidy

* code split and improved testing

* tidy

* refactor common utils

* test all implementations

* improve tests

* tidy

* fix build

* fixes

* tidy

* lint

* tests

* tidy

* fix oauth-example app

* tidy

* tidy

* tests

* tidy

* Return an actual `Uint8Array` from `fromBase64Node`

* tidy

* adapt xrpc-server

* Rename `Lex` to `LexValue`

* minor fixes

* fix tests

* fix tests

* tidy

* fix

* tidy

* tidy

* fix `verifyCidForBytes` implementation

* fix imports

* tidy

* split lex-json in own package

* make base64 tests faster

* Add interop tests

* lint error

* tidy

* tidy

* changeset

* implement lex-resolver and lex-install

* remove need for polyfill

* readme

* more details

* tidy

* allow specifying `service` header on a per request basis

* tidy

* tidy

* tidy

* tidy

* add custom/intersection validation schemas

* tidy

* tidy

* remive un-necessary util

* improve typing of `l.object` output

* make "name" required in lexicon method errors

* fix tests

* tidy

* tidy

* add error responses

* update readme

* add "like " to example

* readme improvements

* tidy

* error management improvements

* Improve error results

* tidy

* refactor

* tidy

* lock

* Update binary to `ts-lex`

* tidy

* tidy

* Add "Overview" section

* fix build

* update bin

* readme-improvements

* paul's feedback

* Update packages/lex/lex/README.md

Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com>

* Update packages/lex/lex/README.md

Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com>

* Update packages/lex/lex/README.md

Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com>

* Update packages/lex/lex/README.md

Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com>

* Update packages/lex/lex/README.md

Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com>

* Initial plan

* Address README review comments

Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com>

* Clarify client configuration inheritance behavior

Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com>

* Document allowLegacyBlobs default and compatibility implications (#15)

* Initial plan

* Add notes about default setting and compatibility for allowLegacyBlobs

Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com>

* Rename `Json` to `JsonValue` in lex-json package (#14)

* Initial plan

* Rename Json to JsonValue in lex-json package and dependent packages

Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com>

* Remove import alias for JsonValue in ipld.ts

Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com>

* Update packages/lex/lex/README.md

Co-authored-by: Paul Frazee <pfrazee@gmail.com>

* Update packages/lex/lex/README.md

Co-authored-by: Paul Frazee <pfrazee@gmail.com>

* Update packages/lex/lex/README.md

Co-authored-by: Paul Frazee <pfrazee@gmail.com>

* Update packages/lex/lex/README.md

Co-authored-by: Paul Frazee <pfrazee@gmail.com>

* Update packages/lex/lex/README.md

Co-authored-by: Paul Frazee <pfrazee@gmail.com>

* Update packages/lex/lex/README.md

Co-authored-by: Paul Frazee <pfrazee@gmail.com>

* review comments and fixes

* Add lex to the dockerfiles

* tidy

* changeset for lex packages

* tidy

* Tidy

* tidy

* tidy

* Move language parsing to lex-data

* tidy

* doctoc

* error handling

* tidy

* tidy

* tidy

* fix

---------

Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com>
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2025-11-24 21:01:16 +01:00
rafael 1d1d94e80d Adds tests for takendown cases in getPosts (#4359) 2025-11-20 16:21:31 -03:00
Eric Bailey 39b5c08e07 Clean up getPostThreadV2 in prep for future work (#4269)
* Deprecate prioritizeFollowedUsers, codegen

* Remove from agent response types

* Remove codepaths

* Format

* Changeset

* Remove fields entirely

* Changeset

* Swap changeset
2025-11-05 11:11:32 -06:00
rafael 10021207b6 Search filtering by tag (#4312) 2025-10-31 16:12:23 -03:00
Eric Bailey cdb6b27fc6 [TS-160] Add debug field to PostView and ProfileView*s (#4297)
* Add debug field to lex and proto, codegen

* Include debug field for DIDs configured via env var

* Gen bufs

* Update types and view

* Add debug field to profile views

* Safely populate debug field

* Format

* Use util

* Simplify existence check

* Values may be undefined

* Clarify type

* Update descriptions

* Include default value for dev-env

* Add test harness

(cherry picked from commit 7e49b4cf4cf3cbb989114540081e74f7a34acb6f)

* Use unknown field type instead of serializing

* KISS keep it set stupid

* Fix comments

* Differentiate between source of debug

* Add matching profile view test

* Specifying types of the merged objects isn't really helpful

* Changeset

* Add comment

* Put includeDebugField on HydrateCtx and use in views

* Mutate TestNetwork innards for tests

* Format

* Use separate debug schema for profile test

* Little more terse

* Oops, remove last usage

* Remove vestigial props

* Include other actor metadata

* Simply views, remove debugField
2025-10-28 11:59:50 -05:00
rafael 8dc4caf558 Expand profile fields (#4224) 2025-09-24 17:30:10 -03:00
rafael 64100a75b3 Bookmarks (#4163) 2025-09-02 10:28:34 -03:00
hailey 0a6a87891e adjust notifications to filter thread hidden tags (#4140) 2025-08-27 11:55:28 -07:00
rafael c370d933b7 Lists API improvements (#4081)
* Add purposes filter to app.bsky.graph.getLists

* Add getListsWithMembership

* Add getStarterPacksWithMembership

* Refactor list membership hydration

* changeset

* update getStarterPacksWithMembership lexicon output

* bsky: address feedback on list api improvements

* tidy

* tidy

---------

Co-authored-by: Devin Ivy <devinivy@gmail.com>
2025-08-05 01:06:05 -04:00
hailey a723ab3893 hydrate acceptsInteractions in generator view (#4071)
* hydrate  in generator view

* add a mock feedgen

* add feed-generation test

* Fix verify

---------

Co-authored-by: rafael <rafael@blueskyweb.xyz>
2025-08-04 11:40:47 -04:00
rafael 9751eebd71 Cleanup app.bsky.unspecced.checkHandleAvailability (#4072) 2025-07-29 17:00:05 -03:00
rafael 459a5dcddc Cleanup AA gate (#4066) 2025-07-28 10:53:10 -03:00
rafael de29a346d8 Fix paginateAll mistakes and improve typing (#4062) 2025-07-22 14:51:16 -03:00
Eric Bailey 8787fd9dea Prevent assured user from re-initiating (#4058)
* Validate user status before initiating

* Format

* Add test, not working yet

* Fix test

* Import order

---------

Co-authored-by: rafael <rafael@blueskyweb.xyz>
2025-07-18 14:13:25 -05:00
rafael 534bea0a98 Fixes on handle suggestions (#4055) 2025-07-18 12:12:09 -03:00
rafael dc84906c86 checkHandleAvailability endpoint (#4049) 2025-07-17 16:09:14 -03:00
rafael 88c1364274 APIs for age assurance compliance (#4028)
Co-authored-by: Eric Bailey <git@esb.lol>
2025-07-11 19:09:18 -03:00
Matthieu Sieben 8ef976d385 xrpc-server & lex-cli rework (#3999)
* xrpc-server & lex-cli rework

* codegen

* tidy

* tidy

* tidy

* Update .changeset/nasty-icons-peel.md

Co-authored-by: devin ivy <devinivy@gmail.com>

* excludeErrorResult util

* Restore export of `SkeletonHandler` from `pds`

* Make `calcKey` RateLimiter option required

* Process request input after auth

* fix tests

* changeset

---------

Co-authored-by: devin ivy <devinivy@gmail.com>
2025-07-08 13:04:11 +02:00
Samuel Newman 8a0f190399 Subscribe to activity implementation (#3908)
Co-authored-by: rafael <rafael@blueskyweb.xyz>
2025-06-30 18:43:27 -03:00
rafael 3499642ed1 Improve stash types for namespaces (#4000) 2025-06-26 16:45:18 -03:00
Samuel Newman 97ef116571 Rename filter -> include (#3966)
* rename filter -> include

* changeset

* fix tests
2025-06-17 13:45:49 -04:00