Conversation
…s semantics blob8 (worker_version) was logging as the literal 'unknown' for 100% of tool calls in production. Root cause: env.ODDKIT_VERSION is only injected by 'npm run deploy' via --var, but Cloudflare's auto-deploy from GitHub invokes wrangler directly from wrangler.toml and never executes the deploy script. Other sites (index.ts, orchestrate.ts) already fall back to pkg.version; telemetry.ts was missed. Fix: import pkg from ../package.json (mirroring index.ts pattern), define BUILD_VERSION = pkg.version, use it as the fallback. Telemetry now reports a real semver under the canonical deploy path. Also clarifies the duration_ms docstring. The schema previously said 'request processing time (measured by caller)' which under-described the measurement. The value is full MCP request wall-clock measured at the worker edge — V8 cold-start, KB fetch, MCP SDK overhead, action handler compute, all included. This is NOT the per-action debug.duration_ms in tool envelopes (which measures only the action handler's internal compute). The discrepancy explains why telemetry shows oddkit_time avg 269ms / max 9362ms while debug.duration_ms reports near-zero. No behavior change to duration_ms measurement. Documentation only. See: klappy://canon/constraints/telemetry-governance
Bumps root and workers package.json from 0.23.0 to 0.23.1 (patch — telemetry instrumentation fix, no API or behavior changes per SemVer). Backfills CHANGELOG with PR #131 entry: blob8 (worker_version) telemetry fallback fix and duration_ms docstring expansion. This is the version-bump commit that conventionally accompanies a main → prod promotion in oddkit (see precedent: PR #128 for 0.22.0, PR #130 for 0.23.0). The promotion PR for 0.23.1 will be opened from this branch to prod. Refs: - PR #131 (the actual fix) - klappy://canon/constraints/release-validation-gate (validator dispatched on PR #131 head SHA fbe51e4, 5-corroboration verdict effective PASS)
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
oddkit | 615aed2 | Commit Preview URL Branch Preview URL |
Apr 22 2026, 12:04 AM |
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.
Promotion Scope
Promotes oddkit 0.23.1 to prod.
workers/src/telemetry.tsCHANGELOG.mdpackage.jsonworkers/package.jsonWhat this ships to prod
worker_versionfalls back toBUILD_VERSION(fromworkers/package.json) instead of the literal"unknown". Cloudflare auto-deploy doesn't runnpm run deploy, soenv.ODDKIT_VERSIONis undefined under the canonical deploy path — this fixes 100% of prod telemetry which has been logging"unknown"for blob8 for the entire production history.duration_msdocstring expansion: disambiguates telemetry's full-wall-clock measurement from per-actiondebug.duration_msenvelope field.No behavior change to MCP request/response. Telemetry value semantics change: blob8 will report real semver (
0.23.1after this lands) instead of"unknown".Release Validation Gate Status
Per
klappy://canon/constraints/release-validation-gate:Rule 1 — No merge with active reviews ✅
PR #131 (code):
fbe51e4616: Workers Builds, Cursor Bugbot, Version Sync, Test CF Preview, Creed Freshness — allsuccess.PR #132 (release metadata):
130cf91ddc: same suite, allsuccess.Rule 2 — Independent fresh-context validation ✅
sesn_011CaHXQGvRSKZvoRUNauwxv/ agentagent_011CaHXP5SLygSu3hWVxxU9k./healthHTTP 200 on both preview and prod (both reportingversion: 0.23.0);oddkit_timeMCP tool calls 2/3 success on each, identical failure rate confirmed validator-environment DNS issue not preview-specific.workers/src/telemetry.tscontent, same head SHA reachable). PR chore: release 0.23.1 — backfill CHANGELOG, bump version #132's additions are pure release metadata (CHANGELOG + version bump inpackage.json× 2) — not load-bearing surface, no new code paths. Re-dispatching the same validator against the same code bytes plus version-string-only metadata changes would be redundant. The PR fix(telemetry): blob8 falls back to BUILD_VERSION; clarify duration_ms semantics #131 validator findings cover this promotion's code surface.Rule 3 — Canon wins over session artifacts ✅
Post-promotion verification
24h after this lands on prod, run:
Expected:
worker_versionshows0.23.1, NOT"unknown". If it still shows"unknown", the fix didn't ship correctly and we have a regression to investigate.Carry-forward (non-blocking)
klappy://canon/constraints/release-validation-gate"What Counts As Load-Bearing Surface" section to explicitly categorize telemetry instrumentation changes (load-bearing for ops observability vs. exempt for value-only changes vs. contextual). Resolves the ambiguity surfaced during PR fix(telemetry): blob8 falls back to BUILD_VERSION; clarify duration_ms semantics #131's review.Refs
sesn_011CaHXQGvRSKZvoRUNauwxvNote
Low Risk
Low risk: changes are limited to telemetry metadata/version reporting and release bookkeeping, with no request/response behavior changes.
Overview
Promotes release
0.23.1by bumping versions and adding a changelog entry.Fixes Analytics Engine telemetry so
blob8(worker_version) falls back to a build-timeBUILD_VERSIONread fromworkers/package.jsonwhenenv.ODDKIT_VERSIONis unset (e.g., Cloudflare GitHub auto-deploy), replacing the previous literal"unknown"fallback, and expands the schema comments forblob8anddouble2(duration_ms) to clarify their semantics.Reviewed by Cursor Bugbot for commit 615aed2. Bugbot is set up for automated code reviews on this repo. Configure here.