Background
PR #319 added DeepSeek Harness (dsh) as a supported agent, but deliberately wired only skills sync (~/.dsh/skills, scanned natively by dsh's skill-filesystem provider). It did not inject any teamai hook for dsh.
Consequence: dsh's ~/.dsh/skills is only kept fresh when some other hook-enabled host (Claude Code / Codex / …) triggers teamai pull — dsh rides along. A user running dsh alone gets no automatic updates and must run teamai pull manually.
This was an intentional deferral, per the PR:
hooks/env/MCP can follow once the dsh-side config surface stabilizes.
Why hooks were deferred (evidence from the dsh source)
- dsh ships only at
0.1.1-rc.1 — a release candidate, config surface not yet frozen.
- Its hook layer (
@deepseek-ai/dsh-hooks-claude-code / -codex) is explicitly a compatibility bridge, not a first-class surface: "The bridge exists only as a compatibility path... anything bespoke should be a native plugin."
- Blocker for teamai's model: hook config is process-level, parsed once at load, resolved against the process launch cwd — there is no per-session config discovery yet (
TODO(per-session-hook-config) in the bridge). teamai's auto-update relies on a per-session SessionStart trigger, which dsh cannot currently express.
What this issue tracks
Once dsh's hook config surface stabilizes (specifically per-session hook-config discovery lands, and the harness reaches a non-rc release), revisit adding dsh to teamai's hook injection so that:
Watch signals
- dsh removes
TODO(per-session-hook-config) / ships per-session hook config discovery.
- dsh cuts a stable (non-rc) release.
Related: #319
Background
PR #319 added DeepSeek Harness (dsh) as a supported agent, but deliberately wired only skills sync (
~/.dsh/skills, scanned natively by dsh'sskill-filesystemprovider). It did not inject any teamai hook for dsh.Consequence: dsh's
~/.dsh/skillsis only kept fresh when some other hook-enabled host (Claude Code / Codex / …) triggersteamai pull— dsh rides along. A user running dsh alone gets no automatic updates and must runteamai pullmanually.This was an intentional deferral, per the PR:
Why hooks were deferred (evidence from the dsh source)
0.1.1-rc.1— a release candidate, config surface not yet frozen.@deepseek-ai/dsh-hooks-claude-code/-codex) is explicitly a compatibility bridge, not a first-class surface: "The bridge exists only as a compatibility path... anything bespoke should be a native plugin."TODO(per-session-hook-config)in the bridge). teamai's auto-update relies on a per-sessionSessionStarttrigger, which dsh cannot currently express.What this issue tracks
Once dsh's hook config surface stabilizes (specifically per-session hook-config discovery lands, and the harness reaches a non-rc release), revisit adding dsh to teamai's hook injection so that:
SessionStart-equivalent hook that triggersteamai pullon its own — standalone dsh users get automatic updates without relying on a co-installed Claude/Codex.src/hooks.ts(injectHooksToAllTools/reconcileHooksToAllTools) — dsh currently has nosettingsfield intoolPaths, so both pathscontinuepast it today.Watch signals
TODO(per-session-hook-config)/ ships per-session hook config discovery.Related: #319