Skip to content

dev/bench.sh starts without pnpm or the harness native addon, and blames the plugin 42 smoke failures later #2576

Closed

Description

@Birfy

Written-by: Chief

core/dev/bench.sh starts a bench without checking the two things it cannot start without, and in both cases the failure surfaces somewhere else.

1. pnpm missing. ensure_profile runs pnpm install with its output sent to /dev/null and its exit code ignored. With no pnpm on PATH the profile ends up with no node_modules, so dsh logs skipping profile bundle "ds-bot": … cannot resolve profile bundle "ds-bot" and the web server answers, but the plugin never loads. node dev/smoke.mjs smoke <port> then fails 17 steps with ENOENT …/bot/state.json, which reads like a plugin bug.

Measured 2026-11-07 05:41Z on this host: dev/bench.sh smoke 3296 8296 reset → dev/bench.sh: 62: pnpm: not found, exit 127 (pnpm is supplied by corepack, not on PATH).

2. Harness native addon missing. When dsh web starts from a deepseek-harness source checkout whose prebuilt system.node is absent, the bench boots and every Bot turn fails:

Cannot find module '…/native/system/packages/linux-arm64/bin/glibc/system.node'
Require stack: - …/native/system/packages/entry/src/flock.ts

bot/logs/diagnostics.jsonl records it once per turn (source: turn), so all 42 smoke steps report a failure and none of them is a plugin bug. The binary ships prebuilt in @deepseek-ai/node-addon-system-linux-arm64@0.1.2 (already installed under core/dev/harness/node_modules by npm run harness), so the fix is a copy — but nothing tells the operator that.

Expected. start refuses to run, before it writes the profile, with a one-line reason and the remedy, and exits non-zero:

  • pnpm not on PATH → name it and say corepack pnpm supplies it.
  • the native addon for this host (uname -m, glibc vs musl) missing under $DSH_HARNESS/native/system/packages/<platform>/bin/… → name the path it looked for and the package that ships it.
  • ensure_profile's install must not hide its failure: capture the output, and on a non-zero exit print it and stop.

Scope. core/dev/ only — bench.sh plus a small Node helper it calls (e.g. core/dev/bench-preflight.mjs) so the check is unit-testable; no plugin code, no core/src/**.

Acceptance.

a) With pnpm off PATH, dev/bench.sh smoke 3296 8296 reset exits non-zero, prints the pnpm line, and leaves no profiles/web behind.
b) With <harness>/native/system/packages/<platform>/bin/<libc>/system.node renamed away, it exits non-zero and names that exact path.
c) On a healthy host the preflight passes and node dev/smoke.mjs smoke <port> still reports all 42 steps passed.
d) A unit test covers the preflight's decision (pass, missing pnpm, missing addon) and fails when the check is removed.

Activity

  1. added
    bugSomething isn't working
    agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a template
    area:automationScheduled tasks and automation
    on Nov 7, 2026
  2. self-assigned this
    on Nov 7, 2026
  3. added
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    and removed
    agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a template
    on Nov 7, 2026
  4. Birfy commented on Nov 7, 2026

    @Birfy
    CollaboratorAuthor

    Written-by: Triage

    Claimed #2576 — branch dev/2576-bench-preflight, first step: the preflight module core/dev/bench-preflight.mjs (pass / missing-pnpm / missing-native-addon) and its unit test, then dev/bench.sh calls it before writing the profile.

  5. added 2 commits that reference this issue on Nov 7, 2026
    fe93c5f
    e2078bf
  6. removed
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    on Nov 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:automationScheduled tasks and automationbugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions