@ddtcorex/dsh-maestro-review 0.7.2 → 0.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/skills-tool.d.ts.map +1 -1
- package/lib/skills-tool.js +15 -1
- package/lib/skills-tool.js.map +1 -1
- package/package.json +2 -2
- package/presets/maestro-reviewer/agent.cordis.yml +1 -1
- package/profiles/reviewer-ci/pnpm-lock.yaml +714 -707
- package/profiles/reviewer-ci/pnpm-workspace.yaml +40 -0
- package/src/host/skills-tool.ts +14 -1
- package/templates/reviewer-project.gitlab-ci.yml +1 -1
|
@@ -7,6 +7,46 @@
|
|
|
7
7
|
# printed "Scope: all 2 workspace projects" and resolved relative to `../..`
|
|
8
8
|
# without this file present).
|
|
9
9
|
packages: []
|
|
10
|
+
# Force the whole @deepseek-ai/dsh-* core dependency graph to one coherent
|
|
11
|
+
# 0.1.5-rc.2 line. Bumping only dsh/dsh-base/dsh-agent-presets (the packages
|
|
12
|
+
# this profile declares directly) left ~23 of THEIR transitive deps resolved
|
|
13
|
+
# at the older 0.1.2-rc.1 they used to be pinned to, because nothing in the
|
|
14
|
+
# graph forced them past whatever loose range their other consumers still
|
|
15
|
+
# declared. The mismatch is silent at install time (a peer warning only) but
|
|
16
|
+
# fatal at boot: a newer consumer ESM-imports a symbol the older peer's build
|
|
17
|
+
# never exported (e.g. dsh-session-persistence-jsonl@0.1.5-rc.2 importing
|
|
18
|
+
# SessionAlreadyExistsError from dsh-session-persistence@0.1.2-rc.1, which
|
|
19
|
+
# doesn't have it), crashing the whole plugin tree with exit 1 — root-caused
|
|
20
|
+
# 2026-09-14 by reproducing the crash locally (`docker run --entrypoint
|
|
21
|
+
# /entrypoint.sh` with real credentials; GITLAB_HOST must be the bare
|
|
22
|
+
# hostname, no `https://` prefix — ci-trigger.ts prepends the scheme itself).
|
|
23
|
+
# pnpm reads `overrides:` here, NOT from package.json, on pnpm 11 (see the
|
|
24
|
+
# dsh-invariants override above/below for the same gotcha in the sibling
|
|
25
|
+
# workspace). Every package below is confirmed to publish a 0.1.5-rc.2.
|
|
26
|
+
overrides:
|
|
27
|
+
'@deepseek-ai/dsh-attachment': 0.1.5-rc.2
|
|
28
|
+
'@deepseek-ai/dsh-session-persistence': 0.1.5-rc.2
|
|
29
|
+
'@deepseek-ai/dsh-fs': 0.1.5-rc.2
|
|
30
|
+
'@deepseek-ai/dsh-code-runtime': 0.1.5-rc.2
|
|
31
|
+
'@deepseek-ai/dsh-compaction': 0.1.5-rc.2
|
|
32
|
+
'@deepseek-ai/dsh-settings': 0.1.5-rc.2
|
|
33
|
+
'@deepseek-ai/dsh-hook-protocol': 0.1.5-rc.2
|
|
34
|
+
'@deepseek-ai/dsh-jobs': 0.1.5-rc.2
|
|
35
|
+
'@deepseek-ai/dsh-sandbox': 0.1.5-rc.2
|
|
36
|
+
'@deepseek-ai/dsh-session-query': 0.1.5-rc.2
|
|
37
|
+
'@deepseek-ai/dsh-util-time': 0.1.5-rc.2
|
|
38
|
+
'@deepseek-ai/dsh-shell': 0.1.5-rc.2
|
|
39
|
+
'@deepseek-ai/dsh-sdk-protocol': 0.1.5-rc.2
|
|
40
|
+
'@deepseek-ai/dsh-anonymous-user-id': 0.1.5-rc.2
|
|
41
|
+
'@deepseek-ai/dsh-output-retention': 0.1.5-rc.2
|
|
42
|
+
'@deepseek-ai/dsh-spill': 0.1.5-rc.2
|
|
43
|
+
'@deepseek-ai/dsh-workflow': 0.1.5-rc.2
|
|
44
|
+
'@deepseek-ai/dsh-util-workspace-path': 0.1.5-rc.2
|
|
45
|
+
'@deepseek-ai/dsh-bash-local': 0.1.5-rc.2
|
|
46
|
+
'@deepseek-ai/dsh-authorization': 0.1.5-rc.2
|
|
47
|
+
'@deepseek-ai/dsh-session-telemetry': 0.1.5-rc.2
|
|
48
|
+
'@deepseek-ai/dsh-session-title-llm': 0.1.5-rc.2
|
|
49
|
+
'@deepseek-ai/dsh-subagent-in-process-driver': 0.1.5-rc.2
|
|
10
50
|
# Postinstall scripts required at runtime (node-pty/subprocess-local spawn
|
|
11
51
|
# agents, koffi/protobufjs/genai serve model IO). Exact versions pinned in
|
|
12
52
|
# pnpm-lock.yaml; review on every profile dep bump.
|
package/src/host/skills-tool.ts
CHANGED
|
@@ -53,7 +53,20 @@ export const MAESTRO_SKILLS_INSTALL_COMMAND = 'curl -fsSL https://raw.githubuser
|
|
|
53
53
|
const loadedReviewProfiles = new WeakMap<object, ReviewSkillProfile>()
|
|
54
54
|
|
|
55
55
|
export function loadedReviewProfile(ctx: Context): ReviewSkillProfile | undefined {
|
|
56
|
-
|
|
56
|
+
// Cordis's Context proxy throws synchronously on any property nobody
|
|
57
|
+
// registered/injected ("cannot get property ... without inject") rather
|
|
58
|
+
// than returning undefined — so a context where the framework's own
|
|
59
|
+
// `agent` service isn't available needs a try/catch, not just an
|
|
60
|
+
// `=== undefined` check, to actually get the "no agent yet" outcome this
|
|
61
|
+
// function documents. Root-caused 2026-09-14 against a real failed
|
|
62
|
+
// review (reproduced directly with @deepseek-ai/cordis, not a mock).
|
|
63
|
+
let agent: object | undefined
|
|
64
|
+
try {
|
|
65
|
+
agent = ctx.agent
|
|
66
|
+
} catch {
|
|
67
|
+
return undefined
|
|
68
|
+
}
|
|
69
|
+
return agent === undefined ? undefined : loadedReviewProfiles.get(agent)
|
|
57
70
|
}
|
|
58
71
|
|
|
59
72
|
// Mirrors @deepseek-ai/dsh-skill's consumer-facing `SkillRegistry` (verified
|
|
@@ -3,7 +3,7 @@ stages: [review]
|
|
|
3
3
|
|
|
4
4
|
variables:
|
|
5
5
|
# Image registry — pin the SHA for reproducibility
|
|
6
|
-
REVIEWER_IMAGE: "ddtcorex/maestro-reviewer:0.7.
|
|
6
|
+
REVIEWER_IMAGE: "ddtcorex/maestro-reviewer:0.7.4"
|
|
7
7
|
# Or use $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA when building the image in the same project
|
|
8
8
|
|
|
9
9
|
review:
|