Carried over from the archived managoat/salon#9 when the demo suite
was consolidated into this repository. The original repo has been deleted, so
this is the surviving copy.
- Originally opened by @jhgaylor on 2026-09-02 (issue
https://github.com/managoat/salon/issues/9)
- Now lives at:
apps/salon
- Status: carried over as-is
Outcome
Upgrade Salon's plan execution from inferred, prompt-serialized coordination to exact Fountain provenance and provider-neutral agent-native plan tools. Then expose the execution graph and add safe parallelism behind worktree isolation.
This follows the Salon-only plan/review/sequential-execution tracker. Do not block that tracker on this one.
Fountain dependencies
Adjacent platform decisions for later parallelism:
1. Exact execution provenance after #1406
2. Delete the MCP substitution workaround after #1404
3. Agent-native plan operations on every runtime after #1405
4. Surface Fountain's existing conversation tree
5. Safe parallel execution
Acceptance test
For every supported runtime, a collaborator can approve a plan revision and run it such that Salon can answer exactly:
- which plan revision and node were authorized;
- who launched it;
- which Fountain turn and child conversation executed it;
- which authenticated plan-tool operations the agent proposed;
- which isolated worktree and branch changed;
- what evidence resulted; and
- whether a retry, reconnect or concurrent node caused duplicate execution or workspace collision.
No answer relies on “it was probably the next user turn.”
Outcome
Upgrade Salon's plan execution from inferred, prompt-serialized coordination to exact Fountain provenance and provider-neutral agent-native plan tools. Then expose the execution graph and add safe parallelism behind worktree isolation.
This follows the Salon-only plan/review/sequential-execution tracker. Do not block that tracker on this one.
Fountain dependencies
session/newreceives the substituted MCP configuration.Adjacent platform decisions for later parallelism:
1. Exact execution provenance after #1406
turn_idreturned for the accepted prompt.plan revision → node → execution → conversation → turnlinkage.2. Delete the MCP substitution workaround after #1404
server/sandbox.ts#unescapedand its tolerance for$ftn_.../ prefixed conversation IDs.3. Agent-native plan operations on every runtime after #1405
get_plan,propose_plan_patch,report_node_statusandattach_node_result.4. Surface Fountain's existing conversation tree
/tree; never broaden the guest proxy to arbitrary owner conversations.5. Safe parallel execution
Acceptance test
For every supported runtime, a collaborator can approve a plan revision and run it such that Salon can answer exactly:
No answer relies on “it was probably the next user turn.”