T-6: the tool runner reads a sent object by its reference, under the bus state capability

mesh/objects.sent-get reads a sender's sent store only; refused: a state's objects, a reference that is none, an object over a bundle's channel.

Builds: design 47 G §347, §59, §462

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
2026-11-11 12:06:40 +01:00
parent a5b8ae1a72
commit 78e5de538b
4 changed files with 108 additions and 1 deletions
@@ -2,6 +2,7 @@ package runtime
import (
"encoding/json"
"git.novox.be/novox/mesh-sdk/go/buscalls"
"sort"
"strings"
"testing"
@@ -143,3 +144,16 @@ func TestTheRunnerStatesTheCapabilitiesOfItsCallsInItsPing(t *testing.T) {
t.Errorf("the runner states %q (%v), want its bus-state and ledger calls", ping.Metadata[announce.Capabilities], err)
}
}
// Design 47 G §462: the call that reads a sent object is listed under the bus state capability, and the ledger calls keep theirs.
func TestTheSentObjectCallBelongsToTheBusStateCapability(t *testing.T) {
for c, method := range map[string]string{CapBusStateCalls: buscalls.ObjectsSentGet} {
found := false
for _, m := range callFamilies[c] {
found = found || m == method
}
if !found {
t.Errorf("%s does not list %s", c, method)
}
}
}