prod-drift: new endpoint not deployed on prod
The upstream SDK spec added GET /api/v1/sessions/timeline/{session_id} (drift #164, reconciled in PR #162), and the CLI now exposes syllable sessions timeline <session-id>. But the deployed prod backend (api.syllable.cloud) does not have this route, so the command is dead on arrival — it returns a generic 404 for every invocation.
Live repro (verified 2026-06-29 on cli-test, CLI built from PR #162)
cli-test has zero sessions, so the command can't be exercised with a real id there. Instead, probe with a nonexistent id and compare against a deployed sibling endpoint of identical shape (GET /api/v1/sessions/<verb>/{id}):
$ syllable --org cli-test sessions latency 00000000-0000-0000-0000-000000000000 --debug
< 404 Not Found
< {"detail": "Session not found: 00000000-0000-0000-0000-000000000000"}
# handler-generated, echoes the id -> route IS deployed
$ syllable --org cli-test sessions timeline 00000000-0000-0000-0000-000000000000 --debug
< 404 Not Found
< {"detail": "Not Found"}
# framework default for an UNMATCHED route -> route is NOT deployed
The bare {"detail": "Not Found"} is what the API returns for a route it doesn't recognize; a deployed handler (like latency) returns a specific "Session not found: " message. That contrast, plus the endpoint only appearing in the SDK spec ~2026-06-27, is the signal that prod hasn't shipped it yet.
Impact
syllable sessions timeline 404s on every call until prod deploys the route. PR #162 is held as a draft so the spec-sync routine doesn't auto-merge/release a broken command (routine case C = human-flagged).
Owner / fix
Backend: deploy the /api/v1/sessions/timeline/{session_id} route to prod. Once live, re-run the probe; if it returns a real "Session not found" (or 200 with data), un-draft #162 and it merges + releases on the next routine fire.
Same drift family as #99 / #100 / #109 (spec runs ahead of the deployed backend), but this is a whole new command rather than a silently-dropped field, so the user-facing impact is higher. Until prod catches up, the spec-drift issue #164 will stay open intentionally — the CLI is deliberately behind upstream because prod can't serve this endpoint.
prod-drift: new endpoint not deployed on prod
The upstream SDK spec added
GET /api/v1/sessions/timeline/{session_id}(drift #164, reconciled in PR #162), and the CLI now exposessyllable sessions timeline <session-id>. But the deployed prod backend (api.syllable.cloud) does not have this route, so the command is dead on arrival — it returns a generic 404 for every invocation.Live repro (verified 2026-06-29 on
cli-test, CLI built from PR #162)cli-testhas zero sessions, so the command can't be exercised with a real id there. Instead, probe with a nonexistent id and compare against a deployed sibling endpoint of identical shape (GET /api/v1/sessions/<verb>/{id}):The bare
{"detail": "Not Found"}is what the API returns for a route it doesn't recognize; a deployed handler (likelatency) returns a specific "Session not found: " message. That contrast, plus the endpoint only appearing in the SDK spec ~2026-06-27, is the signal that prod hasn't shipped it yet.Impact
syllable sessions timeline404s on every call until prod deploys the route. PR #162 is held as a draft so the spec-sync routine doesn't auto-merge/release a broken command (routine case C = human-flagged).Owner / fix
Backend: deploy the
/api/v1/sessions/timeline/{session_id}route to prod. Once live, re-run the probe; if it returns a real "Session not found" (or 200 with data), un-draft #162 and it merges + releases on the next routine fire.Same drift family as #99 / #100 / #109 (spec runs ahead of the deployed backend), but this is a whole new command rather than a silently-dropped field, so the user-facing impact is higher. Until prod catches up, the spec-drift issue #164 will stay open intentionally — the CLI is deliberately behind upstream because prod can't serve this endpoint.