Skip to content

feat(frontend): advance on the server's boundary signal - #89

Merged
micio86dev merged 3 commits into
developfrom
feature/tavus-boundary-due-input
Oct 10, 2026
Merged

micio86dev merged 3 commits into
developfrom
feature/tavus-boundary-due-input

Conversation

@micio86dev

Copy link
Copy Markdown
Owner

What

FE-05 of tavus-single-session-interview: the client advances on the server's boundary_due signal. Two commits.

  1. chore: sync openapi.json and the generated types with the merged api contract (the /utterance 202 body only; generated with bun run codegen).
  2. feat: sendUtterance parses the 202 body and reports true only for a literal boundary_due: true; a missing, null, string, {} or non-boolean body is ignored without throwing. The transcript handler then calls assertBoundary('completed') when the handle is still the active one. It is the THIRD input beside the closing phrase and the 300 s timer; assertBoundary already gates on isSteerable (Tavus with a named conversation) and is idempotent, so a paraphrased closing line still advances, phrase plus boundary_due in one tick cause one /end and one steering call, and non-Tavus handles ignore the flag.

Decisions

  • No separate Tavus gate in the handler: it reuses the one in assertBoundary (no new flag).
  • The boundary call is chained off the untracked send promise, not the tracked in-flight one: callEnd drains the tracked set, so chaining there would make the boundary wait on itself.
  • boundary_due: true also triggers the boundary when it arrives on an avatar-speaker utterance: the server returns the flag for every row and "due" is treated as due regardless of speaker.
  • HeyGen suites byte-identical to develop.

Verification

RED first (1 failed, 41 passed: only the "advances without a phrase" test fails before; the others guard "does nothing"/idempotency by design); 42/42 green. Mutations (drop the isSteerable gate, stop parsing the body) each fail tests and were reverted. Full Vitest 119 files / 3008 tests, typecheck and lint pass. Not run: codegen:check and the wrapper parity script (FE-08).

@micio86dev
micio86dev merged commit e23203a into develop Oct 10, 2026
4 checks passed
@micio86dev
micio86dev deleted the feature/tavus-boundary-due-input branch October 10, 2026 15:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant