deepseek-harness/docs
Tianyi Cui cd49670f4e refactor(hooks): tighten the hook-protocol contract surface
Implement the tighten-hook-protocol-contract RFC (moved to implemented/):

- HookDialect narrows to 'claude' | 'codex': the 'native' variant had zero
  producers (native plugins on the seams write no hook/* provenance), and the
  dialect is defined as the bridge that ran the hook.
- HookOutput.suppressOutput is gone: the codec parsed it and every path
  discarded it with no warn and no deferral — hook stdout never enters a
  transcript, so there is nothing to suppress.
- hook/result.durationMs is gone: durable timing telemetry with no reader
  that the snapshot normalizer had to scrub as replay noise. With no duration
  to measure, runHook loses its injected now clock and the single-field
  RunHookResult wrapper — it returns the HookOutput directly. The committed
  hook fixtures had the field stripped mechanically (field-only diff); the
  stdout goldens never carried it.
- The bridges' double-defaulted defaultTimeoutMs config knob is replaced by
  one reference-default constant, DEFAULT_HOOK_TIMEOUT_MS, exported from the
  lib's runner and applied inside runHook; per-hook timeoutSec stays the
  override surface.
- The hook/result semantics move into the lib that declares the event:
  HookResultRecord now carries the decoded HookOutput and appendHookResult
  derives the decision string (decision ?? stop-on-continue:false ?? pass)
  and the 500-char stderrSummary truncation; both bridges delete their
  byte-identical private copies. The snapshot suite passes against the
  existing goldens, proving the derived values are unchanged.
- Rider: BLOCKING_EXIT_CODE is codec-internal again (zero importers).

Amend the hook-protocol-lib and hook-snapshot-matrix RFCs to the new facts,
update the lib/bridge READMEs and the session.md event tables, and retarget
the affected unit tests (including new lib-level coverage of the derivation
rules).
2026-07-04 15:44:26 +08:00
..
cookbook Merge branch 'worktree-hooks-f-bridges' into worktree-hooks-g-stream-chunk 2026-07-04 03:21:00 +08:00
cordis-catalog Merge branch 'worktree-hooks-f-bridges' into worktree-hooks-g-stream-chunk 2026-07-04 03:21:00 +08:00
core-data-structures refactor(hooks): tighten the hook-protocol contract surface 2026-07-04 15:44:26 +08:00
i18n docs: equal-authority pairing with sidecar consistency records 2026-07-03 07:41:24 -07:00
postmortem Fix doc cross-links for the hierarchy; add package-path + shape gates 2026-06-20 23:12:14 +08:00
rfc refactor(hooks): tighten the hook-protocol contract surface 2026-07-04 15:44:26 +08:00
tool-catalog Merge remote-tracking branch 'origin/master' into web-capability-seam 2026-07-03 16:49:00 +08:00
AGENTS.md docs(rfc): classify RFCs by kind via path-encoded subdirectories 2026-06-20 22:29:45 +08:00
architecture.md Merge branch 'worktree-hooks-f-bridges' into worktree-hooks-g-stream-chunk 2026-07-04 03:21:00 +08:00
development.i18n.yaml docs: rename coding demo to repl 2026-07-04 01:07:26 +08:00
development.md docs: rename coding demo to repl 2026-07-04 01:07:26 +08:00
development.zh.md docs: rename coding demo to repl 2026-07-04 01:07:26 +08:00
module-graph.md Merge branch 'worktree-hooks-e-protocol' into worktree-hooks-f-bridges 2026-07-04 03:09:37 +08:00