@duckmind/dm-darwin-x64 0.48.5 → 0.49.6
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/dm +0 -0
- package/extensions/.dm-extensions.json +159 -220
- package/extensions/dm-9router-ext/package.json +0 -6
- package/extensions/dm-9router-ext/src/index.js +1 -1
- package/extensions/dm-ask-user/package.json +0 -4
- package/extensions/dm-caveman/extensions/caveman.js +29 -0
- package/extensions/dm-caveman/package.json +20 -0
- package/extensions/dm-cli-anything/index.js +5 -5
- package/extensions/dm-cli-anything/package.json +0 -7
- package/extensions/dm-cli-anything/skills/cli-anything/SKILL.md +1 -3
- package/extensions/dm-context/package.json +0 -1
- package/extensions/dm-cua/package.json +0 -7
- package/extensions/dm-fff/package.json +0 -6
- package/extensions/dm-goal/package.json +0 -8
- package/extensions/dm-grill-me/index.js +2 -2
- package/extensions/dm-grill-me/package.json +0 -7
- package/extensions/dm-image2/package.json +0 -8
- package/extensions/dm-subagents/.m/artifacts/shell/shell_output_1783845384621_9cf9262bf674.txt +1336 -0
- package/extensions/dm-subagents/.m/artifacts/shell/shell_output_1783846154938_6a41cefee0bf.txt +1336 -0
- package/extensions/dm-subagents/package.json +0 -11
- package/extensions/dm-subagents/src/extension/doctor.js +10 -10
- package/extensions/dm-subagents/src/extension/fanout-child.js +97 -97
- package/extensions/dm-subagents/src/extension/index.js +121 -121
- package/extensions/dm-subagents/src/extension/rpc.js +5 -5
- package/extensions/dm-subagents/src/extension/schemas.js +1 -1
- package/extensions/dm-subagents/src/extension/tool-description.js +2 -2
- package/extensions/dm-subagents/src/intercom/native-supervisor-channel.js +5 -5
- package/extensions/dm-subagents/src/runs/background/async-execution.js +19 -19
- package/extensions/dm-subagents/src/runs/background/async-job-tracker.js +9 -9
- package/extensions/dm-subagents/src/runs/background/async-resume.js +5 -5
- package/extensions/dm-subagents/src/runs/background/async-status.js +8 -8
- package/extensions/dm-subagents/src/runs/background/fleet-view.js +13 -13
- package/extensions/dm-subagents/src/runs/background/result-watcher.js +5 -5
- package/extensions/dm-subagents/src/runs/background/run-id-resolver.js +3 -3
- package/extensions/dm-subagents/src/runs/background/run-status.js +19 -19
- package/extensions/dm-subagents/src/runs/background/stale-run-reconciler.js +7 -7
- package/extensions/dm-subagents/src/runs/background/subagent-runner.js +35 -35
- package/extensions/dm-subagents/src/runs/background/wait.js +7 -7
- package/extensions/dm-subagents/src/runs/foreground/chain-execution.js +32 -32
- package/extensions/dm-subagents/src/runs/foreground/execution.js +26 -26
- package/extensions/dm-subagents/src/runs/foreground/subagent-executor.js +96 -96
- package/extensions/dm-subagents/src/runs/shared/dm-args.js +1 -1
- package/extensions/dm-subagents/src/runs/shared/nested-events.js +6 -6
- package/extensions/dm-subagents/src/runs/shared/subagent-prompt-runtime.js +13 -13
- package/extensions/dm-subagents/src/shared/fork-context.js +4 -4
- package/extensions/dm-tasks/package.json +0 -7
- package/extensions/dm-usage/package.json +0 -7
- package/extensions/greedysearch-dm/bin/cdp-greedy.mjs +1 -8
- package/extensions/greedysearch-dm/bin/gschrome.mjs +3 -3
- package/extensions/greedysearch-dm/bin/launch-visible.mjs +3 -3
- package/extensions/greedysearch-dm/bin/launch.mjs +4 -4
- package/extensions/greedysearch-dm/bin/search.mjs +103 -103
- package/extensions/greedysearch-dm/extractors/consensus.mjs +35 -35
- package/extensions/greedysearch-dm/extractors/gemini.mjs +38 -38
- package/extensions/greedysearch-dm/extractors/logically.mjs +35 -35
- package/extensions/greedysearch-dm/package.json +0 -10
- package/extensions/greedysearch-dm/src/search/chrome.mjs +23 -23
- package/extensions/greedysearch-dm/src/search/fetch-source.mjs +35 -35
- package/extensions/greedysearch-dm/src/search/research.mjs +61 -61
- package/extensions/greedysearch-dm/src/search/synthesis-runner.mjs +4 -4
- package/package.json +1 -1
- package/extensions/dm-9router-ext/README.md +0 -142
- package/extensions/dm-9router-ext/tsconfig.json +0 -17
- package/extensions/dm-ask-user/README.md +0 -226
- package/extensions/dm-cli-anything/LICENSE +0 -201
- package/extensions/dm-cli-anything/README.md +0 -33
- package/extensions/dm-cli-anything/vendor/UPSTREAM.md +0 -14
- package/extensions/dm-context/AGENTS.md +0 -41
- package/extensions/dm-context/README.md +0 -18
- package/extensions/dm-context/tsconfig.json +0 -16
- package/extensions/dm-cua/README.md +0 -24
- package/extensions/dm-fff/README.md +0 -36
- package/extensions/dm-fff/tsconfig.json +0 -13
- package/extensions/dm-goal/CHANGELOG.md +0 -12
- package/extensions/dm-goal/LICENSE +0 -21
- package/extensions/dm-goal/README.md +0 -29
- package/extensions/dm-goal/tsconfig.json +0 -15
- package/extensions/dm-grill-me/DESIGN.md +0 -301
- package/extensions/dm-grill-me/LICENSE +0 -21
- package/extensions/dm-grill-me/README.md +0 -82
- package/extensions/dm-grill-me/tsconfig.json +0 -17
- package/extensions/dm-image2/README.md +0 -33
- package/extensions/dm-subagents/CHANGELOG.md +0 -1211
- package/extensions/dm-subagents/README.md +0 -29
- package/extensions/dm-subagents/banner.png +0 -0
- package/extensions/dm-subagents/biome.json +0 -26
- package/extensions/dm-subagents/tsconfig.json +0 -18
- package/extensions/dm-tasks/LICENSE +0 -21
- package/extensions/dm-tasks/README.md +0 -30
- package/extensions/dm-tasks/biome.json +0 -26
- package/extensions/dm-tasks/tsconfig.json +0 -14
- package/extensions/dm-usage/LICENSE +0 -21
- package/extensions/dm-usage/README.md +0 -29
- package/extensions/dm-usage/insights-screenshot.png +0 -0
- package/extensions/dm-usage/screenshot.png +0 -0
- package/extensions/greedysearch-dm/LICENSE +0 -21
- package/extensions/greedysearch-dm/README.md +0 -222
package/extensions/dm-subagents/.m/artifacts/shell/shell_output_1783846154938_6a41cefee0bf.txt
ADDED
|
@@ -0,0 +1,1336 @@
|
|
|
1
|
+
|
|
2
|
+
> dm-subagents@0.33.1 test:unit
|
|
3
|
+
> node --experimental-strip-types --test test/unit/*.test.ts
|
|
4
|
+
|
|
5
|
+
▶ acceptance gates
|
|
6
|
+
✔ infers different policies for reviewer, writer, async writer, and dynamic contexts (0.833833ms)
|
|
7
|
+
✔ explicit acceptance can strengthen inferred policy (0.07525ms)
|
|
8
|
+
✔ formats a standardized child prompt section (0.163666ms)
|
|
9
|
+
✔ parses acceptance-report fences and ignores unrelated json fences (1.436625ms)
|
|
10
|
+
✔ parses acceptance reports from json-family fences (0.142167ms)
|
|
11
|
+
✔ strips trailing json-family reports after earlier unrelated json fences (0.074ms)
|
|
12
|
+
✔ unwraps acceptance-report wrapper objects (0.078584ms)
|
|
13
|
+
✔ reports field-level validation errors for malformed acceptance-report fields (0.107958ms)
|
|
14
|
+
✔ explicit none disables inferred gates when a reason is present (0.060041ms)
|
|
15
|
+
✔ checked mode rejects missing required evidence (78.462417ms)
|
|
16
|
+
✔ surfaces parse validation details in acceptance failure messages (3.578167ms)
|
|
17
|
+
✔ checked mode rejects not-satisfied required criteria (20.845792ms)
|
|
18
|
+
✔ verified mode records runtime command success and failure separately from child command claims (96.770791ms)
|
|
19
|
+
✔ reviewed mode records no-blocker and blocker reviewer outcomes (88.787ms)
|
|
20
|
+
✔ does not make explicit checked acceptance an explicit reviewed blocker when inference recommends review (15.421875ms)
|
|
21
|
+
✔ does not mark reviewed without an independent reviewer result (43.035208ms)
|
|
22
|
+
✔ zero-child aggregate reports do not fabricate required evidence (28.037083ms)
|
|
23
|
+
✔ validates invalid disable and verify shapes (0.314459ms)
|
|
24
|
+
✔ acceptance gates (379.394958ms)
|
|
25
|
+
▶ builtin agent disabling
|
|
26
|
+
✔ filters a per-agent disabled builtin from runtime discovery while keeping it in discoverAgentsAll (202.310292ms)
|
|
27
|
+
✔ surfaces malformed disabled overrides instead of silently ignoring them (5.823125ms)
|
|
28
|
+
✔ bulk disableBuiltins hides builtins at runtime and marks them disabled in discoverAgentsAll (11.062334ms)
|
|
29
|
+
✔ an explicit user override opts a builtin out of user-scope bulk disable (6.122125ms)
|
|
30
|
+
✔ project disableBuiltins false re-enables builtins hidden by user bulk disable (3.0505ms)
|
|
31
|
+
✔ project bulk disable beats user per-agent re-enable overrides (4.771333ms)
|
|
32
|
+
✔ surfaces malformed disableBuiltins values instead of silently ignoring them (7.411ms)
|
|
33
|
+
✔ hides disabled builtins from agent-facing management list output (241.1095ms)
|
|
34
|
+
✔ buildBuiltinOverrideConfig emits disabled false when re-enabling a builtin (0.783334ms)
|
|
35
|
+
✔ builtin agent disabling (483.041166ms)
|
|
36
|
+
▶ agent eject/disable/enable/reset management actions
|
|
37
|
+
▶ eject
|
|
38
|
+
✔ copies a bundled builtin to user scope verbatim and shadows the builtin (186.329375ms)
|
|
39
|
+
✔ ejects to project scope when agentScope is project (8.040167ms)
|
|
40
|
+
✔ copies a package agent that shadows a builtin by runtime precedence (14.600292ms)
|
|
41
|
+
✔ refuses invalid management scopes without writing user files (0.316791ms)
|
|
42
|
+
✔ refuses to eject when a custom agent already exists (6.214292ms)
|
|
43
|
+
✔ refuses to eject an unknown agent (9.25275ms)
|
|
44
|
+
✔ eject (227.48925ms)
|
|
45
|
+
▶ disable
|
|
46
|
+
✔ hides a builtin from runtime discovery via a user settings override (35.629167ms)
|
|
47
|
+
✔ merges disabled into an existing override without dropping other fields (18.348209ms)
|
|
48
|
+
✔ hides a disabled agent from agent-facing list output (226.548958ms)
|
|
49
|
+
✔ writes a project-scoped override when agentScope is project (8.423791ms)
|
|
50
|
+
✔ refuses to disable an unknown agent (6.950917ms)
|
|
51
|
+
✔ also disables a custom agent via a settings override (10.795ms)
|
|
52
|
+
✔ also disables a package agent via a settings override (20.835791ms)
|
|
53
|
+
✔ disable (327.794875ms)
|
|
54
|
+
▶ enable
|
|
55
|
+
✔ restores a previously disabled builtin to runtime discovery (21.332375ms)
|
|
56
|
+
✔ preserves other override fields when removing the disabled flag (12.120459ms)
|
|
57
|
+
✔ reports already enabled and makes no changes when nothing is disabled (6.468917ms)
|
|
58
|
+
✔ points to the disabling scope when enabling the wrong scope (8.465625ms)
|
|
59
|
+
✔ refuses to enable an unknown agent (5.288959ms)
|
|
60
|
+
✔ enable (53.8105ms)
|
|
61
|
+
▶ reset
|
|
62
|
+
✔ deletes a custom shadow file and restores the bundled builtin (15.558583ms)
|
|
63
|
+
✔ removes a settings override and restores the pristine builtin (14.409041ms)
|
|
64
|
+
✔ removes both a custom file and a settings override in one reset (25.189042ms)
|
|
65
|
+
✔ reports a no-op when there is nothing to reset in the target scope (3.16725ms)
|
|
66
|
+
✔ points to delete for a custom agent with no bundled default (3.432708ms)
|
|
67
|
+
✔ refuses to reset an unknown agent (5.846375ms)
|
|
68
|
+
✔ reset (67.735125ms)
|
|
69
|
+
✔ agent eject/disable/enable/reset management actions (677.107791ms)
|
|
70
|
+
▶ agent permission frontmatter
|
|
71
|
+
✔ preserves nested permission YAML blocks through discovery and serialization (13.633333ms)
|
|
72
|
+
✔ agent permission frontmatter (13.969666ms)
|
|
73
|
+
▶ agent frontmatter defaultContext
|
|
74
|
+
✔ serializes defaultContext into agent frontmatter (0.115667ms)
|
|
75
|
+
✔ parses defaultContext from discovered agent frontmatter (5.840792ms)
|
|
76
|
+
✔ loads packaged planner, worker, and oracle with fork defaultContext (118.820416ms)
|
|
77
|
+
✔ agent frontmatter defaultContext (124.88975ms)
|
|
78
|
+
▶ chain discovery
|
|
79
|
+
✔ prefers same-scope .chain.json over .chain.md for the same runtime name (4.368417ms)
|
|
80
|
+
✔ chain discovery (4.415375ms)
|
|
81
|
+
▶ package-provided agents and chains
|
|
82
|
+
✔ discovers package agents and chains from installed package manifests (7.148917ms)
|
|
83
|
+
✔ loads packages referenced from DM settings (3.5345ms)
|
|
84
|
+
✔ discovers project package agents when cwd is nested below the project root (13.311291ms)
|
|
85
|
+
✔ does not register legacy skill files from broad package agent roots (8.931ms)
|
|
86
|
+
✔ keeps package definitions below user and project overrides (19.177458ms)
|
|
87
|
+
✔ does not allow management updates to package agents (5.755417ms)
|
|
88
|
+
✔ package-provided agents and chains (58.091167ms)
|
|
89
|
+
▶ agent frontmatter completionGuard
|
|
90
|
+
✔ serializes disabled completion guard into agent frontmatter (0.094583ms)
|
|
91
|
+
✔ omits enabled completion guard from serialized frontmatter (0.059917ms)
|
|
92
|
+
✔ parses completionGuard from discovered agent frontmatter (1.849167ms)
|
|
93
|
+
✔ agent frontmatter completionGuard (2.05275ms)
|
|
94
|
+
▶ agent frontmatter maxSubagentDepth
|
|
95
|
+
✔ serializes maxSubagentDepth into agent frontmatter (0.057833ms)
|
|
96
|
+
✔ parses maxSubagentDepth from discovered agent frontmatter (1.685708ms)
|
|
97
|
+
✔ agent frontmatter maxSubagentDepth (1.775584ms)
|
|
98
|
+
▶ agent frontmatter fallbackModels
|
|
99
|
+
✔ serializes fallbackModels into agent frontmatter (0.0535ms)
|
|
100
|
+
✔ parses fallbackModels from discovered agent frontmatter (4.577167ms)
|
|
101
|
+
✔ agent frontmatter fallbackModels (4.728458ms)
|
|
102
|
+
▶ agent frontmatter systemPromptMode
|
|
103
|
+
✔ serializes systemPromptMode into agent frontmatter (0.309ms)
|
|
104
|
+
✔ parses systemPromptMode from discovered agent frontmatter (4.15375ms)
|
|
105
|
+
✔ agent frontmatter systemPromptMode (4.579167ms)
|
|
106
|
+
▶ agent frontmatter prompt inheritance flags
|
|
107
|
+
✔ serializes inheritProjectContext and inheritSkills into agent frontmatter (0.163041ms)
|
|
108
|
+
✔ parses inheritProjectContext and inheritSkills from discovered agent frontmatter (10.764041ms)
|
|
109
|
+
✔ agent frontmatter prompt inheritance flags (11.032625ms)
|
|
110
|
+
▶ agent frontmatter subagentOnlyExtensions
|
|
111
|
+
✔ serializes subagentOnlyExtensions into agent frontmatter (0.238875ms)
|
|
112
|
+
✔ parses subagentOnlyExtensions from discovered agent frontmatter (2.970417ms)
|
|
113
|
+
✔ agent frontmatter subagentOnlyExtensions (3.293ms)
|
|
114
|
+
▶ agent frontmatter prompt assembly defaults
|
|
115
|
+
✔ defaults ordinary agents to replace mode with no inherited context or skills (1.789292ms)
|
|
116
|
+
✔ builtin agents inherit project context by default (3.797791ms)
|
|
117
|
+
✔ bundled agents all have explicit tool allowlists (3.948458ms)
|
|
118
|
+
✔ worker and delegate include the child-facing supervisor tool (4.182792ms)
|
|
119
|
+
✔ defaults delegate to append mode with inherited project context (1.571792ms)
|
|
120
|
+
✔ agent frontmatter prompt assembly defaults (15.365375ms)
|
|
121
|
+
▶ packaged agent and chain discovery
|
|
122
|
+
✔ recursively discovers nested project agents while keeping chain files separate (6.958959ms)
|
|
123
|
+
✔ registers packaged agents by runtime name and serializes local name plus package (3.176375ms)
|
|
124
|
+
✔ recursively discovers packaged chains by runtime name and preserves package on serialize (6.17575ms)
|
|
125
|
+
✔ keeps packaged and un-packaged runtime names distinct while preserving un-packaged precedence (2.035333ms)
|
|
126
|
+
✔ parses packaged chains directly from serializer helpers (0.095125ms)
|
|
127
|
+
✔ normalizes package frontmatter consistently for agents and chains (4.674542ms)
|
|
128
|
+
✔ skips invalid package frontmatter that cannot be normalized (2.818083ms)
|
|
129
|
+
✔ packaged agent and chain discovery (26.086333ms)
|
|
130
|
+
▶ project agent directory discovery
|
|
131
|
+
✔ discovers project agents from both .agents and .dm/agents (2.255667ms)
|
|
132
|
+
✔ does not register legacy project skill files as agents (2.25675ms)
|
|
133
|
+
✔ does not register user SKILL.md files as agents (4.446417ms)
|
|
134
|
+
✔ prefers .dm/agents over .agents on project agent name collisions (2.152958ms)
|
|
135
|
+
✔ uses the project root for the canonical project agent dir even when only .agents exists (8.777875ms)
|
|
136
|
+
✔ discovers project chains from .dm/chains (3.30725ms)
|
|
137
|
+
✔ prefers project .dm/chains over user chains on name collisions (3.2065ms)
|
|
138
|
+
✔ project agent directory discovery (26.533875ms)
|
|
139
|
+
▶ agent management config parsing
|
|
140
|
+
✔ surfaces JSON parse errors for create config strings (1.850916ms)
|
|
141
|
+
✔ surfaces JSON parse errors for update config strings (1.02775ms)
|
|
142
|
+
✔ creates, gets, updates, and deletes a packaged agent by runtime name (142.836ms)
|
|
143
|
+
✔ rejects package values that cannot be normalized (2.100667ms)
|
|
144
|
+
✔ creates and updates packaged chains while preserving packaged step names (209.142666ms)
|
|
145
|
+
✔ creates and updates agents with tool budgets (15.234208ms)
|
|
146
|
+
✔ rejects invalid tool budget management config (18.178958ms)
|
|
147
|
+
✔ creates agents with completion guard disabled (6.786709ms)
|
|
148
|
+
✔ rejects non-boolean completion guard config (8.6825ms)
|
|
149
|
+
✔ creates agents with subagent-only extensions (13.717834ms)
|
|
150
|
+
✔ does not serialize settings overrides into custom agent frontmatter during updates (5.200041ms)
|
|
151
|
+
✔ preserves explicit default-like frontmatter that blocks settings overrides during updates (4.702875ms)
|
|
152
|
+
✔ updates JSON chain descriptions without rewriting them as markdown (23.256709ms)
|
|
153
|
+
✔ renames and repackages JSON chains while preserving JSON format and extension (5.641792ms)
|
|
154
|
+
✔ gets dynamic JSON chain details and lists invalid chain diagnostics (12.408542ms)
|
|
155
|
+
✔ reports builtin runtime-loaded model mappings from current session state (4.5295ms)
|
|
156
|
+
✔ reports override source and disabled builtin state in runtime model mappings (2.505833ms)
|
|
157
|
+
✔ rejects unknown builtin filters for runtime model mappings (0.209209ms)
|
|
158
|
+
✔ creates delegate with its builtin prompt defaults (6.25725ms)
|
|
159
|
+
✔ lists proactive skill subagent suggestions from repeated configured skill use (4.094125ms)
|
|
160
|
+
✔ can disable proactive skill subagent suggestions in config (2.804042ms)
|
|
161
|
+
✔ agent management config parsing (492.213917ms)
|
|
162
|
+
▶ parseMemoryFrontmatter
|
|
163
|
+
✔ parses a project scope block (0.799791ms)
|
|
164
|
+
✔ parses a user scope with nested path and strips quotes (0.26725ms)
|
|
165
|
+
✔ parses an inline object memory block (0.301416ms)
|
|
166
|
+
✔ rejects unknown scopes (0.902333ms)
|
|
167
|
+
✔ rejects a missing path (0.279583ms)
|
|
168
|
+
✔ rejects a missing scope (0.392958ms)
|
|
169
|
+
✔ treats empty or absent input as no memory config (1.848208ms)
|
|
170
|
+
✔ parseMemoryFrontmatter (5.763875ms)
|
|
171
|
+
▶ agentHasWriteTools
|
|
172
|
+
✔ inherits write capability when tools are unset (0.659042ms)
|
|
173
|
+
✔ detects edit, write, and bash as write tools (0.123125ms)
|
|
174
|
+
✔ treats read-only and mcp-only tool sets as non-write (0.1225ms)
|
|
175
|
+
✔ agentHasWriteTools (1.083917ms)
|
|
176
|
+
▶ resolveMemoryDir
|
|
177
|
+
✔ resolves a simple and nested path under the root (2.685292ms)
|
|
178
|
+
✔ rejects empty paths (2.247917ms)
|
|
179
|
+
✔ rejects dot and parent segments (0.685625ms)
|
|
180
|
+
✔ rejects absolute and Windows drive-like paths (3.113292ms)
|
|
181
|
+
✔ rejects a symlinked ancestor before prompting a first write (9.171084ms)
|
|
182
|
+
✔ rejects a memory dir that is a symlink escaping the root (1.147208ms)
|
|
183
|
+
✔ resolveMemoryDir (19.878833ms)
|
|
184
|
+
▶ readMemoryFile
|
|
185
|
+
✔ returns null when no memory file exists (15.480084ms)
|
|
186
|
+
✔ reads contents and reports byte capping (2.914958ms)
|
|
187
|
+
✔ flags byte-capped contents (1.384083ms)
|
|
188
|
+
✔ does not return more than the memory byte cap (2.035ms)
|
|
189
|
+
✔ rejects a symlinked memory file that escapes the memory dir (0.604875ms)
|
|
190
|
+
✔ readMemoryFile (22.920542ms)
|
|
191
|
+
▶ buildAgentMemoryInjection
|
|
192
|
+
✔ returns empty when the agent has no memory scope (0.440541ms)
|
|
193
|
+
✔ injects a read-write block with contents for a project scope (1.5095ms)
|
|
194
|
+
✔ injects a creation prompt when a read-write agent has no memory file yet (0.731542ms)
|
|
195
|
+
✔ injects a read-only block for agents without write tools (4.109791ms)
|
|
196
|
+
✔ injects nothing for a read-only agent with no memory file yet (0.797833ms)
|
|
197
|
+
✔ resolves user scope under the agent dir, separate from the owner memory system (2.953292ms)
|
|
198
|
+
✔ returns empty for project scope when no project root is found (3.051959ms)
|
|
199
|
+
✔ returns empty when the memory path is unsafe (2.078334ms)
|
|
200
|
+
✔ returns empty when the memory file is an escaping symlink (2.565791ms)
|
|
201
|
+
✔ caps memory contents to the first N lines without claiming a byte cap (1.696791ms)
|
|
202
|
+
✔ buildAgentMemoryInjection (20.196417ms)
|
|
203
|
+
▶ agent memory frontmatter round-trip
|
|
204
|
+
✔ parses memory frontmatter during discovery and keeps it out of extraFields (8.429708ms)
|
|
205
|
+
✔ serializes memory back into frontmatter (0.202292ms)
|
|
206
|
+
✔ ignores a malformed memory block without dropping the agent (13.518833ms)
|
|
207
|
+
✔ agent memory frontmatter round-trip (22.236041ms)
|
|
208
|
+
▶ agent memory in management detail
|
|
209
|
+
✔ surfaces the memory scope in the get action (132.843875ms)
|
|
210
|
+
✔ agent memory in management detail (132.883417ms)
|
|
211
|
+
▶ builtin agent overrides
|
|
212
|
+
✔ bundled builtin agents inherit the default model (158.704041ms)
|
|
213
|
+
✔ applies subagents.defaultModel to builtin agents with explicit overrides winning (4.838167ms)
|
|
214
|
+
✔ prefers project subagents.defaultModel over user defaultModel (2.527792ms)
|
|
215
|
+
✔ applies subagents.defaultModel to custom agents without a frontmatter model (2.8905ms)
|
|
216
|
+
✔ applies user settings overrides to builtin agents (3.448875ms)
|
|
217
|
+
✔ globally disables builtin thinking suffix defaults from user settings (17.148042ms)
|
|
218
|
+
✔ lets an explicit same-scope thinking override opt back in when global thinking is disabled (3.63275ms)
|
|
219
|
+
✔ lets project settings disable builtin thinking even when user overrides request it (8.000125ms)
|
|
220
|
+
✔ surfaces malformed subagent default model settings (2.301875ms)
|
|
221
|
+
✔ surfaces malformed global thinking settings (1.975084ms)
|
|
222
|
+
✔ prefers project settings overrides over user settings overrides (11.192ms)
|
|
223
|
+
✔ does not apply project settings overrides when scope is user (3.880375ms)
|
|
224
|
+
✔ does not apply user settings overrides when scope is project (2.213333ms)
|
|
225
|
+
✔ does not read malformed out-of-scope settings files (2.334625ms)
|
|
226
|
+
✔ frontmatter wins per-field over agentOverrides for a shadowing project agent (7.813416ms)
|
|
227
|
+
✔ fills in unset fields on a custom project agent from project agentOverrides (3.080625ms)
|
|
228
|
+
✔ fills in unset fields on a custom user agent from user agentOverrides (6.23525ms)
|
|
229
|
+
✔ applies user agentOverrides to a custom project agent when project settings have no entry (2.858792ms)
|
|
230
|
+
✔ prefers project agentOverrides over user agentOverrides on a custom project agent (2.525958ms)
|
|
231
|
+
✔ keeps explicit custom frontmatter fields over matching agentOverrides (5.825291ms)
|
|
232
|
+
✔ leaves a custom agent untouched when no agentOverrides entry matches its name (15.412792ms)
|
|
233
|
+
✔ disableBuiltins does not disable custom agents (3.215292ms)
|
|
234
|
+
✔ does not create a settings file when removing a non-existent override (4.348917ms)
|
|
235
|
+
✔ surfaces malformed settings files instead of silently ignoring them (2.916583ms)
|
|
236
|
+
✔ surfaces settings read failures without mislabeling them as parse errors (1.915ms)
|
|
237
|
+
✔ surfaces malformed builtin override entries instead of silently ignoring them (2.069583ms)
|
|
238
|
+
✔ surfaces malformed completion guard override values (1.851833ms)
|
|
239
|
+
✔ builds false sentinels when an override clears builtin fields (0.352208ms)
|
|
240
|
+
✔ builtin agent overrides (286.461375ms)
|
|
241
|
+
▶ resolveExecutionAgentScope
|
|
242
|
+
✔ defaults to both when scope is omitted (0.283875ms)
|
|
243
|
+
✔ passes through explicit scopes (0.050583ms)
|
|
244
|
+
✔ falls back to both for invalid scopes (0.04825ms)
|
|
245
|
+
✔ resolveExecutionAgentScope (0.81475ms)
|
|
246
|
+
▶ mergeAgentsForScope
|
|
247
|
+
✔ returns project agents when scope is project (2.596542ms)
|
|
248
|
+
✔ returns user agents when scope is user (0.066542ms)
|
|
249
|
+
✔ prefers project agents on name collisions when scope is both (0.047459ms)
|
|
250
|
+
✔ keeps agents from both scopes when names are distinct (0.076125ms)
|
|
251
|
+
✔ includes builtin agents when no user or project override exists (0.045167ms)
|
|
252
|
+
✔ user agents override builtins with the same name (0.042667ms)
|
|
253
|
+
✔ package agents override builtins but not user or project agents (0.057167ms)
|
|
254
|
+
✔ project agents override builtins with the same name (0.041125ms)
|
|
255
|
+
✔ mergeAgentsForScope (5.364ms)
|
|
256
|
+
▶ project-local artifact paths
|
|
257
|
+
✔ places generated subagent files under .dm-subagents for a project cwd (0.298042ms)
|
|
258
|
+
✔ keeps the session artifact fallback when no project cwd is available (0.073125ms)
|
|
259
|
+
✔ project-local artifact paths (0.83975ms)
|
|
260
|
+
▶ async runner execution
|
|
261
|
+
✔ places detached runner stdio logs in the async run directory (0.506833ms)
|
|
262
|
+
✔ omits runner log paths when asyncDir is unavailable (0.051916ms)
|
|
263
|
+
✔ resolves async step tool budgets with step over run over agent over config precedence (1.571334ms)
|
|
264
|
+
✔ uses agent tool budget before config default when no run override exists (0.127625ms)
|
|
265
|
+
✔ uses config default when no step, run, or agent budget exists (0.102667ms)
|
|
266
|
+
✔ async runner execution (2.764584ms)
|
|
267
|
+
▶ async interrupt action
|
|
268
|
+
✔ queues steering for a running async child (2.507625ms)
|
|
269
|
+
✔ queues steering for a running async child by directory (2.061375ms)
|
|
270
|
+
✔ queues steering for a pending indexed async child (1.822625ms)
|
|
271
|
+
✔ interrupts a running async run resolved from disk after in-memory tracking is gone (1.268958ms)
|
|
272
|
+
✔ reports success and writes the portable request when the signal is unavailable (0.838958ms)
|
|
273
|
+
✔ does not report success for stale running status with a dead pid (1.1585ms)
|
|
274
|
+
✔ async interrupt action (10.19575ms)
|
|
275
|
+
▶ async permission forwarding session identity
|
|
276
|
+
✔ uses the parent session id for permission forwarding instead of the async status identity (1.460375ms)
|
|
277
|
+
✔ consumes bounded dynamic fanout indexes before later static forked steps (3.777834ms)
|
|
278
|
+
✔ applies thinking overrides to async fallback candidates (0.177583ms)
|
|
279
|
+
✔ async permission forwarding session identity (5.781667ms)
|
|
280
|
+
▶ async resume lookup
|
|
281
|
+
✔ resolves a completed single-child run from persisted status (1.635042ms)
|
|
282
|
+
✔ rejects ambiguous run id prefixes (0.976625ms)
|
|
283
|
+
✔ rejects path-like ids and directories outside the async root (0.21825ms)
|
|
284
|
+
✔ rejects non-jsonl session files before reviving (0.595542ms)
|
|
285
|
+
✔ rejects malformed result metadata before using session fields (0.524833ms)
|
|
286
|
+
✔ rejects malformed status session ids (0.575417ms)
|
|
287
|
+
✔ returns a live intercom target for a running child (0.533917ms)
|
|
288
|
+
✔ revives a completed child by index while a sibling async child is still running (0.698375ms)
|
|
289
|
+
✔ rejects pending indexed children in still-running async runs (0.658334ms)
|
|
290
|
+
✔ resolves a completed multi-child run when an index and per-child session file are available (0.763625ms)
|
|
291
|
+
✔ frames the revived follow-up with original run context (0.11625ms)
|
|
292
|
+
✔ async resume lookup (7.789042ms)
|
|
293
|
+
▶ writeAtomicJson
|
|
294
|
+
✔ retries transient rename failures before replacing the target (0.623833ms)
|
|
295
|
+
✔ uses longer default retries for transient Windows rename locks (0.098167ms)
|
|
296
|
+
✔ throws non-retryable rename failures without retrying (0.178667ms)
|
|
297
|
+
✔ cleans up the temp file after retryable failures are exhausted (0.306792ms)
|
|
298
|
+
✔ writeAtomicJson (1.656333ms)
|
|
299
|
+
▶ chain append requests
|
|
300
|
+
✔ persists append requests for running async chains and records pending status (5.260667ms)
|
|
301
|
+
✔ reads pending append requests without consuming them and reports reserved output names (1.364167ms)
|
|
302
|
+
✔ rejects terminal and non-chain async runs (5.837083ms)
|
|
303
|
+
✔ extends async chain status, parallel groups, and workflow graph (0.763167ms)
|
|
304
|
+
✔ chain append requests (14.183084ms)
|
|
305
|
+
▶ async chain root attachment
|
|
306
|
+
✔ imports an already completed async child result (1.64775ms)
|
|
307
|
+
✔ waits for a running async child to write its terminal result (28.525291ms)
|
|
308
|
+
✔ imports a failed root as a failed first chain step (2.61125ms)
|
|
309
|
+
✔ fails a terminal root that never produced a result file (1.919708ms)
|
|
310
|
+
✔ stops waiting when the parent timeout aborts an attached root (12.649375ms)
|
|
311
|
+
✔ async chain root attachment (48.210167ms)
|
|
312
|
+
▶ chain serializer
|
|
313
|
+
✔ round-trips step outputMode (0.689625ms)
|
|
314
|
+
✔ round-trips phase, label, as, and path-based outputSchema (0.082125ms)
|
|
315
|
+
✔ round-trips markdown chain toolBudget (0.356041ms)
|
|
316
|
+
✔ rejects invalid markdown chain toolBudget (6.087ms)
|
|
317
|
+
✔ rejects inline outputSchema values in markdown chains (0.219334ms)
|
|
318
|
+
✔ rejects invalid dynamic JSON chains with useful diagnostics (10.373625ms)
|
|
319
|
+
✔ serializes JSON chains back to JSON (7.7245ms)
|
|
320
|
+
✔ parses declarative JSON chains with dynamic fanout toolBudget (1.855916ms)
|
|
321
|
+
✔ rejects invalid JSON chain toolBudget (3.493125ms)
|
|
322
|
+
✔ parses declarative JSON chains with dynamic fanout (0.847875ms)
|
|
323
|
+
✔ parses and validates acceptance in JSON chains (0.50625ms)
|
|
324
|
+
✔ chain serializer (37.89775ms)
|
|
325
|
+
▶ createChildTranscriptWriter
|
|
326
|
+
✔ writes a versioned initial user message record with run metadata (1.448ms)
|
|
327
|
+
✔ omits childIndex when not provided (0.884417ms)
|
|
328
|
+
✔ writes message records for message_end and tool_result_end events (4.835208ms)
|
|
329
|
+
✔ writes tool_start and tool_end records and ignores unhandled event types (0.519291ms)
|
|
330
|
+
✔ skips blank stdout/stderr lines and splits multi-line stderr text (0.432625ms)
|
|
331
|
+
✔ truncates after the byte cap and stops writing further records without erroring (0.385792ms)
|
|
332
|
+
✔ reserves space for a truncation marker before accepting another record (0.321916ms)
|
|
333
|
+
✔ reports an init error and drops subsequent writes when the transcript path cannot be created (0.233458ms)
|
|
334
|
+
✔ createChildTranscriptWriter (9.605709ms)
|
|
335
|
+
▶ attachPostExitStdioGuard
|
|
336
|
+
✔ reports whether a termination signal was actually delivered (0.30975ms)
|
|
337
|
+
✔ does not delay a clean exit (15.452958ms)
|
|
338
|
+
✔ cuts off a silent grandchild with the idle timer (1537.668958ms)
|
|
339
|
+
✔ cuts off a chatty grandchild with the hard timer (2026.334834ms)
|
|
340
|
+
✔ attachPostExitStdioGuard (3580.335292ms)
|
|
341
|
+
▶ resolveCompletionBatchConfig
|
|
342
|
+
✔ applies defaults when no config is provided (1.079708ms)
|
|
343
|
+
✔ override wins over global config (0.249667ms)
|
|
344
|
+
✔ rejects invalid booleans and non-positive or fractional integers (0.132208ms)
|
|
345
|
+
✔ ignores invalid overrides instead of masking valid global config (0.094ms)
|
|
346
|
+
✔ resolveCompletionBatchConfig (2.530375ms)
|
|
347
|
+
▶ createCompletionBatcher
|
|
348
|
+
✔ emits immediately when batching is disabled (0.492708ms)
|
|
349
|
+
✔ coalesces a burst into one grouped emit when the debounce fires (0.359917ms)
|
|
350
|
+
✔ emits at the max-wait cap even when items keep arriving (1.003708ms)
|
|
351
|
+
✔ flush emits held items immediately and clears timers (0.200875ms)
|
|
352
|
+
✔ dispose clears timers without emitting (0.204792ms)
|
|
353
|
+
✔ creates a shorter straggler group for late siblings (0.24075ms)
|
|
354
|
+
✔ starts a fresh normal group after the straggler window passes (0.159875ms)
|
|
355
|
+
✔ createCompletionBatcher (2.977084ms)
|
|
356
|
+
▶ buildCompletionKey
|
|
357
|
+
✔ uses id as canonical key when present (0.620375ms)
|
|
358
|
+
✔ builds deterministic fallback key when id is missing (0.217459ms)
|
|
359
|
+
✔ buildCompletionKey (1.714208ms)
|
|
360
|
+
▶ markSeenWithTtl
|
|
361
|
+
✔ returns true only for duplicates within ttl (0.087292ms)
|
|
362
|
+
✔ markSeenWithTtl (0.141417ms)
|
|
363
|
+
▶ getGlobalSeenMap
|
|
364
|
+
✔ returns the same map for the same global store key (0.073291ms)
|
|
365
|
+
✔ getGlobalSeenMap (0.113917ms)
|
|
366
|
+
✔ implementation task with no mutation triggers the completion guard (0.955417ms)
|
|
367
|
+
✔ declared read-only builtin tools suppress implementation-word false positives (0.091584ms)
|
|
368
|
+
✔ omitted, empty, bash, unknown, write, and MCP tool capabilities stay conservative (0.804416ms)
|
|
369
|
+
✔ worker with mutating-capable tools still triggers when no mutation is observed (0.247125ms)
|
|
370
|
+
✔ review-only, research, and framework output instructions do not expect mutation (2.388333ms)
|
|
371
|
+
✔ worker implementation verbs win over investigative wording (0.182209ms)
|
|
372
|
+
✔ worker edit intent covers common docs, config, and source tasks (0.433333ms)
|
|
373
|
+
✔ edit and write tool calls count as mutation attempts (0.132125ms)
|
|
374
|
+
✔ obvious mutating bash commands count as mutation attempts (1.175292ms)
|
|
375
|
+
✔ implementation task with mutation attempts does not trigger (0.140791ms)
|
|
376
|
+
▶ config directory resolution
|
|
377
|
+
✔ falls back without importing the DM peer package at runtime (1.529166ms)
|
|
378
|
+
✔ honors an explicitly provided DM module shape (0.22925ms)
|
|
379
|
+
✔ honors DM package metadata without importing the peer package (0.851625ms)
|
|
380
|
+
✔ uses an explicit DM package root before the process entrypoint walk (0.498208ms)
|
|
381
|
+
✔ does not runtime-import the coding agent peer from shared utils (0.216042ms)
|
|
382
|
+
✔ config directory resolution (3.996709ms)
|
|
383
|
+
▶ control channel: request file
|
|
384
|
+
✔ writes a parseable interrupt request, creating the inbox dir (2.206ms)
|
|
385
|
+
✔ keeps the request type authoritative even for untyped callers (0.597542ms)
|
|
386
|
+
✔ consumes a pending request exactly once and removes the file (0.742542ms)
|
|
387
|
+
✔ removes a malformed request directory instead of firing forever (0.527125ms)
|
|
388
|
+
✔ writes and consumes ordered steer requests (2.992584ms)
|
|
389
|
+
✔ keeps steer request ids out of filesystem paths (1.731125ms)
|
|
390
|
+
✔ does not deliver a steer request if another consumer removed it first (1.85475ms)
|
|
391
|
+
✔ enqueues a steer request for a specific child inbox (2.22625ms)
|
|
392
|
+
✔ rejects empty steer messages and invalid target indexes (0.84525ms)
|
|
393
|
+
✔ control channel: request file (15.965458ms)
|
|
394
|
+
▶ control channel: deliverInterruptRequest
|
|
395
|
+
✔ writes the portable request and signals best-effort when kill succeeds (19.865958ms)
|
|
396
|
+
✔ still writes the request when the OS signal throws ENOSYS (Windows) (0.942375ms)
|
|
397
|
+
✔ surfaces non-portability signal failures and removes the stale request (1.4695ms)
|
|
398
|
+
✔ skips signalling when no live pid is provided (1.498708ms)
|
|
399
|
+
✔ control channel: deliverInterruptRequest (23.927ms)
|
|
400
|
+
▶ control channel: watchAsyncControlInbox
|
|
401
|
+
✔ fires on a request that arrived before the watcher started (1.765333ms)
|
|
402
|
+
✔ fires once per request via the watch event and stops after dispose (2.175834ms)
|
|
403
|
+
✔ delivers steer requests without firing interrupt (1.315416ms)
|
|
404
|
+
✔ control channel: watchAsyncControlInbox (5.371667ms)
|
|
405
|
+
▶ subagent control notice delivery
|
|
406
|
+
✔ delivers async needs-attention notices immediately (5.639875ms)
|
|
407
|
+
✔ queues foreground needs-attention notices until the same step is still actionable (27.938167ms)
|
|
408
|
+
✔ drops queued foreground notices when the run finishes before delivery (37.596042ms)
|
|
409
|
+
✔ drops queued foreground notices after the chain advances to another step (27.876041ms)
|
|
410
|
+
✔ subagent control notice delivery (100.545917ms)
|
|
411
|
+
▶ resolveRuntimeExtensionPath
|
|
412
|
+
✔ resolves helpers from the package root for standalone and bundled modules (0.39ms)
|
|
413
|
+
✔ resolveRuntimeExtensionPath (0.716041ms)
|
|
414
|
+
▶ buildPiArgs session wiring
|
|
415
|
+
✔ uses --session when sessionFile is provided (0.705209ms)
|
|
416
|
+
✔ keeps fresh mode behavior (sessionDir + no session file) (0.097459ms)
|
|
417
|
+
✔ emits explicit parent session env for permission forwarding (0.09575ms)
|
|
418
|
+
✔ falls back to inherited parent session env for permission forwarding (0.230417ms)
|
|
419
|
+
✔ buildPiArgs session wiring (1.280791ms)
|
|
420
|
+
▶ buildPiArgs model wiring
|
|
421
|
+
✔ uses --model for provider-qualified model ids (0.36775ms)
|
|
422
|
+
✔ uses --model for bare model ids too (0.203375ms)
|
|
423
|
+
✔ preserves thinking suffixes on model args (0.172459ms)
|
|
424
|
+
✔ passes explicit thinking off through to the model arg (0.157916ms)
|
|
425
|
+
✔ leaves provider-specific model suffixes untouched when thinking is disabled (0.2205ms)
|
|
426
|
+
✔ buildPiArgs model wiring (1.395125ms)
|
|
427
|
+
▶ buildPiArgs system prompt mode wiring
|
|
428
|
+
✔ uses --append-system-prompt by default (0.943833ms)
|
|
429
|
+
✔ uses --system-prompt when systemPromptMode=replace (0.628ms)
|
|
430
|
+
✔ injects the subagent prompt runtime extension and env flags (0.19975ms)
|
|
431
|
+
✔ passes tool budget through env (0.733125ms)
|
|
432
|
+
✔ passes child intercom and orchestrator metadata through env (0.464209ms)
|
|
433
|
+
✔ does not create a supervisor channel without an exact parent session id (0.207291ms)
|
|
434
|
+
✔ emits explicit builtin tool allowlists (0.190583ms)
|
|
435
|
+
✔ adds read to explicit tool allowlists when skills must be loaded lazily (0.149ms)
|
|
436
|
+
✔ does not duplicate read in explicit tool allowlists for lazy skills (0.137875ms)
|
|
437
|
+
✔ augments explicit builtin allowlists with selected direct MCP tool names (4.379875ms)
|
|
438
|
+
✔ preserves no --tools for MCP-only agents (9.944542ms)
|
|
439
|
+
✔ supports direct MCP server/tool filters (1.362166ms)
|
|
440
|
+
✔ matches adapter prefix modes for direct MCP names (3.086959ms)
|
|
441
|
+
✔ includes resource tools and respects excludeTools (1.138708ms)
|
|
442
|
+
✔ falls back to explicit builtins when direct MCP cache or config is missing or invalid (3.550375ms)
|
|
443
|
+
✔ resolves project MCP config from the child cwd and expands DM_CODING_AGENT_DIR (2.50175ms)
|
|
444
|
+
✔ keeps tool extension paths when explicit extensions are allowlisted (2.015042ms)
|
|
445
|
+
✔ loads subagent-only extension paths only through child process extension args (0.083375ms)
|
|
446
|
+
✔ authorizes child fanout only from exact declared builtin subagent (0.186458ms)
|
|
447
|
+
✔ clears all fanout routing env values for non-fanout children (0.079791ms)
|
|
448
|
+
✔ inherits routing env only for authorized fanout children (0.128292ms)
|
|
449
|
+
✔ prefers the current subagent run id over inherited ancestor ids for nested fanout routing (0.08675ms)
|
|
450
|
+
✔ does not let direct MCP tools authorize child fanout (1.116625ms)
|
|
451
|
+
✔ keeps child-safe fanout registration in explicit extensions mode (0.072709ms)
|
|
452
|
+
✔ emits an empty prompt file when replace mode is used with an empty prompt (0.191166ms)
|
|
453
|
+
✔ buildPiArgs system prompt mode wiring (34.022708ms)
|
|
454
|
+
▶ DM_CODING_AGENT_DIR runtime paths
|
|
455
|
+
✔ resolves the agent dir dynamically and loads extension config from it (6.193ms)
|
|
456
|
+
✔ discovers user agents, chains, and settings under the configured agent dir (169.572917ms)
|
|
457
|
+
✔ resolves user skills, settings skills, and package skills from the configured agent dir (114.17075ms)
|
|
458
|
+
✔ records run history and cleans session artifacts under the configured agent dir (3.42075ms)
|
|
459
|
+
✔ uses the configured agent dir for subagent bridge instruction files (1.168708ms)
|
|
460
|
+
✔ DM_CODING_AGENT_DIR runtime paths (303.725792ms)
|
|
461
|
+
▶ getPiSpawnCommand
|
|
462
|
+
✔ honors explicit DM_SUBAGENT_PI_BINARY override on any platform (0.543417ms)
|
|
463
|
+
✔ ignores a blank DM_SUBAGENT_PI_BINARY override (0.053125ms)
|
|
464
|
+
✔ uses plain dm on non-Windows even when argv1 is a runnable JS file (0.75625ms)
|
|
465
|
+
✔ uses plain dm on non-Windows even when the CLI script can be resolved from package bin (0.241167ms)
|
|
466
|
+
✔ falls back to plain dm command on non-Windows when CLI script cannot be resolved (0.162ms)
|
|
467
|
+
✔ uses node + argv1 script on Windows when argv1 is runnable JS (0.308542ms)
|
|
468
|
+
✔ resolves CLI script from package bin when argv1 is not runnable JS (0.230333ms)
|
|
469
|
+
✔ falls back to dm when Windows CLI script cannot be resolved (2.870625ms)
|
|
470
|
+
✔ walks from package main entry to resolve package bin (4.379792ms)
|
|
471
|
+
✔ getPiSpawnCommand (10.231542ms)
|
|
472
|
+
▶ getPiSpawnCommand with piPackageRoot
|
|
473
|
+
✔ resolves CLI script via piPackageRoot when argv1 is not runnable (0.303125ms)
|
|
474
|
+
✔ getPiSpawnCommand with piPackageRoot (0.468417ms)
|
|
475
|
+
▶ resolveWindowsPiCliScript
|
|
476
|
+
✔ supports package bin as string (0.16525ms)
|
|
477
|
+
✔ resolveWindowsPiCliScript (0.231542ms)
|
|
478
|
+
▶ buildDoctorReport
|
|
479
|
+
✔ formats a bounded successful environment summary (4.014209ms)
|
|
480
|
+
✔ keeps reporting when a directory or discovery check fails (0.569ms)
|
|
481
|
+
✔ buildDoctorReport (4.9565ms)
|
|
482
|
+
▶ dynamic fanout helpers
|
|
483
|
+
✔ resolves JSON Pointers and materializes item templates (1.860375ms)
|
|
484
|
+
✔ rejects missing structured sources, over-limit arrays, duplicate keys, colliding ids, and bad templates (0.377333ms)
|
|
485
|
+
✔ allows config maxItems defaults and handles empty arrays deterministically (0.3075ms)
|
|
486
|
+
✔ rejects malformed dynamic-like shapes before they can run as static parallel (0.12575ms)
|
|
487
|
+
✔ accepts a runner-injected parentSessionId on the parallel template but keeps it out of user-facing validation (0.093542ms)
|
|
488
|
+
✔ accepts toolBudget on dynamic parallel templates (0.07325ms)
|
|
489
|
+
✔ validates source ordering and collect name collisions (0.07325ms)
|
|
490
|
+
✔ validates appended steps against prior and reserved output names (0.097792ms)
|
|
491
|
+
✔ collects ordered child result records and validates aggregate schema (6.181042ms)
|
|
492
|
+
✔ dynamic fanout helpers (9.697041ms)
|
|
493
|
+
▶ DM_SUBAGENT_EXTRA_AGENT_DIRS discovery
|
|
494
|
+
✔ discovers agents from the env-provided dirs as a 'user' source (156.213416ms)
|
|
495
|
+
✔ scans every directory listed (PATH-style delimiter) (6.839042ms)
|
|
496
|
+
✔ lets a local user agent override a bundled one of the same name (4.25ms)
|
|
497
|
+
✔ ignores the env var when unset or empty (5.552833ms)
|
|
498
|
+
✔ DM_SUBAGENT_EXTRA_AGENT_DIRS discovery (173.591125ms)
|
|
499
|
+
▶ createFileCoalescer
|
|
500
|
+
✔ coalesces duplicate schedule calls per file (0.569208ms)
|
|
501
|
+
✔ allows different files to schedule independently (0.077542ms)
|
|
502
|
+
✔ clear cancels all pending handlers (0.069458ms)
|
|
503
|
+
✔ createFileCoalescer (1.079584ms)
|
|
504
|
+
▶ foreground tool-call compaction
|
|
505
|
+
✔ stores compact tool-call summaries instead of raw message payloads (0.576083ms)
|
|
506
|
+
✔ keeps expanded generic tool-call previews bounded (0.082959ms)
|
|
507
|
+
✔ does not keep an empty toolCalls array after compaction (0.046083ms)
|
|
508
|
+
✔ formats array-based web search previews clearly (0.111333ms)
|
|
509
|
+
✔ formats fetch_content urls clearly (0.040375ms)
|
|
510
|
+
✔ falls back to generic array previews (0.039ms)
|
|
511
|
+
✔ foreground tool-call compaction (1.292791ms)
|
|
512
|
+
▶ resolveSubagentContext
|
|
513
|
+
✔ defaults to fresh (0.241333ms)
|
|
514
|
+
✔ accepts fork (0.044209ms)
|
|
515
|
+
✔ resolveSubagentContext (0.631958ms)
|
|
516
|
+
▶ createForkContextResolver
|
|
517
|
+
✔ fresh mode never calls createBranchedSession (0.182417ms)
|
|
518
|
+
✔ fails fast when parent session file is missing (0.161ms)
|
|
519
|
+
✔ fails fast when leaf id is missing (0.058792ms)
|
|
520
|
+
✔ opens a throwaway manager from the persisted parent session file (1.366416ms)
|
|
521
|
+
✔ creates forked sessions through the default package opener (6.285208ms)
|
|
522
|
+
✔ creates parallel forks from a live parent without moving its state or retaining child locks (2.111208ms)
|
|
523
|
+
✔ fails clearly for an unflushed user-only parent (0.596875ms)
|
|
524
|
+
✔ creates isolated branched sessions per index (parallel and chain compatible) (0.967792ms)
|
|
525
|
+
✔ memoizes per index to keep behavior deterministic (0.42175ms)
|
|
526
|
+
✔ persists a forked session when DM defers writing the branched file (0.54675ms)
|
|
527
|
+
✔ removes signed Anthropic thinking blocks before forwarding a forked session (0.607833ms)
|
|
528
|
+
✔ allows unsigned thinking blocks in forked sessions (0.428333ms)
|
|
529
|
+
✔ allows non-Anthropic signed thinking blocks in forked sessions (0.421334ms)
|
|
530
|
+
✔ removes redacted thinking blocks before fallback-persisting a forked session (0.458083ms)
|
|
531
|
+
✔ fails clearly when branch extraction returns a missing child file without fallback state (0.330416ms)
|
|
532
|
+
✔ does not silently fallback to fresh when branch extraction fails (0.287ms)
|
|
533
|
+
✔ createForkContextResolver (15.480667ms)
|
|
534
|
+
▶ getFinalOutput
|
|
535
|
+
✔ uses the last non-empty text part in the latest assistant message (0.565417ms)
|
|
536
|
+
✔ prefers final text over progress text in a multi-part assistant message (0.162125ms)
|
|
537
|
+
✔ falls back to an older assistant message when the latest text is whitespace-only (0.057958ms)
|
|
538
|
+
✔ falls back to an older assistant message when the latest assistant message is tool-only (0.053333ms)
|
|
539
|
+
✔ prefers an earlier explicit acceptance report over later summary-only text (0.073375ms)
|
|
540
|
+
✔ prefers an earlier json-fenced acceptance report over later summary-only text (0.0995ms)
|
|
541
|
+
✔ does not prefer provider-error acceptance reports (0.048208ms)
|
|
542
|
+
✔ returns empty output when all assistant text is empty or whitespace-only (0.053541ms)
|
|
543
|
+
✔ does not use provider-error assistant text as fallback output (0.055042ms)
|
|
544
|
+
✔ preserves surrounding whitespace on the selected non-empty text (0.070959ms)
|
|
545
|
+
✔ getFinalOutput (1.703959ms)
|
|
546
|
+
▶ subagent extension child mode
|
|
547
|
+
✔ collapses tool detail before direct subagent tool execution (2322.407167ms)
|
|
548
|
+
✔ does not show async badge for explicit foreground clarify chain calls (868.68575ms)
|
|
549
|
+
✔ returns before registering anything for non-fanout children (865.562042ms)
|
|
550
|
+
✔ returns before registering anything for fanout children (864.64575ms)
|
|
551
|
+
✔ does not double-register the child-safe subagent tool when index and fanout-child both load (843.906125ms)
|
|
552
|
+
✔ lets fanout children call read-only list but blocks mutating management actions (849.071541ms)
|
|
553
|
+
✔ subagent extension child mode (6614.892208ms)
|
|
554
|
+
▶ resolveIntercomBridgeMode
|
|
555
|
+
✔ defaults unknown values to always (0.255708ms)
|
|
556
|
+
✔ accepts explicit modes (0.046ms)
|
|
557
|
+
✔ resolveIntercomBridgeMode (0.635084ms)
|
|
558
|
+
▶ resolveIntercomSessionTarget
|
|
559
|
+
✔ prefers an explicit session name (0.073125ms)
|
|
560
|
+
✔ uses a runtime-only subagent chat alias when unnamed (0.036792ms)
|
|
561
|
+
✔ resolveIntercomSessionTarget (0.170542ms)
|
|
562
|
+
▶ resolveSubagentIntercomTarget
|
|
563
|
+
✔ builds stable child session targets from run metadata (0.110708ms)
|
|
564
|
+
✔ resolveSubagentIntercomTarget (0.151583ms)
|
|
565
|
+
▶ diagnoseIntercomBridge
|
|
566
|
+
✔ reports the native supervisor channel as available without external package discovery (0.104916ms)
|
|
567
|
+
✔ does not read external intercom config when bridge mode is off (0.052083ms)
|
|
568
|
+
✔ diagnoseIntercomBridge (0.227125ms)
|
|
569
|
+
▶ resolveIntercomBridge
|
|
570
|
+
✔ activates when mode/context permit and an orchestrator target exists (0.422542ms)
|
|
571
|
+
✔ stays inactive for fresh context when mode is fork-only (0.155916ms)
|
|
572
|
+
✔ loads custom instructions from instructionFile (0.653ms)
|
|
573
|
+
✔ uses stronger default instructions for fork-aware coordination (0.180958ms)
|
|
574
|
+
✔ resolveIntercomBridge (1.478709ms)
|
|
575
|
+
▶ applyIntercomBridgeToAgent
|
|
576
|
+
✔ injects intercom tool and prompt instructions (0.344167ms)
|
|
577
|
+
✔ is idempotent (0.046958ms)
|
|
578
|
+
✔ does not block native supervisor tools for agents with explicit extension allowlists (0.033167ms)
|
|
579
|
+
✔ applyIntercomBridgeToAgent (0.462ms)
|
|
580
|
+
▶ createJsonlWriter
|
|
581
|
+
✔ writes lines with trailing newline (0.5705ms)
|
|
582
|
+
✔ pauses on backpressure and resumes on drain (0.096625ms)
|
|
583
|
+
✔ closes stream once (0.320291ms)
|
|
584
|
+
✔ returns no-op writer when file path is undefined (0.284375ms)
|
|
585
|
+
✔ stops writing when maxBytes exceeded without pausing source (0.153209ms)
|
|
586
|
+
✔ allows writes up to exactly maxBytes (0.270041ms)
|
|
587
|
+
✔ createJsonlWriter (2.737542ms)
|
|
588
|
+
▶ live async resume interrupt
|
|
589
|
+
✔ interrupts a resolved live async child before the caller sends a follow-up (3.23175ms)
|
|
590
|
+
✔ still interrupts a live async child when the OS signal is unavailable (ENOSYS on Windows) (8.591917ms)
|
|
591
|
+
✔ does not report success or leave a stale request when the runner pid is gone (4.707583ms)
|
|
592
|
+
✔ live async resume interrupt (17.592375ms)
|
|
593
|
+
▶ model fallback helpers
|
|
594
|
+
✔ keeps explicit provider/model ids unchanged (0.35625ms)
|
|
595
|
+
✔ resolves a bare id when there is exactly one registry match (0.055666ms)
|
|
596
|
+
✔ preserves thinking suffix when resolving a bare id (0.2495ms)
|
|
597
|
+
✔ leaves ambiguous bare ids untouched (0.052ms)
|
|
598
|
+
✔ prefers the current provider when an ambiguous bare id exists there (0.044417ms)
|
|
599
|
+
✔ falls back to the unique registry match when the current provider does not offer the model (0.037166ms)
|
|
600
|
+
✔ builds a deduplicated ordered candidate list (0.318ms)
|
|
601
|
+
✔ applies the current provider preference to fallback candidates too (0.051959ms)
|
|
602
|
+
✔ detects retryable provider/model failures (0.500208ms)
|
|
603
|
+
✔ does not treat ordinary task/tool failures as retryable model failures (0.098667ms)
|
|
604
|
+
✔ model fallback helpers (2.231333ms)
|
|
605
|
+
▶ resolveSubagentModelOverride (cross-session inherit, issue #266)
|
|
606
|
+
✔ inherits the parent session model when no model is requested (0.08975ms)
|
|
607
|
+
✔ inherits the parent session model when the model is the "inherit" sentinel (0.033208ms)
|
|
608
|
+
✔ inherits the parent session model when the agent config sets model: false (delegate) (0.022625ms)
|
|
609
|
+
✔ treats an empty or whitespace-only model as inherit (0.027458ms)
|
|
610
|
+
✔ trims surrounding whitespace from the "inherit" sentinel (0.024ms)
|
|
611
|
+
✔ keeps an explicit provider/id model unchanged (0.02ms)
|
|
612
|
+
✔ resolves an explicit bare id against the registry, not the parent (0.019458ms)
|
|
613
|
+
✔ returns undefined when inheriting but no parent model is known (0.027709ms)
|
|
614
|
+
✔ never emits the literal "inherit" string as a model (0.039042ms)
|
|
615
|
+
✔ resolveSubagentModelOverride (cross-session inherit, issue #266) (0.391375ms)
|
|
616
|
+
▶ fuzzyResolveModel / normalizeModelSegment
|
|
617
|
+
✔ normalizes dots, underscores, case, and repeated dashes (0.058083ms)
|
|
618
|
+
✔ fuzzy-matches a bare id with separator/case differences (0.037375ms)
|
|
619
|
+
✔ fuzzy-matches a bare id with an optional trailing date stamp (0.046459ms)
|
|
620
|
+
✔ does not strip arbitrary trailing 8-digit numbers as date stamps (0.024916ms)
|
|
621
|
+
✔ fuzzy-matches an undated query against a dated registry id (0.031875ms)
|
|
622
|
+
✔ fuzzy-matches a qualified provider/id with case/separator differences (0.038875ms)
|
|
623
|
+
✔ does not switch providers for a qualified query (0.023875ms)
|
|
624
|
+
✔ prefers the current provider for an ambiguous bare fuzzy id (0.031291ms)
|
|
625
|
+
✔ returns undefined for an ambiguous bare fuzzy id with no preferred provider (0.01875ms)
|
|
626
|
+
✔ returns undefined when nothing fuzzy-matches (0.021417ms)
|
|
627
|
+
✔ fuzzyResolveModel / normalizeModelSegment (0.41075ms)
|
|
628
|
+
▶ resolveModelCandidate fuzzy fallback
|
|
629
|
+
✔ resolves a bare id with case/separator differences via fuzzy fallback (0.042ms)
|
|
630
|
+
✔ resolves a bare id with a trailing date stamp via fuzzy fallback (0.020125ms)
|
|
631
|
+
✔ resolves a qualified provider/id with case differences via fuzzy fallback (0.021583ms)
|
|
632
|
+
✔ preserves the thinking suffix through fuzzy resolution (0.037208ms)
|
|
633
|
+
✔ still prefers exact registry matches over fuzzy (0.019209ms)
|
|
634
|
+
✔ leaves an unknown qualified model unchanged instead of switching providers (0.025333ms)
|
|
635
|
+
✔ leaves an unknown bare id unchanged when no fuzzy match exists (0.021417ms)
|
|
636
|
+
✔ resolveModelCandidate fuzzy fallback (0.24ms)
|
|
637
|
+
▶ resolveSubagentModelOverride scope enforcement
|
|
638
|
+
✔ is a no-op when scope is not enforced (0.043ms)
|
|
639
|
+
✔ throws for an explicit out-of-scope model (0.237416ms)
|
|
640
|
+
✔ warns (and still returns the model) for an inherited out-of-scope model (0.090708ms)
|
|
641
|
+
✔ warns for an inherited parent-session model that is out of scope (0.033042ms)
|
|
642
|
+
✔ passes through an in-scope explicit model without warning or error (0.02775ms)
|
|
643
|
+
✔ checks the resolved (canonicalized) model against the scope (0.0275ms)
|
|
644
|
+
✔ ignores a thinking suffix when checking scope (0.038041ms)
|
|
645
|
+
✔ warns for out-of-scope fallback models while keeping them available (0.0485ms)
|
|
646
|
+
✔ resolveSubagentModelOverride scope enforcement (0.609334ms)
|
|
647
|
+
▶ model info helpers
|
|
648
|
+
✔ does not choose arbitrary metadata for ambiguous bare model ids (0.678083ms)
|
|
649
|
+
✔ uses the preferred provider for ambiguous bare model metadata (0.135ms)
|
|
650
|
+
✔ matches provider-qualified model metadata before bare ids (0.109041ms)
|
|
651
|
+
✔ keeps the legacy full thinking list for reasoning models without per-level metadata (0.715709ms)
|
|
652
|
+
✔ keeps the legacy full thinking list when older model metadata omits reasoning (0.137792ms)
|
|
653
|
+
✔ filters levels only when per-level metadata is present (0.225084ms)
|
|
654
|
+
✔ honors metadata that marks off unsupported (0.202084ms)
|
|
655
|
+
✔ model info helpers (3.548833ms)
|
|
656
|
+
▶ subagents.modelScope discovery
|
|
657
|
+
✔ exposes a user modelScope from discoverAgents (126.958417ms)
|
|
658
|
+
✔ returns undefined when no modelScope is configured (6.203167ms)
|
|
659
|
+
✔ prefers project modelScope over user modelScope (8.400208ms)
|
|
660
|
+
✔ falls back to user modelScope when project does not set one (4.277375ms)
|
|
661
|
+
✔ rejects an invalid modelScope config at discovery time (2.23675ms)
|
|
662
|
+
✔ rejects a malformed modelScope value at discovery time (2.195625ms)
|
|
663
|
+
✔ subagents.modelScope discovery (150.770458ms)
|
|
664
|
+
▶ matchesScopePattern
|
|
665
|
+
✔ matches an exact provider/id (0.363917ms)
|
|
666
|
+
✔ matches a provider wildcard (0.078875ms)
|
|
667
|
+
✔ matches a model-prefix wildcard (0.078875ms)
|
|
668
|
+
✔ does not match across providers (0.978ms)
|
|
669
|
+
✔ ignores case on both sides (0.095583ms)
|
|
670
|
+
✔ strips a thinking suffix before matching (0.089042ms)
|
|
671
|
+
✔ does not treat arbitrary colon text as a thinking suffix (0.055917ms)
|
|
672
|
+
✔ requires a full match, not a substring (0.059417ms)
|
|
673
|
+
✔ matchesScopePattern (2.236166ms)
|
|
674
|
+
▶ checkModelScope
|
|
675
|
+
✔ returns undefined when enforcement is off (3.462042ms)
|
|
676
|
+
✔ returns undefined when no allow list is configured (0.390209ms)
|
|
677
|
+
✔ returns undefined when the model is in scope (0.340042ms)
|
|
678
|
+
✔ returns an error violation for an explicit out-of-scope model (0.700916ms)
|
|
679
|
+
✔ returns a warn violation for an inherited out-of-scope model (0.419458ms)
|
|
680
|
+
✔ defaults to inherited (warn) severity when source is omitted-ish via inherited (0.048709ms)
|
|
681
|
+
✔ strips the thinking suffix from the reported model (0.033125ms)
|
|
682
|
+
✔ returns undefined for an undefined model (0.02825ms)
|
|
683
|
+
✔ checkModelScope (5.77975ms)
|
|
684
|
+
▶ parseModelScopeConfig
|
|
685
|
+
✔ returns undefined when the field is absent (0.183708ms)
|
|
686
|
+
✔ parses a well-formed config (0.072667ms)
|
|
687
|
+
✔ parses enforce alone (0.193417ms)
|
|
688
|
+
✔ trims allow patterns and drops empties (0.123083ms)
|
|
689
|
+
✔ rejects a non-object value (0.6145ms)
|
|
690
|
+
✔ rejects a non-boolean enforce (0.341583ms)
|
|
691
|
+
✔ rejects a non-array allow (0.201292ms)
|
|
692
|
+
✔ rejects an allow array with non-string entries (0.596209ms)
|
|
693
|
+
✔ rejects enforce without a non-empty allow list (0.121417ms)
|
|
694
|
+
✔ parseModelScopeConfig (2.686208ms)
|
|
695
|
+
▶ native supervisor channel
|
|
696
|
+
✔ delivers requests only to the exact current session id (22.073333ms)
|
|
697
|
+
✔ matches supervisor requests against the runtime session id instead of persisted session file path (12.917333ms)
|
|
698
|
+
✔ keeps an installed intercom tool and still exposes a native supervisor reply path (11.6705ms)
|
|
699
|
+
✔ native supervisor channel (47.233458ms)
|
|
700
|
+
▶ nested control routing
|
|
701
|
+
✔ routes interrupt to an explicit nested id through the control inbox (64.281791ms)
|
|
702
|
+
✔ renders nested children in foreground status output (4.507708ms)
|
|
703
|
+
✔ scopes child-safe nested status lookup to the inherited route and child address (3.954625ms)
|
|
704
|
+
✔ requires an id for child-safe status instead of listing unrelated top-level async runs (0.544958ms)
|
|
705
|
+
✔ does not let bare interrupt target hidden nested descendants (1.058709ms)
|
|
706
|
+
✔ times out owner-gone nested control and ignores late results (1045.636875ms)
|
|
707
|
+
✔ routes resume for live nested runs through the control inbox (52.819875ms)
|
|
708
|
+
✔ validates terminal nested resume session files before revive (1.523917ms)
|
|
709
|
+
✔ rejects terminal nested resume session files outside trusted roots (1.463625ms)
|
|
710
|
+
✔ rejects terminal nested resume session files from sibling run directories (1.556ms)
|
|
711
|
+
✔ emits a failed completed nested event when foreground execution throws after start (3.03925ms)
|
|
712
|
+
✔ keeps the fanout child control listener alive after control inbox polling errors (430.101ms)
|
|
713
|
+
✔ keeps fanout child control requests when result writing fails and retries after recovery (421.601708ms)
|
|
714
|
+
✔ negatively acknowledges ownerless fanout child control requests and removes them (213.167666ms)
|
|
715
|
+
✔ nested control routing (2246.223292ms)
|
|
716
|
+
▶ nested route index
|
|
717
|
+
✔ indexes routes by root run id in a single directory scan (15.723792ms)
|
|
718
|
+
✔ keeps at most one route when a root run id has duplicate route dirs (10.51125ms)
|
|
719
|
+
✔ nested route index (26.877875ms)
|
|
720
|
+
▶ nested event route validation
|
|
721
|
+
✔ resolves nested parent addresses with full inherited path (0.54725ms)
|
|
722
|
+
✔ ignores unsafe nested parent ids from env (0.08975ms)
|
|
723
|
+
✔ resolves only matching contained routes from env (0.821459ms)
|
|
724
|
+
✔ nested event route validation (1.542958ms)
|
|
725
|
+
▶ nested event parsing and projection
|
|
726
|
+
✔ projects started, updated, and completed records into async and foreground parent state (2.453417ms)
|
|
727
|
+
✔ attaches root children to visible step slices by original step index (1.011958ms)
|
|
728
|
+
✔ ignores corrupt, partial, wrong-token, duplicate, and stale records while preserving terminal state (1.64975ms)
|
|
729
|
+
✔ detects live descendants attached to terminal step children (0.088416ms)
|
|
730
|
+
✔ accepts only complete numeric token usage at the nested event boundary (2.284542ms)
|
|
731
|
+
✔ parses only complete jsonl records (0.602125ms)
|
|
732
|
+
✔ nested event parsing and projection (8.23025ms)
|
|
733
|
+
▶ registerSubagentNotify
|
|
734
|
+
✔ uses a fallback summary when a background completion is empty (0.795042ms)
|
|
735
|
+
✔ preserves non-empty completion summaries (0.10375ms)
|
|
736
|
+
✔ preserves session paths in notification content (0.082125ms)
|
|
737
|
+
✔ labels paused completions as paused even without an exit code (0.314667ms)
|
|
738
|
+
✔ ignores completions for other or missing session ids (0.233417ms)
|
|
739
|
+
✔ emits failed completions immediately even while successes are held (0.84175ms)
|
|
740
|
+
✔ groups sibling successes into a single notification after the debounce window (0.635ms)
|
|
741
|
+
✔ ignores successes from other sessions instead of grouping them (0.932708ms)
|
|
742
|
+
✔ does not let another session failure flush held successes (0.146375ms)
|
|
743
|
+
✔ registerSubagentNotify (4.679959ms)
|
|
744
|
+
▶ completion formatting helpers
|
|
745
|
+
✔ formatSingleCompletion mirrors the in-handler single message shape (0.0955ms)
|
|
746
|
+
✔ formatGroupedCompletion lists each agent with its summary and session (0.043542ms)
|
|
747
|
+
✔ buildCompletionDetails derives paused status from state and summary (0.042ms)
|
|
748
|
+
✔ buildCompletionDetails falls back to the unknown agent label (0.032083ms)
|
|
749
|
+
✔ completion formatting helpers (0.29275ms)
|
|
750
|
+
✔ direct @earendil-works runtime imports are declared for CI installs (11.008834ms)
|
|
751
|
+
✔ direct dependency declarations are exact version pins (0.22275ms)
|
|
752
|
+
✔ old DM package scope is not used by source or tests (7.195167ms)
|
|
753
|
+
✔ DM package resolution stays export-map safe (10.602833ms)
|
|
754
|
+
▶ isParallelGroup
|
|
755
|
+
✔ returns true for a parallel step group (1.383584ms)
|
|
756
|
+
✔ returns false for a sequential step (1.033834ms)
|
|
757
|
+
✔ returns false when parallel is not an array (0.478084ms)
|
|
758
|
+
✔ isParallelGroup (3.364083ms)
|
|
759
|
+
▶ flattenSteps
|
|
760
|
+
✔ returns sequential steps unchanged (0.106208ms)
|
|
761
|
+
✔ expands parallel groups into individual steps (0.317125ms)
|
|
762
|
+
✔ handles empty steps array (0.043209ms)
|
|
763
|
+
✔ handles empty parallel group (0.209709ms)
|
|
764
|
+
✔ flattenSteps (0.827417ms)
|
|
765
|
+
▶ mapConcurrent
|
|
766
|
+
✔ processes all items and preserves order (0.513583ms)
|
|
767
|
+
✔ respects concurrency limit (33.567083ms)
|
|
768
|
+
✔ handles empty input (0.254708ms)
|
|
769
|
+
✔ clamps limit=0 to 1 (sequential execution) (35.349584ms)
|
|
770
|
+
✔ clamps limit=-1 to 1 (sequential execution) (36.117958ms)
|
|
771
|
+
✔ does not stagger by default (10.712875ms)
|
|
772
|
+
✔ respects a shared global semaphore across simultaneous calls (32.72025ms)
|
|
773
|
+
✔ clamps invalid global semaphore limits to 1 (38.837792ms)
|
|
774
|
+
✔ mapConcurrent (188.740625ms)
|
|
775
|
+
▶ DEFAULT_GLOBAL_CONCURRENCY_LIMIT
|
|
776
|
+
✔ is 20 (0.06075ms)
|
|
777
|
+
✔ DEFAULT_GLOBAL_CONCURRENCY_LIMIT (0.096417ms)
|
|
778
|
+
▶ aggregateParallelOutputs
|
|
779
|
+
✔ aggregates successful outputs with headers (0.129625ms)
|
|
780
|
+
✔ marks failed tasks (0.032583ms)
|
|
781
|
+
✔ marks empty output (0.030208ms)
|
|
782
|
+
✔ treats whitespace-only output as empty (0.02375ms)
|
|
783
|
+
✔ marks skipped tasks (exitCode=-1) distinctly from failed (0.026083ms)
|
|
784
|
+
✔ aggregateParallelOutputs (0.290834ms)
|
|
785
|
+
▶ MAX_PARALLEL_CONCURRENCY
|
|
786
|
+
✔ is 4 (0.021666ms)
|
|
787
|
+
✔ MAX_PARALLEL_CONCURRENCY (0.03775ms)
|
|
788
|
+
▶ path.isAbsolute vs startsWith('/')
|
|
789
|
+
✔ startsWith('/') misses Windows absolute paths (0.259917ms)
|
|
790
|
+
✔ path.isAbsolute is the correct cross-platform check (0.054ms)
|
|
791
|
+
✔ path.isAbsolute vs startsWith('/') (0.659666ms)
|
|
792
|
+
▶ path.join vs template string concatenation
|
|
793
|
+
✔ template concatenation produces forward slashes regardless of platform (0.068875ms)
|
|
794
|
+
✔ resolveChainPath pattern should use path.join for relative paths (0.042333ms)
|
|
795
|
+
✔ parallel subdir naming should use path.join (0.050375ms)
|
|
796
|
+
✔ path.join vs template string concatenation (0.24175ms)
|
|
797
|
+
▶ Path resolution for .agents and ~/.agents
|
|
798
|
+
✔ should resolve skills in .agents/skills (144.209125ms)
|
|
799
|
+
✔ should resolve skills in ~/.agents/skills (3.339959ms)
|
|
800
|
+
✔ should resolve project agents from both .agents and .dm/agents (7.975625ms)
|
|
801
|
+
✔ should resolve agents in ~/.agents (124.311708ms)
|
|
802
|
+
✔ Path resolution for .agents and ~/.agents (280.265167ms)
|
|
803
|
+
▶ proactive skill subagent recommendations
|
|
804
|
+
✔ recommends available skills referenced by multiple enabled configs (6.542875ms)
|
|
805
|
+
✔ filters unavailable orchestration skills and honors config bounds (0.1315ms)
|
|
806
|
+
✔ can be disabled and formats guardrails for visible suggestions (0.123834ms)
|
|
807
|
+
✔ does not discover skills when disabled and treats discovery failures as no suggestions (0.092084ms)
|
|
808
|
+
✔ proactive skill subagent recommendations (7.278792ms)
|
|
809
|
+
▶ profiles helpers
|
|
810
|
+
✔ lists no profiles when the directory is empty (1.627083ms)
|
|
811
|
+
✔ applies a saved profile by replacing only settings.subagents (5.743291ms)
|
|
812
|
+
✔ rejects profile and provider path traversal names (1.427709ms)
|
|
813
|
+
✔ refreshes a provider model catalog and writes a cache file (6.98975ms)
|
|
814
|
+
✔ does not count heuristic fallback when official metadata is present (3.556541ms)
|
|
815
|
+
✔ reuses a fresh provider model catalog (1.161625ms)
|
|
816
|
+
✔ generates quota and quality profiles from sorted provider models (1.636875ms)
|
|
817
|
+
✔ does not treat provider names like MiniMax as mini-tier tokens and prefers M3 over M2.7-highspeed for quality (1.72875ms)
|
|
818
|
+
✔ checks a profile against the registry and live probe (1.162792ms)
|
|
819
|
+
✔ checks short model ids and thinking suffixes against the registry (0.847041ms)
|
|
820
|
+
✔ profiles helpers (26.452667ms)
|
|
821
|
+
▶ prompt-template delegation bridge
|
|
822
|
+
✔ emits started/update/response on successful request (0.980292ms)
|
|
823
|
+
✔ rebuilds compact tool-call summaries into delegated response messages (0.192125ms)
|
|
824
|
+
✔ filters malformed recent output entries in updates (1.978166ms)
|
|
825
|
+
✔ returns structured error when no active context (0.162375ms)
|
|
826
|
+
✔ accepts requests when delegated cwd differs from active context (0.10725ms)
|
|
827
|
+
✔ applies pending cancel when cancel arrives before request (0.094208ms)
|
|
828
|
+
✔ cancels in-flight delegated execution (0.138125ms)
|
|
829
|
+
✔ accepts tasks payloads and emits parallelResults (0.149667ms)
|
|
830
|
+
✔ marks missing parallel task results as errors (0.95725ms)
|
|
831
|
+
✔ prompt-template delegation bridge (5.304459ms)
|
|
832
|
+
▶ prompt workflows
|
|
833
|
+
✔ discovers project workflows over user workflows (16.304958ms)
|
|
834
|
+
✔ runs a named workflow through native subagent execution (1.895083ms)
|
|
835
|
+
✔ runs prompt templates as a native chain (1.880958ms)
|
|
836
|
+
✔ prompt workflows (20.792708ms)
|
|
837
|
+
▶ DEFAULT_SUBAGENT_MAX_DEPTH
|
|
838
|
+
✔ is 2 (0.718125ms)
|
|
839
|
+
✔ DEFAULT_SUBAGENT_MAX_DEPTH (1.4895ms)
|
|
840
|
+
▶ DEFAULT_MAX_SUBAGENT_SPAWNS_PER_SESSION
|
|
841
|
+
✔ is 40 (0.927792ms)
|
|
842
|
+
✔ DEFAULT_MAX_SUBAGENT_SPAWNS_PER_SESSION (2.327541ms)
|
|
843
|
+
▶ normalizeMaxSubagentDepth
|
|
844
|
+
✔ accepts integers >= 0 (0.191041ms)
|
|
845
|
+
✔ rejects negatives and non-integers (0.107084ms)
|
|
846
|
+
✔ normalizeMaxSubagentDepth (0.38275ms)
|
|
847
|
+
▶ normalizeMaxSubagentSpawnsPerSession
|
|
848
|
+
✔ accepts integers >= 0 (0.087292ms)
|
|
849
|
+
✔ rejects negatives and non-integers (0.079167ms)
|
|
850
|
+
✔ normalizeMaxSubagentSpawnsPerSession (0.233125ms)
|
|
851
|
+
▶ resolveMaxSubagentSpawnsPerSession
|
|
852
|
+
✔ uses env when present (0.073875ms)
|
|
853
|
+
✔ falls back to config when env is absent (0.060958ms)
|
|
854
|
+
✔ falls back to default when neither env nor config is valid (0.0735ms)
|
|
855
|
+
✔ resolveMaxSubagentSpawnsPerSession (0.266291ms)
|
|
856
|
+
▶ resolveCurrentMaxSubagentDepth
|
|
857
|
+
✔ uses env when present (0.095333ms)
|
|
858
|
+
✔ falls back to config when env is absent (0.058667ms)
|
|
859
|
+
✔ falls back to default when neither env nor config is valid (0.049458ms)
|
|
860
|
+
✔ resolveCurrentMaxSubagentDepth (0.238542ms)
|
|
861
|
+
▶ top-level parallel config helpers
|
|
862
|
+
✔ resolves maxTasks from config or falls back to the default (0.060791ms)
|
|
863
|
+
✔ resolves concurrency from per-call override, config, or default (0.049291ms)
|
|
864
|
+
✔ top-level parallel config helpers (0.144416ms)
|
|
865
|
+
▶ resolveChildMaxSubagentDepth
|
|
866
|
+
✔ keeps the inherited max when agent override is absent (0.061459ms)
|
|
867
|
+
✔ tightens to the lower per-agent max (0.039542ms)
|
|
868
|
+
✔ does not relax an already stricter inherited max (0.041125ms)
|
|
869
|
+
✔ resolveChildMaxSubagentDepth (0.179166ms)
|
|
870
|
+
▶ checkSubagentDepth
|
|
871
|
+
✔ not blocked at depth=0, max=2 (0.092583ms)
|
|
872
|
+
✔ uses config max depth when env is absent (0.042666ms)
|
|
873
|
+
✔ not blocked at depth=1, max=2 (0.995125ms)
|
|
874
|
+
✔ blocks at depth=1, max=1 after one nested level (0.193333ms)
|
|
875
|
+
✔ blocked at depth=2, max=2 (0.129083ms)
|
|
876
|
+
✔ blocked at depth=3, max=2 (0.262792ms)
|
|
877
|
+
✔ blocked at depth=0, max=0 (disables subagent entirely) (0.083291ms)
|
|
878
|
+
✔ defaults to depth=0, max=2 when env vars unset (0.056958ms)
|
|
879
|
+
✔ not blocked when depth is invalid (NaN) (0.048833ms)
|
|
880
|
+
✔ checkSubagentDepth (2.063042ms)
|
|
881
|
+
▶ getSubagentDepthEnv
|
|
882
|
+
✔ increments from depth=0 (0.082583ms)
|
|
883
|
+
✔ increments from depth=1 (0.039166ms)
|
|
884
|
+
✔ uses provided max depth override (0.042667ms)
|
|
885
|
+
✔ respects inherited DM_SUBAGENT_MAX_DEPTH when override is absent (10.2965ms)
|
|
886
|
+
✔ uses the explicit child override even when a looser inherited env max exists (0.205333ms)
|
|
887
|
+
✔ falls back to depth=1 when env var is invalid (NaN) (0.459625ms)
|
|
888
|
+
✔ getSubagentDepthEnv (11.270792ms)
|
|
889
|
+
✔ row clips content to the available width (1.208666ms)
|
|
890
|
+
✔ row normalizes multiline content before clipping (0.1435ms)
|
|
891
|
+
✔ row keeps styled multiline content within the available width (0.104625ms)
|
|
892
|
+
✔ compact chain rendering uses workflow graph spans for dynamic fanout results (15.171292ms)
|
|
893
|
+
✔ compact chain rendering shows failed zero-child dynamic fanout groups (0.293375ms)
|
|
894
|
+
✔ expanded chain rendering uses workflow graph spans for dynamic fanout results (0.241291ms)
|
|
895
|
+
✔ compact multi-result rendering shows total cost in the header (0.160875ms)
|
|
896
|
+
✔ static sequential and static parallel chain rendering keep existing labels (0.206584ms)
|
|
897
|
+
▶ result intercom formatter
|
|
898
|
+
✔ builds one grouped intercom payload with status counts and child sections (0.542167ms)
|
|
899
|
+
✔ advertises async revive only for single-child results with an existing session (0.410958ms)
|
|
900
|
+
✔ advertises indexed revive for multi-child async results with existing child sessions (0.355416ms)
|
|
901
|
+
✔ does not advertise async revive for missing child session files (0.069167ms)
|
|
902
|
+
✔ attaches compact nested children under their parent result child without route secrets (0.273375ms)
|
|
903
|
+
✔ keeps full child summaries inside grouped payloads (0.285458ms)
|
|
904
|
+
✔ formats compact grouped receipts with artifacts and sessions (0.126583ms)
|
|
905
|
+
✔ strips heavy output fields from receipt details (0.062709ms)
|
|
906
|
+
✔ resolves paused and detached statuses (0.057458ms)
|
|
907
|
+
✔ result intercom formatter (2.625917ms)
|
|
908
|
+
▶ subagent extension RPC bridge
|
|
909
|
+
✔ emits ready and answers ping with versioned capability metadata (0.622791ms)
|
|
910
|
+
✔ replies to malformed request ids on the safe unknown channel (0.158333ms)
|
|
911
|
+
✔ delegates status through the existing executor action (0.441333ms)
|
|
912
|
+
✔ forces spawn requests onto the existing async execution path (0.134416ms)
|
|
913
|
+
✔ rejects foreground or management spawn requests before executor dispatch (0.176959ms)
|
|
914
|
+
✔ delegates interrupt through the existing executor action (0.095709ms)
|
|
915
|
+
✔ uses the existing async timeout control path for stop (2.154959ms)
|
|
916
|
+
✔ rejects stop requests for async runs from a different session (0.75725ms)
|
|
917
|
+
✔ subagent extension RPC bridge (5.071334ms)
|
|
918
|
+
▶ subagent run id resolver
|
|
919
|
+
✔ prefers exact foreground, then exact async, then exact nested before prefix matches (38.978291ms)
|
|
920
|
+
✔ reports one combined ambiguity for prefixes across namespaces (70.770625ms)
|
|
921
|
+
✔ limits nested lookup to active state routes when state is provided (25.610042ms)
|
|
922
|
+
✔ limits nested lookup to descendants of a scoped child address (2.198916ms)
|
|
923
|
+
✔ reports async prefix ambiguity without parsing resolver error text (57.59825ms)
|
|
924
|
+
✔ rejects unsafe nested id tokens before lookup (0.138625ms)
|
|
925
|
+
✔ subagent run id resolver (195.970708ms)
|
|
926
|
+
▶ async run status inspection
|
|
927
|
+
✔ repairs stale running status and reports diagnosis plus result path (7.402958ms)
|
|
928
|
+
✔ shows parallel mode and aggregate progress for top-level async parallel runs (1.621083ms)
|
|
929
|
+
✔ tails a readable transcript from async output artifacts (3.023166ms)
|
|
930
|
+
✔ does not fall back to another child output when an explicit transcript index output is missing (1.655709ms)
|
|
931
|
+
✔ refuses to tail status outputFile paths outside the async directory (0.850042ms)
|
|
932
|
+
✔ refuses symlink session transcript paths even under trusted roots (2.128833ms)
|
|
933
|
+
✔ shows an active read-only fleet view with transcript commands (11.070834ms)
|
|
934
|
+
✔ scopes fleet active-run discovery to the current session (11.1765ms)
|
|
935
|
+
✔ refuses transcript reads for async runs owned by another session (0.703334ms)
|
|
936
|
+
✔ does not fall back to aggregate result output for an explicit completed child index (0.779ms)
|
|
937
|
+
✔ surfaces steering counts and timestamps in exact and list status (10.776334ms)
|
|
938
|
+
✔ shows nested runs under owning steps with exact status hints (5.065375ms)
|
|
939
|
+
✔ repairs stale nested async descendants before rendering root status (8.347583ms)
|
|
940
|
+
✔ shows a warning when nested projection fails for detailed status (2.406875ms)
|
|
941
|
+
✔ shows a warning when nested projection fails for active status lists (9.518583ms)
|
|
942
|
+
✔ resolves exact nested run ids from the nested registry (43.1705ms)
|
|
943
|
+
✔ shows indexed revive guidance for completed multi-child async runs with child sessions (1.028ms)
|
|
944
|
+
✔ uses original child indexes when result metadata contains invalid children (0.437041ms)
|
|
945
|
+
✔ labels chain parallel group children with logical step and agent numbers (0.86825ms)
|
|
946
|
+
✔ shows expected intercom target for still-running async steps (0.927541ms)
|
|
947
|
+
✔ rejects ambiguous async run id prefixes (50.832833ms)
|
|
948
|
+
✔ rejects path-like async run ids (0.252541ms)
|
|
949
|
+
✔ does not advertise revive for result fallback with only a top-level session file (0.784416ms)
|
|
950
|
+
✔ treats a top-level completed result as one transcript child (2.862416ms)
|
|
951
|
+
✔ validates completed result transcript indexes as integers (1.010333ms)
|
|
952
|
+
✔ falls back to an existing result when async dir has no status file (0.68175ms)
|
|
953
|
+
✔ async run status inspection (180.53525ms)
|
|
954
|
+
▶ scheduled-runs helpers
|
|
955
|
+
✔ isScheduledRunAction narrows the four actions (0.282834ms)
|
|
956
|
+
✔ scheduledRunsEnabled is true only when explicitly enabled (0.055667ms)
|
|
957
|
+
✔ scheduledRunStorePath is stable per cwd+session and distinct otherwise (0.470333ms)
|
|
958
|
+
✔ parseScheduledRunTime handles relative delays and ISO timestamps (0.292875ms)
|
|
959
|
+
✔ parseScheduledRunTime rejects past, zero, malformed, and ambiguous schedules (1.630917ms)
|
|
960
|
+
✔ scheduled-runs helpers (3.209667ms)
|
|
961
|
+
▶ ScheduledRunManager create/list/status/cancel
|
|
962
|
+
✔ rejects schedule actions when the feature is disabled (0.934708ms)
|
|
963
|
+
✔ creates a scheduled job and arms a timer (2.442958ms)
|
|
964
|
+
✔ requires exactly one execution mode (0.606125ms)
|
|
965
|
+
✔ requires a schedule and rejects fork/async-false/clarify-true (0.206542ms)
|
|
966
|
+
✔ rejects a past schedule time (0.196875ms)
|
|
967
|
+
✔ enforces maxPending (0.551042ms)
|
|
968
|
+
✔ status resolves by exact id and prefix, and rejects ambiguous/missing (0.642875ms)
|
|
969
|
+
✔ cancel clears the timer and marks the job canceled (0.806917ms)
|
|
970
|
+
✔ cancel refuses a terminal job (0.59525ms)
|
|
971
|
+
✔ reports malformed persisted job records instead of dropping them (0.241709ms)
|
|
972
|
+
✔ reports JSON parse errors from a corrupted persisted store (0.236917ms)
|
|
973
|
+
✔ ScheduledRunManager create/list/status/cancel (9.028042ms)
|
|
974
|
+
▶ ScheduledRunManager firing
|
|
975
|
+
✔ launches the sanitized async run when the timer fires (1.854667ms)
|
|
976
|
+
✔ marks the job failed when launch returns an error result (0.760209ms)
|
|
977
|
+
✔ marks the job failed when launch throws (0.7335ms)
|
|
978
|
+
✔ re-arms instead of launching when a capped timer fires before runAt (0.712ms)
|
|
979
|
+
✔ cancel before fire prevents the launch (0.45325ms)
|
|
980
|
+
✔ ScheduledRunManager firing (5.139083ms)
|
|
981
|
+
▶ ScheduledRunManager restart restore
|
|
982
|
+
✔ re-arms pending jobs and marks stale jobs missed after a restart (0.912333ms)
|
|
983
|
+
✔ store path lives under the scheduled runs dir by default (0.031792ms)
|
|
984
|
+
✔ ScheduledRunManager restart restore (1.088084ms)
|
|
985
|
+
▶ SubagentParams schema
|
|
986
|
+
✔ includes context field for fresh/fork execution mode (0.605125ms)
|
|
987
|
+
✔ includes count and concurrency on top-level parallel mode (0.118209ms)
|
|
988
|
+
✔ allows runtime validation of management and control action strings (0.060083ms)
|
|
989
|
+
✔ includes foreground timeout aliases and turn budget (0.107666ms)
|
|
990
|
+
✔ includes subagent control fields (0.166041ms)
|
|
991
|
+
✔ does not emit description-only schema nodes (0.258917ms)
|
|
992
|
+
✔ does not emit array-typed schema nodes without items (0.229625ms)
|
|
993
|
+
✔ keeps only top-level parameter descriptions to keep the provider payload compact (0.371291ms)
|
|
994
|
+
✔ preserves TypeBox metadata while pruning provider-visible descriptions (0.076708ms)
|
|
995
|
+
✔ does not emit provider-rejected schema shapes (0.338417ms)
|
|
996
|
+
✔ uses provider-friendly anyOf unions for flexible fields and chain items (0.132167ms)
|
|
997
|
+
✔ validates representative flexible field values with TypeBox compiler (9.941083ms)
|
|
998
|
+
✔ SubagentParams schema (12.885416ms)
|
|
999
|
+
▶ normalizeSingleOutputOverride
|
|
1000
|
+
✔ treats boolean and string false as disabled output (0.753ms)
|
|
1001
|
+
✔ treats boolean and string true as the configured default output (0.113125ms)
|
|
1002
|
+
✔ passes explicit non-empty output paths through (0.070042ms)
|
|
1003
|
+
✔ normalizeSingleOutputOverride (1.704333ms)
|
|
1004
|
+
▶ resolveSingleOutputPath
|
|
1005
|
+
✔ does not resolve disabled or boolean-like output values (0.117166ms)
|
|
1006
|
+
✔ keeps absolute paths unchanged (0.116666ms)
|
|
1007
|
+
✔ resolves relative paths against requested cwd (0.078666ms)
|
|
1008
|
+
✔ resolves relative paths against runtime cwd when requested cwd is absent (0.051ms)
|
|
1009
|
+
✔ resolves relative requested cwd from runtime cwd before resolving output (0.064834ms)
|
|
1010
|
+
✔ resolves relative output paths against an explicit artifact base (0.060542ms)
|
|
1011
|
+
✔ resolveSingleOutputPath (0.614458ms)
|
|
1012
|
+
▶ injectSingleOutputInstruction
|
|
1013
|
+
✔ appends output instruction with resolved path (0.153709ms)
|
|
1014
|
+
✔ injectSingleOutputInstruction (0.18125ms)
|
|
1015
|
+
▶ injectOutputPathSystemPrompt
|
|
1016
|
+
✔ adds the authoritative runtime output path to the system prompt (0.071334ms)
|
|
1017
|
+
✔ leaves prompts unchanged when no output path is active (0.045292ms)
|
|
1018
|
+
✔ injectOutputPathSystemPrompt (0.148667ms)
|
|
1019
|
+
▶ resolveSingleOutput
|
|
1020
|
+
✔ keeps agent-written file content when the file changed during the run (0.594334ms)
|
|
1021
|
+
✔ falls back to persisting the assistant output when the file was not changed (0.473791ms)
|
|
1022
|
+
✔ preserves read errors from changed output paths (0.423541ms)
|
|
1023
|
+
✔ resolveSingleOutput (1.53925ms)
|
|
1024
|
+
▶ formatSavedOutputReference
|
|
1025
|
+
✔ includes absolute path, human-readable size, and line count (0.177ms)
|
|
1026
|
+
✔ formats larger byte sizes in KB (0.08425ms)
|
|
1027
|
+
✔ formatSavedOutputReference (0.291666ms)
|
|
1028
|
+
▶ validateFileOnlyOutputMode
|
|
1029
|
+
✔ requires an output path for file-only mode (0.0515ms)
|
|
1030
|
+
✔ validateFileOnlyOutputMode (0.069583ms)
|
|
1031
|
+
▶ finalizeSingleOutput
|
|
1032
|
+
✔ formats saved-path messaging around the already-resolved output (0.082125ms)
|
|
1033
|
+
✔ returns only the saved-output reference in file-only mode (0.054708ms)
|
|
1034
|
+
✔ does not add save messaging on failed runs (0.041459ms)
|
|
1035
|
+
✔ finalizeSingleOutput (0.208583ms)
|
|
1036
|
+
▶ skills filesystem fallback
|
|
1037
|
+
✔ discovers project skills from filesystem paths (118.816125ms)
|
|
1038
|
+
✔ discovers project skills nested below grouping directories (10.2925ms)
|
|
1039
|
+
✔ stops recursive project skill discovery at the first SKILL.md anchor (4.995875ms)
|
|
1040
|
+
✔ skips hidden directories and node_modules while recursing for project skills (5.360583ms)
|
|
1041
|
+
✔ keeps direct markdown skills from explicit settings roots after parent recursion (2.747625ms)
|
|
1042
|
+
✔ keeps nested skills from higher-priority explicit settings roots after parent recursion (2.983667ms)
|
|
1043
|
+
✔ keeps nested skills from higher-priority explicit settings roots when the root path is duplicated (4.536ms)
|
|
1044
|
+
✔ resolves and reads skill content via filesystem fallback (3.836917ms)
|
|
1045
|
+
✔ builds lazy skill references instead of inlining full skill bodies (5.570709ms)
|
|
1046
|
+
✔ escapes XML-sensitive skill metadata in lazy references (2.846958ms)
|
|
1047
|
+
✔ does not expose dm-subagents as a child-injectable skill (7.602834ms)
|
|
1048
|
+
✔ classifies package-provided skills as project-package (3.31ms)
|
|
1049
|
+
✔ prefers project skills over project-package skills with the same name (4.781166ms)
|
|
1050
|
+
✔ discovers skills from project settings packages (3.751917ms)
|
|
1051
|
+
✔ discovers skills from project settings npm package sources (4.236584ms)
|
|
1052
|
+
✔ discovers skills from the current cwd package (3.052458ms)
|
|
1053
|
+
✔ falls back to the runtime cwd when the execution cwd lacks the skill (4.834041ms)
|
|
1054
|
+
✔ discovers skills from user settings packages (132.528958ms)
|
|
1055
|
+
✔ discovers skills from user settings git package sources (128.096416ms)
|
|
1056
|
+
✔ discovers skills from user settings scoped npm package sources (117.078583ms)
|
|
1057
|
+
✔ surfaces malformed project settings files instead of silently ignoring them (1.643209ms)
|
|
1058
|
+
✔ surfaces malformed explicit settings package manifests instead of silently ignoring them (1.792084ms)
|
|
1059
|
+
✔ skills filesystem fallback (575.592041ms)
|
|
1060
|
+
▶ slash subagent bridge requester context
|
|
1061
|
+
✔ uses request ctx instead of stale fallback context when provided (0.409584ms)
|
|
1062
|
+
✔ slash subagent bridge requester context (0.729833ms)
|
|
1063
|
+
▶ parseSingleTaskToken
|
|
1064
|
+
✔ parses a quoted task (0.293792ms)
|
|
1065
|
+
✔ parses an agent with inline config and no task (0.13375ms)
|
|
1066
|
+
✔ parses a task via -- delimiter (0.044ms)
|
|
1067
|
+
✔ parses extended metadata in inline config (0.054666ms)
|
|
1068
|
+
✔ ignores a non-positive count (0.052791ms)
|
|
1069
|
+
✔ parseSingleTaskToken (0.833ms)
|
|
1070
|
+
▶ parseGroupSegment
|
|
1071
|
+
✔ parses a static parallel group with two quoted tasks (1.118375ms)
|
|
1072
|
+
✔ rejects groups with a single task (0.568167ms)
|
|
1073
|
+
✔ rejects groups with unbalanced parentheses (0.383041ms)
|
|
1074
|
+
✔ parses a trailing group-options suffix (0.67ms)
|
|
1075
|
+
✔ defaults to an empty group config without a suffix (0.536125ms)
|
|
1076
|
+
✔ rejects a non-bracketed group suffix (0.064125ms)
|
|
1077
|
+
✔ parseGroupSegment (3.869625ms)
|
|
1078
|
+
▶ hasGroupSyntax
|
|
1079
|
+
✔ detects parentheses (0.083416ms)
|
|
1080
|
+
✔ does not treat a bare pipe as group syntax (0.027292ms)
|
|
1081
|
+
✔ ignores parens inside quotes (0.021083ms)
|
|
1082
|
+
✔ returns false for plain chain input (0.019041ms)
|
|
1083
|
+
✔ does not treat unquoted parens inside a -- task as group syntax (0.024583ms)
|
|
1084
|
+
✔ still detects a group that opens a step (0.021708ms)
|
|
1085
|
+
✔ hasGroupSyntax (0.259417ms)
|
|
1086
|
+
▶ parseChainExpression
|
|
1087
|
+
✔ parses sequential + group + sequential (0.122291ms)
|
|
1088
|
+
✔ rejects expression without arrows (0.035ms)
|
|
1089
|
+
✔ rejects groups with one task (0.038833ms)
|
|
1090
|
+
✔ respects quotes when splitting on arrows (0.044667ms)
|
|
1091
|
+
✔ allows balanced parens in a -- task after a group (0.04325ms)
|
|
1092
|
+
✔ still rejects truly unmatched parens in a non-group segment (0.036084ms)
|
|
1093
|
+
✔ parseChainExpression (0.38025ms)
|
|
1094
|
+
▶ buildChainExpressionSteps
|
|
1095
|
+
✔ emits a chain with a { parallel: [...] } step for groups (88.314417ms)
|
|
1096
|
+
✔ preserves backward-compatible linear chain behavior (1.986208ms)
|
|
1097
|
+
✔ falls back to shared task when first step has no task (1.952917ms)
|
|
1098
|
+
✔ reports parallel group errors as notifications (0.122292ms)
|
|
1099
|
+
✔ propagates inline metadata onto chain steps (1.621375ms)
|
|
1100
|
+
✔ applies count only inside a parallel group (1.954583ms)
|
|
1101
|
+
✔ propagates group-level options onto the parallel step (1.558083ms)
|
|
1102
|
+
✔ rejects an invalid acceptance level (1.673ms)
|
|
1103
|
+
✔ rejects inline acceptance levels that require object contracts (1.609708ms)
|
|
1104
|
+
✔ loads an inline outputSchema path and rejects a missing one (3.219916ms)
|
|
1105
|
+
✔ keeps a bare pipe in a -- task on the legacy single-agent path (1.620417ms)
|
|
1106
|
+
✔ keeps unquoted parens in a -- task on the legacy single-agent path (1.759459ms)
|
|
1107
|
+
✔ allows balanced parens in a -- task after a group step (1.546125ms)
|
|
1108
|
+
✔ exports a stable parallel group usage hint (0.045834ms)
|
|
1109
|
+
✔ buildChainExpressionSteps (109.1545ms)
|
|
1110
|
+
▶ async stale-run reconciliation
|
|
1111
|
+
✔ classifies pid liveness without treating EPERM as dead (0.312042ms)
|
|
1112
|
+
✔ marks a running async run failed when the runner pid is dead and no result exists (1.748834ms)
|
|
1113
|
+
✔ includes runner stderr diagnostics when repairing a stale startup crash (1.275625ms)
|
|
1114
|
+
✔ keeps stale repair successful when the event log cannot be appended (1.080833ms)
|
|
1115
|
+
✔ repairs stale status with per-child result outcomes (0.870541ms)
|
|
1116
|
+
✔ fails a stale run when a live pid has not updated beyond the stale threshold (0.952917ms)
|
|
1117
|
+
✔ preserves an existing result instead of overwriting it with stale-run failure (0.934875ms)
|
|
1118
|
+
✔ async stale-run reconciliation (7.6ms)
|
|
1119
|
+
▶ status format helpers
|
|
1120
|
+
✔ formats activity labels consistently (0.605ms)
|
|
1121
|
+
✔ aggregates step status and parallel outcomes (0.142666ms)
|
|
1122
|
+
✔ status format helpers (1.34225ms)
|
|
1123
|
+
▶ dm-subagents source-layout contract
|
|
1124
|
+
✔ tracks nicobailon source-layout v0.33.1 as dm-subagents (0.545167ms)
|
|
1125
|
+
✔ keeps source-layout tools and /agents command visible (0.224625ms)
|
|
1126
|
+
✔ documents only the capabilities present in the nicobailon source layout (0.7525ms)
|
|
1127
|
+
✔ does not leak user-facing upstream subagents branding (8.264166ms)
|
|
1128
|
+
✔ dm-subagents source-layout contract (10.225584ms)
|
|
1129
|
+
▶ subagent control attention state
|
|
1130
|
+
✔ marks a run as needing attention only after the idle threshold (0.3475ms)
|
|
1131
|
+
✔ builds compact needs-attention control events (0.345042ms)
|
|
1132
|
+
✔ supports a specific attention message (0.057166ms)
|
|
1133
|
+
✔ builds terminal completion guard control events (0.045375ms)
|
|
1134
|
+
✔ defaults notifications to active-long-running and needs attention (0.06825ms)
|
|
1135
|
+
✔ defaults active-long-running notices to elapsed time only (0.061625ms)
|
|
1136
|
+
✔ supports opt-in turn and token long-running thresholds (0.056166ms)
|
|
1137
|
+
✔ resolves custom notification config (0.071042ms)
|
|
1138
|
+
✔ falls back to defaults for invalid non-empty notification arrays (0.061584ms)
|
|
1139
|
+
✔ allows empty notification arrays to disable notifications (0.087584ms)
|
|
1140
|
+
✔ formats control notices with a proactive hint and concrete commands (0.156708ms)
|
|
1141
|
+
✔ formats active-long-running notices as informational (0.091917ms)
|
|
1142
|
+
✔ formats terminal completion guard notices without live-run commands (0.054708ms)
|
|
1143
|
+
✔ formats intercom notifications with the same control commands (0.057791ms)
|
|
1144
|
+
✔ dedupes notifications once per child target and attention state (0.090459ms)
|
|
1145
|
+
✔ subagent control attention state (2.710834ms)
|
|
1146
|
+
▶ subagent prompt runtime
|
|
1147
|
+
✔ nudges after the tool budget soft limit and blocks configured tools after hard (0.952167ms)
|
|
1148
|
+
✔ delivers steering inbox requests as mid-run user messages (5.004333ms)
|
|
1149
|
+
✔ registered structured_output tool accepts valid schema output and writes the capture file (3.182667ms)
|
|
1150
|
+
✔ strips only the project context block (0.122ms)
|
|
1151
|
+
✔ strips only the inherited skills block (0.097542ms)
|
|
1152
|
+
✔ can strip both inherited sections together (0.201625ms)
|
|
1153
|
+
✔ injects a child-only boundary that forbids proposing or running subagents (0.147583ms)
|
|
1154
|
+
✔ replaces inherited child boundaries with the fanout boundary when authorized (0.321125ms)
|
|
1155
|
+
✔ replaces inherited fanout boundaries with the strict boundary when fanout is not authorized (0.227375ms)
|
|
1156
|
+
✔ keeps explicitly injected skill content when inherited skills are stripped (0.172584ms)
|
|
1157
|
+
✔ keeps configured lazy skill references when inherited skills are stripped (0.130833ms)
|
|
1158
|
+
✔ strips the subagent orchestration skill even when inherited skills remain (4.150417ms)
|
|
1159
|
+
✔ strips explicit dm-subagents skill injection from child prompts (0.065709ms)
|
|
1160
|
+
✔ strips parent-only subagent custom messages from forked child context (0.099958ms)
|
|
1161
|
+
✔ strips prior parent subagent tool calls and results from forked child context (0.07525ms)
|
|
1162
|
+
✔ preserves live nested subagent calls and results in fanout child context (0.057584ms)
|
|
1163
|
+
✔ defers native supervisor registration until runtime events and respects installed pi-intercom tools (0.232208ms)
|
|
1164
|
+
✔ keeps installed pi-intercom while filling only a missing child contact_supervisor tool (0.084583ms)
|
|
1165
|
+
✔ registers native supervisor tools at runtime when pi-intercom is absent (0.078292ms)
|
|
1166
|
+
✔ sets the child intercom session name from env during agent startup (0.059334ms)
|
|
1167
|
+
✔ rewrites the final child-visible prompt through before_agent_start (0.082167ms)
|
|
1168
|
+
✔ uses the fanout boundary through before_agent_start when fanout env is set (0.0585ms)
|
|
1169
|
+
✔ filters parent-only artifacts from polluted fork context while preserving ordinary history (0.077625ms)
|
|
1170
|
+
✔ does not rewrite child context when no parent-only artifacts are present (0.042375ms)
|
|
1171
|
+
✔ subagent prompt runtime (16.456ms)
|
|
1172
|
+
▶ resolveTempScopeId
|
|
1173
|
+
✔ prefers uid when available (0.266667ms)
|
|
1174
|
+
✔ falls back to environment usernames when uid is unavailable (0.110042ms)
|
|
1175
|
+
✔ falls back to os.userInfo when environment is missing (0.052875ms)
|
|
1176
|
+
✔ falls back to home path when os.userInfo throws (0.922583ms)
|
|
1177
|
+
✔ resolveTempScopeId (1.790834ms)
|
|
1178
|
+
▶ shared temp paths
|
|
1179
|
+
✔ anchors shared temp directories under one scoped root (0.284959ms)
|
|
1180
|
+
✔ writes async config files under the same scoped temp root (0.142416ms)
|
|
1181
|
+
✔ shared temp paths (0.555042ms)
|
|
1182
|
+
▶ tool-budget module
|
|
1183
|
+
✔ defaults block tools to read/search tools (0.553458ms)
|
|
1184
|
+
✔ accepts soft and wildcard block (0.060333ms)
|
|
1185
|
+
✔ rejects unsafe configs (0.071166ms)
|
|
1186
|
+
✔ serializes and decodes env config (0.091291ms)
|
|
1187
|
+
✔ tracks state and block decisions (0.090417ms)
|
|
1188
|
+
✔ formats user-facing budget messages (0.09125ms)
|
|
1189
|
+
✔ tool-budget module (1.371917ms)
|
|
1190
|
+
(node:44651) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
|
|
1191
|
+
(Use `node --trace-warnings ...` to show where the warning was created)
|
|
1192
|
+
(node:47235) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
|
|
1193
|
+
(Use `node --trace-warnings ...` to show where the warning was created)
|
|
1194
|
+
(node:49839) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
|
|
1195
|
+
(Use `node --trace-warnings ...` to show where the warning was created)
|
|
1196
|
+
[dm-subagents] subagent-tool-description.md was not found or valid for toolDescriptionMode "custom"; using full description.
|
|
1197
|
+
(node:50811) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
|
|
1198
|
+
(Use `node --trace-warnings ...` to show where the warning was created)
|
|
1199
|
+
[dm-subagents] Ignoring invalid toolDescriptionMode "tiny"; expected "full", "compact", or "custom".
|
|
1200
|
+
(node:51753) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
|
|
1201
|
+
(Use `node --trace-warnings ...` to show where the warning was created)
|
|
1202
|
+
▶ registered subagent tool description
|
|
1203
|
+
✔ keeps full mode safe and free of hardcoded builtin agent names (1.2405ms)
|
|
1204
|
+
✔ offers a compact mode that keeps safety-critical guidance (0.4515ms)
|
|
1205
|
+
✔ renders a custom project description with placeholders and mandatory safety guidance (2.286084ms)
|
|
1206
|
+
✔ appends full safety guidance when custom prose only includes the safety heading (0.5865ms)
|
|
1207
|
+
✔ keeps mandatory safety guidance last when custom prose embeds it before an override (0.469125ms)
|
|
1208
|
+
✔ falls back to full mode when custom mode has no valid file (0.270541ms)
|
|
1209
|
+
✔ falls back to full mode when toolDescriptionMode is invalid (0.0705ms)
|
|
1210
|
+
✔ registers full, compact, custom, and fallback descriptions from extension config (4577.001333ms)
|
|
1211
|
+
✔ registered subagent tool description (4583.355375ms)
|
|
1212
|
+
▶ sumResultsUsage
|
|
1213
|
+
✔ aggregates full child usage (0.471875ms)
|
|
1214
|
+
✔ sumResultsUsage (0.789292ms)
|
|
1215
|
+
▶ sumResultsCost
|
|
1216
|
+
✔ aggregates input tokens, output tokens, and cost (0.1065ms)
|
|
1217
|
+
✔ returns zero totals when all aggregated fields are zero (0.04675ms)
|
|
1218
|
+
✔ includes attached nested subagent costs (0.053792ms)
|
|
1219
|
+
✔ sumResultsCost (0.283083ms)
|
|
1220
|
+
▶ ts-loader
|
|
1221
|
+
✔ rewrites .js imports when the parent path contains spaces (3.178667ms)
|
|
1222
|
+
✔ ts-loader (3.747208ms)
|
|
1223
|
+
▶ turn-budget module
|
|
1224
|
+
▶ DEFAULT_TURN_BUDGET_GRACE_TURNS
|
|
1225
|
+
✔ defaults to one grace turn (0.239083ms)
|
|
1226
|
+
✔ DEFAULT_TURN_BUDGET_GRACE_TURNS (0.486792ms)
|
|
1227
|
+
▶ appendTurnBudgetSystemPrompt
|
|
1228
|
+
✔ returns the system prompt unchanged when no budget is configured (2.010291ms)
|
|
1229
|
+
✔ appends a turn-budget block after an existing system prompt (0.17475ms)
|
|
1230
|
+
✔ emits only the turn-budget block when the system prompt is empty (0.055959ms)
|
|
1231
|
+
✔ trims surrounding whitespace from the existing system prompt before joining (0.052166ms)
|
|
1232
|
+
✔ pluralizes maxTurns for single and multiple turns (0.050209ms)
|
|
1233
|
+
✔ pluralizes graceTurns for one versus many or zero (0.053916ms)
|
|
1234
|
+
✔ appendTurnBudgetSystemPrompt (2.53375ms)
|
|
1235
|
+
▶ turnBudgetSoftNote
|
|
1236
|
+
✔ describes the wrap-up request with soft limit and grace values (0.072625ms)
|
|
1237
|
+
✔ pluralizes the turn count (0.085667ms)
|
|
1238
|
+
✔ turnBudgetSoftNote (0.226375ms)
|
|
1239
|
+
▶ turnBudgetExceededMessage
|
|
1240
|
+
✔ describes the hard abort with soft limit plus grace (0.077084ms)
|
|
1241
|
+
✔ pluralizes the turn count (0.0615ms)
|
|
1242
|
+
✔ turnBudgetExceededMessage (0.18475ms)
|
|
1243
|
+
▶ formatTurnBudgetOutput
|
|
1244
|
+
✔ prefixes the abort message onto captured partial output (0.046417ms)
|
|
1245
|
+
✔ preserves multi-line partial output verbatim (0.031875ms)
|
|
1246
|
+
✔ returns only the message when there is no partial output (0.024833ms)
|
|
1247
|
+
✔ formatTurnBudgetOutput (0.148792ms)
|
|
1248
|
+
▶ initialTurnBudgetState
|
|
1249
|
+
✔ starts within budget at turn zero and copies the resolved budget (0.347041ms)
|
|
1250
|
+
✔ initialTurnBudgetState (0.371791ms)
|
|
1251
|
+
▶ turnBudgetState
|
|
1252
|
+
✔ marks a wrap-up request without recording an exceeded turn (0.257167ms)
|
|
1253
|
+
✔ marks an exceeded budget and records the turn where it happened (0.176042ms)
|
|
1254
|
+
✔ records the wrap-up request at the soft-limit turn even when exceeded (0.035875ms)
|
|
1255
|
+
✔ turnBudgetState (0.534584ms)
|
|
1256
|
+
▶ shouldAbortForTurnBudget
|
|
1257
|
+
✔ allows a terminal assistant response on the final grace turn (0.048458ms)
|
|
1258
|
+
✔ aborts a non-terminal assistant response on the final grace turn (0.022875ms)
|
|
1259
|
+
✔ aborts turns beyond the grace window even if the message is terminal (0.01975ms)
|
|
1260
|
+
✔ allows a terminal response at the soft limit when grace turns are zero (0.021708ms)
|
|
1261
|
+
✔ shouldAbortForTurnBudget (0.151042ms)
|
|
1262
|
+
▶ turn budget state transitions
|
|
1263
|
+
✔ walks within-budget -> wrap-up-requested -> exceeded as turns accrue (0.041208ms)
|
|
1264
|
+
✔ can represent immediate exceedance when grace turns are zero (0.169958ms)
|
|
1265
|
+
✔ turn budget state transitions (0.240792ms)
|
|
1266
|
+
✔ turn-budget module (5.210542ms)
|
|
1267
|
+
▶ wrapForkTask
|
|
1268
|
+
✔ wraps task with default preamble (0.368209ms)
|
|
1269
|
+
✔ returns task unchanged when disabled (0.059583ms)
|
|
1270
|
+
✔ is idempotent for already wrapped tasks (0.044208ms)
|
|
1271
|
+
✔ wrapForkTask (0.826792ms)
|
|
1272
|
+
▶ wait tool
|
|
1273
|
+
✔ returns immediately when there is nothing to wait for (1.489959ms)
|
|
1274
|
+
✔ with all:true, resolves once every active run reaches a terminal state (31.29225ms)
|
|
1275
|
+
✔ wakes when a run needs attention, not only on completion (29.333709ms)
|
|
1276
|
+
✔ reports runs that already need attention before waiting starts (20.010958ms)
|
|
1277
|
+
✔ by default returns as soon as the FIRST run finishes, leaving the rest in flight (27.525958ms)
|
|
1278
|
+
✔ only waits for runs belonging to the current session (0.650291ms)
|
|
1279
|
+
✔ summarizes only runs that were active when waiting began (13.995458ms)
|
|
1280
|
+
✔ can target a single run by id prefix (26.885125ms)
|
|
1281
|
+
✔ rejects ambiguous id prefixes but lets exact ids win (28.806459ms)
|
|
1282
|
+
✔ times out while runs are still active and reports them (19.029709ms)
|
|
1283
|
+
✔ resolves early when the turn is aborted (19.1645ms)
|
|
1284
|
+
✔ wakes immediately on an event bus emission instead of waiting the poll interval (29.25025ms)
|
|
1285
|
+
✔ still resolves via poll when no event bus is provided (fallback) (14.073292ms)
|
|
1286
|
+
✔ wait tool (262.520084ms)
|
|
1287
|
+
▶ nested widget rendering
|
|
1288
|
+
✔ uses aggregate lines when collapsed and full child rows when expanded (8.902125ms)
|
|
1289
|
+
✔ collapses descendants beyond the nested depth budget (0.232166ms)
|
|
1290
|
+
✔ shows running descendants even after the parent step is complete (4.266417ms)
|
|
1291
|
+
✔ degrades stale child summaries to id and state (0.179417ms)
|
|
1292
|
+
✔ rerenders when only nested state changes (0.122583ms)
|
|
1293
|
+
✔ nested widget rendering (14.122208ms)
|
|
1294
|
+
▶ nested child DM process visibility
|
|
1295
|
+
✔ hides foreground child DM process windows on Windows (0.408417ms)
|
|
1296
|
+
✔ hides background child DM process windows on Windows (0.201209ms)
|
|
1297
|
+
✔ nested child DM process visibility (0.988209ms)
|
|
1298
|
+
▶ workflow graph snapshots
|
|
1299
|
+
✔ maps sequential chains with phase, label, output name, and stable flat indexes (0.684583ms)
|
|
1300
|
+
✔ maps a long alternating worker and reviewer chain without losing indexes (0.130709ms)
|
|
1301
|
+
✔ maps parallel chain steps with stable group and child indexes (0.104125ms)
|
|
1302
|
+
✔ marks partially completed parallel groups as running (0.066583ms)
|
|
1303
|
+
✔ summarizes mixed terminal parallel group statuses with explicit precedence (0.058708ms)
|
|
1304
|
+
✔ uses dynamic group status overrides for empty or aggregate-failure fanout states (0.206959ms)
|
|
1305
|
+
✔ workflow graph snapshots (1.660417ms)
|
|
1306
|
+
▶ worktree
|
|
1307
|
+
✔ createWorktrees returns expected structure (265.730792ms)
|
|
1308
|
+
✔ createWorktrees maps subdirectory cwd to each agentCwd (176.059ms)
|
|
1309
|
+
✔ previews expected worktree agent cwd for repository subdirectories (107.758458ms)
|
|
1310
|
+
✔ creates worktrees under a configured base directory (145.799625ms)
|
|
1311
|
+
✔ uses DM_SUBAGENTS_WORKTREE_DIR when no base directory is configured (152.853584ms)
|
|
1312
|
+
✔ createWorktrees rejects dirty repositories (96.845292ms)
|
|
1313
|
+
✔ findWorktreeTaskCwdConflict allows omitted or matching task cwd values (0.192833ms)
|
|
1314
|
+
✔ findWorktreeTaskCwdConflict treats relative task cwd values as relative to the shared cwd (0.085542ms)
|
|
1315
|
+
✔ findWorktreeTaskCwdConflict returns the first conflicting task cwd (0.175709ms)
|
|
1316
|
+
✔ diffWorktrees captures committed, modified, and new files without staging the node_modules symlink (204.110208ms)
|
|
1317
|
+
✔ cleanupWorktrees removes worktrees and branches (211.99575ms)
|
|
1318
|
+
✔ createWorktrees creates node_modules symlink when node_modules exists (144.5175ms)
|
|
1319
|
+
✔ diffWorktrees preserves a tracked node_modules symlink (207.598708ms)
|
|
1320
|
+
✔ runs a repo-relative worktree setup hook and records synthetic paths (440.063917ms)
|
|
1321
|
+
✔ runs an absolute worktree setup hook path (412.845667ms)
|
|
1322
|
+
✔ rejects bare command names for worktree setup hooks (99.324917ms)
|
|
1323
|
+
✔ rejects tracked synthetic paths from hook output (413.532291ms)
|
|
1324
|
+
✔ rejects absolute synthetic paths from hook output (427.839334ms)
|
|
1325
|
+
✔ excludes hook-created synthetic files from captured patch output (454.817875ms)
|
|
1326
|
+
✔ cleans up created worktrees when a later hook setup fails (482.614125ms)
|
|
1327
|
+
✔ fails when the hook exceeds the configured timeout (183.726709ms)
|
|
1328
|
+
✔ worktree (4629.327542ms)
|
|
1329
|
+
ℹ tests 974
|
|
1330
|
+
ℹ suites 169
|
|
1331
|
+
ℹ pass 974
|
|
1332
|
+
ℹ fail 0
|
|
1333
|
+
ℹ cancelled 0
|
|
1334
|
+
ℹ skipped 0
|
|
1335
|
+
ℹ todo 0
|
|
1336
|
+
ℹ duration_ms 8176.840042
|