Skip to content

Studio P0 UX: always send visible 4I+4V on START; stacked tables and control polish - #238

Open
masarray wants to merge 19 commits into
feature/studio-matched-ptp-sv-auto-20261017from
fix/studio-ui-snapshot-start-polish-20261018
Open

masarray wants to merge 19 commits into
feature/studio-matched-ptp-sv-auto-20261017from
fix/studio-ui-snapshot-start-polish-20261018

Conversation

@masarray

Copy link
Copy Markdown
Owner

Preserve PTP–SV wire baseline

Strict QML + Studio regression only. No modification to ESP32-P4 firmware, PTP role/servo, timestamp gating, sample clock, encoded SV, or smpSynch AUTO. Preserve exact main/experimental synchronization baseline.

Root cause

Operator GUI setpoint table could show Ia=-30° while capture still had Ia=0° because WorkflowBar used a bare requestStart() when pendingApply==false. Next START therefore reused stale board phase. Remove this divergent path: ALWAYS pass startScenarioSnapshot() through ordered all-channel batch, irrespective of pendingApply. Validation, worker admission and session ownership remain unchanged.

Visual improvements

  • Increase SMV Injector identity icon 15→26 px and title 11→15 px; give brand enough width.
  • Stack voltage and current signal matrices vertically, fill available injection workspace instead of a large blank panel.
  • Center ribbon content and CalmButton captions, including keyboard interaction.
  • Advanced tab hover now has near-white fill and dark high-contrast caption.
  • Checkbox retains one 18px indicator with coherent hover/focus border.
  • Regression checks make all changes explicit.

CI/acceptance

Qt, Windows Lifecycle, Native Preview (exact-head firmware + UI); screenshot review still required for visual sizing. No unconditional background PTP startup: show PTP running only when hardware confirms it. Phasor and Wave are already visible/on by default in current screenshot. No new dialogs.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 17, 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-17T23:51:42.613018Z e772464 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: e772464adc

ℹ️ 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".

Comment thread apps/arstack_studio/qml/Main.qml Outdated
RowLayout {
// Stack voltage/current to use the injection workspace
// vertically instead of leaving half the panel empty.
ColumnLayout {

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 Update the geometry gate for vertical stacking

The Windows lifecycle job runs --check-operator-ui, but checkOperatorViewport() in apps/arstack_studio/src/main.cpp still requires voltage.area.right() <= current.area.left(), which only accepts the former side-by-side layout. With both matrices in this ColumnLayout, they share the same horizontal span, so the first geometry case exits with code 21 before screenshot acceptance; update the predicate to validate voltage above current instead.

Useful? React with 👍 / 👎.

Comment on lines +60 to +61
require("smartSession.requestStartWithScenario(\n controller.startScenarioSnapshot())" in workflow
and "smartSession.requestStart()" not in workflow,

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 START regression checks agree on formatting

This check requires the newly split two-line call, while the same test later still searches for the exact one-line substring requestStartWithScenario(controller.startScenarioSnapshot()) at lines 135–167. Consequently, running python3 apps/arstack_studio/tests/check_operator_workspace.py exits with reconnect must not auto-transmit..., and the Qt workflow that invokes this script always fails; consolidate these assertions or make them whitespace-insensitive.

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