Conversation
- loom_stimulus.py / loom_camera_module.py: the near-screen keepalive tick and test-flash button now also cover the stimulus monitor, gated to only fire while idle (batch.active is False) so a tick can never blank an in-progress loom animation or the photodiode marker mid-trial. Renamed the IPC command/status from test_near_screen to test_screens to match. - App.jsx (basic + loom): RecordingStatusWidget is now mounted once at the App level instead of only inside each Dashboard page, so it's visible on every route, not just Dashboard. Adjusted Dashboard/ LoomDashboard root height rules (100vh -> flex:1) to account for the bar now sitting above them in the same flex column. - Sidebar.jsx/css: footer's plain-text "GitHub Page" link is now an icon link (octocat mark), alongside a new "Docs" link (book icon) pointing at https://saviour.readthedocs.io. Both icons use currentColor to theme with light/dark, matching the existing power-button icon convention. Increased the title-to-nav-links gap (20px -> 32px, plus a 10px floor on .main-nav for when no hostname is shown). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
LoomStageContext.jsx's dashboard Habituation/Loom toggle pushed loom_stimulus.enabled, but the module only ever reads loom_stimulus.armed (loom_camera_module.py, config schema, and the manual config-card checkbox all use "armed"). The toggle silently did nothing to the module's actual armed state. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…weep - Settings/System/Guide/Recording: restyled page headers/toolbars for consistency (padding, dropdown label placement), then removed the page-level titles entirely per feedback that they duplicated the sidebar's own active-nav indicator. - Guide page rewritten to render docs/readthedocs/*.md directly (via a new src/docs/loadDocs.js Vite raw-import loader + react-markdown/ remark-gfm/rehype-raw/rehype-slug) instead of separately hand-written JSX content, so there's a single source of truth for docs instead of two copies drifting apart. Populated getting_started.md/open_ephys.md (previously "Coming soon!" placeholders) and merged extra FAQ entries from the old JSX into faqs.md. Internal markdown links between doc pages resolve to in-app tab switches; images resolve to bundled assets. Navigation is a left contents panel (readthedocs/docs-outline style) rather than a top button row. - Sidebar: moved the Admin/Guest role badge from the footer to directly below the title/hostname, and fixed its dropdown menu to open downward (was bottom:100%, which only made sense in the old footer position). - Recording page: standardised page padding to match System/Guide, moved the warning text color to var(--warning-color, ...) matching the existing --error-color fallback-var convention, and de-duplicated .primary-button/.secondary-button (previously copy-pasted identically into LoomRecording.css and NewSessionForm.css) into index.css. - Swept em dashes to plain hyphens across every user-visible string in the frontend (JSX labels/tooltips/placeholders) and the docs/ readthedocs markdown content that now renders in-app; code comments were deliberately left untouched. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- how_it_works.md: was a "Coming soon!" placeholder; wrote an overview (controller/module split, ZeroMQ transport, recording/export/download lifecycle) plus deep-dive sections on network topology, avahi (mDNS hostname resolution) vs zeroconf (mDNS service discovery - these are two genuinely separate mechanisms in this codebase, not the same thing), Samba export, systemd, and the Picamera2/CameraBase stack. - open_ephys.md: added a photo walkthrough (complete rig -> acquisition board -> labelled HDMI digital I/O ports) with an explanation of the 8-TTL-channels-per-port / IO-board-to-BNC setup, and a screenshot of inbound TTLs rendering as coloured columns in the Open Ephys GUI. - Converted all new images to WebP (saviour_logo.png excepted, per request) - cad.md's existing image reference updated to match. Original PNG/JPG sources deleted; ~25.6MB of unreferenced/oversized images is now ~1MB total. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…quisites - Guide page: contained scroll region for .guide-page (matches Settings/Recording) so a long doc no longer grows the outer app shell, and so the contents panel's sticky positioning has something to actually stick against. Widened the content column (720px -> 900px) and added a sticky right-hand "On this page" outline listing the current doc's H2/H3 headings as smooth-scroll jump-links - addresses the empty space to the right of a capped-width content column on wide screens. - loadDocs.js: new extractOutline() builds that outline from the raw markdown, using a fresh github-slugger instance per doc (matching rehype-slug's own per-render scoping) so generated ids exactly match the real rendered heading anchors. Verified independently in Node against hardware.md - the extracted #shared-hardware slug matches that page's own pre-existing internal link. - getting_started.md: added a "Before you start" section covering the assumed hardware/OS/SAVIOUR-install prerequisites, with an "Installing SAVIOUR" walkthrough (the real install.sh bootstrap one-liner, what it does, and a pointer to multiclone.sh for fleet setups) rather than leaving installation as an unstated assumption. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…med-key Fix/loom stage toggle armed key
…ontend-nav-polish Feat/loom screens and frontend nav polish
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
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.
No description provided.