Skip to content

Async IDC: docs - #6424

Merged
cloutiertyler merged 4 commits into
masterfrom
tyler/docs-async-idc
Oct 30, 2026
Merged

cloutiertyler merged 4 commits into
masterfrom
tyler/docs-async-idc

Conversation

@cloutiertyler

@cloutiertyler cloutiertyler commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Description of Changes

This PR adds a Core Concepts page that documents asynchronous inter-database communication (IDC). The feature landed in #6150, #6156, #6313, #6364, #6375, #6376, and #6327, but the only docs so far covered receiver-dependency configuration (#6362), so database developers had nothing explaining what an outbox is, what delivery guarantees they get, or how to send a call and handle its result. Following SpacetimeDBPrivate#2863, the new page explains the concept and motivation, leads with a lobby-to-game-world example in TypeScript and Rust, and then covers outbox tables, receiving calls, on_result, receiver changes, and current limitations, with links from the Databases, spacetime dev, spacetime.json, and auth usage pages, which now say "sending database" instead of "calling database", and a new parent row in the spacetime.json reference, with no code changes.

API and ABI breaking changes

This PR doesn't break anything because it only adds and links documentation.

Rollback safety impact

n/a

Expected complexity level and risk

1

Testing

  • Ran the lobby and game world example end to end in both Rust and TypeScript against a local standalone server built from master, and confirmed the SQL and log output shown on the page.
  • Compiled or typechecked every smaller snippet, and checked formatting with the repo's rustfmt and Prettier settings.
  • Reproduced the signature-mismatch error, the compile error after regenerating bindings, and the client_connected retry behavior that the page quotes.
  • pnpm build in docs passes with broken links and anchors set to throw.
  • Published the example with "parent": "lobby" on a local server, published again, and confirmed calls still deliver.
  • Confirm IDC works between two databases on Maincloud, which the "same server" limitation assumes.
  • Remove the Rust index-lookup limitation if it is fixed before release.
  • CI

@cloutiertyler
cloutiertyler marked this pull request as ready for review October 30, 2026 01:45

@Shubham8287 Shubham8287 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! I tested example modules as well.

@Shubham8287

Copy link
Copy Markdown
Contributor

I am not sure, if updating docs is enough to update skills or it needs to be done separately?

@rekhoff
rekhoff added this pull request to the merge queue Oct 30, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 30, 2026
@rekhoff
rekhoff added this pull request to the merge queue Oct 30, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 30, 2026
@Shubham8287
Shubham8287 added this pull request to the merge queue Oct 30, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 30, 2026
@cloutiertyler
cloutiertyler added this pull request to the merge queue Oct 30, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 30, 2026
@cloutiertyler cloutiertyler mentioned this pull request Oct 30, 2026
3 of 4 tasks
@rekhoff
rekhoff added this pull request to the merge queue Oct 30, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 30, 2026
@cloutiertyler
cloutiertyler added this pull request to the merge queue Oct 30, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 30, 2026
@Shubham8287
Shubham8287 added this pull request to the merge queue Oct 30, 2026
@cloutiertyler
cloutiertyler removed this pull request from the merge queue due to a manual request Oct 30, 2026
@cloutiertyler
cloutiertyler added this pull request to the merge queue Oct 30, 2026
Merged via the queue into master with commit 7243afc Oct 30, 2026
65 checks passed
Penguinjanator pushed a commit to Penguinjanator/SpacetimeDB that referenced this pull request Oct 31, 2026
# Description of Changes

This PR teaches the agent skills about asynchronous inter-database
communication (IDC). Async IDC shipped in clockworklabs#6150 through clockworklabs#6327, but the
skills only mentioned receiver bindings in the CLI skill, so an agent
writing a module wouldn't know how to declare an outbox table or handle
`on_result`, or that a receiving database's `client_connected` must not
require a JWT. Following the docs page in clockworklabs#6424, this adds IDC sections
to the Rust server, TypeScript server, and concepts skills, switches the
CLI skill to the docs' "sending database" wording, and resyncs the Codex
plugin copy, without touching code or the plugin version.

# API and ABI breaking changes

This PR doesn't break anything because it only changes agent skill text.

# Rollback safety impact

n/a

# Expected complexity level and risk

1

# Testing

- [x] Compiled the Rust skill snippet against generated receiver
bindings with `cargo check --target wasm32-unknown-unknown`.
- [x] Typechecked the TypeScript skill snippet against generated
receiver bindings with `tsc --noEmit`.
- [x] `node codex-plugin/scripts/check-skills-sync.ts` reports the Codex
copy in sync.
- [ ] CI
Penguinjanator pushed a commit to Penguinjanator/SpacetimeDB that referenced this pull request Oct 31, 2026
…s#6441)

# Description of Changes

This PR stops the merge queue from rerunning an earlier equivalent run
whose queue branch has been deleted. Since clockworklabs#5815, a PR that re-enters
the queue with the same git tree reruns the failed jobs of the earlier
run, but those jobs check out that run's `gh-readonly-queue` branch,
which GitHub deletes once its entry leaves the queue, so every retry
fails with `couldn't find remote ref` until master moves (this failed
clockworklabs#6424 four times in a row). The coordinator now checks that the earlier
run's branch still exists before rerunning it and otherwise runs CI
normally, without changing `ci.yml` or the reuse of successful runs.

# API and ABI breaking changes

This PR doesn't break anything. It only changes when the merge queue
reuses an earlier run, and in the cases it changes, the reuse always
failed.

# Rollback safety impact

n/a

# Expected complexity level and risk

2

# Testing

- [x] `cargo test`, `cargo clippy --all-targets -- -D warnings`, and
`cargo fmt --check` pass for `ci-workflow-coordinator`.
- [x] Ran `merge-queue-reuse` locally on a commit with clockworklabs#6424's stale
merge tree, with `gh run` blocked. It found run 41111298703, saw that
its queue branch is gone, and wrote `reused=false`.
- [ ] A PR re-queued while master is unchanged runs CI normally instead
of failing.
- [ ] CI
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants