S7: claude-code's seat-list again answers a proved operator's session
claude_code_seat_list_again answered person.<name> and the healers, but every call through the mesh MCP server is proved as its machine's tool runner (issue 627); node-tools now stands for that session (issue 1966). Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
@@ -109,7 +109,9 @@ func TestTheMeshsToolsAreReadFromTheBus(t *testing.T) {
|
|||||||
t.Errorf("replacements: %s", got)
|
t.Errorf("replacements: %s", got)
|
||||||
}
|
}
|
||||||
t.Run("the again tool answers the operator and the healers only", func(t *testing.T) {
|
t.Run("the again tool answers the operator and the healers only", func(t *testing.T) {
|
||||||
for caller, refused := range map[string]bool{"person.jochen": false, "shanks.mesh-healers": false, "shanks.mesh-config": true} {
|
// An operator's session through the mesh MCP server is proved as its machine's tool runner (issue 627, issue 1966).
|
||||||
|
for caller, refused := range map[string]bool{"person.jochen": false, "shanks.node-tools": false, "shanks.mesh-healers": false,
|
||||||
|
"shanks.mesh-config": true} {
|
||||||
if err := seatlist.Refusal("claude_code_seat_list_again", seatListAgainCallers, caller); (err != nil) != refused {
|
if err := seatlist.Refusal("claude_code_seat_list_again", seatListAgainCallers, caller); (err != nil) != refused {
|
||||||
t.Errorf("%s: refused=%v, err %v", caller, refused, err)
|
t.Errorf("%s: refused=%v, err %v", caller, refused, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -667,8 +667,10 @@ func refusals(n int) string {
|
|||||||
return fmt.Sprintf(" (after %d refusal(s))", n)
|
return fmt.Sprintf(" (after %d refusal(s))", n)
|
||||||
}
|
}
|
||||||
|
|
||||||
// seatListAgainCallers may read the seat list again: every operator's session and the healers (ADR 0636 §7).
|
// seatListAgainCallers may read the seat list again: every operator's session and the healers (ADR 0636 §7). A call through
|
||||||
var seatListAgainCallers = []string{stdio.AnyPerson, "mesh-healers"}
|
// the mesh MCP server is proved only as its machine's tool runner (<node>.node-tools, issue 627), so node-tools stands for
|
||||||
|
// an operator's session until a session is proved (issue 1966).
|
||||||
|
var seatListAgainCallers = []string{stdio.AnyPerson, "node-tools", "mesh-healers"}
|
||||||
|
|
||||||
// seatListTools are the seat list reader's two tools: what the list holds and what it waits for, and a read now. The
|
// seatListTools are the seat list reader's two tools: what the list holds and what it waits for, and a read now. The
|
||||||
// reader starts once the runtime serves, after the tools are listed, so each tool finds it when it is called.
|
// reader starts once the runtime serves, after the tools are listed, so each tool finds it when it is called.
|
||||||
|
|||||||
Reference in New Issue
Block a user