see https://github.com/jlowin/fastmcp/pull/916
https://github.com/zzstoatzz/pdsx
https://github.com/zzstoatzz/pdsx
- inspect any public record
- verify data integrity between systems
- debug cross-PDS interactions
- see how other apps structure data
- inspect any public record
- verify data integrity between systems
- debug cross-PDS interactions
- see how other apps structure data
pdsx let me check PDS state independent of application code, which isolated the problem quickly.
pdsx let me check PDS state independent of application code, which isolated the problem quickly.
database had empty fields.
this narrowed it: ATProto sync was working. bug was in database persistence.
database had empty fields.
this narrowed it: ATProto sync was working. bug was in database persistence.
uvx pdsx --pds https://pds.zzstoatzz.io -r zzstoatzz.io cat at://did:plc:.../fm.plyr.track/...
uvx pdsx --pds https://pds.zzstoatzz.io -r zzstoatzz.io cat at://did:plc:.../fm.plyr.track/...
database showed empty metadata fields. needed to know if ATProto records were getting updated or if the entire write path was broken.
database showed empty metadata fields. needed to know if ATProto records were getting updated or if the entire write path was broken.
- beta deps in prod packages cause friction
- uv's conservative pre-release handling is actually good (forces us to ship stable deps)
- fast turnaround matters when users are blocked
thanks to chrisguidry for the quick stable release
- beta deps in prod packages cause friction
- uv's conservative pre-release handling is actually good (forces us to ship stable deps)
- fast turnaround matters when users are blocked
thanks to chrisguidry for the quick stable release
❌ prefect 3.6.0 + python 3.14: dependency resolution fails
✅ prefect 3.6.1 + python 3.14: locks in 521ms with stable pydocket v0.13.0
no --prerelease=allow needed anymore
❌ prefect 3.6.0 + python 3.14: dependency resolution fails
✅ prefect 3.6.1 + python 3.14: locks in 521ms with stable pydocket v0.13.0
no --prerelease=allow needed anymore
once he released it, we:
- updated prefect's dep from >=0.13.0b2 → >=0.13.0
- cut 3.6.1 with updated release notes
- verified the fix
once he released it, we:
- updated prefect's dep from >=0.13.0b2 → >=0.13.0
- cut 3.6.1 with updated release notes
- verified the fix
not great when you're just trying to bump to the latest version
not great when you're just trying to bump to the latest version
uv treats pre-release dependencies conservatively - even though we explicitly requested >=0.13.0b2, uv refused to resolve it for users without --prerelease=allow
uv treats pre-release dependencies conservatively - even though we explicitly requested >=0.13.0b2, uv refused to resolve it for users without --prerelease=allow
uv add pdsx
uv add pdsx
pdsx edit app.bsky.actor.profile/self description='new bio'
pdsx edit app.bsky.actor.profile/self description='new bio'
pdsx -r did:plc:o53crari67ge7bvbv273lxln ls app.bsky.feed.post --limit 5 -o json | jq -r '.[].text'
pdsx -r did:plc:o53crari67ge7bvbv273lxln ls app.bsky.feed.post --limit 5 -o json | jq -r '.[].text'
pdsx -r did:plc:o53crari67ge7bvbv273lxln ls app.bsky.actor.profile -o json | jq -r '.[0].description'
pdsx -r did:plc:o53crari67ge7bvbv273lxln ls app.bsky.actor.profile -o json | jq -r '.[0].description'