Skip to content

bug(hooks): hook.delivery span schema_parse rejects 'event' key — hook_perf_baseline stays empty (#1485 followup) #1492

@namastex888

Description

@namastex888

Summary

Followup to #1485. The new telemetry view hook_perf_baseline is supposed to aggregate per-handler P50/P99 latency from hook.delivery spans. Instead, every emitted hook.delivery span is rejected at the runtime-events schema layer with schema_parse unrecognized key 'event', leaving the view empty regardless of dispatch activity.

Repro

genie serve start
# trigger any hook via either dispatch-client or the legacy bun fork
PGPASSWORD=postgres psql -h 127.0.0.1 -p 19642 -U postgres -d genie \
  -c "SELECT count(*) FROM hook_perf_baseline;"
# 0
genie events errors --since 5m | grep schema_parse
# unrecognized key 'event'

Per dog-fooder-11eb verdict (2026-04-29):

  • runtime_events table contains schema_parse errors with unrecognized key 'event'
  • hook_perf_baseline view remains empty
  • genie doctor --perf reports no spans observed after dispatch

Evidence: /home/genie/workspace/agents/genie/.genie/agents/dog-fooder/state/evidence/batch-2034c4f3

Likely root cause

Recent change to the hook.delivery span shape (per #1485 commit body: "src/hooks/index.ts: runHandler() stamps payload.hook_event_name onto the hook.delivery span attrs so the view groups by event for tool-less events") added a key that the schema validator (likely a Zod schema in src/lib/events/schemas/hook.delivery.ts) doesn't list. Strict-mode Zod rejects extra keys.

Acceptance

  • Schema accepts the event key (or whatever the actual emitter is now stamping)
  • After 1m of hook activity post-fix, hook_perf_baseline returns a non-zero count
  • genie doctor --perf shows live spans

Why this is a release-blocker

Without telemetry, we can't measure whether daemon-mode dispatch is actually saving CPU/latency vs the F1 fallback. The whole 'measure regressions vs baseline' story in #1485 is inert until this lands.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions