Skip to content

feat(viewer,build,ui,docs): add expression curve viewer, spec-based b…#25

Merged
NewComer00 merged 2 commits intomainfrom
feat/viewer-closable-tabs-spec-build
Apr 1, 2026
Merged

feat(viewer,build,ui,docs): add expression curve viewer, spec-based b…#25
NewComer00 merged 2 commits intomainfrom
feat/viewer-closable-tabs-spec-build

Conversation

@NewComer00
Copy link
Copy Markdown
Owner

…uild, and closable tabs

feat(viewer): add expressive-viewer — real-time expression curve visualisation tool; multiple instances can run simultaneously, each independently displaying relay data; curves produced by expressive and expressive-gui are streamed to all running instances in real time

feat(ui): add ClosableTabs component extending ui.tabs with per-tab close buttons; supports left/right button position, on_close callback guard, and smart focus fallback to nearest neighbour on close

feat(build): replace inline PyInstaller flags with build/expressive.spec; update artifact name from Expressive-GUI to Expressive across packaging workflow and release asset paths; update .gitignore to track build/*.spec while ignoring root-level specs

refactor(wavtool): defer heavy imports (sklearn, skimage, soundfile, scipy) to call sites to reduce top-level import cost; migrate cache path from CACHE_DIR to APP_CACHE_DIR via utils.fs

refactor(worker): change lang field type from str to str | List[str] | None with default ["en_US", "en"] for proper locale fallback chain

docs(README,README.en): add Data Viewer screenshot alongside workflow screenshot; add second demo video; document expressive-viewer command and multi-instance usage; add language override tip with PowerShell and shell examples; remove --lang flag from GUI launch instructions; mark expression curve visualisation as completed in feature checklist

NewComer00 and others added 2 commits April 1, 2026 17:46
…uild, and closable tabs

feat(viewer): add `expressive-viewer` — real-time expression curve
visualisation tool; multiple instances can run simultaneously, each
independently displaying relay data; curves produced by `expressive`
and `expressive-gui` are streamed to all running instances in real time

feat(ui): add ClosableTabs component extending ui.tabs with per-tab
close buttons; supports left/right button position, on_close callback
guard, and smart focus fallback to nearest neighbour on close

feat(build): replace inline PyInstaller flags with
`build/expressive.spec`; update artifact name from `Expressive-GUI`
to `Expressive` across packaging workflow and release asset paths;
update .gitignore to track `build/*.spec` while ignoring root-level
specs

refactor(wavtool): defer heavy imports (sklearn, skimage, soundfile,
scipy) to call sites to reduce top-level import cost; migrate cache
path from `CACHE_DIR` to `APP_CACHE_DIR` via `utils.fs`

refactor(worker): change `lang` field type from `str` to
`str | List[str] | None` with default `["en_US", "en"]` for proper
locale fallback chain

docs(README,README.en): add Data Viewer screenshot alongside workflow
screenshot; add second demo video; document `expressive-viewer`
command and multi-instance usage; add language override tip with
PowerShell and shell examples; remove `--lang` flag from GUI launch
instructions; mark expression curve visualisation as completed in
feature checklist

Co-authored-by: Claude <claude@anthropic.com>
… compatibility

patch("ctypes.windll") raises AttributeError on Linux because the
attribute does not exist on non-Windows builds of ctypes; create=True
instructs unittest.mock to create the attribute if absent, allowing
the four win32 simulation tests to run on Linux CI runners.

also remove redundant per-method normalize_locale imports — the symbol
is already imported at module level.
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 1, 2026

Codecov Report

❌ Patch coverage is 87.05882% with 66 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
utils/ui.py 13.04% 40 Missing ⚠️
expressions/pitd.py 16.66% 10 Missing ⚠️
expressive.py 64.70% 6 Missing ⚠️
expressions/tenc.py 50.00% 3 Missing ⚠️
utils/i18n.py 97.36% 3 Missing ⚠️
utils/relay.py 98.82% 3 Missing ⚠️
utils/plot.py 94.11% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@NewComer00 NewComer00 merged commit 2a0b90d into main Apr 1, 2026
4 checks passed
@NewComer00 NewComer00 deleted the feat/viewer-closable-tabs-spec-build branch April 1, 2026 10:08
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