@ran-sh/dsh-crew 1.10.9 → 2.0.0

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-crew",
3
- "version": "1.10.9",
3
+ "version": "2.0.0",
4
4
  "description": "Dispatch subtasks to DeepSeek Harness (DSH) agents as native subagents with live progress",
5
5
  "author": {
6
6
  "name": "ZSeven-W"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ran-sh/dsh-crew",
3
- "version": "1.10.9",
3
+ "version": "2.0.0",
4
4
  "type": "module",
5
5
  "main": "./src/hub/entry.mjs",
6
6
  "bin": {
package/src/hub/index.mjs CHANGED
@@ -22,6 +22,7 @@ import { readHarnessModelCatalog } from '../model-catalog.mjs';
22
22
  import { appendDeliveryInstructions, prependJobIdentity, parseDeliveryReport, formatDeliveryMetadata } from '../delivery.mjs';
23
23
  import { captureWorkspaceBaseline, captureWorkspaceDiff, NOT_A_GIT_REPOSITORY } from '../workspace-audit.mjs';
24
24
  import { applyWorkspaceEvidence, buildOutcome, JOB_PHASES } from '../workflow.mjs';
25
+ import { normalizeReviewVerdict } from '../workflow-runtime.mjs';
25
26
  import { boundedMachineCodeFromError } from '../structured-error-code.mjs';
26
27
  import { createCanonicalJobEvent, projectWorkflowView } from '../job-contracts.mjs';
27
28
  import { getHubRuntimeIdentity } from '../runtime-identity.mjs';
@@ -1096,12 +1097,12 @@ export class WorkerRegistry { constructor(ctx) {
1096
1097
  job.delivery_missing = parsed.missing;
1097
1098
  job.delivery_metadata = formatDeliveryMetadata(parsed);
1098
1099
  if (job.role === 'reviewer') {
1099
- const verdictText = String(parsed.sections?.Verdict ?? '').trim().toLowerCase();
1100
- const verdict = /^(approve|approved|pass)\b/.test(verdictText)
1101
- ? 'approve'
1102
- : /request.*chang|chang.*request|reject|needs changes/i.test(verdictText)
1103
- ? 'request_changes'
1104
- : 'inconclusive';
1100
+ // The rule for reading a verdict lives in one place. This block used to
1101
+ // carry its own copy, and the two copies drifted: the shared one learned
1102
+ // to see through `**Approved**`, this one did not, so the Hub recorded
1103
+ // `inconclusive` for a reviewer whose report the workflow accepted —
1104
+ // which also kept the readiness matrix from seeing a real review.
1105
+ const verdict = normalizeReviewVerdict(parsed.sections?.Verdict ?? job.result ?? '');
1105
1106
  const lines = (value) => String(value ?? '').split(/\r?\n/).map((line) => line.trim()).filter(Boolean).slice(0, 40);
1106
1107
  job.review = {
1107
1108
  verdict, status: job.status, delivery_complete: parsed.complete === true,
@@ -36,7 +36,7 @@ export {
36
36
  // included in the identity contract.
37
37
  const RUNTIME_ID = randomUUID();
38
38
 
39
- export const RUNTIME_VERSION = '1.10.9';
39
+ export const RUNTIME_VERSION = '2.0.0';
40
40
  export const HUB_PROTOCOL_VERSION = 1;
41
41
 
42
42
  export const HUB_CAPABILITIES = Object.freeze([