Activity timeline
Time-ordered events across the sources that carry a clock.
activity returns time-ordered events across the sources that carry a clock — newest first. Where search answers "what is relevant to this query," activity answers "what has been happening."
POST /projects/{project_id}/knowledge/activityOnly time-bearing sources contribute: work_items, commits, prs, wiki, and jira. Relevance-only sources (code, graph, docs) return nothing here — there is no meaningful chronology to a parsed module.
Request body
{
"since": "2026-09-01T00:00:00Z",
"sources": ["work_items", "commits"],
"providers": ["github"],
"top_k": 20
}| Field | Type | Default | Notes | |
|---|---|---|---|---|
since | string \ | null | null | ISO-8601 lower bound; omit for most recent. |
sources | string[] \ | null | null | Restrict to these time-bearing sources. |
providers | string[] \ | null | null | Restrict to these providers. |
top_k | int | 20 | Clamped to 1–100. |
Response
{
"events": [
{
"source": "commits",
"provider": "github",
"ref": "commits|github|acme__platform__main|abc123def456",
"title": "Rotate session tokens on privilege change",
"snippet": "auth-backend: reissue session on role change",
"score": 0.0,
"timestamp": "2026-09-06T09:58:00Z",
"metadata": { "author": "j.rosen" }
}
]
}Events are KnowledgeHit objects, same as search, sorted by timestamp newest-first. Timestamps are normalized to UTC ISO-8601 before merging, because providers emit mixed offsets. Each event's ref resolves through fetch like any other hit.
Trace a feature from work item to code chains activity and search into a single investigation.
Next: Refs & resource URIs.

