Skip to content

[SLOP(claude-opus-4-8)] docs(actors): apply docs audit fixes#5250

Open
NathanFlurry wants to merge 1 commit into
stack/slop-claude-opus-4-8-docs-actors-rewrite-in-memory-state-page-remove-sandbox-page-fix-statesaveinterval-default-forbid-em-dashes-pqwwounvfrom
stack/slop-claude-opus-4-8-docs-actors-apply-docs-audit-fixes-rtqklwqu
Open

[SLOP(claude-opus-4-8)] docs(actors): apply docs audit fixes#5250
NathanFlurry wants to merge 1 commit into
stack/slop-claude-opus-4-8-docs-actors-rewrite-in-memory-state-page-remove-sandbox-page-fix-statesaveinterval-default-forbid-em-dashes-pqwwounvfrom
stack/slop-claude-opus-4-8-docs-actors-apply-docs-audit-fixes-rtqklwqu

Conversation

@NathanFlurry

Copy link
Copy Markdown
Member

No description provided.

@NathanFlurry

NathanFlurry commented Jun 13, 2026

Copy link
Copy Markdown
Member Author

Stack for rivet-dev/rivet

Get stack: forklift get 5250
Push local edits: forklift submit
Merge when ready: forklift merge 5250

@claude

claude Bot commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Docs Audit Fixes Review

This is a high-quality docs cleanup. Most changes are straightforward accuracy fixes (type names, auth header format, API shape corrections). A few things worth double-checking:


Issues

testing.mdx — real wait() delays contra CLAUDE.md

The new example for testing schedules replaces vi.useFakeTimers() + vi.advanceTimersByTimeAsync() with a raw await wait(150) for a 100 ms schedule:

await schedulerHandle.scheduleTask("reminder", 100); // 100ms in the future
await wait(150); // real-time wait

CLAUDE.md is explicit: "Never paper over flakes with retry loops or bumped waits." While this is only documentation code, it teaches users a pattern that will produce flaky tests on slow CI machines. If setupTest genuinely doesn't support fake timers, the preferred guidance is to document that limitation and recommend polling on an observable side-effect (e.g., vi.waitFor(() => expect(...).toBe(...), { timeout: 500 }) with a comment explaining why polling is necessary). The raw wait also contradicts the updated CLAUDE.md convention — user-facing docs should model best practices.

versions.mdx — default simplification may lose information

The table previously documented mode-specific defaults:

Value Behavior
false (default in runner mode) ...
true (default in serverless mode) ...

The new table collapses that to true (default). If the default actually varies by runtime mode, this is a documentation regression that will surprise users running in runner mode (they'd expect false). Worth verifying whether the default was truly unified before landing.

access-control.mdx — behavioral claim change

-Incoming queue messages for undefined queues are ignored and logged as warnings.
+Incoming queue messages for undefined queues are ignored and the publish succeeds as completed.

"Succeeds as completed" is a meaningful behavioral promise (callers won't see an error). Is this guaranteed by the implementation, or is it observed behavior that might change? If it's an intentional API contract, it belongs in the docs; if it's an implementation detail, softer language would be safer.


Minor Notes

ai-and-user-generated-actors.mdx — the deleted file referenced https://api-cloud.rivet.dev (should be https://cloud-api.rivet.dev per CLAUDE.md). Deletion is fine, but flag for if/when this page returns.

debugging.mdx — inspector auth in local dev — "Inspector endpoints always require the actor's inspector token, including in local development. There is no local-development bypass." This is a significant change from the previous "No authentication required." If accurate, the addition is valuable. Please confirm this reflects the actual local-dev UX before the page goes live.

workflows.mdx — rollback callbacks — Replacing ctx.client().inventoryActor... with a raw fetch in rollback is technically correct given the constraint, but the example has no retry logic. A one-line note that rollback steps should be idempotent and may need their own retry handling would help users avoid silent data loss.

websocket-handler.mdx.websocket() to .webSocket() (camelCase fix) is correct, but worth a grep to confirm no other docs pages still reference the old name.


Looks Good

  • Auth header fix (x-rivet-token to Authorization: Bearer) applied consistently across all curl examples.
  • Type renames (BeforeConnectContext to OnBeforeConnectContext, ConnectContext to OnConnectContext) applied consistently in authentication.mdx and connections.mdx.
  • conns corrected from "array" to Map<string, Conn> — important for users iterating over connections.
  • Removal of /inspector/traces and /inspector/metrics sections paired with the new note that the OpenAPI spec is incomplete — good expectation-setting.
  • client.myActor.get() to client.myActor.getOrCreate() throughout testing.mdx — correct API name.
  • Status label "Stopped" to "Destroyed" and "Crash-Loop" to "Crash Loop Backoff" — cleaner UX labels.
  • Sitemap entry removed to match file deletion.
  • backoffMs step return value fix in workflows.mdx is correct (reading state inside a replayed step is unsafe).

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