{"content":"Development journal for commit dd989cce (feat(sessions): hook turn tier + cursor/gemini wiring (session adapters P4)).\n\nP4 of the local session adapters design: hooks.ts — the turn-tier handler (payload parsing, env-beats-argument agent detection for cross-loaded hooks — Cursor/Copilot/Devin load Claude Code's hooks, the takes-mail table (prompt-submit cannot carry context on cursor/copilot/grok; grok drops SessionStart), Grok subagent/shutdown-ignore rules, per-host additionalContext dialects: hookSpecificOutput for claude/gemini/grok, additional_context for cursor, additionalContext for copilot); metabot hook CLI (bounded stdin, 8s cap, silent exit 0 on any failure — hooks never break their host); turn-tier registry defaults (gemini/copilot/cursor/grok = tier turn so the router queues instead of pushing); hostHooks.ts + metabot sessions wire --host cursor|gemini (MCP entry + hook groups with the merge discipline: only our entries, marked by ' hook ', are touched; .bak-sessions backups; verified against the local installs' config shapes). Copilot deferred (suspicious 'shell' key in the reference, no local install to verify) and Grok CLI deferred (TOML, no local install); sessions.wakePolicy config knob deferred — the tier gate lives in the orchestrator with the conservative default. Verification: sessions scoped 57/57, then the full suite hung 6.5h at the KNOWN agentGameRuntime flake (v0.9.7 family) — killed, flake isolated 17/17 in 2.2s (passes = not a regression per house rule), rerun fast-minus-flaky with --test-timeout=180000: 4156/4156 green.\n\nVerification:\ngit diff --check\n\nFiles:\ndocs/superpowers/specs/2026-11-11-oac-local-session-adapters-design.md\nsrc/cli/commandHelp.ts\nsrc/cli/commands/hook.ts\nsrc/cli/commands/sessions.ts\nsrc/cli/main.ts\nsrc/core/sessions/hooks.ts\nsrc/core/sessions/hostHooks.ts\nsrc/core/sessions/registry.ts\ntests/sessions/localSessionsHooks.test.mjs","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}