Nothing bounds observation length on the write path (internal/server/record.go:70-117); record_test.go:265-266 asserts a ~5 KB observation is accepted, as part of the refusal-table invariant. The read path clips at 1000 bytes (internal/server/review.go:45) and sets observation_truncated.
In an append-only store this makes the tail permanently unreachable: written, retained forever, and no tool returns it. The flag tells a caller truncation happened but not how to get the rest.
Direction: a get_observation by id, a caller-settable text cap on review, or a documented write-side bound. The first keeps recording ungated, which the first invariant requires.
Nothing bounds observation length on the write path (
internal/server/record.go:70-117);record_test.go:265-266asserts a ~5 KB observation is accepted, as part of the refusal-table invariant. The read path clips at 1000 bytes (internal/server/review.go:45) and setsobservation_truncated.In an append-only store this makes the tail permanently unreachable: written, retained forever, and no tool returns it. The flag tells a caller truncation happened but not how to get the rest.
Direction: a
get_observationby id, a caller-settable text cap on review, or a documented write-side bound. The first keeps recording ungated, which the first invariant requires.