Skip to content

V37 Gate 3: Conversation Stream UI And Event Contracts#113

Merged
geraldarthurdavis merged 2 commits into
version/v37from
v37/gate-3-conversation-stream-ui-event-contracts
May 24, 2026
Merged

V37 Gate 3: Conversation Stream UI And Event Contracts#113
geraldarthurdavis merged 2 commits into
version/v37from
v37/gate-3-conversation-stream-ui-event-contracts

Conversation

@geraldarthurdavis

Copy link
Copy Markdown
Contributor

Summary

  • Add the V37 ConversationStreamEvent contract artifact, protocol generator, and gate checker covering model deltas, tool calls, retrieval summaries, proof roots, retry states, completion decisions, and error rows.
  • Bind source-safe stream metadata through the commercial Conversations API route, mock stream envelope, stream hook, pipeline state, and rich execution log header.
  • Update V37 specs, roadmap, workflow wiring, package scripts, and focused protocol/API/UAPI tests.

Validation

  • pnpm run check:v37-gate1
  • pnpm run check:v37-gate2
  • pnpm run check:v37-gate3
  • BITCODE_RUN_UAPI_ROUTE_TESTS=1 node scripts/check-v37-gate3-conversation-stream-event-contracts.mjs --skip-branch-check
  • node scripts/check-bitcode-spec-family.mjs --version V37 --mode draft --current-target V36
  • node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V36 --draft-target V37
  • node scripts/check-bitcode-canonical-inputs.mjs --current-target V36
  • node --test --test-force-exit packages/protocol/test/conversation-stream-event-contract.test.js
  • pnpm --filter @bitcode/api exec jest --config jest.config.cjs --runTestsByPath src/conversations/tests/stream-events.test.ts --runInBand --forceExit
  • pnpm --dir uapi exec jest --runTestsByPath tests/api/conversationStreamEventContract.test.ts tests/conversationStreamPipelineLog.test.tsx tests/pipelineExecutionLogHeader.test.tsx --runInBand
  • pnpm --filter @bitcode/api build
  • pnpm -C uapi exec tsc --noEmit --pretty false
  • pnpm -C uapi run lint
  • pnpm --filter @bitcode/protocol test
  • bash scripts/check-import-casing.sh
  • bash scripts/find-uppercase-raw-promptparts.sh
  • git diff --check
  • git diff --cached --check

Add the source-safe ConversationStreamEvent contract artifact, generator, and gate checker for model deltas, tool calls, retrieval summaries, proof roots, retry states, completion decisions, and error rows.

Bind stream metadata through the API route, mock stream envelope, conversation stream hook, pipeline state, and rich execution log header while preserving prompt/result disclosure posture and fail-closed metadata.

Update V37 specs, roadmap, workflows, package scripts, and focused tests for protocol, API, route, UI, and Jest allowlist coverage.
@vercel

vercel Bot commented May 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
engi-uapi Ready Ready Preview, Comment May 24, 2026 2:39pm

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 182d11a9f1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

case 'token':
completedContent += event.data;
throttledTokenUpdate(event.data);
emitConversationStreamLog();

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Avoid counting every token chunk as an AI generation

Emitting emitConversationStreamLog() inside the 'token' branch creates a synthetic pipeline event for every streamed chunk, and those events are typed as generation; downstream, handlePipelineEvent increments the AI/generation counter whenever event.type === 'generation'. For long responses this inflates the header counter from “model calls” to “token chunks,” which makes execution telemetry inaccurate.

Useful? React with 👍 / 👎.

Comment on lines +173 to +176
setRunLogDetails(prev => ({
...prev,
[logEntry]: event,
}));

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Store run log details by unique event id, not status text

Using logEntry as the map key causes collisions when multiple events share the same collapsed status (for example, repeated model_delta rows like "Assistant model delta streamed"). Each new chunk overwrites prior metadata, so expanding earlier log lines shows the latest event's proof root/event id instead of the line’s own details.

Useful? React with 👍 / 👎.

Keep the V37 gate-quality workflow finite with a job timeout and maintained targeted package checks for the gate package step.

Record the CI greenability posture in V37 notes so the stream-event gate closes with explicit workflow health evidence.
@geraldarthurdavis
geraldarthurdavis merged commit 621a432 into version/v37 May 24, 2026
28 checks passed
@geraldarthurdavis
geraldarthurdavis deleted the v37/gate-3-conversation-stream-ui-event-contracts branch May 24, 2026 14:53
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