ddtcorex/dsh-maestro-harness1

@ddtcorex/dsh-maestro-harness

DSH meta-plugin: automated GitLab MR review + performance audit, and an interactive pair-programming preset.

包名
@ddtcorex/dsh-maestro-harness
版本
0.2.0
许可证
MIT
最近更新
2026年8月26日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:ddtcorex/dsh-maestro-harness

Configuration reference

Runtime-configurable from Settings → Maestro (stored in $DSH_HOME/dsh-maestro-harness/config.json, overrides cordis.yml):

FieldMeaning
gitlabBaseUrl / gitlabToken / botUsernameGitLab API coordinates for the review pipeline. Secrets saved from Settings are stored server-side and never echoed back — the card shows only whether one is saved
projectMappingsprojectPath → localRepoPath → reviewProfile → reviewModel mappings used for full local reviews; profiles are magento2 (full Magento skill set) or generic (no skills required). A mapping's localRepoPath must be an absolute path to an existing git checkout, validated on save. reviewModel is an optional per-project override ({provider, model, reasoningEffort?}) that takes precedence over the global review model. An unmapped explicit mention receives a limited diff-only Quick review
reviewModelGlobal model override for automated reviews ({provider, model, reasoningEffort?}) — e.g. deepseek-official / deepseek-chat. When absent the DSH default model (ctx.agentDefaultModel) is used; per-project reviewModel in projectMappings overrides this value. Dropdown catalog is served from maestro.models.list; reasoningEffort is low/medium/high when the model supports it
webhookSecretWebhook auth (X-Gitlab-Token), re-read per request; overrides MAESTRO_GITLAB_WEBHOOK_SECRET without a restart. Must match the GitLab webhook's Secret token
autoRereviewOnPushOpt-in: after a completed review, further pushes to the same MR trigger an automatic quick re-review (default false)
agentTimeoutMsHard ceiling on one automated review agent's turn, minimum 1000 ms (default 20 minutes). A hung agent is disposed and the review recorded as failed
reviewSessionRetentionDaysPrune Maestro's own review history (reviews.json) and failed-report files older than this many days; 0 keeps everything forever (default). DSH session transcripts are never touched
tunnelModequick (ephemeral trycloudflare URL) or named (your hostname)
quickTargetWhat a quick tunnel exposes: dsh-web or webhook
tunnelId / tunnelCredentialsFile / tunnelHostnameNamed-tunnel coordinates from the one-time setup
proxyPort / proxyHostRemote-access proxy bind, default 3081 on 0.0.0.0 (set proxyHost: 127.0.0.1 to disable LAN exposure); when the port is busy the proxy walks up to ten ports instead of failing
lanPinEnabledGate LAN access behind a second PIN (default false — LAN stays open). The LAN PIN lives in its own token-lan file, so rotating the public PIN never invalidates LAN links
telegramBotToken / telegramChatIdOptional Telegram Bot API credentials for one fixed chat. Enter both in Settings → Maestro; leave either blank to disable it. Telegram sends the public PIN, proxy/LAN status, and tunnel URL/status on boot, then the new PIN after a user presses Rotate
telegramReviewNotificationsOpt-in digest: one protected message per finished review with its outcome and a short summary (default false)
lastTunnelRunningManaged by the plugin; drives auto-restore on boot

Environment variables:

VariableConsumed by
MAESTRO_GITLAB_WEBHOOK_SECRETWebhook auth fallback (X-Gitlab-Token) and the manual-review CLI; optional if webhookSecret is set in Settings, which wins per request
MAESTRO_GITLAB_TOKEN, MAESTRO_GITLAB_BASE_URLOrchestrator fallback when Maestro Settings has no value, and the manual-review CLI; the token is optional at boot
MAESTRO_TRIGGER_URLManual-review CLI target, default http://localhost:3000/hooks/gitlab-mr/trigger