Skip to content

Build LaserLab dashboard release - #2

Merged
ProhibitedTV merged 1 commit into
mainfrom
codex/gui-lab-dashboard
Jul 10, 2026
Merged

Build LaserLab dashboard release#2
ProhibitedTV merged 1 commit into
mainfrom
codex/gui-lab-dashboard

Conversation

@ProhibitedTV

Copy link
Copy Markdown
Owner

Adds the PyQt LaserLab dashboard over the v2 engine, GUI-safe app API helpers, GUI and CLI Windows executable packaging, release screenshots, fixture demo tooling, and CI/release workflow verification for both entrypoints. Local validation passed: unittest discover, compileall, GUI-backed fixture demo, screenshot generation, Windows bundle build, LaserLab.exe --smoke, and LaserLabCLI.exe --help.

@ProhibitedTV
ProhibitedTV merged commit 02aa285 into main Jul 10, 2026
2 checks passed
@ProhibitedTV
ProhibitedTV deleted the codex/gui-lab-dashboard branch July 10, 2026 15:01

@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: 6a2eadb1b1

ℹ️ 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 gui/lab_dashboard.py
Comment on lines +340 to +343
kind=self.kind_combo.currentText(),
label=self.label_combo.currentText(),
all_frames=self.all_frames.isChecked(),
frame_interval=self.frame_interval.value(),

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 Snapshot capture options before starting the worker

When a user clicks Add Capture, these widget reads happen inside ApiWorker.run() on a QThread, so currentText(), isChecked(), and value() are being read from Qt widgets off the GUI thread. In addition to Qt thread-affinity crashes/warnings, the user can still edit these controls while ingestion is running, causing a capture to be labeled or sampled with different settings than the ones they clicked; copy these values into locals before constructing the worker.

Useful? React with 👍 / 👎.

Comment thread gui/lab_dashboard.py
if not experiment.get("captures"):
app_api.add_capture(
self.experiment_dir,
Path("sample_media") / "commons-young-double-slit.ogv",

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 Resolve bundled fixture paths independent of cwd

When the dashboard demo is started from a process working directory other than the repo/unzipped bundle root, for example invoking C:\Tools\LaserLab\LaserLab.exe from another shell directory, this relative sample_media path is looked up under that cwd and add_capture raises Source not found, even though the release zip includes the media beside the exe. Resolve the fixtures from the application/resource directory or the PyInstaller extraction directory before passing them to the API.

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