Skip to content

promote: main → prod (PR #124 telemetry_public envelope conformance)#127

Merged
klappy merged 4 commits intoprodfrom
main
Apr 20, 2026
Merged

promote: main → prod (PR #124 telemetry_public envelope conformance)#127
klappy merged 4 commits intoprodfrom
main

Conversation

@klappy
Copy link
Copy Markdown
Owner

@klappy klappy commented Apr 20, 2026

Promoting PR #124 to prod

Origin PR: #124 — fix(telemetry_public): add server_time + full envelope to match tool convention

Main HEAD: a5d9d61 (contains PR #124 merge commit + fix commit a024e88)

Release-validation-gate status

Gate 1 — Cursor Bugbot on PR #124

completed, no issues found (on SHA a024e88, the feature branch head which is now on main)

Gate 2 — Independent Sonnet 4.6 validator

GO — ran before main merge as an independent read-only pass. The diff on main is identical to the diff the validator reviewed, so the verdict carries. Evidence captured in session ledger; key findings:

  • Canon conformance (E0008.2 "server_time in every response"): PASS
  • Diff review (both paths carry full envelope, startTime placement correct, result.generated_at preserved, assistant_text derivation handles 3 cases, smoke covered): PASS
  • Precedent match vs telemetry_policy / PR fix(telemetry_policy): canary completeness + knowledge_base rename + live smoke #108: PASS
  • Live preview smoke (probe + real query): PASS
  • Out-of-scope check (only 2 expected files touched): PASS
  • Typecheck: exit 0

Post-merge main smoke (2026-04-20T12:48Z)

Live call against main-oddkit.klappy.workers.dev with the same query that returned a bare {action, result} envelope this morning now returns:

envelope keys: ['action', 'assistant_text', 'debug', 'result', 'server_time']
server_time:   2026-04-20T12:48:28.252Z
assistant_text: Telemetry query returned 3 rows.
debug: {'duration_ms': 281}
result.generated_at: 2026-04-20T12:48:28.252Z (preserved)

ENVELOPE CONFORMANCE: PASS ✅

Fix is live on main and behaves as designed.

What's shipping to prod

Two commits ahead of current prod (2c5d652):

  • a024e88 — the fix itself (+27 / -1 across 2 files)
  • a5d9d61 — merge commit

No other main-only changes. No version bump (fix lands on next MINOR).

Post-merge actions

  1. Bugbot will re-run on this promotion PR head — wait for completed.
  2. After merge, prod auto-deploys; I'll smoke oddkit.klappy.dev to confirm envelope compliance in prod.

Note

Medium Risk
Changes the JSON response envelope for telemetry_public and adjusts oddkit_catalog debug timestamps, which could affect downstream clients/tests that assume the old fields or semantics.

Overview
Brings telemetry_public responses into full envelope conformance by adding server_time, assistant_text, and debug.duration_ms, and by producing a clearer assistant_text based on success/error and returned row count.

Adjusts oddkit_catalog debug metadata so debug.generated_at reflects response time (not cached index build time) and preserves the prior cached timestamp under debug.index_built_at. Updates the live smoke test to cover telemetry_public envelope shape and to assert the new oddkit_catalog timestamp semantics.

Reviewed by Cursor Bugbot for commit 8b19c93. Bugbot is set up for automated code reviews on this repo. Configure here.

oddkit-agent and others added 3 commits April 20, 2026 12:10
…convention

telemetry_public was the sole tool returning a bare {action, result} envelope.
Every other oddkit tool (including telemetry_policy per PR #108) returns the
full {action, result, server_time, assistant_text, debug} shape.

Canon reference: klappy://docs/appendices/epoch-8-2 — server_time in every response.
Precedent: PR #108 — telemetry_policy envelope conformance.

Changes:
- workers/src/index.ts: telemetry_public handler emits full envelope on both success and not-configured error paths
- workers/test/canon-tool-envelope.smoke.mjs: add telemetry_public assertion via expectFullEnvelope

Caught by v0.21.0 regression test sweep (2026-04-20).
…imestamp

runCatalog returned index.generated_at as debug.generated_at — the cached
index build timestamp, not the current response time. Every other handler
uses new Date().toISOString() for this field.

Observed during v0.21.0 regression testing: debug.generated_at lagged
server_time by 48 minutes in a single response envelope.

Changes:
- workers/src/orchestrate.ts: runCatalog now sets debug.generated_at
  to new Date().toISOString(). Cached index build timestamp preserved
  as debug.index_built_at for consumers wanting the freshness signal.
- workers/test/canon-tool-envelope.smoke.mjs: add oddkit_catalog
  coverage. Bug slipped because catalog had no smoke assertion.

Canon references:
- klappy://canon/values/axioms (Axiom 1 — Reality Is Sovereign)
- klappy://canon/principles/consistency-same-pattern-every-time
- klappy://canon/principles/cache-fetches-and-parses (PR #125)
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Apr 20, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
oddkit 8b19c93 Commit Preview URL

Branch Preview URL
Apr 20 2026, 01:11 PM

@klappy klappy merged commit b31687b into prod Apr 20, 2026
5 checks passed
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