Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/(account)/usage.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ Two endpoints return the numbers those pages draw. `GET /v1/teams/{teamId}/usage

| Meter | Field | What it counts | At the limit |
| --- | --- | --- | --- |
| Spaces | `spaces` | Live spaces in the team | Blocks on Free. `409` `space_quota_exceeded` |
| Spaces | `spaces` | Live spaces in the team | Blocks on Free. `409` `quota_exceeded` |
| Custom domains | `domains` | External domain groups against the plan quota | Blocks. `409` `domain_quota_exceeded` |
| Team members | `members` | Billable seats, live members plus pending invitations | Blocks on Free. `409` `team_member_quota_exceeded` |
| Storage | `storageBytes` | Disk your spaces occupy | Displayed only. Nothing blocks |
Expand Down
2 changes: 1 addition & 1 deletion content/(publish)/anonymous-and-claim.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ After the claim lands the page says **<space> is yours.** and offers a **C

The dashboard says the last row out loud, under **Sharing that stays with this space**. Claiming changes ownership, not who you already shared with.

Two things can block a claim. A claim lands the Space in the team, so it counts against that team's space limit like any other create — a team already at its Space limit answers `space_quota_exceeded`. And the slug is re-checked against the receiving team's namespace, so an anonymous Space whose slug collides there answers `slug_unavailable` and you pick a new one.
Two things can block a claim. A claim lands the Space in the team, so it counts against that team's space limit like any other create — a team already at its Space limit answers `quota_exceeded`. And the slug is re-checked against the receiving team's namespace, so an anonymous Space whose slug collides there answers `slug_unavailable` and you pick a new one.

## Keeping your agent publishing

Expand Down
2 changes: 1 addition & 1 deletion content/(reference)/limits.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Free allowance exhaustion triggers review and may lead to suspension. Above 500

## Current enforcement

Read `GET /v1/teams/{teamId}/entitlements` and `GET /v1/teams/{teamId}/plan-policy` for the limits active on a team. A blocked Space creation or claim returns `409` with `space_quota_exceeded`; domain and team-member admission use `domain_quota_exceeded` and `team_member_quota_exceeded`.
Read `GET /v1/teams/{teamId}/entitlements` and `GET /v1/teams/{teamId}/plan-policy` for the limits active on a team. A blocked Space creation or claim returns `409` with `quota_exceeded`; domain and team-member admission use `domain_quota_exceeded` and `team_member_quota_exceeded`.

The current daily publish counter warns rather than refusing a publish. It pools direct publishes and CI builds and resets at 00:00 UTC. The current storage meter reports overage without enforcing the upcoming Free storage rule. Neither counter is the new itemized usage bill.

Expand Down
4 changes: 1 addition & 3 deletions content/api/errors.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -164,11 +164,9 @@ Two retry rules that come from the wire rather than the table. A `429` carries `
| --- | --- | --- | --- |
| `rate_limited` | wait | yes | Too many requests were made in a short window. |
| `anonymous_publish_rate_limited` | wait | yes | Too many anonymous publishes came from this network in a short window. |
| `space_quota_exceeded` | fix_input | no | Creating or claiming this space would exceed the owner's space allowance. |
| `quota_exceeded` | fix_input | no | The action would exceed a plan quota, such as the Space limit. The problem details name the quota and its limit. |
| `storage_quota_exceeded` | fix_input | no | The operation would exceed its storage allowance. |
| `team_member_quota_exceeded` | fix_input | no | Inviting this person would exceed the team's seat limit. |
| `deploy_quota_exceeded` | wait | yes | The owner has used its daily publish allowance. It resets at 00:00 UTC. |
| `build_minutes_quota_exceeded` | fix_input | no | This build would exceed the owner's build minutes for the month. |
| `idempotency_key_reused` | fix_input | no | The Idempotency-Key was reused with a different request body. |
| `idempotency_conflict_in_progress` | wait | yes | Another request with the same Idempotency-Key is still in flight. |
| `invalid_idempotency_key` | fix_input | no | The Idempotency-Key is missing or invalid, or an anonymous publish omitted its secret replay principal. |
Expand Down
21 changes: 21 additions & 0 deletions generated/changelog/packages/adapter-kit.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,27 @@ description: "Release history for @spacefast/adapter-kit on npm."

