OwlNjust/dsh-peer-sessions ↗★ 0

dsh-peer-sessions

Peer session interop for DeepSeek Harness: symmetric, user-granted channels between conversations at the same level — no parent, no child. 适合需要在无上下级关系的平行会话间安全传递和共享信息的任务。

패키지
dsh-peer-sessions
호환성
미검증
버전
1.2.1
라이선스
MIT
최근 업데이트
2026. 9. 29.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:OwlNjust/dsh-peer-sessions

Configuration

The thresholds are yours to tune, from the plugin's composition row:

- id: dsh-peer-sessions
  name: dsh-peer-sessions
  config:
    hopLimit: 5
    rateLimit: 60
    rateWindowMs: 60000
    channelBudget: 500
    inboxLimit: 100
    requestMemory: 1000
    pendingGraceMs: 86400000
    hopMemoryMs: 900000
    maxCandidates: 8
    recentTurns: 3
    previewMaxChars: 200
FieldDefaultWhat it bounds
hopLimit3How far a chain may be relayed across conversations before it is refused
rateLimit / rateWindowMs30 / 60000Deliveries one pair may make inside a fixed window
channelBudget200Lifetime deliveries on one channel
hopMemoryMs900000How long an inbound message keeps counting as "the one being answered"
inboxLimit50Inbox items retained per conversation
requestMemory500How many request issuers are remembered for the reply-direction check
pendingGraceMs86400000How long an unanswered request keeps being reported
maxCandidates8Conversations listed before an ambiguous-title refusal summarises
recentTurns3Trailing turns peer_progress summarises
previewMaxChars200Cap on one preview line in peer_progress

Two things worth knowing before you edit it:

  • A row's config replaces the whole object — it is not merged. Naming one field is fine (the rest come from the schema's declared defaults, and a test pins that), but when layers override the same row, the later config object wins entirely. If you set these from two places, list every field you want to keep in the later one.
  • Every field has a default. A field without one would make an omitted config a validation failure, and a plugin that fails validation is a warning at startup, not an error: the profile boots with this plugin silently missing. The defaults are the values in the table above, so omitting config entirely is always safe.