Files
run/protocol/log-ingest.md
T

48 lines
2.4 KiB
Markdown

# Run Live Log Relay Contract
Run log traffic is a best-effort push of output observed now. It is not a
durable log database, delivery queue, or acknowledgement-dependent lifecycle
channel. Game plugins own durable log storage and analysis.
## Implemented Routes
- `POST /api/v1/run/logs/relay`: pushes one bounded current-output batch to the
platform relay. The platform may forward it to live subscribers, but does
not persist the body or require a delivery acknowledgement.
- `POST /api/v1/log-streams/query`: queries stored log entries after a stream sequence cursor.
- `GET /api/v1/server-instances/{id}/logs/events`: browser-facing Server-Sent
Events stream for the current supervised process session. A new subscriber
starts at the live boundary and receives no platform log history.
## Payloads
- `LogBatchIngestRequest`: run ID, session token, server instance ID, stream ID, source, sequence range, compression metadata, checksum, and bounded entries.
- `LogEntry`: sequence, timestamp, level, line, parser metadata, and redaction state.
- `LogBatchIngestResponse`: accepted sequence range, latest stream metadata sequence, compatibility duplicate/retry fields, and server time.
- `LogStreamCursorRequest`: stream ID, sequence cursor, and limit.
- `LogStreamCursorResponse`: compatibility ordered entries, next cursor, and latest stored metadata sequence.
- `LogStreamEventResponse`: safe browser event containing server ID, stream metadata, latest sequence, and one log entry.
Autonomous lifecycle output uses
`run.<runEndpointId>.<serverInstanceId>.<logSessionId>.<streamKey>` stream IDs.
The platform creates or updates stream metadata from the signed relay batch;
the body remains live-only.
## Priority
Live relay is asynchronous and lower priority than control and lifecycle
progress. A full in-memory relay queue or a failed relay request drops the
current event and never blocks, retries, or changes lifecycle state. Run does
not create a log spool, resend backlog, or platform delivery watermark.
Log relay payloads carry bounded redacted entries only and must not include
artifact chunks, file bodies, host paths, raw credentials, or direct socket
details.
## Browser Channel
Browser live tail is a platform SSE fan-out from current relay events and
process-session metadata. Historical log queries and plugin-owned storage are
separate channels. Artifact transfer uses its own lower-priority channel and
must not be multiplexed through live log relay.