Skip to content

docs(actors): rename the learn section to guides and move the website's Actors guides in - #5853

Merged
NathanFlurry merged 1 commit into
mainfrom
docs/guides-section
Oct 8, 2026
Merged

NathanFlurry merged 1 commit into
mainfrom
docs/guides-section

Conversation

@NathanFlurry

@NathanFlurry NathanFlurry commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

The Guides tab at rivet.dev/guides now merges guides from every product repo. Each repo keeps its guides next to the code they teach, so <CodeSnippet> paths resolve against that repo's examples/.

This PR moves the Actors bundle to the new convention:

  • Renames docs/actors/content/learn/ to content/guides/, and the sidebar key learn to guides. Hrefs are now /guides/<slug>, where the pages render, so the website no longer rewrites them. The old /actors/learn/... URLs still redirect.
  • Moves in the four Actors guides the website owned: Coding Agents, Agent App Builders, Company-Specific Agents, and A Radically Simpler Architecture. They keep their slugs and their Solutions and Architecture groups. Em dashes were replaced to follow the docs rules.
  • Documents the convention in docs/AGENTS.md: guides go in content/guides/<slug>.mdx, slugs share one namespace across repos, and groups with the same title merge across repos.

Merge order: merge rivet-dev/website#131 first. It already vendors this content. Then merge this PR; its docs-sync PR to the website should have no diff. Merging this PR first would break the website's Guides tab until the website PR lands.

Related: rivet-dev/website#131 (merged Guides tab) and rivet-dev/agents#348 (first Agents guide).

…'s Actors guides in

Guides now live in content/guides/ and the sidebar's "guides" key, linked as
/guides/<slug>. The website merges every product repo's guides into the
Guides tab, so the four Actors guides the website owned (Coding Agents, Agent
App Builders, Company-Specific Agents, A Radically Simpler Architecture) move
here, next to the code they teach.

Amp-Thread-ID: https://ampcode.com/threads/T-d43d6059-e31e-4220-91d1-5e00ec65c552
Co-authored-by: Amp <amp@ampcode.com>
@railway-app
railway-app Bot temporarily deployed to rivet-frontend / rivet-pr-5853 October 8, 2026 19:41 Destroyed
@railway-app

railway-app Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

🚅 Deployed to the rivet-pr-5853 environment in rivet-frontend

Service Status Web Updated
frontend-inspector 😴 Sleeping (View Logs) Web Oct 8, 2026 at 7:50 pm UTC
kitchen-sink 😴 Sleeping (View Logs) Web Oct 8, 2026 at 7:48 pm UTC
mcp-hub ✅ Success (View Logs) Web Oct 8, 2026 at 7:43 pm UTC
ladle ✅ Success (View Logs) Web Oct 8, 2026 at 7:42 pm UTC
website ❌ Build Failed (View Logs) Web Oct 8, 2026 at 7:41 pm UTC

@claude

claude Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Review

Docs-only change: renames learn to guides, moves in four guides, and documents the convention in docs/CLAUDE.md. It looks good.

Checked

  • All 12 /guides/<slug> hrefs in docs/actors/sidebar.json have a matching content/guides/<slug>.mdx.
  • The nine renames are 100% similarity, so no content drift.
  • No em dashes in the new or moved pages, and no leftover actors/learn references in docs/.
  • docs/AGENTS.md is still a symlink to CLAUDE.md.

Minor suggestions

  • The architecture guide still has course-era wording ("in this course", "in further articles") and image paths under assets.rivet.dev/website/learn/act-1/scene-1/. The images work, but the prose no longer fits a flat guide, so consider rewording.
  • The merge-order dependency (website PR first) is documented in the description. Consider also noting who owns the /actors/learn/... redirect so it isn't dropped later.

No bugs, security, or performance concerns, and no tests apply to this change.

@the-company-company the-company-company Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟠 2 medium-severity findings

Reviewed commit 2074128.


## The sandbox is an Actor too

The sandbox comes from `rivetkit/sandbox` and shares the agent's key, which makes the agent-to-sandbox mapping implicit in the key space. It runs the coding agent (Codex by default) inside Docker, Daytona, or E2B, and owns the filesystem and process state for that session. The agent Actor submits a prompt, awaits the sandbox round trip, and broadcasts the result to connected clients as an [event](/actors/docs/events).

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟠 Medium · The guide sends users to a removed package entrypoint

