Skip to content

Merge main into cellpack-analysis#472

Merged
mogres merged 27 commits into
cellpack-analysisfrom
integrate/main-into-analysis
Jun 16, 2026
Merged

Merge main into cellpack-analysis#472
mogres merged 27 commits into
cellpack-analysisfrom
integrate/main-into-analysis

Conversation

@mogres

@mogres mogres commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Merges main into the long-lived cellpack-analysis fork branch, bringing main's
infrastructure (dependency upgrades, recipe-JSON server support, dedup hashing,
requirements.txt deprecation, etc.) into the fork without changing
downstream-observable packing behavior
. The downstream cellpack-analysis
repo pins cellpack to f8b5500f (current cellpack-analysis HEAD), so the
goal was to preserve gradient math and output file naming exactly.

Base is cellpack-analysis (not main): this updates the fork.

Conflict resolutions (favoring downstream behavior)

  • Gradient.py — kept the analysis behavior (probability-mixing
    combine_gradients, use_real_distances + decay validation). Left
    byte-identical to f8b5500f.
  • validation/recipe_models.py — kept the analysis validation layout
    (gradient defaults in interface_objects/default_values.py). Fixed a
    silent-but-broken auto-merge by redirecting two main-authored imports of
    DEFAULT_GRADIENT_MODE_SETTINGS from recipe_models to interface_objects
    (a naive merge ImportErrors at startup otherwise).
  • loaders/recipe_loader.py — took main's refactor (recipe-JSON input,
    _normalize_gradients); dropped the now-redundant analysis GradientData block.
  • loaders/config_loader.py — kept the analysis parallel
    number_of_processes rename; restored upload_results /
    open_results_in_browser defaults to True to match the downstream baseline;
    added a backward-compat shim mapping legacy parallel.
  • writers/__init__.py — kept the analysis result-file naming (downstream
    globs results_*.simularium); layered in main's dedup_hash plumbing.
  • depsbioio (analysis) + requirements.txt deprecation (main)
    auto-merged cleanly.

Also: pack.py logs the resolved cellpack package path at DEBUG level (helps
confirm which cellpack build a run used).

