Skip to content

Judge from the probe output and write the qualification record - #95

Merged
linuxnow merged 9 commits into
mainfrom
feat/probe-output-reader-94
Oct 19, 2026
Merged

linuxnow merged 9 commits into
mainfrom
feat/probe-output-reader-94

Conversation

@linuxnow

@linuxnow linuxnow commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Closes #94.

What: plugin-qualify now judges from plugin-hostd's probe output and writes the qualification record.

  • readProbeOutput refuses a major it does not know (probe.format.major-unknown), a document carrying a verdict, and a document whose cstatesLimited / meetsProtocol disagree with cpuidle[], the governor and unmet[] (probe.format.derived-mismatch). Plugin-hostd's three example documents are in fixtures/probe-output/.
  • Cost is read at rate and quantum (cpuCost.perRateQuantum); only the old per-rate format still reads per rate. A pair the grid lacks is hosting.cost.unmeasured-at-rate-and-quantum.
  • The judge converts the probe output into the facts the existing judge reads (no second judge). CLAP verdicts equal rtSafetyDocument's; LV2 is judged on the interposer counts. Cost reasons sit beside the verdict at each profile's rate and quantum.
  • Every named CLAP or LV2 plugin is measured through the runner (OMX_PROBE_RUNNER, default plugin-hostd-probe), which keeps the deadline; no timeout of ours wraps it. The "not wired for LV2" refusal is gone. --out writes the record and a byte copy of the probe output, named in the record with its SHA-256.
  • plugin-qualify judge [--host-profile ..] [--qualification-dir ..] <probe-output>... for outputs already written.

Not done, and why (also on the issue): the scan's omx-clap-scan timeout stays (stage 5); lv2-measure.mjs stays until the runner has an LV2 child (plugin-hostd#76); --all still refuses when LV2 bundles are on the path (no LV2 enumeration); the descriptor fingerprint is not in the record yet. The runner ships in plugin-hostd 0.4.0 (CLAP only; the LV2 child, plugin-hostd#76, is on its main and in no release yet). The RPM and DEB now require plugin-hostd >= 0.4.0, so the installed package finds plugin-hostd-probe; the unit tests' live CLI cases still use a stand-in (src/fake-probe-runner.support.mjs) that runs the real prober. The build job now installs plugin-hostd 0.4.0 from the channel, so a CLI test through the real runner is possible; that is #101, not this PR.

How to verify: pnpm install && make -C native deps all && pnpm lint && pnpm test. The proof is src/probe-judge.test.ts: verdicts from probe outputs equal verdicts from today's documents for 20 line/profile cases, and two quanta of different cost give two different cost reasons. Each guard was broken, seen red and restored.

…ostd-probe measures every CLAP plugin (#94)

Since the judge measures through the probe runner, an installed plugin-qualify with no plugin-hostd
answers 'cannot run the probe runner' and reads not-measured: the Install and qualify jobs went red
on exactly that (rt-safe.clap exited 2). The RPM requires plugin-hostd >= 0.4.0, the DEB depends on
plugin-hostd (>= 0.4.0~), the first release that ships the runner; README and the LV2 note say so.
… runs gave a probe output (#94)

A target measured under two offers whose second run failed read not-measured in the table, but its
first run stayed in runs and documents, so --out wrote a record for it and --pins pinned it. The runs
of one target are now collected apart and appended only after the last one succeeds, as the old CLAP
pass did. Test: the same plugin in two files, the first file's second run exits 2: runs and documents
hold only the second file's two; red without the change (three runs).
This was referenced Oct 18, 2026
@linuxnow
linuxnow merged commit 5b2bf7e into main Oct 19, 2026
19 of 22 checks passed
@linuxnow
linuxnow deleted the feat/probe-output-reader-94 branch October 19, 2026 00:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Judge from the probe output and write the qualification record (probe-output spec stage 2)

1 participant