Commit ab889be
fix(workflow): š read merge's label counts by path, not from snakemake.input
merge.py started reading its inputs when it began consuming the per-tile
label counts, and that surfaced a latent problem: it was handed tiles.json
where it expected the seg markers.
Cause: merge.py deletes stage.zarr.done, which is an output of the `prepare`
checkpoint. With that gone the checkpoint can never be resolved again, so on
any later DAG evaluation Snakemake cannot expand batch_done and substitutes a
placeholder input instead -- batch_done is not even called. The old merge.py
ignored snakemake.input entirely, so this went unnoticed.
The marker paths are deterministic, so they are now derived from the manifest
rather than from snakemake.input, which is immune to the substitution. And
the sentinel is only removed on the scratch-store route, which is the only
one that deletes the store the sentinel refers to; in place there is nothing
to invalidate.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>1 parent 0ae7f05 commit ab889be
1 file changed
Lines changed: 20 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | | - | |
60 | | - | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
61 | 69 | | |
62 | 70 | | |
63 | 71 | | |
| |||
97 | 105 | | |
98 | 106 | | |
99 | 107 | | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
100 | 117 | | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
| 118 | + | |
106 | 119 | | |
107 | 120 | | |
0 commit comments