Some checks failed
ci / build (push) Has been cancelled
Completes FLUID-WP-0003. The evidence store is append-only at the database, not by convention in Go: a trigger blocks UPDATE and DELETE on fluid_events in both SQLite and Postgres, so the guarantee binds a psql session and the CLI equally, not just callers who go through the Go API. Records are derived summary state and may be superseded; the event log stays the authority. The intent store makes a recorded version immutable and content addressed, since reassigning what governed a revision after the fact would break the one audit question Blueprint 27 exists to answer. The unfilled InterfaceEvolutionIntent template is rejected rather than defaulted, because a template still listing every FLUID-N mode has not been completed and defaulting it would pick a permissive authority by accident. The CLI reads the evidence store directly rather than through the control-plane API, so an operator can reconstruct history when the control plane is down. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014KmVxhJ35tCo7rE7UnLwWu Assistant: claude-code Assistant-Model: opus Assistant-Process: 1116572@bnt-lap001 Assistant-Session: 8ba9bb93-a72a-4883-b189-2499cce5c400
19 lines
557 B
Go
19 lines
557 B
Go
package evidence
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/tegwick/fluid-core/internal/contract"
|
|
)
|
|
|
|
// TelemetrySink adapts a Store to the runtime's telemetry sink.
|
|
//
|
|
// It is a separate type so the data plane depends on the narrow sink interface
|
|
// rather than on the whole evidence store: the gateway should not be able to
|
|
// read hypotheses.
|
|
type TelemetrySink struct{ Store Store }
|
|
|
|
// Write implements the runtime Sink interface.
|
|
func (s TelemetrySink) Write(ctx context.Context, ev contract.FluidTelemetry) error {
|
|
return s.Store.WriteTelemetry(ctx, ev)
|
|
}
|