Verification

  • 93 cellpack non-AWS tests pass; imports clean; package compiles.
  • Real-data integration packing (cell 743916, local meshes/grids) produces
    bit-identical packed positions vs the downstream pin f8b5500f for random,
    single-gradient, and multi-gradient combine recipes.
  • Full downstream run_packing_workflow (generation + packing, random + gradient
    rules) runs green against this branch.
  • main vs this branch: identical for random and single-gradient packings;
    differs only for multi-gradient combination — the intended divergence
    (probability mixing vs main's max-normalization). This branch matches
    f8b5500f exactly on that case.

Notes / follow-ups

  • Re-pin the downstream cellpack-analysis repo's cellpack.rev only after this lands.
  • Consider running uv lock before final merge.
  • A complementary end-to-end (generation+packing) slow test was drafted in the
    downstream cellpack-analysis repo (not part of this PR).

🤖 Generated with Claude Code

rugeli and others added 27 commits November 10, 2025 10:10
* default upload_results to false

* update config file options

* update schema docs

* propose to remove config files from the packing commands but add a section to explain how configs work

* set open_results_in_browser to false since it's dependent on upload_results

* improve loggings

* add a config file for upload results

* correct option default and log level

* update schema

* add aws db to path

* add a layer to detect non-interactive envs for db selection

* fix readme

* add cellpack website url

* remove unnecessary restriction

* update readme

* add screenshots to readme (#413)

* add screenshots to readme

* Quick fix: update bbox value in recipes (#420)

* add randomness_seed to upload and download (#416)

* update bbox value in recipes

* add config option for plot display

* replace result screenshots and update readme

* update docs/index to display images correctly
* add `description` and `randomness_seed` to top level recipe settings

* add description in example recipes

* add description to download and upload script

* add description field to unit tests
* test github cli

* remove test branch
* set camera

* use max dimension
* add upload script

* add example data and more documentation

* point to correct collection

* return firebase IDs from upload_recipe adn upload_config

* add documentation

* add installation step

* lint fixes

* lint fix

* fix typos

* keep all upload functionality in upload.py, and rename client to studio

* remove accidential line

* update example editable fields to match updates we've done

* add output param

* lint fixes

* small wording fixes

* make config_path optional
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 4 to 7.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](astral-sh/setup-uv@v4...v7)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* use gh api instead of gh pr review

* remove backslashes

* trigger workflow to test comment update

* use patch instead of delete

* take2-trigger workflow to test comment update

* use an actual new line to avoid \n being treated as literal chars
* add recipe and config to output

* refactor

* path guard

* Potential fix for code scanning alert no. 21: Uncontrolled data used in path expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* format

* fix 404 comment

* handle firebase recipe, serialize it before passing to s3

* save recipe data directly to outputs

* remove unused import

* one more unused import

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@v4...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add gradient weights to Environment.py and Gradient.py

* Remove unused import

* Refactor Environment.py and utils.py

This commit refactors the `Environment.py` file by separating the loading of grid, compartment grids, and mesh store into separate loops. It also clears the triangles_tree cache and resets the grid. Additionally, the `load_object_from_pickle` function has been removed from `utils.py` as it is no longer used.

* Ignore venv folders

* Update logging level

* Update `aicsimageio` to `bioio`

- Also update the logging of recipe validation to `debug`

* Suppress logging outputs for lower level functions

* Update logs in `ImageWriter.py`

* Update path preference loading to catch empty json

* Update logging for recipe validation

* sort imports

* Update uv lock

* Allow gradient weights to be specified as a dict while combining

* Add uniform weight map option

* Fix gradient weight scaling for equal weights

* Update scaling to just divide by max value

* Add recipe to test gradients

* Rename scaling method to normalize_by_max_value and update references

* Use uniform weight if `decay_length` is 0

* Linting updates

* Update validation for decay length

* Update validation for multiple gradients

* Add zero decay gradient in test recipe
#447)

* ci(dependabot): bump aws-actions/configure-aws-credentials from 4 to 5

Bumps [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) from 4 to 5.
- [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases)
- [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md)
- [Commits](aws-actions/configure-aws-credentials@v4...v5)

---
updated-dependencies:
- dependency-name: aws-actions/configure-aws-credentials
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* matching the regular pr format

* trigger codeQL

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ruge Li <rugeli0605@gmail.com>
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 7 to 8.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* update UV setup to version 7
* update Dependabot configuration

* remove unnecessary permissions for open-PR job in make-requirements.yml

* Make timestamp unique using the run ID

* Avoid expanding the WORKFLOW_PAT
Bumps the actions group with 4 updates: [actions/checkout](https://github.com/actions/checkout), [actions/upload-artifact](https://github.com/actions/upload-artifact), [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) and [actions/download-artifact](https://github.com/actions/download-artifact).


Updates `actions/checkout` from 4 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v6)

Updates `actions/upload-artifact` from 6 to 7
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@v6...v7)

Updates `aws-actions/configure-aws-credentials` from 5 to 6
- [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases)
- [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md)
- [Commits](aws-actions/configure-aws-credentials@v5...v6)

Updates `actions/download-artifact` from 6 to 8
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](actions/download-artifact@v6...v8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: aws-actions/configure-aws-credentials
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Upgrading dependencies

* Update black target version

* Formatting via `uv run black cellpack`
…in` (#458)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* add upload script

* add example data and more documentation

* point to correct collection

* have server accept recipe as json object in body of request

* update documentation

* remove accidential dockerfile changes

* rename param json_recipe

* remove file that shouldn't be in this PR

* remove accidential file

* lint fixes

* refactor to try to improve clarity of json recipe vs file path

* lint fixes

* lint fix

* minimize changeset

* minimize changeset

* simplify changeset

* code cleanup

* minimize changeset

* remove trailing comma

* Feature/firebase lookup (#445)

* remove os fetch for job_id

* use dedup_hash instead of job id

* proposal: get hash from recipe loader

* renaming and add TODOs

* format

* rename param to hash

* remove unused validate param and doc strings in pack

* simplify get_ dedup_hash

* refactor job_status update

* cleanup

* fix upload_job_status to handle awshandler

* pass dedup_pash to env for fetching across files

* add tests

* format1

* format test

* Only upload simularium file once (#446)

* proposal: get hash from recipe loader

* simplify get_ dedup_hash

* only post simularium results file once for server job runs

* update code for rebase

* code cleanup

---------

Co-authored-by: Ruge Li <rugeli0605@gmail.com>

* Maint/firebase collection cleanup (#448)

* remove local metadata writes for auto-pop feature

* remove cleanup firebase workflow

* remove cleanup firebase code

* 1. make doc url a constant 2.remove unused param

* handle both recipe_path and json body requests (#449)

* change error message body

* lint fixes

* add more checks when attempting to read json body

* add upload script

* add example data and more documentation

* point to correct collection

* have server accept recipe as json object in body of request

* update documentation

* remove accidential dockerfile changes

* rename param json_recipe

* remove file that shouldn't be in this PR

* remove accidential file

* lint fixes

* refactor to try to improve clarity of json recipe vs file path

* lint fixes

* lint fix

* minimize changeset

* minimize changeset

* simplify changeset

* code cleanup

* minimize changeset

* remove trailing comma

* Feature/firebase lookup (#445)

* remove os fetch for job_id

* use dedup_hash instead of job id

* proposal: get hash from recipe loader

* renaming and add TODOs

* format

* rename param to hash

* remove unused validate param and doc strings in pack

* simplify get_ dedup_hash

* refactor job_status update

* cleanup

* fix upload_job_status to handle awshandler

* pass dedup_pash to env for fetching across files

* add tests

* format1

* format test

* Only upload simularium file once (#446)

* proposal: get hash from recipe loader

* simplify get_ dedup_hash

* only post simularium results file once for server job runs

* update code for rebase

* code cleanup

---------

Co-authored-by: Ruge Li <rugeli0605@gmail.com>

* Maint/firebase collection cleanup (#448)

* remove local metadata writes for auto-pop feature

* remove cleanup firebase workflow

* remove cleanup firebase code

* 1. make doc url a constant 2.remove unused param

* handle both recipe_path and json body requests (#449)

* change error message body

* lint fixes

* add more checks when attempting to read json body

* let recipe loader check the input and key stripping

* Update cellpack/autopack/writers/__init__.py

Co-authored-by: Saurabh Mogre <saurabh.mogre@alleninstitute.org>

* use `isinstance` for AWSHandler, and misc

* update aws tests

* initialize dedup_hash

* add in-line comment

* temp solution: use requirement.txt

---------

Co-authored-by: Ruge Li <91452427+rugeli@users.noreply.github.com>
Co-authored-by: Ruge Li <rugeli0605@gmail.com>
Co-authored-by: Saurabh Mogre <saurabh.mogre@alleninstitute.org>
…tes (#466)

Bumps the actions group with 4 updates in the / directory: [actions/configure-pages](https://github.com/actions/configure-pages), [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact), [actions/deploy-pages](https://github.com/actions/deploy-pages) and [codecov/codecov-action](https://github.com/codecov/codecov-action).


Updates `actions/configure-pages` from 5 to 6
- [Release notes](https://github.com/actions/configure-pages/releases)
- [Commits](actions/configure-pages@v5...v6)

Updates `actions/upload-pages-artifact` from 4 to 5
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](actions/upload-pages-artifact@v4...v5)

Updates `actions/deploy-pages` from 4 to 5
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](actions/deploy-pages@v4...v5)

Updates `codecov/codecov-action` from 5 to 6
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](codecov/codecov-action@v5...v6)

---
updated-dependencies:
- dependency-name: actions/configure-pages
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/upload-pages-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/deploy-pages
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: codecov/codecov-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* normalize data order before hashing and tests

* test pack cli

* refactor test file: use tmp_path instead of writing to a working dir

* cleanup

* formatting

* add recipe fixture
* we only support recipe as JSON body now, remove support for reading recipe file path from URL

* update documentation to use new communication protocol and strip out references to AWS batch

* remove unused import
* remove requirements.txt related code

* update pyproject.toml

* generate new uv file

* update pip install for dockerfile

* use uv sync

* move server dep list under dependency-groups

* update docker

* fix path and use uv sync

* add pydantic to pyproject toml

* update lock file
* update migration script and validation

* add v2 blood plasma recipe
Bumps the actions group with 1 update: [actions/add-to-project](https://github.com/actions/add-to-project).


Updates `actions/add-to-project` from 1.0.2 to 2.0.0
- [Release notes](https://github.com/actions/add-to-project/releases)
- [Commits](actions/add-to-project@v1.0.2...v2.0.0)

---
updated-dependencies:
- dependency-name: actions/add-to-project
  dependency-version: 2.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ified gradients (#470)

* Add recipe and config to test gradient mixing in peroxisome data

* normalize grad in early process

* add tests

---------

Co-authored-by: mogres <saurabh.mogre@alleninstitute.org>
Reconcile 25 commits from main into the cellpack-analysis fork, resolving
4 conflicts + 1 silent auto-merge while preserving downstream-observable
packing behavior (gradient math + output file naming).

Resolutions:
- Gradient.py: keep analysis behavior (probability-mixing combine_gradients,
  use_real_distances/decay-length validation) — byte-identical to f8b5500,
  the commit the downstream cellpack-analysis repo pins to.
- recipe_models.py / validation: keep the coherent analysis validation layout
  (defaults in interface_objects); redirect two stale main-authored imports of
  DEFAULT_GRADIENT_MODE_SETTINGS to interface_objects to fix a silent
  ImportError the naive merge would have produced.
- recipe_loader.py: take main's refactor (recipe-JSON support, _normalize_gradients,
  serializable_recipe_data); drop the redundant analysis GradientData block.
- config_loader.py: take both (number_of_processes rename + main defaults), then
  restore upload_results/open_results_in_browser defaults to True to match the
  downstream baseline; add a backward-compat shim mapping legacy `parallel`.
- writers/__init__.py: keep analysis result-file naming (downstream globs
  results_*.simularium); layer in main's dedup_hash plumbing.
- deps: bioio (analysis) + requirements.txt deprecation (main) auto-merged cleanly.

Verified: 93 non-AWS tests pass; import smoke test clean; end-to-end gradient
pack produces results_<recipe>_<config>_<version>_seed_<n>.simularium naming.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds a DEBUG-level log of which cellpack package pack.py imported
(autopack path), so it is easy to confirm whether a run used an
installed/pinned cellpack vs a checked-out branch when debugging.
Kept at DEBUG so normal packing output is unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Packing analysis report

Analysis for packing results located at cellpack/tests/outputs/test_spheres/spheresSST

Ingredient name Encapsulating radius Average number packed
ext_A 25 236.0

Packing image

Packing image

Distance analysis

Expected minimum distance: 50.00
Actual minimum distance: 50.01

Ingredient key Pairwise distance distribution
ext_A Distance distribution ext_A

@mogres mogres requested a review from Copilot June 15, 2026 17:44
@mogres mogres self-assigned this Jun 15, 2026
@mogres

mogres commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator Author

We need to evaluate whether to keep maintaining this fork as a separate entity or if it makes sense to integrate into the current version of cellpack. Right now, this fork is used in mesoscope/cellpack-analysis as a pinned commit.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR merges main into the long-lived cellpack-analysis branch, bringing in upstream infrastructure changes (uv/pyproject-based deps, recipe-JSON server support, dedup hashing, docs updates, and related refactors) while aiming to preserve downstream packing behavior (notably multi-gradient combination behavior).

Changes:

  • Deprecate exported requirements/**/requirements.txt in favor of pyproject.toml/uv, and update docs + Docker build accordingly.
  • Add server-side recipe submission via JSON body + dedup hashing to avoid redundant packings, and plumb dedup identifiers through result upload paths.
  • Expand recipe/config/docs schema support (description, randomness_seed) and add/adjust tests to cover the new loader + hashing behaviors.

Reviewed changes

Copilot reviewed 70 out of 77 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
requirements/windows/requirements.txt Removed autogenerated platform requirements export (uv/pyproject flow).
requirements/macos/requirements.txt Removed autogenerated platform requirements export (uv/pyproject flow).
requirements/linux/requirements.txt Removed autogenerated platform requirements export (uv/pyproject flow).
README.md Updates install instructions and expands recipe usage/docs pointers.
pyproject.toml Adds dependencies/extras and removes requirements from packaged sources; tweaks Black config.
examples/recipes/v2/spheres_in_a_box.json Adds recipe metadata (description).
examples/recipes/v2/peroxisome.json Adds recipe metadata (description).
examples/recipes/v2/one_sphere.json Updates example bounding box + radius values.
examples/recipes/v2/golgi_endosome.json Adds recipe metadata (description).
examples/recipes/v2/er_peroxisome.json Adds recipe metadata (description).
examples/recipes/v2/endosome.json Adds recipe metadata (description).
examples/recipes/v2/BloodPlasma-no-HIV_fv2.1.json Adds a new v2.1 example recipe.
examples/packing-configs/upload_and_open_result.json Adds example config enabling upload + browser open.
examples/client-data/example_editable_fields.json Adds example “editable fields” schema for Studio integration.
docs/STUDIO_SITE.md Adds documentation for Studio site and publishing workflow.
docs/RECIPE_SCHEMA.md Documents new top-level recipe fields (description, randomness_seed).
docs/INSTALLATION.md Updates clone instructions to mesoscope/cellpack.
docs/index.md Adjusts README include settings for docs build.
docs/DOCKER.md Updates Docker docs to focus on ECS/server usage.
docs/CONTRIBUTING.md Updates contributing instructions to use uv sync.
docs/CONFIG_SCHEMA.md Updates config schema docs (but currently mismatches actual defaults).
docker/server.py Switches packing endpoint to accept JSON body; adds dedup hashing + job status updates.
docker/entrypoint-batch.sh Removes legacy batch entrypoint script.
docker/Dockerfile.ecs Switches Docker build to uv sync with a server dependency group.
docker/Dockerfile.batch Removes legacy batch Dockerfile.
cellpack/tests/test_recipe_version_migration.py Updates RecipeLoader call sites for new signature.
cellpack/tests/test_recipe_loader.py Adds tests for gradient normalization defaults + imports default settings.
cellpack/tests/test_partners.py Minor formatting tweak (blank line).
cellpack/tests/test_pack_cli.py Adds integration tests for pack() with recipe dict input + default config behavior.
cellpack/tests/test_gradient_data.py Minor formatting tweak (blank line).
cellpack/tests/test_db_uploader.py Extends uploader tests (description + job status updates).
cellpack/tests/test_db_recipe_loader.py Extends DB recipe loader test data (description).
cellpack/tests/test_data_doc.py Adds hash stability tests across key/list ordering rules.
cellpack/tests/test_aws_handler.py Fixes tests to avoid writing into CWD by using tmp_path.
cellpack/tests/recipes/v2/test_peroxisome_combined_gradient.json Adds a combined-gradient fixture recipe.
cellpack/tests/packing-configs/test_gradient_mixing.json Adds a config fixture for gradient mixing tests.
cellpack/bin/upload.py Extends upload CLI for Studio metadata + result upload + description propagation.
cellpack/bin/simularium_converter.py Changes camera Z heuristic for converted trajectories.
cellpack/bin/pack.py Allows recipe dict input; plumbs dedup hash into env + upload workflow.
cellpack/bin/cleanup_tasks.py Removes Firebase cleanup task script.
cellpack/autopack/writers/init.py Threads dedup hash into upload/open behavior.
cellpack/autopack/validation/recipe_models.py Adds description/randomness_seed, allows float priority, removes gradient-combination validator.
cellpack/autopack/upy/simularium/simularium_helper.py Refactors result upload/open; simplifies AWS upload; updates camera heuristic.
cellpack/autopack/upy/hostHelper.py Minor formatting tweak (blank line).
cellpack/autopack/transformation.py Minor formatting tweak (blank line).
cellpack/autopack/Serializable.py Minor formatting tweak (blank line).
cellpack/autopack/MeshStore.py Minor tuple unpacking style changes.
cellpack/autopack/loaders/recipe_loader.py Accepts dict recipes; normalizes gradients + saves serializable snapshot.
cellpack/autopack/loaders/migrate_v1_to_v2.py Normalizes v1 color values to 0–1 range when needed.
cellpack/autopack/loaders/config_loader.py Adds legacy key migration (parallelnumber_of_processes).
cellpack/autopack/IOutils.py Minor formatting tweak (blank line).
cellpack/autopack/interface_objects/default_values.py Removes results from firebase collection allow-list.
cellpack/autopack/interface_objects/database_ids.py Adjusts AWS handler factory signature defaults.
cellpack/autopack/interface_objects/init.py Minor formatting tweak (blank line).
cellpack/autopack/ingredient/Ingredient.py Minor tuple unpacking style changes.
cellpack/autopack/GeometryTools.py Minor formatting tweak (blank line).
cellpack/autopack/FirebaseHandler.py Defaults to staging DB in non-interactive environments.
cellpack/autopack/Environment.py Adds dedup_hash attribute to env.
cellpack/autopack/DBRecipeHandler.py Adds dedup-hash normalization + job status + output upload workflow changes; removes DBMaintenance.
cellpack/autopack/BaseGrid.py Minor formatting tweak (blank line).
cellpack/autopack/AWSHandler.py Switches credential warning from print() to logging.
cellpack/autopack/Analysis.py Minor formatting tweak (blank line).
cellpack/autopack/init.py Adds AWS to server URL map; improves remote-db error message.
.github/workflows/make-requirements.yml Removes workflow that generated platform requirements exports.
.github/workflows/cleanup-firebase.yml Removes Firebase cleanup workflow.
.github/workflows/cleanup-aws.yml Updates GitHub Actions versions.
.github/workflows/ci.yml Updates GitHub Actions versions (checkout/codecov).
.github/workflows/cache-dependencies.yml Updates GitHub Actions versions (checkout).
.github/workflows/build-docs.yml Updates GitHub Actions versions (checkout/pages).
.github/workflows/analyze.yml Updates action versions and switches PR commenting to gh CLI.
.github/workflows/add-issue-to-project.yml Updates actions/add-to-project version.
.github/dependabot.yml Broadens actions grouping and adds uv ecosystem updates.
.github/actions/uv/action.yml Updates uv setup action version.
.github/actions/dependencies/action.yml Updates uv setup action version.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docker/server.py
Comment on lines +49 to 52
if not (request.can_read_body and request.content_length and request.content_length > 0):
raise web.HTTPBadRequest(
"Pack requests must include recipe as a query param"
"Pack requests must include a recipe in the request body"
)
Comment on lines 548 to +553
if self.db:
timestamp = self.db.create_timestamp()
self.db.update_or_create(
"job_status",
job_id,
{
"timestamp": timestamp,
"status": str(status),
"result_path": result_path,
"error_message": error_message,
},
)

def upload_packing_results_workflow(self, source_folder, recipe_name, job_id):
db_handler = self.db
# If db is AWSHandler, switch to firebase handler for job status updates
if isinstance(self.db, AWSHandler):
handler = DATABASE_IDS.handlers().get(DATABASE_IDS.FIREBASE)
db_handler = handler(default_db="staging")
Comment thread docs/CONFIG_SCHEMA.md
| `name` | string | Name of the config | default | Used to identify this config run |
| `number_of_packings` | number (>=1) | Number of independent packing replicates | 1 | |
| `open_results_in_browser` | boolean | Open results in browser after run | True | |
| `open_results_in_browser` | boolean | Open results in browser after run | False | Prerequisite: AWS s3 credentials |
Comment thread docs/CONFIG_SCHEMA.md
| `show_sphere_trees` | boolean | Visualize sphere trees | False | |
| `spacing` | number | Override object spacing | None | |
| `upload_results` | boolean | Upload results to S3 | True | |
| `upload_results` | boolean | Upload results to S3 | False | Requires AWS S3 credentials to upload the result file to S3 | |
@mogres mogres marked this pull request as ready for review June 16, 2026 16:20
@mogres mogres merged commit 50f7d1c into cellpack-analysis Jun 16, 2026
3 checks passed
@mogres mogres deleted the integrate/main-into-analysis branch June 16, 2026 16:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants