Skip to content

Studio UX P0: commit visible phasor before SV START; fix density, branding and controls - #243

Merged
masarray merged 17 commits into
feature/studio-matched-ptp-sv-auto-20261017from
fix/studio-operator-layout-phase-ssot-20261018
Oct 18, 2026
Merged

masarray merged 17 commits into
feature/studio-matched-ptp-sv-auto-20261017from
fix/studio-operator-layout-phase-ssot-20261018

Conversation

@masarray

Copy link
Copy Markdown
Owner

Preserve proven SV/PTP milestone

Base on the existing integrated M3C.6 PTP–SV candidate, no changes to embedded firmware, wire encoding, PTP, smpCnt, or AUTO qualification. The prior 120s capture with ~480k canonical SV, 0 counter gaps, local AUTO and consistent PTP epoch alignment remains the no-regression baseline. Keep Preview packaging servo ON, MAC evidence ON, mirror OFF, matched firmware commit.

Root cause: GUI phase mismatch

NumericField currently debounces accepted text for 90ms. If operator clicks START before that timer fires, the editor visibly shows −30° while the ListModel scenario contains old 0°; START serializes the model only. The new START path synchronously flushes both magnitude and angle editors on all eight channels and validates input before building the exclusive FIFO transaction. Invalid numeric text prevents START. No extra GUI-side duplicate signal cache, no per-packet work. DeviceController::startWithScenario already serializes all 8 channels in one ordered FREQ/SET/ENABLE/SHAPE/START batch; preserve it unchanged.

Operator UX

  • Increase logo container from 38 to 48px and image 25 to 34px; increase SMV Injector typography to 17–19px and brand width accordingly.
  • Center ribbon captions with balanced vertical flex and correct hover foreground/background; steady 20px checkbox geometry for hover and nonhover.
  • Remove fixed matrix height and let the existing stacked Voltage-over-Current editor fill the available injection panel vertically.
  • Shared CalmButton remains light-on-hover with dark text so Advanced tabs/buttons stay readable. Existing main defaults already attempt PTP SOURCE when device verified/ready and show Phasor/Wave on.
  • Regression asserts editor flush/start validation, stacked responsive sizing, brand and hover invariants.

Validation

Qt GUI structural and build smoke, Windows Lifecycle and Native Preview, all exact-branch checks. Windows screenshot/physical comparison required for visual acceptance; baseline PTP–SV capture remains unchanged in this GUI-only change.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 18, 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-18T04:06:01.046559Z f7e708e 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: f7e708eb24

ℹ️ 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 on lines +70 to +72
require("Layout.fillHeight: true" in main_qml
and "Layout.maximumHeight: root.compactLayout ? 352 : 384" not in main_qml
and main_qml.index("id: voltageMatrix") < main_qml.index("id: currentMatrix"),

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 all stale workspace assertions for the new flow

The new flexible-height assertion contradicts the existing check at lines 40–42, which still requires the removed Layout.preferredHeight; after correcting that, the checks at lines 155–158 and 186–188 still require the old inline controller.startScenarioSnapshot()) call. Running python3 apps/arstack_studio/tests/check_operator_workspace.py therefore exits immediately, and .github/workflows/arstack-studio-qt.yml runs this script in CI, so the commit cannot pass its Studio checks until all obsolete assertions are updated or removed.

Useful? React with 👍 / 👎.

@masarray
masarray merged commit 8999bac into feature/studio-matched-ptp-sv-auto-20261017 Oct 18, 2026
7 checks passed
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