the ring reads out over ipc as turn decisions (V-564)

Same shape as TickTrace and RecentEvents: a bounded daemon ring, so the store
adapter refuses rather than pretending a table exists. No voice wiring means an
empty list and not an error, because a box with no voice path has had no turns
to arbitrate.
This commit is contained in:
2026-08-06 00:52:48 +04:00
parent 3e6a427e85
commit a5b245dbf5
9 changed files with 70 additions and 0 deletions
+7
View File
@@ -169,6 +169,13 @@ type SystemAPI interface {
// persisted — it's a daemon-level cache).
TickTrace(ctx context.Context) (TickTrace, error)
// TurnDecisions returns the newest turn arbitration records, newest first
// (V-564). Same shape as TickTrace and RecentEvents: a bounded in-memory
// ring on the daemon, so the store adapter returns an error rather than
// pretending a table exists. Empty is a normal answer — it means no turn
// has run since the daemon started.
TurnDecisions(ctx context.Context, n int) ([]TurnDecision, error)
// RecentEcosystemTraces reads the ecosystem call log, which lives in its
// own table so machine-rate traces never crowd out human-rate facts.
RecentEcosystemTraces(ctx context.Context, n int) ([]EcosystemTrace, error)