mesh-issues and mesh-knowledge: pin mesh-sdk at its merge of CallerOf; mesh-knowledge reads the caller from the runtime (hq issue 365)
mesh/merge-gate pass: builds mesh-issues, mesh-knowledge → novox; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
mesh/delivery covered: a later merge that contains it was delivered: novox/mesh-catalog@a3f4387e2630 (merged as 300406e0 into main, walk plan-17917125412…

Both pin mesh-sdk/go at 4cf45b5 (mesh-sdk#20 merged). mesh-knowledge's one
reading of the caller, callerOf, now answers stdio.CallerOf, so a call on the
caller-named subject is recorded as its caller's bus user and any other as
unproven, never from the arguments.
This commit is contained in:
2026-10-11 11:26:45 +02:00
parent 66068febb0
commit f134ed5910
8 changed files with 87 additions and 21 deletions
@@ -103,11 +103,10 @@ func serve(k *KB, status string) {
}
}
// callerOf is who called, as the runtime proves it: the one place the caller is read, so the change that brings it
// is this one function. The runtime does not hand a module its caller yet (hq issue 365): the SDK's tool call carries
// a name and arguments only, so the SDK must first pass the runtime's proven caller to a tool. Until it does, every
// caller is Unproven. It is never read from the call's arguments, so no caller can name another.
func callerOf(map[string]any) string { return Unproven }
// callerOf is who called, as the runtime proves it: the one place the caller is read. The tool runner takes the
// caller's bus user from the subject the call arrived on and hands it through the SDK (hq issue 365); Unproven where
// it proves none. It is never read from the call's arguments, so no caller can name another.
func callerOf(args map[string]any) string { return stdio.CallerOf(args) }
// hear subscribes to the router's word on this module's asks, asked again until the runtime takes it.
func hear(k *KB) {