From e6b8fe9f61b109b9c94a07b8e91b5cbdc1ef6976 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 30 Oct 2026 07:40:04 +0000 Subject: [PATCH 1/2] Version 0.3.2: data-flow audit fixes (PRs #40-#47) pyproject reports 0.3.2 before tagging; plan question 37 and AGENTS.md record what v0.3.2 holds. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01VbytvBRB9CmKQ5AAkhEFcv --- AGENTS.md | 10 +++++++++- docs/plan.md | 10 ++++++++++ pyproject.toml | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 64bec578..6fd6f9a8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -767,7 +767,15 @@ jupyter lab notebooks/MorphoBricks_Preprocessing.ipynb - **v0.3.1** (to be tagged, question 36): `discovery.position_id`, the one function every MorphoBricks brick names positions with (D85), also removes `.png`, `.jpg`, `.jpeg`, `.bmp`, `.gif` and `.npy` (naming only) and refuses a name that is only an extension - (PR #33). Outputs unchanged. + (PR #33). Outputs unchanged. Released 29 October 2026. +- **v0.3.2** (to be tagged, question 37): the fixes from the data-flow audit of + 29 October 2026 (#35–#39): negative mask labels refused (PR #40); a malformed OME-Zarr + labels group is `unreadable_mask` (PR #41); differing channel names are an error, + compared exactly after trimming leading and trailing whitespace, recorded as + `channel_names_trimmed` (PRs #42, #45); masks get Z/T plane identity and a 2D mask for a + multi-plane image is refused (PR #43); strict manifest flags, per-file roles and uint64 + labels (PR #44); a folder holding images and subfolders is an error (PR #46); the + normalization brick pinned to v0.3.2 (PR #47). - **Next (not started):** the notebook step for the masks (name each mask, confirm or correct the relationships) and a file saving those answers for the other bricks (question 32); 3D and time-lapse masks later. diff --git a/docs/plan.md b/docs/plan.md index c726fd9a..b4f19279 100644 --- a/docs/plan.md +++ b/docs/plan.md @@ -896,3 +896,13 @@ Raised during review; to be decided before the milestones that need them: that is only an extension. Outputs and their schema versions are those of v0.3.0, with the normalization brick's v0.3.1. The version in `pyproject.toml` is 0.3.1 before tagging. Every brick pins this tag (D79), CellPatcher's core dependency included.* +37. What does v0.3.2 hold? + *Decided (30 October 2026): v0.3.1 and the fixes of the data-flow audit of 29 October + 2026 (issues #35–#39), PRs #40–#47: negative mask labels refused; malformed OME-Zarr + labels reported as `unreadable_mask`; differing channel names an error (exact after + trimming leading and trailing whitespace, recorded per file); mask Z/T plane identity, + with a 2D mask for a multi-plane image refused; strict manifest flags; a folder holding + images and subfolders an error; the normalization brick's v0.3.2, whose reader checks + each row's `plane_id`, `image_file` and `bit_depth`. Runs that passed before may now be + refused; none gives different numbers. The version in `pyproject.toml` is 0.3.2 before + tagging. Every brick pins this tag (D79).* diff --git a/pyproject.toml b/pyproject.toml index ed7e5928..6a13aa7f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "morphobricks-preprocessing" -version = "0.3.1" +version = "0.3.2" description = "MorphoBricks preprocessing brick: per-plane intensity histograms and normalization methods for microscopy TIFFs." readme = "README.md" license = "MIT" From 6aa01548472161d07577128a7bd6a3959b0f4cd8 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 30 Oct 2026 07:40:28 +0000 Subject: [PATCH 2/2] Plan question 37: drop an unverified claim about unchanged numbers Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01VbytvBRB9CmKQ5AAkhEFcv --- docs/plan.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/plan.md b/docs/plan.md index b4f19279..33dab2b1 100644 --- a/docs/plan.md +++ b/docs/plan.md @@ -903,6 +903,6 @@ Raised during review; to be decided before the milestones that need them: trimming leading and trailing whitespace, recorded per file); mask Z/T plane identity, with a 2D mask for a multi-plane image refused; strict manifest flags; a folder holding images and subfolders an error; the normalization brick's v0.3.2, whose reader checks - each row's `plane_id`, `image_file` and `bit_depth`. Runs that passed before may now be - refused; none gives different numbers. The version in `pyproject.toml` is 0.3.2 before + each row's `plane_id`, `image_file` and `bit_depth`. Inputs that passed before may now be + refused. The version in `pyproject.toml` is 0.3.2 before tagging. Every brick pins this tag (D79).*