Published as [`@spacefast/adapter-kit`](https://www.npmjs.com/package/@spacefast/adapter-kit) on npm.

## 0.8.0

#### Patch Changes

- @spacefast/routing@0.8.0
- @spacefast/build-output@0.8.0

## 0.7.0

#### Patch Changes

- @spacefast/routing@0.7.0
- @spacefast/build-output@0.7.0

## 0.6.1

#### Patch Changes

- @spacefast/routing@0.6.1
- @spacefast/build-output@0.6.1

## 0.6.0

#### Patch Changes
Expand Down
21 changes: 21 additions & 0 deletions generated/changelog/packages/astro.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,27 @@ description: "Release history for @spacefast/astro on npm."

Published as [`@spacefast/astro`](https://www.npmjs.com/package/@spacefast/astro) on npm.

## 0.8.0

#### Patch Changes

- @spacefast/routing@0.8.0
- @spacefast/adapter-kit@0.8.0

## 0.7.0

#### Patch Changes

- @spacefast/routing@0.7.0
- @spacefast/adapter-kit@0.7.0

## 0.6.1

#### Patch Changes

- @spacefast/routing@0.6.1
- @spacefast/adapter-kit@0.6.1

## 0.6.0

#### Patch Changes
Expand Down
12 changes: 12 additions & 0 deletions generated/changelog/packages/auth.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,18 @@ description: "Release history for @spacefast/auth on npm."

Published as [`@spacefast/auth`](https://www.npmjs.com/package/@spacefast/auth) on npm.

## 0.8.0

_No noted changes in this release._

## 0.7.0

_No noted changes in this release._

## 0.6.1

_No noted changes in this release._

## 0.6.0

_No noted changes in this release._
Expand Down
12 changes: 12 additions & 0 deletions generated/changelog/packages/build-output.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,18 @@ description: "Release history for @spacefast/build-output on npm."

Published as [`@spacefast/build-output`](https://www.npmjs.com/package/@spacefast/build-output) on npm.

## 0.8.0

_No noted changes in this release._

## 0.7.0

_No noted changes in this release._

## 0.6.1

_No noted changes in this release._

## 0.6.0

_No noted changes in this release._
Expand Down
27 changes: 27 additions & 0 deletions generated/changelog/packages/builders.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,33 @@ description: "Release history for @spacefast/builders on npm."

Published as [`@spacefast/builders`](https://www.npmjs.com/package/@spacefast/builders) on npm.

## 0.8.0

#### Patch Changes

- Updated dependencies
- @spacefast/common@0.8.0
- @spacefast/build-output@0.8.0

## 0.7.0

#### Patch Changes

- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- @spacefast/common@0.7.0
- @spacefast/build-output@0.7.0

## 0.6.1

#### Patch Changes

- Updated dependencies
- @spacefast/common@0.6.1
- @spacefast/build-output@0.6.1

## 0.6.0

#### Patch Changes
Expand Down
30 changes: 30 additions & 0 deletions generated/changelog/packages/common.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,36 @@ description: "Release history for @spacefast/common on npm."

Published as [`@spacefast/common`](https://www.npmjs.com/package/@spacefast/common) on npm.

## 0.8.0

#### Minor Changes

- Hosted MCP no longer asks for connector scopes. `OAUTH_MCP_RESOURCE_SCOPES` is now the shared API set without `connectors:read`, `connectors:write`, and `connectors:execute`. The new `OAUTH_CONNECTOR_SCOPES` names those three, and the API resource keeps them for the Connectors REST API. MCP's default scopes, protected-resource metadata, and consent screen all drop them, and an MCP consent for the narrower set still counts as Agent access. Grants issued with the connector scopes keep refreshing; their new tokens just leave those scopes out.

## 0.7.0

#### Minor Changes

- New Spacefast logo: a star followed by lowercase "spacefast", upright, in one color. `SPACEFAST_WORDMARK_PATH` and `SPACEFAST_WORDMARK_VIEW_BOX` now draw it on a tight `0 0 127 20` viewBox. The star on its own is the new mark: `SPACEFAST_MARK_PATH` on `SPACEFAST_MARK_VIEW_BOX` (`0 0 24 24`) replaces the `SPACEFAST_ICON_*` "SF" letter geometry, which is removed. `SPACEFAST_BRAND_COLORS` drops the lime `shadow`. The full-bleed icon export moves from `brand-assets/spacefast-sf-full-bleed.svg` to `brand-assets/spacefast-icon.svg`. The MCP Space library's sidebar icon is now the star.
- Add a context starter: one Space is one Gutenberg document, with Save at the top
right and the Space's existing access settings controlling viewing and editing.
WordPress stores blocks and native revisions. A lossless `.blocks` source binding
uses the existing source writeback pipeline so committed content can travel with
source remixes. Markdown remains available for supported agent handoffs. Revision
tokens protect human edits from stale saves.

#### Patch Changes

- Keep existing website content and runtime declarations when publishing configuration only. Configuration-only publishes stage the evaluated configuration without scanning local content and use the server's retaining version lifecycle.
- Retire the URL capture rollout flag. Website migration and URL Build retries now use normal public publishing admission.

## 0.6.1

#### Patch Changes

- Align `sf domains search` with the dashboard in normal and interactive modes. Search uses live keyword matches, Luna typing previews, Sol submissions and refinements, fee-inclusive quotes, and Jev ranking. Saved sessions preserve feedback and selections, and interrupted searches remain resumable.
- The shared workflow runs one AI generation batch for a descriptive first brief. API and MCP first turns therefore request up to 12 AI names instead of the previous two batches totaling about 24. Follow-up turns grow the generated pool toward 24 available names, then retire the lowest-ranked unprotected names after checks and scoring. Keyword exact matches are unchanged.

## 0.6.0

#### Minor Changes
Expand Down
21 changes: 21 additions & 0 deletions generated/changelog/packages/compat-lakebed.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,27 @@ description: "Release history for @spacefast/compat-lakebed on npm."

Published as [`@spacefast/compat-lakebed`](https://www.npmjs.com/package/@spacefast/compat-lakebed) on npm.

## 0.8.0

#### Patch Changes

- @spacefast/zero@0.8.0

## 0.7.0

#### Patch Changes

- Updated dependencies
- Updated dependencies
- Updated dependencies
- @spacefast/zero@0.7.0

## 0.6.1

#### Patch Changes

- @spacefast/zero@0.6.1

## 0.6.0

#### Patch Changes
Expand Down
14 changes: 14 additions & 0 deletions generated/changelog/packages/domain-sdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,20 @@ description: "Release history for @spacefast/domain-sdk on npm."

Published as [`@spacefast/domain-sdk`](https://www.npmjs.com/package/@spacefast/domain-sdk) on npm.

## 0.8.0

_No noted changes in this release._

## 0.7.0

#### Patch Changes

- Preserve CNAME records in Spacefast DNS instructions and report their routing status from hostname diagnostics.

## 0.6.1

_No noted changes in this release._

## 0.6.0

_No noted changes in this release._
Expand Down
25 changes: 25 additions & 0 deletions generated/changelog/packages/domain-search-terminal.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,31 @@ description: "Release history for @spacefast/domain-search-terminal on npm."

Published as [`@spacefast/domain-search-terminal`](https://www.npmjs.com/package/@spacefast/domain-search-terminal) on npm.

## 0.8.0

#### Patch Changes

- Updated dependencies
- @spacefast/common@0.8.0

## 0.7.0

#### Patch Changes

- `DomainResearchClient.availability(domain)` now runs a live single-name registry check through `GET /availability`, and `DomainSearchSession.check()` uses it for carts and checkout. Search results hide premium names and names on TLDs Spacefast doesn't sell.
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- @spacefast/common@0.7.0

## 0.6.1

#### Patch Changes

- Updated dependencies
- @spacefast/common@0.6.1

## 0.6.0

#### Patch Changes
Expand Down
34 changes: 34 additions & 0 deletions generated/changelog/packages/domain-services.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,40 @@ description: "Release history for @spacefast/domain-services on npm."

Published as [`@spacefast/domain-services`](https://www.npmjs.com/package/@spacefast/domain-services) on npm.

## 0.8.0

#### Patch Changes

- Updated dependencies
- @spacefast/common@0.8.0

## 0.7.0

#### Minor Changes

- The registrar client can quote DSAPI's raw registration fees for a batch of names (`quoteDomainFees`, `quoteDomainFee`), renew a domain (`renewDomain`), and read and acknowledge reseller events (`enumerateEvents`, `acknowledgeEvent`, `dsapiEventKey`). A registration the pre-register check refuses (name taken, premium, fee changed) now throws a `refused` `DsapiError` before anything is sent, and DSAPI's 554 and 599 Register refusals classify as `refused`, 541 as `invalid`.
- The registrar client can now set a registered domain's nameservers (`setNameservers`), validating the list before anything is sent. Every registrar failure is now a typed `DsapiError` with the registrar's own reason and a `kind` such as `invalid`, `refused`, `unauthorized` or `transport`.
- New `@spacefast/domain-services/powerdns` export: a typed client for the PowerDNS Authoritative 4.9 HTTP API that reads, creates and deletes zones and applies rrset changes in one atomic PATCH. Every failure is a `PowerDnsError` with a `kind` such as `invalid`, `too_large`, `conflict`, `unauthorized` or `transport`, and never carries the API key or the PowerDNS address.
- `registerDomain` now delegates the name at registration. `DomainRegistrationInput` takes optional `nameservers` (2 to 12 distinct hostnames, normalized like `setNameservers` input). When it is omitted, `Domain\Register` sends `defaultRegistrationNameservers` (`ns1.spacefast.com`, `ns2.spacefast.com`). Invalid nameservers throw `DsapiError` kind `invalid` before any request is sent.
- The registrar client now reaches DSAPI through WP Cloud domain services. Breaking: `DomainServicesCredentials` takes a WP Cloud `clientName` and API token instead of a reseller `user` and key, and the default endpoint is `https://atomic-api.wordpress.com/api/v1.0/domain-services/<clientName>`. Requests are form bodies with JSON-string `params` and an `auth` header, and responses are read from WP Cloud's `{ message, data }` wrapper. Commands reach the OTE registry unless the client is created with `live: true`. WP Cloud's own HTTP errors classify as `unauthorized` (401/403), `invalid` (400) or `server_failed` (5xx).

#### Patch Changes

- The DSAPI client adds `bulkCheck(names)`, which checks up to 50 names per call with DSAPI's zone-file `Domain\Bulk_Check`. It never falls back to RDAP or the live `Domain\Check`. Premium names keep their real availability but are never purchasable, and registration refuses them. `checkDomains` is unchanged.
- The PowerDNS client confirms a missing zone by listing zones filtered to that name instead of reading the server, so it works with an API key scoped to zone endpoints. Such a key is refused the server itself with a 403, which made every first publish of a zone fail.
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- @spacefast/common@0.7.0

## 0.6.1

#### Patch Changes

- Updated dependencies
- @spacefast/common@0.6.1

## 0.6.0

#### Patch Changes
Expand Down
12 changes: 12 additions & 0 deletions generated/changelog/packages/image.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,18 @@ description: "Release history for @spacefast/image on npm."

Published as [`@spacefast/image`](https://www.npmjs.com/package/@spacefast/image) on npm.

## 0.8.0

_No noted changes in this release._

## 0.7.0

_No noted changes in this release._

## 0.6.1

_No noted changes in this release._

## 0.6.0

_No noted changes in this release._
Expand Down
Loading
Loading