Skip to content

REQ 037

sergio velderrain edited this page Nov 9, 2026 · 1 revision

REQ-037: Dedicated read-only decoding tool for labview-benchmark-actor capture output (schema labview-benchmark-actor/launch-capture@1), agent/operator diagnostic use only

Requirement

This engine shall provide a dedicated, versioned, read-only decoding tool for labview-benchmark-actor VS Code extension capture output (schema labview-benchmark-actor/launch-capture@1), for agent/operator LabVIEW-VM troubleshooting use -- diagnostic tooling only, never a CI gate or release-blocking check.

Rationale

A real capture this session (run-1794072448721) showed genuine troubleshooting signal (a one-time disk-read burst at launch, sustained but unexplained CPU activity) reachable only by ad-hoc, repeated raw-JSON parsing -- including a real wrong assumption about resources.disk's shape, corrected only by finding the richer top-level frames[] array instead. The extension's own MCP viewer tools (lbaBenchmarkSummary/lbaBenchmarkPanel) show fixed demo data regardless of new captures and cannot substitute for this. Per ADR-0005, corrected by that ADR's own Addendum after inspecting the extension's real source: dhashHex/screen being null is the normal, structurally-expected output of the live "Capture LabVIEW Launch" command (it never computes a perceptual hash or emits screen dimensions), not an anomaly.

Fit Criterion

A capture directory (an explicit path, or the most recently created run-<timestamp> one under the extension's globalStorage/captures/ root) is decoded into a structured summary covering duration, frame count, per-resource (CPU/RAM/disk, per-disk-name) min/max/avg, peak I/O event(s) with frame index, dualPacket integrity result, and explicit flags for the source-verified anomaly conditions ADR-0005's Addendum names (capture-status.json state of failed/capturing rather than stopped; dualPacket.outcome other than authoritative; a per-frame dhashHex population inconsistent across frames within one capture) -- with a visible warning, not a silent misparse, if capture.json's/capture-status.json's own schema field does not match the tag(s) this engine has pinned. Does not attempt automatic visual/image classification of the PNG frames in v1 -- only narrows down which frame indices are worth a manual look.

Verification

Active (promoted from Planned 2026-11-07): scripts/Decode-LbaCapture.py implemented per #102, 23 synthetic-fixture pytest unit tests (99% line coverage on the module, 68/68 total in scripts/tests/ passing) plus a real verification run against the genuine run-1794072448721 capture -- correctly reproduces the peak-write finding (31.724 MB/s on nvme0n1 at frame index 432) and, consistent with the ADR-0005 Addendum correction, reports zero false anomalies for this healthy capture (neither its uniformly-null dhashHex nor its null screen field is flagged).

Source

Software-Requirements-Specification

Priority

Medium

TestID

TEST-037

TestArtifact

scripts/tests/test_decode_lba_capture.py (23 synthetic-fixture tests, 99% coverage) + real verification run against capture run-1794072448721

CodeRef

scripts/Decode-LbaCapture.py; docs/architecture/adr/ADR-0005-agentic-labview-benchmark-actor-capture-decoding.md

Status

Verified (live)

Clone this wiki locally