rivetkit/sandbox is not exported by the current rivetkit package and has no source entrypoint; the repository changelog explicitly says rivetkit/sandbox/* was permanently removed. The linked example only appears to coexist with this because its check-types script is replaced with echo 'skipped - sandbox types broken', so readers cannot build the architecture described here from the supported SDK. Point this guide at the current supported sandbox integration and a compiling example, or omit it until that integration exists.


Give every conversation its own Actor, keyed by agent or conversation id. The transcript and status live in the Actor's persistent [state](/actors/docs/state), and each model call rebuilds the prompt from that state plus a system prompt. Memory and inference input are the same data, with no vector store or session table beside it. Prompts arrive on the Actor's [queue](/actors/docs/queues) and the `run` hook consumes them serially, so one conversation never has two model calls in flight. Tokens stream back to clients as [events](/actors/docs/events).

Because the memory is the Actor, the blast radius of any single agent is one Actor: it can only read what its own tools hand it, and its transcript is never pooled with another tenant's.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟠 Medium · Actor state isolation does not bound an agent's data access

A Rivet Actor can make network requests, read process-level configuration, and call other actors, so its blast radius is not automatically limited to its own state. If a tool or credential is shared or insufficiently scoped, one compromised conversation can still read another tenant's data; BYOC only keeps that access inside the customer's perimeter. Qualify this claim and require tenant-scoped credentials, authorization on actor-to-actor/tool calls, and appropriate egress controls rather than presenting actor state isolation as a security boundary.

NathanFlurry pushed a commit to rivet-dev/website that referenced this pull request Oct 8, 2026
Each product bundle may ship content/guides/<slug>.mdx and a "guides" key in
its sidebar.json, linked as /guides/<slug>. The Guides tab lists every bundle's
groups in product order and merges groups with the same title, and guides keep
resolving <CodeSnippet> paths against their own repo.

- src/sitemap/guides.ts: GUIDE_BUNDLES and content-id helpers replace the
  Actors-only learn prefix and SITE_GUIDES.
- guidesSidebar(): website Overview group, then merged bundle groups.
- check-sitemap: sidebar and content agree per bundle, and a slug defined by
  two bundles fails the build. The route also throws on a duplicate.
- The four website-owned guides moved to rivet-dev/rivet's Actors bundle.
  vendor/actors carries that change (rivet-dev/rivet#5853) so this PR is
  self-consistent. /actors/learn/* still redirects to /guides/*.

Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-d43d6059-e31e-4220-91d1-5e00ec65c552
@NathanFlurry
NathanFlurry merged commit c2459f5 into main Oct 8, 2026
9 of 13 checks passed
@NathanFlurry
NathanFlurry deleted the docs/guides-section branch October 8, 2026 23:19
NathanFlurry pushed a commit to rivet-dev/website that referenced this pull request Oct 8, 2026
Each product bundle may ship content/guides/<slug>.mdx and a "guides" key in
its sidebar.json, linked as /guides/<slug>. The Guides tab lists every bundle's
groups in product order and merges groups with the same title, and guides keep
resolving <CodeSnippet> paths against their own repo.

- src/sitemap/guides.ts: GUIDE_BUNDLES and content-id helpers replace the
  Actors-only learn prefix and SITE_GUIDES.
- guidesSidebar(): website Overview group, then merged bundle groups.
- check-sitemap: sidebar and content agree per bundle, and a slug defined by
  two bundles fails the build. The route also throws on a duplicate.
- The four website-owned guides moved to rivet-dev/rivet's Actors bundle.
  vendor/actors carries that change (rivet-dev/rivet#5853) so this PR is
  self-consistent. /actors/learn/* still redirects to /guides/*.

Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-d43d6059-e31e-4220-91d1-5e00ec65c552
NathanFlurry added a commit to rivet-dev/website that referenced this pull request Oct 8, 2026
…131)

Each product bundle may ship content/guides/<slug>.mdx and a "guides" key in
its sidebar.json, linked as /guides/<slug>. The Guides tab lists every bundle's
groups in product order and merges groups with the same title, and guides keep
resolving <CodeSnippet> paths against their own repo.

- src/sitemap/guides.ts: GUIDE_BUNDLES and content-id helpers replace the
  Actors-only learn prefix and SITE_GUIDES.
- guidesSidebar(): website Overview group, then merged bundle groups.
- check-sitemap: sidebar and content agree per bundle, and a slug defined by
  two bundles fails the build. The route also throws on a duplicate.
- The four website-owned guides moved to rivet-dev/rivet's Actors bundle.
  vendor/actors carries that change (rivet-dev/rivet#5853) so this PR is
  self-consistent. /actors/learn/* still redirects to /guides/*.


Amp-Thread-ID: https://ampcode.com/threads/T-d43d6059-e31e-4220-91d1-5e00ec65c552

Co-authored-by: Nathaneil Flurry <nathan@rivet.gg>
Co-authored-by: Amp <amp@ampcode.com>

This branch was successfully deployed

No deployments
rivet-frontend / rivet-pr-5853 — 2074128a Deployed Oct 8, 2026 by railway-app[bot]
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.

1 participant