- Added redirect from /experimental-neurotile to /experimental-neurosift-tiles for URL compatibility
- Modified ExperimentalNeurosiftTilesPage to use zarr_url and path query parameters instead of example parameter, with examples landing page when parameters are not provided
- Added channel selection functionality to neurotile visualization with click-to-select interaction
- Implemented semitransparent yellow highlight overlay for selected channels in neurotile view
- Added mouse click handling in TimeScrollView3 to support channel selection based on Y-coordinate
- Enhanced neurotile rendering to display selected channel indicator with both fill and border highlighting
- Added interactive toolbar and status bar to TimeScrollView3 component with time display and interaction mode controls
- Implemented dual interaction modes: pan mode (drag to pan, wheel to zoom) and select-zoom mode (drag to select region and zoom in)
- Added toolbar with navigation buttons for manual panning and zooming as alternatives to mouse interactions
- Added zoom to fit button that resets view to show the full time range of all data
- Added extensible custom toolbar actions system allowing parent components to add their own buttons to the toolbar
- Moved NeurotileView mode toggle buttons (Raw/Spikes/Overlay) from floating overlay to integrated toolbar
- Added real-time status display showing current time in hours:minutes:seconds:milliseconds format
- Created visual selection overlay for region selection in select-zoom mode
- Refactored TimeScrollView3 component by extracting mouse handling logic into a dedicated useTimeScrollMouse hook to improve maintainability and reusability
- Added spikes mode to neurotile visualization with toggle between raw and spikes data display
- Implemented spike count visualization using hot colormap (black to red to yellow to white)
- Added mode toggle button in neurotile view to switch between raw electrophysiology data and spike counts
- Fixed spikes mode rendering to use individual rectangles instead of bitmap to prevent missing sparse spike data due to resampling
- Optimized neurotile data loading to load tiles in parallel asynchronously for improved performance
- Added experimental neurotile visualization with multiscale heatmap display for electrophysiology data
- Implemented time-scrollable, zoomable interface using TimeScrollView2 for neurotile data
- Added automatic downsampling level selection based on zoom level to maintain optimal data resolution
- Added loading states with visual feedback while preserving axis visibility during data loading
- Implemented in-memory caching for neurotile data loading to improve performance and reduce redundant file I/O operations
- Changed neurotile min/max scaling to use data shown in viewport rather than all loaded data for better contrast
- Fix specifications provider and #293 (comment)
- Updated semantic search to use new dandi-index system
- Improved space utilization for controls with more compact vertical spacing and better wrapping behavior, including significantly reduced vertical separation between rows of controls
- Added toggle legend button for plotly timeseries plots (Issue #328)
- Fixed margin difference between plotly and native NS plots by removing width reduction and right margin (Issue #330)
- Added GitHub link to application toolbar that opens the issues page for easy bug reporting
- Optimized experimental search panel to eliminate repeated script executions by implementing client-side filtering
- Added dandiset counts next to contact person names in experimental search panel
- Added dandi-index and implemented advanced search
- Added .env.local template for configuring PubNub keys in local development
- Modernized Python package structure with pyproject.toml configuration. Removed legacy setup.py, setup.cfg, and setup.cfg.j2 files
- Added option for using local neurosift server with the CLI
- Added support for resolving NWB file URLs from dandiset path in NwbPage
- Improved error message formatting for large datasets to display sizes in human-readable form (Issue #187)
- Added permission error notification for embargoed DANDI datasets (Issue #297)
- Added error detection for unauthorized access attempts
- Added UI notification with guidance on how to provide API key credentials
- Added direct links to settings page and DANDI archive for obtaining API keys
- Added direct editing of time window values in timeseries visualizations (Issue #303). Users can now click on the duration and start time values to edit them directly. Press ESC to exit
- Fixed TimeIntervals widget to properly render when no categorical columns are available (Issue #302)
- Fixed handling of '+' characters in URL parameters for NWB file viewing
- Improve Dandi notebook access for Dandiset
- Reduced spacing between plots in the dashboard for a tighter, more compact layout
- Added Notebook section in NwbPage that displays nbfiddle.org in an iframe
- Added blob storage system for large annotation content with expandable retrieval
- Added single annotation endpoint with blob expansion support
- Added plot-vision mcp
- Added niivue_dist git submodule for NIFTI visualization
- Added lazy loading implementation for DANDI assets on Dandiset page
- Added caching system to useQueryAssets for improved performance when loading DANDI assets
- Added "Load more files" button to DandisetPage that exponentially loads pages (1->2->4->8), with file count indicator showing loaded/total files
- Updated @niivue/niivue from 0.49.0 to 0.51.0
- Enhanced TimeIntervals visualization to filter data based on visible time range
- Fix hover functionality to TimeIntervals plot to display additional data and interval information
- Fixed hover-over effect for time intervals in TimeIntervalsPlotly component (Issue #286)
- Improve NWB python usage to include containers and ec_electrodes
- Switch to always using draft versions of dandisets
- Added notebook buttons to dataset pages, showing links from notebook-tagged notes
- Use JavaScript for NWB usage scripts rather than loading from precomputed usage.py
- Added Usage Script section to NWB page showing Python code examples
- Added LINDI file download feature in NWB Overview
- Implemented neurosift-chat-agent-tools
- Created neurosift-tools MCP that interfaces with the chat agent tools (for claude/cline access to DANDI, etc)
- Added documentation for installing neurosift-tools MCP server in Cline
- Added highlighted views section to home page showing expandable annotated views
- MP4 views for TwoPhotonSeries and OnePhotonSeries for NWB files (uses job manager)
- Added annotations support for NWB files:
- Shows titles, content, types, targets, and tags
- Features clickable dandiset tags that navigate to the corresponding dandiset page
- Includes creation and update timestamps
- Requires Neurosift API key for access
- Added GitHub Actions workflow for pull requests that checks code formatting and build status
- Added annotations feature to Dandiset pages:
- Users can add, view, and expand markdown-formatted notes
- Notes are displayed with user attribution and timestamps
- Notes appear in collapsible sections at the bottom of the dandiset overview
- Added ability to edit and delete notes owned by the current user
- Added edit form with title and content fields
- Added ownership verification through job manager API
- Added confirmation dialog before note deletion
- Added ability to add and manage custom tags for annotations
- Improved TimeIntervals visualization with interactive Plotly-based view that shows hover information and uses transparency to indicate overlapping intervals (fixes #278)
- Improved TimeIntervals plot by removing the top line and adjusting rectangles to start at y=0 for cleaner visualization
- Enhanced TimeIntervals controls by adding start time, duration, and interval count information and removing the gap between controls and plot
- Added reset button to TSV table view to restore original row order
- Added collapsible left panel with toggle button to improve workspace utilization
- Added AI context integration for NwbPage to provide information about currently viewed NWB file including version, contents overview, and available interactions
- Rewrote NIFTI viewer implementation using niivue library to provide advanced visualization features including multiplanar views and 3D rendering
- Added file size warning for NIFTI files larger than 100MB to prevent performance issues with large datasets
- Changed units controller navigation arrows in Raster plot from left/right to up/down for better visual representation
- Improved Raster plot UI with better layout and styling:
- Removed gap between controls and plot for better visual association
- Enhanced recording info display with cleaner styling and improved readability
- Made controls layout responsive to screen width
- Modified ResponsiveLayout to determine mobile view based on initial browser width rather than using media queries and dynamic resizing
- Added AI context integration for DandisetOverview component to provide comprehensive dataset information including name, description, contributors, dataset details, license, citation, keywords, species, and research methods
- Improved visibility of x-axis label in Raster Plot by adjusting font properties and grid display
- Remove tab parameter from URL query string once page has been loaded ods
- Imprve visibility of x-axis label in Rater Plot by adjusting font properties and grid display
- Remove tab parameter from URL query string once page has been loaded
- Added Events plugin view for NWB files that visualizes event timestamps with vertical markers
- Added AI Context system for parent window communication
- Added IntervalSeries plugin view for NWB files that visualizes alternating positive/negative interval data
- Updated OpenNeuro Browser's search mechanism to use a more robust state management pattern with scheduled search functionality
- Added user management interface in Settings page for administrators
- Added admin secret key field in Settings for accessing user management
- Added ability to create, edit, and delete users with research descriptions
- Added user list view with basic information display
- Added confirmation dialog for user deletion to prevent accidental removal
- Added API key viewing capability for administrators with copy to clipboard functionality
- Added advanced search mode for DANDI Archive Browser with neurodata type filtering
- Added matching files count indicator for advanced search results in DANDI Archive Browser
- Added horizontal spacing around splitter bar in HorizontalSplitter component
- Add SpikeDensity plugin view for NWB files
- Added job resubmission capability for failed jobs
- Added optional rastermap sorting to SpikeDensity plugin with UI controls for computing and toggling the sorting
- Added distributed job processing system (neurosift-job-manager)
- Added support for embedded=1 query parameter
- Added feedback/issues link on home page footer
- Migration to v2 deployed
- Added external website links to DANDI and OpenNeuro browser pages
- Added SNIRF file support with HDF5 viewer integration
- Added loading indicator when expanding directories in the file browser
- Added WAV file plugin with audio playback and waveform visualization
- Updated URL query parameter mapping between v1 to v2
- Adjusted home page layout