TKAI-2: add session tracing propagation#45
Open
figitaki wants to merge 5 commits into
Open
Conversation
figitaki
commented
May 6, 2026
| private reconnectCallback?: () => void; | ||
|
|
||
| private promptHandler: ((messageId: string, content: string, model?: string, author?: PromptAuthor, modelPreferences?: string[], attachments?: PromptAttachment[], channelType?: string, channelId?: string, opencodeSessionId?: string, continuationContext?: string, threadId?: string, replyChannelType?: string, replyChannelId?: string) => void | Promise<void>) | null = null; | ||
| private promptHandler: ((messageId: string, content: string, model?: string, author?: PromptAuthor, modelPreferences?: string[], attachments?: PromptAttachment[], channelType?: string, channelId?: string, opencodeSessionId?: string, continuationContext?: string, threadId?: string, replyChannelType?: string, replyChannelId?: string, traceparent?: string) => void | Promise<void>) | null = null; |
Collaborator
Author
There was a problem hiding this comment.
This payload is getting quite big, maybe we consider breaking this up into an object shape and enforce with an object type instead of function argument signatures.
| } | ||
|
|
||
| function msToUnixNano(ms: number): string { | ||
| return `${Math.floor(ms) * 1_000_000}`; |
Collaborator
Author
There was a problem hiding this comment.
number math can exceed MAX_SAFE_INTEGER for epoch nanoseconds, causing rounding errors in span timestamps. Use BigInt.
…-flush msToUnixNano multiplied a JS number by 1_000_000, exceeding MAX_SAFE_INTEGER for present-day epoch milliseconds and silently rounding span timestamps. Adds maxQueuedSpans + scheduleFlush options so a hot tracer can auto-flush in batches once a buffer threshold is hit, with a host hook for ctx.waitUntil. Addresses review feedback on #1 and yourbuddyconner#45.
The prompt handler signature had grown to 14 positional args (messageId, content, model, author, modelPreferences, attachments, channelType, channelId, opencodeSessionId, continuationContext, threadId, replyChannelType, replyChannelId, traceparent), making call sites and the wire shape unreviewable. Introduces PromptDispatch / PromptHandlerFn so onPrompt and handlePrompt take a single typed object. Updates the agent-client dispatcher, PromptHandler.handlePrompt, the bin.ts callback, and the prompt unit tests to use the new shape. Addresses figitaki review on yourbuddyconner#45.
Previously every span ended in a session-agent dispatch path called flushTracing() inline, fanning out to a separate ctx.waitUntil(flush()) per span and POSTing the buffer to OTLP each time. Across spawn → dispatch → dispatch → hibernate → restore lifecycles this generated many small HTTP requests against Grafana Cloud. Configures SimpleTracer with maxQueuedSpans=50 and a scheduleFlush hook that registers auto-flush promises with ctx.waitUntil. Drops the per-span flushTracing() calls at dispatch sites; explicit flushes remain at session-level boundaries (hibernate, terminate, wake guard, child session error finally blocks) where the DO may go idle before the threshold is hit. Addresses f3nry review on #1.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test plan
Need to set.
Verification
pnpm --filter @valet/shared typecheckpnpm --filter @valet/runner typecheckpnpm --filter @valet/worker typecheckpnpm --filter @valet/runner test -- src/prompt.test.tspnpm --filter @valet/worker exec vitest run src/durable-objects/prompt-queue.test.ts src/durable-objects/runner-link.test.tsRefs TKAI-2