Repository navigation
Conversation
…other pages and corrected list items on projection and expression pages (issue #848)
…and progress reporting
- Moved `update_adata_with_ensembl_ids` and `update_var_with_ensembl_ids` to a new `gene_mapping` module for better organization. - Introduced a new `job_coordination` module to handle RabbitMQ job locking and retry logic. - Updated various listeners and processors to utilize the new utility structure, improving code clarity and maintainability. - Implemented memory limit management in job consumers to prevent OOM issues. - Enhanced observation dataframe handling with new sanitization and categorization functions.
Consumer retry and utils split
Fix all broken screenshot links (now relative paths), remove draft notes and stale "coming soon" labels, and correct outdated UI descriptions. Add sections for the Projection Tool, spatial and epigenome displays, display types per curator, the dataset panel menu, sharing/permalinks, and user profile/accessibility. Expand the gene list, compare tool and SC workbench sections. Document RDS/Seurat and CosMx uploads, GEO lookup, resuming submissions and hub.txt/multiWig support in the upload guide. Fix the compare tool help anchor and upload format text in-app, and mark two superseded analyst notes as historical. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fix inaccurate statements verified against the code: spatial service config/commands/routes, RabbitMQ queue names and unit files, setup steps (repo URL, db name, requirements path, slice install), Docker bake/compose services, and the cache-busting guide. Fix broken links, document the 12 missing bin/ scripts, and update systemd Documentation= URLs. Add new references under docs/developer/: REST API and CGI endpoint catalog, gear.ini configuration, testing, upload pipeline and on-disk layout, code map, and database schema. Remove the obsolete REORGANIZATION_SUMMARY.md and trim DEPRECATED.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add Google-style module, class and function docstrings across lib/, www/api, listeners/, services/projectr, services/spatial and the Python CGI scripts in www/cgi. CGI module docstrings list input parameters and the JSON returned. Docstring-only change: the AST of every file with docstrings stripped is identical to the previous version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Uploads: - Implement MEX processing with scanpy.read_10x_mtx, accepting the legacy uncompressed files or the gzipped Cell Ranger v3+ set, optionally inside a folder in the archive - Finalize now migrates .zip MEX/3-tab archives (previously only .tar.gz, so zip uploads failed); source download and has_tarball recognize them - Reject legacy .xls Excel files with a clear message (the processor only reads .xlsx and xlrd is not installed) - Lowercase stored file extensions so .RDS/.XLSX uploads are found later Bug fixes: - Status checks used a substring test (`in 'complete'`), so an empty status counted as complete; use equality - check_dataset_processing_status.cgi compared a UUID job_id with > 0 and printed JSON twice on errors - save_user_default_organism.cgi caught mysql.connector.Error without importing it, and crashed when not logged in - audit_cache_busting.py read the version from the wrong file and looked for a helper that no longer exists - Drop the unused [content] spatial_dataset_location key from templates Remove www/manual.html, manual.js, manual.css and the orphaned www/include/manual/ partials. The legacy navigation bar (contact.html) now links to the GitHub wiki. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Remove references to the deleted manual page and point users to the wiki and home-page video guides. Document MEX support, .zip archives, the .xlsx-only Excel rule and lowercased extensions in the upload guide and pipeline reference. Update the cache-busting audit, configuration and testing docs (CI noted as future work), and describe the cell-cell communication page as an uncommitted prototype. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Resolve the status.json path and refuse session_id/share_uid values that point outside the uploads area. Note in the docstring, API reference and upload pipeline doc that this CGI is kept for manual status checks because it takes session_id as a parameter instead of a cookie. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every bin/ script now has a module docstring. For convert_STAR_sj_tab_into_biginteract.py and csv_to_parquet.py, the existing description string sat after the imports, where Python does not treat it as a docstring; it is moved to the top and expanded. Describe gene_as_xy.py as a prototype for one instance's dataset. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replace the empty placeholder docstrings with descriptions and usage. For the KOMP and SHIELD loaders, state that the gene_urls table and gene.shield_facs_chart_url column they fill are not in create_schema.sql and are not read by the website. Correct the matching scripts README entries, including query_geo.py, which is an unfinished stub. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
getvalue() returns a list when a parameter is repeated, which would break code expecting a string (and allows a crafted request to trigger errors). No CGI expects repeated parameters, and the one multi-select on the frontend (comment tags) is joined into a single value before sending, so getfirst() is a drop-in replacement: it returns the same value for a single parameter and the same default when the parameter is missing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The uploader's MEX example is example_mex.tar, but the store CGI only accepted .tar.gz and .zip. Accept .tar (and .tgz, saved as .tar.gz), open tarballs with mode "r:*" so compression is detected from the contents rather than the extension, and have finalize migrate whichever archive was uploaded. A new Dataset.get_source_archive_path() finds the stored archive (.tar.gz, .tar or .zip) for source downloads and the has_tarball flag. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Added a link to the relevant research paper for HIEDRA.
…tional-annotation 1149 option to collapse entire functional annotation
…cale with predefined CONTINUOUS_CMAP and update color mapping logic.
…epca-plots-in-view-curator
…-umaptsnepca-plots-in-view-curator 1091 independent coloring of static umaptsnepca plots in view curator
…ated download processes
…correct passwords
- Mark slow tests in `test_colorblind.py` for better test management. - Update regression test in `test_regressions_lib.py` to ensure sensitive data is not returned. - Improve error handling in `tsne_data.py` to raise exceptions for invalid orders or filters. - Refactor `add_display_to_layout.cgi` to improve permission checks and layout member management. - Validate PubMed IDs in `get_citation_from_pubmed_id.cgi` to prevent malformed requests. - Remove deprecated `get_session_info.cgi` and `login.cgi` scripts for cleaner codebase. - Add domain control in `save_new_genecart_json.cgi` to restrict domain list creation to admins. - Implement email validation in `save_user_account_changes.cgi` to prevent duplicate accounts. - Enhance layout selection logic in `save_user_chosen_layout.cgi` to ensure proper user permissions. - Improve event registration logic in `set_user_event_registration.cgi` for better user feedback. - Update analysis class in `analysis.js` to streamline analysis type handling and button visibility. - Refactor workbench script to simplify analysis type checks and improve user notifications. - Enhance user profile script to provide clearer error messages during preference updates.
…o mocking requirement
Server side tests
| if (opts?.isHTML) { | ||
| // Parse the message as markup, then strip anything executable. | ||
| const template = document.createElement("template"); | ||
| template.innerHTML = String(msg); |
| if (opts?.isHTML) { | ||
| // Parse the message as markup, then strip anything executable. | ||
| const template = document.createElement("template"); | ||
| template.innerHTML = String(msg); |
…e check' Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…ist Manager to fix cross-side server scripting
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.
The main focus on this particular merge was adding more server-side tests to the gEAR codebase and fixing any bugs and vulnerabilities that may have been found.