chadtmiller.com/knotless
git that lives in your Atmosphere account
Private repositories speak the October 29 spaces alpha
MergedThis moves the private-repository space calls from com.atproto.simplespace to com.atproto.space.createSpace and deleteSpace under the com.atproto.memberspace.policy policy. Members are now managed with com.atproto.memberspace.putMember, removeMember and listMembers. It also bumps the alpha commit in test.yml and scenarios.yml, and updates the docs and adds a changeset.
I found nothing wrong. A search of main shows every simplespace reference is in the lines this pull replaces, so none are left behind. The workflows and docs agree with the code.
I couldn't confirm the new alpha works. The test and check runs were still running when I looked, and docs was queued. The test run builds the new alpha and runs the spaces tests, so merge only once it passes.
7 passed, 2 skipped
What changes
knotless creates a private repository's space with
com.atproto.space.createSpaceunder thecom.atproto.memberspace.policypolicy, deletes it withcom.atproto.space.deleteSpace, and manages its members withcom.atproto.memberspace.putMember,removeMemberandlistMembers. CI's spaces alpha (ATPROTO_COMMITin test.yml) moves from ac0c9f153 to 11c5d98cd, the tip ofpermissioned-data-alpha, and scenarios.yml's moves there too from the older e03c77fc8.Why
The alpha's October 29 build removes
com.atproto.simplespace: a space's access is now apolicyunion chosen at creation, with personalspace, memberspace and managedspace as the baseline policies. Against it,knotless create --privateandsharefail. The memberspace policy with its defaults (no public reads or writes, noallowedApps) is what knotless asked of simplespace: member-list reads and writes, open app access. The PDS migrates each existing simplespace config to a memberspace policy, so spaces made before keep working. The scopes these calls need (manage=create,update,delete,read_self) are unchanged.getSpaceCredentialnow answers a refused user withSpaceNotFoundinstead ofUserNotAuthorized;deniedalready takes both, and keepsUserNotAuthorizedfor PDSes on older builds.How it was checked
Left to CI: the
testcheck builds the new alpha and runs the spaces tests against it (create, share, unshare, members, delete).Shortcomings
A PDS still on an older alpha has no
com.atproto.space.createSpace, so creating a private repository there is refused as a PDS without spaces. Nothing falls back to simplespace: the alpha is pre-release and moves as one.🤖 Generated with Claude Code