Skip to content

Compile semantic event route v2 families into native host hooks #258

Description

@ScriptedAlchemy

Summary

Follow-on tracker for the canonical event-route families promoted in the #97 documentation audit (#97 comment) after v1 landed. v1 delivered the four existing hook families plus agent/start/agent/stop, with workspace/open honestly unavailable on every pinned host (#221).

Each family below needs the same evidence bar v1 used: pinned per-host wire schema or official contract, decode fixture, matcher/deadline semantics, immediate-output projection through the Agent Document renderer, and an honest supported/degraded/unavailable/prohibited row in inspect — not inference from similarly named events.

Promote to canonical route families

  • session/end — Claude, Codex, Cursor
  • prompt/submit — Claude UserPromptSubmit, Codex UserPromptSubmit, Cursor beforeSubmitPrompt
  • tool/failure — Claude PostToolUseFailure, Cursor postToolUseFailure; Codex unavailable at the release-documented surface
  • compact/before — Claude/Codex PreCompact, Cursor preCompact
  • compact/after — Claude/Codex PostCompact; Cursor unavailable
  • permission/request — Claude/Codex PermissionRequest; do not infer Cursor support from pre-tool permission
  • permission/denied — Claude PermissionDenied; other hosts unavailable until evidenced
  • file/change (proposed file/saved) — Claude FileChanged, Cursor afterFileEdit; payload/matcher differences must stay visible
  • config/change — Claude ConfigChange; other hosts unavailable
  • task/create, task/complete, agent/idle — Claude TaskCreated, TaskCompleted, TeammateIdle; host-specific today
  • stop/failure — Claude StopFailure; other hosts unavailable

Keep as selectors/native variants (not new families unless fixture evidence proves loss)

Cursor beforeShellExecution/afterShellExecution, beforeMCPExecution/afterMCPExecution, beforeReadFile, and afterFileEdit overlap canonical tool-before/tool-after plus tool selectors. Add dedicated families only if fixture evidence proves the generic tool route loses required information or control.

Explicitly defer/unavailable in capability tables

  • Claude-only host/UI/protocol callbacks: Setup, UserPromptExpansion, PostToolBatch, MessageDisplay, InstructionsLoaded, CwdChanged, DirectoryAdded, PreModelSwitch, PostModelSwitch, Elicitation, ElicitationResult, WorktreeCreate, WorktreeRemove.
  • Claude Notification belongs to Add recipient-aware notices and capability-gated delivery #99 delivery-channel evidence, not an application event route.
  • Cursor afterAgentResponse, afterAgentThought, beforeTabFileRead, afterTabFileEdit stay native/deferred until a canonical consumer is accepted.
  • Codex generated Interrupt stays deferred until release docs and a pinned CLI revision agree.
  • Cloud/desktop availability differences are capability dimensions, not universal-support claims.

For every deferred item, add a dated unavailable/prohibited row with the native name and reason.

Depends on

Non-goals

  • Re-litigating v1 four-event parity or the corrected agent/start/agent/stop matrix
  • Claiming workspace/open support without a sessionless native-envelope fixture

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions