feat: sync CLI to OpenAPI spec#162
Conversation
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Adds GET /api/v1/sessions/timeline/{session_id} as 'syllable sessions
timeline <id>' — a consolidated, time-ordered stream of transcript turns,
tool calls, and latency events. Read-only, mirrors the transcript command.
Includes a live integration test (skips when the org has no sessions).
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
🤖 spec-sync routine — blocked on a red gate, leaving for a human. This PR is purely additive and the The failure is not this PR's change. It's the known pre-existing backend bug: This is the same This PR's own new test passed/skipped cleanly: The new Recommended action: confirm the |
|
Converted to draft — holding the release: the The spec→code sync here is correct and purely additive, and CI is now green (the earlier red Evidence (same nonexistent id,
Drafted so the spec-sync routine treats this as human-flagged (case C) and doesn't auto-merge/release a broken command. Prod gap tracked in #165. To ship: once the backend deploys the route, re-run the probe to confirm, then |
Syncs the CLI to the latest upstream OpenAPI spec. Purely additive — adds one new read-only command and supporting schemas; nothing removed, narrowed, or newly required.
What changed
Adds
syllable sessions timeline <session-id>for the new endpointGET /api/v1/sessions/timeline/{session_id}. It returns a single consolidated, time-ordered stream of a session's transcript turns, tool calls, and latency events, each with an offset from session start. Mirrors the existingtranscriptcommand (read-only GET, JSON or table output).A live integration test (
TestSessionsTimeline) lists one session — with--include-testso a throwaway CI org still has a session to exercise — fetches its timeline, and asserts valid JSON. It skips cleanly when the org has no sessions.diff_specs.py report
Breaking changes
None. No removed commands/flags, no removed enum values, no newly-required fields, no narrowed types.
SessionAction.duration_msis a new optional response field (thelatencycommand prints raw JSON, so it flows through with no code change).Release notes
syllable sessions timeline <session-id>— a consolidated, time-ordered view of a session combining transcript turns, tool calls, and latency events with offsets from the session start.No
spec-driftissue is open at reconcile time (the daily detector hasn't filed one for this change), so there is no issue toCloses. It self-heals: once this merges, the embedded spec matches upstream and the detector files nothing.🤖 Generated with Claude Code