feat(events): causal timeline over recorded links only

A bounded walk (six hops, two hundred events) over the links events
actually record: causation ids, parent ids and cited-event evidence,
backwards towards causes and forwards towards consequences, with the edge
kind on every arrow. Nodes carry their cycle for grouping, labelled as
correlation rather than causation, and the artefacts (beliefs, memories,
model calls) they rest on. Cyclic references terminate. Exposed at
GET /api/v1/events/{id}/chain and /events/{id}/timeline, linked from the
event page, and documented.
This commit is contained in:
Andy Dixon
2026-08-22 19:47:22 +01:00
parent 844de93c8b
commit 9eed6e2a18
12 changed files with 491 additions and 1 deletions
+58
View File
@@ -537,6 +537,64 @@
]
}
},
"/api/v1/events/{id}/chain": {
"get": {
"operationId": "eventChain",
"summary": "bounded causal chain around an event (recorded links only)",
"x-required-role": "observer",
"tags": [
"events"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "direction",
"in": "query",
"schema": {
"type": "string",
"enum": [
"back",
"forward",
"both"
]
}
},
{
"name": "depth",
"in": "query",
"schema": {
"type": "integer",
"maximum": 6
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"$ref": "#/components/responses/Error"
},
"404": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/api/v1/events/{id}/context": {
"get": {
"operationId": "eventContext",