As promised, we just released another update to the spaces alpha today!
This is a smaller release than last week. We have a few new features & protocol mechanisms (including account migration!). The meat of it is a refactor of simplespaces. This is backwards-incompatible and will require updating any of your apps that use simplespaces!
Like last time, we’ve put together a prompt that you can give your coding agent to handle the migration.
To summarize the changes:
- Space policies: we totally refactored how simplespaces work. Simplespace is split it up into three different policies: personalspace, memberspace, and managedspace. Also space create/update/delete methods are moved to the
com.atproto.space.*name space. And policies got some configuration for choosing if the policy & member list should be public. Thanks to @matthieu.bsky.team for the original proposal! (Implementation / Proposal) - Account migration: Space data can now migrate! This functions similarly to public broadcast repo migration. The big difference is that there are more repos (not just one), and space authorities also need to migrate some metadata about their spaces. This Implemeninvolved speccing a new STAR profile as well! (Implementation / Proposal)
- clearRecords: This is a new repo lifecycle method for clearing all published records in a space repo. Useful when you want to delete all of a user’s content in a space without doing a bajillion delete operations. (Implementation / Proposal)
- removeWriter: This is a lower-level protocol method for pruning the writer set. Thanks to @mikestaub.social for the idea. (Implementation / Proposal)
The full updated spec is in the proposal.
This deploy does involve an actor store migration for each actor. This will run the first time each user’s actor store is opened. A quick note on that migration: The PDS will upgrade simplespaces automatically. Any simplespace that had a managing app set will become a managedspace. All others will become memberspace. If a simplespace had a mixed config, it will still become a managedspace. This seems like an unlikely pattern, but is still important to be aware of!
As always, feedback is welcome! Let me know if you run into any bugs or sharp edges.