Skip to content

v0.9.2: GUI polish -- example dropdown, spinners, JSON+PDF download - #3

Merged
HeliCorgi merged 1 commit into
mainfrom
feat/gui-polish
Jun 30, 2026
Merged

v0.9.2: GUI polish -- example dropdown, spinners, JSON+PDF download#3
HeliCorgi merged 1 commit into
mainfrom
feat/gui-polish

Conversation

@HeliCorgi

Copy link
Copy Markdown
Owner

Polish pass on the existing app/streamlit_app.py (not a rewrite); improve in place, no duplicated features. kernel_viewer core + its output untouched.

  • Example loader: it already auto-listed examples/*.npz (the spec's "hardcoded" assumption did not hold), so this just relocates it to a sidebar "Load Example Dataset" selectbox + button; the uploader stays in the main area. No second loader added.
  • st.spinner on the genuinely slow steps (load / classify / dashboard render / stateflow), with plain honest messages -- 4D classification is slow.
  • New "Download results" area: JSON reuses kernel_viewer.io.saver.save_report (single source of truth, not hand-serialized) and a one-page PDF of the SAME dashboard Figure already shown (matplotlib's own pdf backend; no new dep, no multi-page assembly). Both exposed as importable helpers report_json_bytes / dashboard_pdf_bytes so the headless smoke test can reach them.
  • New paths (example load, exports) stay inside the existing st.error handling.
  • Version -> 0.9.2.

Verified: headless GUI smoke (AppTest) passes; JSON has regime/coherence/ exponent/features/notes; PDF starts with %PDF; both core suites green and kernel-viewer output byte-identical.

Polish pass on the existing app/streamlit_app.py (not a rewrite); improve in
place, no duplicated features. kernel_viewer core + its output untouched.

- Example loader: it already auto-listed examples/*.npz (the spec's "hardcoded"
  assumption did not hold), so this just relocates it to a sidebar "Load Example
  Dataset" selectbox + button; the uploader stays in the main area. No second
  loader added.
- st.spinner on the genuinely slow steps (load / classify / dashboard render /
  stateflow), with plain honest messages -- 4D classification is slow.
- New "Download results" area: JSON reuses kernel_viewer.io.saver.save_report
  (single source of truth, not hand-serialized) and a one-page PDF of the SAME
  dashboard Figure already shown (matplotlib's own pdf backend; no new dep, no
  multi-page assembly). Both exposed as importable helpers report_json_bytes /
  dashboard_pdf_bytes so the headless smoke test can reach them.
- New paths (example load, exports) stay inside the existing st.error handling.
- Version -> 0.9.2.

Verified: headless GUI smoke (AppTest) passes; JSON has regime/coherence/
exponent/features/notes; PDF starts with %PDF; both core suites green and
kernel-viewer output byte-identical.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@HeliCorgi
HeliCorgi merged commit b78bc07 into main Jun 30, 2026
4 checks passed
@HeliCorgi
HeliCorgi deleted the feat/gui-polish branch June 30, 2026 17:26
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