Changes¶
1.9.0 (2026-8-10)¶
Save filters in review page (#666)
Save sort column name and direction to template (#679)
Added buttons to reorder channels in review tab (#680)
Fixed slice column sorting and moved to fetchSliceData wrapper (#681)
Display population of hovered review thumbnail (#682)
Remove manual population ids when saving template on review page (#683)
Removed all but paging keyboard shortcuts from preview tab (#688)
Rename remove button to Remove Selected (#689)
Remove number index for population bins with no KB shortcut (#690)
Prevent population sorting on review page for consistent kb shortcuts (#692)
Improve thumbnail spacing for outline and add dash indicator (#693)
Added export script component and added to review page (#703)
Save channel order (#704)
Manual Population Type (#705)
Fixed issue where object value is next to thumbnail instead of under (#712)
Updated custom versioning buildtools (#726)
Converted loadedPopulation from store back to signal (#727)
Adding initial automatic testing (#728)
Handle long population set names (#730)
Filter manual populations on frontend instead of using table query (#734)
Add Main as default route if no route config is provided (#741)
Update Python versions and links (#743)
Improve selection shortcuts (#744)
Update pvjs to 4.1.0 and accept updates for minor and patch versions (#745)
Fix review images not updating padding (#746)
Changed tests name to Pageant Test (#747)
When channel activated for merge view, activate for greyscale also (#748)
Filter population sets and templates in manager that do not match page (#749)
Move population utilities (#750)
Created context for toast (#754)
Update changelog for 1.9.0 (#765)
Version maintenance (#771)
Separate error messages for permissions and no existing pop sets (#784)
Fixed chart settings dropdown from clipping offscreen on medium screen sizes (#785)
1.8.0 (2026-4-20)¶
Keyboard shortcuts (#625)
Added select and check to sort preview objects by a column (#633)
Remove population can’t load indicator in review page (#635)
Fix clear queries update not triggering before page refresh (#637)
Save rendering settings for reviewpage into template (#641)
Added population to load and save ids in review list (#642)
Load population set when needed in population set manager (#644)
Add background to sticky row to hide channel controls of other rows (#653)
Open template/popset modal on review page start (#654)
Fix population bins not deleting (#672)
Use copy instead of reference to load population to prevent unintended updates (#673)
Return white as default nonmatch color in main page (#674)
Fix duplicate label image race condition (#675)
Display error message from gs-population-utils with toast (#676)
Bump gs-population-utils dependency (#677)
Build maintenance (#678)
Temporarily pin build to 1.4.2 to fix build failures until proper fix (#700)
Fix population queries not loading on clean state (#701)
Fix main images not updating for rapid channel control updates (#702)
1.7.0 (2026-3-16)¶
Liquid biopsy UI (#388)
Update django dependency (#505)
Toggle button to disable x-axis when editing a loaded population in threshold (#506)
Added open with pathviewer button (#507)
Moved create template button to population set modal (#508)
Chart column dropdown empty pick now stays at top and isn’t affected by sort or filter (#509)
Update plotly to version 3 and changed pointcloud to scattergl (#512)
Set column dropdowns to alpha sort by default (#513)
Performance improvements (#516)
Added min/max input for chart axes (#517)
Sort populations by type and name (#521)
Use alpha from configured shape color (#524)
Omero config for min/max values (#527)
Hide population sets in threshold page (#531)
Moved channel slider to thumbnail header in threshold page (#532)
Refactor chart type (#533)
Change font style of form label text (#534)
Remove calculate_hits call when saving/deleting populations (#536)
Remove filtering out spatial populations from secondary modal (#537)
Add dev deploy workflow file (#538)
Update install docs (#541)
Fix x-axis default range not working (#545)
Stop at first population set in Threshold when loading firstPrimaryPopulation (#546)
Stop threshold thumbnail loading in pages other than threshold (#558)
Update exportScriptId when imageMetada changes (#561)
Add script plugin setting (#565)
Use special chart margins to fix query chip bar resizing (#575)
Add connection dialog (#576)
Clean templates (#579)
Added activate channel swatch, seperating it from greyscale checkbox (#581)
Fix greyscale images not loading (#582)
Population bin loading and saving (#584)
Allow deletion of spatial populations (#585)
Fixed typo of Excluded in population manager (#587)
Fix color picker closing to early (#598)
Viewed population (#599)
Fix weird review rows (#600)
Add filtering functionality to review page (#601)
Add export all populations button in pop manager (#603)
Aligned channel controls (#604)
Fix fatal bug (#606)
Added more specific error message for missing column data (#608)
Converted parent population select to searchable list (#611)
Fixed channel slider in threshold not growing to container size (#620)
Wrap roi list in population manager (#622)
Added button to remove selected items from bins (#623)
Only apply primary populations to review bins (#626)
Fixed bug where undefined parentPopulation reads name property (#627)
Add a new configurable color for outside threshold objects (#640)
Added changelog for 1.7.0 (#656)
1.6.0 (2025-10-23)¶
Feature:
GEOMETRYCOLLECTION Support for Thumbnail Outlines (#264)
Replace shape parser with pathviewerjs wktParser for multi geometry support
Spatial Populations (#309, #322)
Spatial populations can now be generated and used as parent populations.
Population Updates
Button to run CSV export script if script is available (#325)
Added indication and handling for spatial groups with invalid rois (#347)
Moved parent population select (#360)
Improved Population Manager buttons (#352, #425)
Updated button functionality based on population type.
Population buttons are disabled based on user permissions.
Auto Load (#361, #373, #379, #449)
In case of one table auto select it on load.
In case one population set auto select it and load first primary population in set.
Load new created population.
Bugfixes/Maintenance:
Set None to be active when population set index is -1 (#334)
Set long population name to scrollable (#424)
Remove display of counts for populations (#429)
Changed parent population default to All Objects instead of None (#436)
Remove y scroll arrows from population manager names (#452)
New Pageant Configurations (#317, #351)
Configurable color for thumbnail shape outline.
Configurable color for thumbnail highlight to indicate within threshold.
Templates and Population Sets (#319, #391)
Ability to save current population set as a template.
Saved templates can be applied to current table.
Templates and Population Sets have been abstracted to their own modal.
Secondary Population Editor (#376, #381, #383)
New UI for creating or editing boolean combinations of populations.
Threshold Plot Updates
Upper and lower bounds now move together as a window (#335)
De-emphasize scatter plot data outside of y bound (#336)
Moved chart column dropdowns to chart axis titles (#368)
Pvjs overlay color matches threshold values (#369)
Plot type now is toggled between histogram and scatter based on if y-axis data is selected (#382)
QIA chart updates (#490) - Updated chart toolbar buttons. - Chart column dropdowns grows to width or height of container.
Bugfixes/Maintenance:
Combined upper and lower bounds in threshold to one object and thumbnail gallery (#346)
Fix active class of bounds button and updated tooltip (#426)
Add noValidate around chart input to remove warning (#427)
Fixed auto scale to work on log ranges (#431)
Only update bound values when x or y data changes (#438)
Fix sticky y axis when changing populations (#460)
Parse view queries when loading population (#485)
Change first y chart column text to Count in dropdown (#486)
Always show chart modebar and remove box select from scatter (#487)
Many New Improvements to Pageant Loading
Fetch table column via PathViewerJS to use Parquet if available (#358)
Multi stage thumbnail loading (#363)
gs-population-utils update (#385)
Improve Pageant initial loading speed (#395)
New region thumbnails (#398)
Use bounding box index to generate thumbnails and abort overlapping updates (#468)
Preload next two pages of threshold thumbnails (#492)
Bugfixes/Maintenance:
Fixed function that detects duplicate filters (#308)
Unrequire roi column when generating label image (#310)
Fixed thumbnails when thresholding on filtered data, and added special types for RowIndex and ObjectId (#318)
Force sorted rows on table slice (#321)
Maximum dropdown height in Population Manager (#327)
Redirect if route is disabled (#332)
Fixed populations not deleting correctly (#349)
Fixed deleting population set error (#350)
Added text input to slider component (#353)
Updated name from y filter to horizontal bound (#362)
Fixed bug when loading population not setting template values (#364)
Fixed url clearing parameters when navigating (#365)
Added threshold thumbnail paging and matches back (#370)
Add try/catch around pvjs initialization (#375)
Reduced z-index value to stop showing over dropdowns (#384)
Explicitly cast all non-string column values to numbers (#387)
Set filters to undefined instead of empty array for secondary pop (#392)
Updated pvjs to latest 294 (#393)
Python package version handling and wheel building (#399)
Always checkout repository with fetch-depth 0 and github.ref (#400)
Added appending gs-population-utils and add –set to not add duplicates (#401)
Fixed objects not selecting due to index mismatch (#403)
Don’t set pvjs to loading if no tables (#420)
Reduced label image opacity (#439)
Update PathViewerJS (#440)
Convert canExportCsv from memo to effect since memo always returns promise object (#443)
Remove fetch tag command (#446)
Fix threshold label image bug (#457)
Icon to text buttons (#462)
Set tables to loading when updating table columns (#488)
Updated threshold pagination buttons for qia (#489)
Update change log for 1.6.0 (#502)
Update prs_for_changelog.py script (#504)
1.5.0 (2025-03-21)¶
Feature:
Population Manager (#242, #266)
Population Manager UI: An interface to create, edit, delete, and load populations/population sets
Options to create, copy, edit name, and delete population sets
Now can create more robust populations (boolean populations) that can reference and nest other populations with boolean operators
New interface to construct boolean populations (Must have primary populations to reference)
Options to create, edit, delete, and load boolean populations
Can only edit names of primary populations in population manager
List of boolean and primary populations and all of their queries
Population Toolbar
Displays current loaded population and population set
Arrow buttons to easily navigate between population within set and load them in Pageant
Saving Worklow
Saving modal auto populates loaded population
Population quicksave button available when in loaded population context
Saving population also Pageant state to template
Loading Workflow
Removed load modal moved loading functionality to population manager
Loading a population will update Pageant with saved population template values and stay in context of loaded population
Population toolbar arrows to easily load next and prev population
Other PR changes:
Filters now in global toolbar
Moved chart settings to options dropdown
Updated flexbox styling throughout page
Threshold Page (#219, #237, #243)
New navigation menu option for added threshold page
Plot Upgrades:
Plot now creates scatter plots and histograms
Plot gets full column data instead of using meta data
Draggable bound lines to examine lower and upper bounded objects
Plot axes can now be toggled between linear and log
Threshold Gallery:
Thumbnails display objects within bound lines in plot
Thumbnails are now cached and have other performance improvements
Displayed results metadata, includeing object values and total matches
Can sort and page through threshold thumbnails
Channel Controls
Can select channel for thumbnails and image view
Added slider to update channel min/max
Other PR changes:
Auto-open and focus search bar in channel selection
Configurable route options with Omero config
Add labels to toolbar inputs
OMERO.web server prefix support
Updated PathViewerJS version
Fix race conditions on load
Fixed click in object viewer not updating selected object (#255)
Added Pageant route configuration to docs (#256)
Bugfixes/Maintenance:
Added omero-web and Django dependencies (#244)
Remove unneeded web server configuration from documentation (#245)
Added bootstrap icons (#262)
Added changelog for 1.4.0 and 1.5.0 (#261)
Fix plot toolbar (#276)
Fixed object scrolling when selecting object off page (#277)
Fixed plot queries to not affect plot data (#278)
Fixed object coloring to get all objects on the page (#279)
Fixed removing custom queries in filter dropdown (#280)
Fixed histogram not working with log x-axis (#281)
Improved delete population (#287)
Fixed threshold input step flickering between precisions (#288)
Added primary colored border to check inputs to increase visibility (#291)
Added support for string filters in populations (#295)
Removed trigger deploy to us-demo since it was discontinued (#299)
Fixed populations and plot updating on query change and routing (#300)
Fixed slider filter button not being contained by form (#303)
Always add parentheses around each condition (#304)
1.4.0 (2024-11-11)¶
Feature:
Converted table fetching to new tables api (#209)
Bugfixes/Maintenance:
Added Github issues template (#206)
Updated Github actions (#211, #213)
Pinned Sphinx version (#214)
Updated PathViewerJS (#216)
Fixed CSRF token passing (#217, #218)
1.3.0 (2024-09-06)¶
Features:
Initial support for plate data (#163)
Created proper routing and navigation (#165, #172, #199)
Added navigation bar button to switch between classification and regular mode
Ability save/load label image groups as filters (#168)
Can save groups to existing or newly created label group displays
Filters now have include and exclude object IDs UI (#169)
New classification mode (#174, #190)
Ability to create/save/name label image groups
Object thumbails can be dragged and dropped into groups
Classification groups can be saved to new or existing label image displays
More robust error indication and handling (#175)
New settings modal to control table formatting (#187)
Bugfixes/Maintenance:
Context refactor (#158)
Updated pvjs and open layers (#159)
Supports CSRF token in development mode (#167)
Deployment is direct bypassing Jenkins (#173)
Updated pvjs to 142 (#180)
Increased visibility of chart toggle button (#181)
Chart column select is closed when clicking outside (#182)
Fixed initializing image metadata (#184)
Updated pvjs to 4.0.13 for faster thumbnail load (#185)
Now requires Python 3.8 or greater (#188)
Fixed table column selection bugs (#192)
Fixed error from submitting empty filter (#197)
Updated pvjs to fix thumbnail loading on insecure webpages (#198)
Updated changelog and version to 1.3.0 (#205)
1.2.0 (2024-02-16)¶
Features:
Added Pageant version in footer (#128)
Added integration with label images (#123, #127)
Now a togglable label image overlay on PathViewerJS
Colored matches for what object on current page
Object not on page selectable and able to jump to page of that object
Scroll/selecting interaction now connected between all three sections
New empty state illustrations (#133)
New loading animation (#134)
Added changelog for 1.2.0 (#136)
Center dot to PathViewerJS view (#142)
Chart column selector closes on selection (#146)
Chart allows previous plot filter (#146)
Increased visibility of chart expand button (#146)
Reduced opacity of matched object in PathViewerJS (#155)
Filter slider is now centered properly (#156)
Bugfixes/Maintenance:
Fixed bug of not correctly detecting column type in filtering (#131)
Metadata now loaded from PathViewerJS (#138)
Updated Django 4.2 compatibility (#141)
Updated loading state order (#151)
Updated version to 1.2.0 for release (#132)
1.1.0 (2023-08-11)¶
Features:
Added ability to search and sort columns in filter, column dropdown, and chart column select (#108, #116, #117)
Column dropdown organized to shown and hidden (#110)
Filter modal redesigned into dropdown (#113)
Updated Pageant section organization to have image and thumbnails on right (#114)
Moved filter by view over PathViewerJS (#119)
Bugfixes/Maintenance:
Guard for initial column selection to be available (#109)
Updated PathViewerJS (#118, #122)
Build and release maintenance (#124)
1.0.0 (2023-05-17)¶
Initial release.