--- '@pdsjs/spaces': patch '@pdsjs/core': minor '@pdsjs/storage-sqlite': patch '@pdsjs/cloudflare': patch '@pdsjs/drive': patch --- Spaces follow the reference's `0.0.0-spaces-alpha-20261022141228`. Nothing of the old formats is accepted. - **Credentials.** `getSpaceCredential` takes `{space, credentialKid, delegationToken?, clientAttestation?}` and is not signed: `credentialKid` is the P-256 did:key the credential binds to. A space with a public read policy issues one without a delegation token; otherwise a request without one is answered `SpaceNotFound`. A deleted space is `SpaceDeleted`, and a token that does not verify or was spent is `InvalidDelegationToken` (400). A credential is presented as `Authorization: Atproto-Space-Credential `, signed under the RFC 9421 label and tag `atproto-space-credential` with padded base64. - **MACs instead of signatures.** A commit is `{ver, repo, space, rev, data}` and carries no signature. `getRecord`, `getRepo`, `getLatestCommit` and `listRepoOps` answer an `Atproto-Space-Want-Mac` key share with an `Atproto-Space-Mac` header, under a secret derived from the account's `#atproto_kem` key; a credential read without one is `BadSpaceMac`. The responses vary on the request header and expose the MAC header across origins. - **STAR.** `getRepo` serves a STAR-lite v1 archive (`application/octet-stream`) and no longer takes `excludeValues`. A space record may be at most 1 MiB. - **Records.** A space record's `{$link}` is stored as a CID link and `{$bytes}` as a byte string, so its CID is the one other implementations compute. `@pdsjs/core/repo` gains `cborDecodeLinks`, `jsonToLex`, `lexToJson` and `cborDecodeJson`. - **Notices.** `notifyWrite` and `listRepos` carry `data` (was `hash`), and `notifyWrite` requires it and `repoRev`. Deleting a space owes every registered syncer a `notifySpaceDeleted`, stored and retried with backoff until it lands or the registration expires. The authority's own write into a space it has not created, or has deleted, is `SpaceNotFound`. - **Identity.** `#atproto_space` and `#atproto_space_host` are gone: tokens are signed by `#atproto`, and a delegation token is addressed to `#atproto_pds`. - **Storage.** `SpaceStoragePort` rows carry `data` (the column is renamed in place) and gain the deletion notice outbox: `enqueueSpaceDeletedNotify`, `listDueSpaceDeletedNotify`, `rescheduleSpaceDeletedNotify`, `deleteSpaceDeletedNotify`. `createSpaceRoutes` requires `getKemKey`.