Skip to content

Studio-first physical test: visible Capture workspace, in-app SV/PTP evidence, bundled firmware - #258

Open
masarray wants to merge 10 commits into
integration/p0-receiver-ptp-sv-and-studio-gui-20261020from
fix/studio-first-class-capture-ux-20261020
Open

masarray wants to merge 10 commits into
integration/p0-receiver-ptp-sv-and-studio-gui-20261020from
fix/studio-first-class-capture-ux-20261020

Conversation

@masarray

Copy link
Copy Markdown
Owner

Product correction

Physical tests must happen in ARStack Studio, not by asking ordinary operators to run Python, PowerShell, Wireshark filters or external bench-kit tools. The same exact SHA Studio installer bundles the verified preview ESP32-P4 firmware image, manifest, and pinned flasher.

Implemented

  • Top-ribbon Capture action next to Start/Stop opens a first-class dedicated Capture tab in Advanced with one persistent native SvCaptureController; remove hidden duplicate from Device.
  • Operator selects visible Ethernet/TAP/SPAN NIC, 30/120/3600 s, presses Capture SV + PTP, sees in-app numbers for SV packets, PTP packets, missing sample counters, and smpSynch transitions, and opens saved artifacts through a GUI button.
  • Retain existing single-clock independent PTP + SV Ethernet capture and C++ background PCAP/64-byte 4I+4V decode, raw PCAP, events CSV, samples/seconds CSV, and JSON; no serial commands or injection disruption during capture.
  • Capture support button opens official Wireshark installer webpage only when dumpcap is missing; Refresh rediscovers after installation without restarting Studio. Npcap capture driver remains an explicitly disclosed Windows prerequisite (kernel drivers are not silently downloaded/installed).
  • Native production decoder now emits a compact in-app evidence summary, never a physical PASS from host packet timestamps. Extend production native harness with exact summary values and structural UI tests.
  • Original Integration candidate: P0 external-GM PTP–SV proof + P1 compact Studio injector GUI #257 PTP-SV integration and firmware role SOURCE unchanged; tests/lab only, not active protection systems.

Acceptance

Require exact-head Studio Qt, Windows Lifecycle, Native Preview workflow and firmware/manifest verification to PASS. Artifact must be the GitHub Actions Studio Native Preview setup.exe/portable.zip built on THIS SHA. Do not merge main or falsely assert hardware relay LOCK before receiving physical evidence.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-20T06:03:10.125884Z a431b51 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a431b513c4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

"sourceComponent: SvCapturePanel {" in hub and
"SvCapturePanel {" not in source("DeviceExpertPanel.qml"),
"Studio must expose ONE persistent Capture workspace from its main ribbon")
require('text: "Capture SV + PTP"' in capture_ui and

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Make the workspace gate accept the conditional capture label

The new gate searches for the literal text: "Capture SV + PTP", but SvCapturePanel.qml assigns this caption through a conditional expression (text: capture.capturing ? ... : "Capture SV + PTP"), so the substring is absent. In the checked arstack-studio-qt.yml workspace-contract step, running python3 apps/arstack_studio/tests/check_operator_workspace.py now exits with Studio capture must start in-app and display decoded SV/PTP evidence without terminal scripts, causing this commit's CI to fail unconditionally.

Useful? React with 👍 / 👎.

return result;
}
json.close();
if (usable) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Return decoded counters when no valid SV frame is found

When an operator selects the wrong TAP/SPAN adapter or captures only PTP traffic, parsing can succeed and ptpFrames can contain useful evidence while matched == 0; however, usable is false and this condition suppresses the entire summary. The QML panel consequently displays none of the decoded SV/PTP counters and only reports “No valid SV packets,” hiding the PTP count that would help diagnose the capture setup. Populate the summary for completed parses while retaining the INVALID_CAPTURE status.

Useful? React with 👍 / 👎.

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.

1 participant