feat(actor): v0.6.21 — --actor-json assertion surface (workflow run / config get / chat)#287
Merged
Conversation
…un/config + chat Add the per-user Actor ASSERTION SURFACE so an authenticated transport (the portal) can scope an operation to a user. v0.6.20 already RELAYS the actor through the kernel; the only setter was `mcp serve --actor-json`. This wires the flag onto the surfaces that resolve config / dispatch runs / run chat turns: - `workflow run --actor-json`: parsed to Option<Actor>, threaded onto the sync ExecuteArgs.actor (explicit flag wins over WORKFLOW_ACTOR_ENV), the async detached-runner overrides, and the control-wire WorkflowRunRequest.actor. - `workflow config get/validate --actor-json`: threaded into load_workflow_config_with_metadata + load_agent_runtime_config_with_metadata_for_actor so both halves resolve the SAME actor partition. - `chat send --actor-json`: binds the chat turn's built-in `animus` MCP server to the actor via the ephemeral runtime contract; parsed FIRST (fail-closed before any conversation store write). The actor is NEVER persisted to the shared cwd `.mcp.json` (stripped from the materialized copy) to avoid a concurrent/crash impersonation window; distinct from `--as-user` (ownership). New shared helper `parse_actor_json_flag` (fail-closed on malformed JSON), shared ACTOR_JSON_HELP text, clap parse tests per command, an actor-threading test for config get via the config_source test seam, and a CLI doc section. Trust boundary: the flag is a transport assertion; the kernel relays claims, it does not validate them.
…run / config get / chat
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds the transport assertion surface for the per-user Actor:
--actor-json '<JSON>'onworkflow run,workflow config get,workflow config validate, andchat send(mirrors the existingmcp serve --actor-json). v0.6.20 already relays/consumes the actor; this is the only missing setter, so a portal that authenticates the user can now scope runs + config reads to them.parse_actor_json_flag); threads the actor into the run request / config load / chat MCP contract..mcp.json— it rides the ephemeral runtime contract.Verification
build/clippy clean;
cargo test1223 pass / 2 pre-existing fail; 7 new tests (clap parse ×3, fail-closed parse, distinct-actor config-get threading, contract strip). codex 4 rounds → 0 findings.Limitation (tracked)
Providers scoping only off cwd
.mcp.jsonauto-discovery don't get the actor on that channel (needs per-run isolated MCP config —TODO(codex-p1)).🤖 Generated with Claude Code