Repo presentation, CI, and container packaging - #5
Merged
Merged
Conversation
The file recorded local review steps, tooling notes, and session-specific budget references that do not belong in the published repository.
The Streamlit app had no callers: nothing imported sessioniq.ui, no script or test referenced run_streamlit, and the React dashboard is the supported interface. Dropping it removes a second unused UI from the install path. scipy was imported by the LUFS implementation but only present transitively through librosa. It is now declared so the dependency does not depend on another package's resolution.
Every entry was declared as "latest", so the resolved versions lived only in the lockfile and any install without it would float to whatever was newest. Versions are now pinned to what the lockfile already resolved, and the lockfile is regenerated against them. @dnd-kit/core, @dnd-kit/sortable, @dnd-kit/utilities, react-arborist, and wavesurfer.js had no references in src/ or tests/.
The dashboard and API were only runnable through a local Python and Node toolchain. docker compose up now builds both and serves the dashboard on port 8080, with nginx proxying /api and /uploads to the API container so the browser sees a single origin. run_api.py reads SESSIONIQ_HOST and SESSIONIQ_PORT, defaulting to the previous 127.0.0.1:8000 so local runs are unchanged. The API image uses an explicit setuptools build backend rather than relying on implicit package discovery.
Backend tests run on 3.11 and 3.12 so the declared Python floor is actually exercised. The container job builds both images, which is the only automated check on the Dockerfiles.
The test count badge was static text, so it reported a number with nothing verifying it. It now reflects the CI workflow. Quick start leads with docker compose, and the frontend commands use pnpm to match the pinned package manager.
The previous pins targeted Node 20, which GitHub now runs on Node 24 and reports as deprecated on every job.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cleans up the presentation and reproducibility gaps that made the repository read worse than the work in it.
Removed
docs/UPDATE-LOG.md— an internal development log published underdocs/. It recorded local review steps and session notes that do not belong in a public repository.src/sessioniq/ui/,scripts/run_streamlit.py). Nothing imported it, no test covered it, and the README never documented running it. Dropping it also removesstreamlitfrom the core install.Fixed
scipy.signal.lfilterand depended on librosa pulling it in transitively."latest"— 23 entries, with resolved versions living only in the lockfile. They are now pinned to what the lockfile already resolved, and five packages with no references insrc/ortests/are gone (@dnd-kit/*,react-arborist,wavesurfer.js).src/package root instead of relying on implicit discovery.Added
docker compose upserves the dashboard on port 8080, with nginx proxying/apiand/uploadsto the API so the browser sees a single origin. Library data lives in a named volume.Verification
tscclean, production build succeedsSESSIONIQ_HOST/SESSIONIQ_PORTand answering/api/healthpnpm install --frozen-lockfilesucceeds against the regenerated lockfileNote
The Dockerfiles are the one part not verified locally, since Docker is not installed on this machine. The CI
dockerjob builds both images, so the first run confirms them.