π€ from Claude
Sweep of closed PRs from the last 10 days (June 24 β July 4, 2026): #44, #70, #103, #105, #106, #107, #111, #112, #113, #115, #123, #124, #125, #127, #128, #129, #131, #134, #136, #140, #144, #146, #147, #150, #152, #153, #159, #162. PRs #103/#105/#106/#107 were already surfaced by the prior sweep (#114); this issue covers new gaps from the remaining 24 PRs, plus a re-verification of #114's 4 carry-forward items against current main. Two of #114's items are now resolved and excluded: the cryocloud notebook now explicitly documents itself as non-Binder-runnable rather than silently requiring credentials, and jupyterhub_example.ipynb no longer has hardcoded deployment-specific ARNs. Two carry-forwards are still open and folded into the list below.
Items
(1) Zero-photon granule segment-read cost still unaddressed in the production read path β carry-forward from #114 β PR #96 / touched by #152
No July PR added a general per-granule early exit for granules that don't actually cross the shard. PR #152 built an experimental "a-priori read plan" (arm 2a) that can skip the geolocation-rate read using pre-extracted chunk-boundary geometry, but it's wired only into the 88S stress-benchmark config (issue #148, still open) β the default _planned_read_group path (src/zagg/processing/read.py) still reads every granule's full coarse-level segment-coordinate + link arrays before it can tell the granule doesn't intersect.
(2) publish_mirror.sh --creds still ignores region/endpoint fields β carry-forward from #114 β PR #85
Current deployment/aws/publish_mirror.sh only pulls AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY/AWS_SESSION_TOKEN out of the --creds JSON; region/endpoint still come only from MIRROR_REGION. Unchanged by any PR in this window.
(3) shard_order write-path knob (PR #134 Phase 8) has no tracking issue β PR #134
PR #134's own checklist left Phase 8 unstarted: "decouple the sharding object from the dispatch shard... a shard_order knob (parent_order < shard_order <= chunk_inner)... makes large/dense shards (88S) writable under the 2 GB cap." This is the specific mechanism needed to fit dense o8/o9 shards β exactly the 88S stress target being actively pursued in #148 β under the Lambda memory cap. Issues #138 and #142 mention shard_order only in passing, and #133 (the issue they point back to) is already closed. No issue actually tracks implementing this knob.
(4) Local-backend ragged-write fan-out has no cross-worker concurrency cap β PR #147
_write_ragged_fanout (src/zagg/processing/write.py) bounds each worker's inner CSR-write pool at _RAGGED_WRITE_CONCURRENCY = 128 β safe on Lambda (one worker per isolated container) but on the local backend the theoretical peak is outer_cells Γ 128 threads, since fd_safe_max_workers() only floors the per-call bound, not a cross-pool budget. Flagged as an explicit open "Question for review" in PR #147 with no reply in the thread; the flat constant is unchanged.
(5) Sync Lambda-dispatch fallback still has no TCP keepalive, leaving it exposed to the same idle-kill #151 was opened to fix β PR #153, Refs #151
The root-cause analysis on #151 proposed a short-term Config(tcp_keepalive=True, ...) fix for the ~4-minute SNAT idle-connection kill; espg went straight to the durable async/poll fix (#153) instead. PR #153's own self-review flagged that keepalive "is now only relevant to the sync fallback path" and needs either a two-line addition or an explicit won't-do note on #151 β neither happened, and #151 was closed by #153's merge with no further comment. Confirmed in current src/zagg/runner.py: both boto_config = Config(...) blocks (read_timeout=960 and read_timeout=900) omit tcp_keepalive. The sync path is the documented fallback for oversized async payloads and pre-#153 workers β exactly the scenario #151 hit.
(6) Run-level retry budget still missing (per-cell retries have no overall circuit breaker) β PR #127, echoes #119
PR #127 fixed per-cell retry behavior (_invoke_lambda_cell in src/zagg/runner.py) but explicitly left standing: "the run-level retry budget... is explicitly out of scope here; the per-cell dispatch/LAMBDA_RETRY path in dispatch.py is untouched." The same gap was flagged in #119 (closed) but never turned into its own issue β a systemic failure (e.g. AWS throttling across a whole run) still has no circuit breaker; every cell retries independently.
(7) CSR-write consolidation ("option 2") has no successor tracking issue β PR #147, Refs #142
#142 discussed consolidating the K per-inner-chunk CSR groups into one group per dispatch shard (~1500 S3 objects β ~6, cheaper consolidate_metadata), requiring re-offsetting cell_ids into shard-wide space and generalizing the reader's hardcoded _CHUNK_SIDE=64/divmod assumption in src/zagg/readers/tdigest_tensor.py. #142 is now closed, satisfied only by option 1 (the per-cell writes just merged); option 2 has no home.
(8) Upstream h5coro hyperslice hardening left as an untracked one-liner β PR #162
PR #162's fix note: the optional upstream setdefault("hyperslice", []) hardening "is out of scope here per the issue β it stays a candidate one-liner for a future SlideRuleEarth/h5coro PR." Distinct from #154 (numpy-vectorization hand-off); nothing else tracks this specific defensive nicety.
(9) Browser verification of the ipyleaflet shardmap viewer still deferred β PR #44
PR #44's "Questions for review": "Browser verification of the live ipyleaflet map is still deferred (constructs + layers attach headlessly; in-browser rendering can't be verified here)." #74 (globe-view viewer, Phase B) is a separate, larger feature and doesn't cover manually verifying the existing inline widget (src/zagg/viz/leaflet.py) in a real browser.
(10) Two self-acknowledged non-blocking nits in the benchmark runner β PR #146
From PR #146's self-review: (a) a target manifest exceeding the 16-way concurrency cap lets already-queued targets finish before an abort rather than stopping immediately; (b) per-target progress lines print only after all targets complete rather than streaming. File: .github/scripts/run_benchmark.py. Both called non-blocking by the author; neither has a tracking issue.
Priority / severity table
| Priority |
Item |
Severity |
Source PR |
| 1 |
Zero-photon granule read cost β wasted full segment I/O scales with AOI size, still only fixed experimentally for one benchmark config |
High |
#96 (carry-forward) |
| 2 |
shard_order write-path knob untracked β blocks the active 88S dense-shard-under-2GB effort |
Medium-High |
#134 |
| 3 |
Local-backend ragged-write fan-out has no cross-worker cap β FD/resource-exhaustion risk at scale |
Medium |
#147 |
| 4 |
Sync Lambda-dispatch fallback missing TCP keepalive β same idle-kill failure mode #151 was opened for |
Medium |
#153 |
| 5 |
Run-level retry budget missing β no circuit breaker for systemic (not per-cell) failures |
Low-Medium |
#127 |
| 6 |
CSR-write consolidation "option 2" β object-count/efficiency gap, no correctness impact |
Low-Medium |
#147 |
| 7 |
publish_mirror.sh --creds ignores region/endpoint β potential mis-upload to wrong region |
Low |
#85 (carry-forward) |
| 8 |
ipyleaflet shardmap viewer browser verification still deferred |
Low |
#44 |
| 9 |
Upstream h5coro hyperslice hardening β untracked one-liner for a library not owned here |
Low |
#162 |
| 10 |
Benchmark runner abort/progress-streaming nits β cosmetic, author-acknowledged |
Low |
#146 |
π€ from Claude
Sweep of closed PRs from the last 10 days (June 24 β July 4, 2026): #44, #70, #103, #105, #106, #107, #111, #112, #113, #115, #123, #124, #125, #127, #128, #129, #131, #134, #136, #140, #144, #146, #147, #150, #152, #153, #159, #162. PRs #103/#105/#106/#107 were already surfaced by the prior sweep (#114); this issue covers new gaps from the remaining 24 PRs, plus a re-verification of #114's 4 carry-forward items against current
main. Two of #114's items are now resolved and excluded: the cryocloud notebook now explicitly documents itself as non-Binder-runnable rather than silently requiring credentials, andjupyterhub_example.ipynbno longer has hardcoded deployment-specific ARNs. Two carry-forwards are still open and folded into the list below.Items
(1) Zero-photon granule segment-read cost still unaddressed in the production read path β carry-forward from #114 β PR #96 / touched by #152
No July PR added a general per-granule early exit for granules that don't actually cross the shard. PR #152 built an experimental "a-priori read plan" (arm 2a) that can skip the geolocation-rate read using pre-extracted chunk-boundary geometry, but it's wired only into the 88S stress-benchmark config (issue #148, still open) β the default
_planned_read_grouppath (src/zagg/processing/read.py) still reads every granule's full coarse-level segment-coordinate + link arrays before it can tell the granule doesn't intersect.(2)
publish_mirror.sh --credsstill ignores region/endpoint fields β carry-forward from #114 β PR #85Current
deployment/aws/publish_mirror.shonly pullsAWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY/AWS_SESSION_TOKENout of the--credsJSON; region/endpoint still come only fromMIRROR_REGION. Unchanged by any PR in this window.(3)
shard_orderwrite-path knob (PR #134 Phase 8) has no tracking issue β PR #134PR #134's own checklist left Phase 8 unstarted: "decouple the sharding object from the dispatch shard... a
shard_orderknob (parent_order < shard_order <= chunk_inner)... makes large/dense shards (88S) writable under the 2 GB cap." This is the specific mechanism needed to fit dense o8/o9 shards β exactly the 88S stress target being actively pursued in #148 β under the Lambda memory cap. Issues #138 and #142 mentionshard_orderonly in passing, and #133 (the issue they point back to) is already closed. No issue actually tracks implementing this knob.(4) Local-backend ragged-write fan-out has no cross-worker concurrency cap β PR #147
_write_ragged_fanout(src/zagg/processing/write.py) bounds each worker's inner CSR-write pool at_RAGGED_WRITE_CONCURRENCY = 128β safe on Lambda (one worker per isolated container) but on the local backend the theoretical peak isouter_cells Γ 128threads, sincefd_safe_max_workers()only floors the per-call bound, not a cross-pool budget. Flagged as an explicit open "Question for review" in PR #147 with no reply in the thread; the flat constant is unchanged.(5) Sync Lambda-dispatch fallback still has no TCP keepalive, leaving it exposed to the same idle-kill #151 was opened to fix β PR #153, Refs #151
The root-cause analysis on #151 proposed a short-term
Config(tcp_keepalive=True, ...)fix for the ~4-minute SNAT idle-connection kill; espg went straight to the durable async/poll fix (#153) instead. PR #153's own self-review flagged that keepalive "is now only relevant to the sync fallback path" and needs either a two-line addition or an explicit won't-do note on #151 β neither happened, and #151 was closed by #153's merge with no further comment. Confirmed in currentsrc/zagg/runner.py: bothboto_config = Config(...)blocks (read_timeout=960andread_timeout=900) omittcp_keepalive. The sync path is the documented fallback for oversized async payloads and pre-#153 workers β exactly the scenario #151 hit.(6) Run-level retry budget still missing (per-cell retries have no overall circuit breaker) β PR #127, echoes #119
PR #127 fixed per-cell retry behavior (
_invoke_lambda_cellinsrc/zagg/runner.py) but explicitly left standing: "the run-level retry budget... is explicitly out of scope here; the per-celldispatch/LAMBDA_RETRYpath indispatch.pyis untouched." The same gap was flagged in #119 (closed) but never turned into its own issue β a systemic failure (e.g. AWS throttling across a whole run) still has no circuit breaker; every cell retries independently.(7) CSR-write consolidation ("option 2") has no successor tracking issue β PR #147, Refs #142
#142 discussed consolidating the K per-inner-chunk CSR groups into one group per dispatch shard (~1500 S3 objects β ~6, cheaper
consolidate_metadata), requiring re-offsettingcell_idsinto shard-wide space and generalizing the reader's hardcoded_CHUNK_SIDE=64/divmodassumption insrc/zagg/readers/tdigest_tensor.py. #142 is now closed, satisfied only by option 1 (the per-cell writes just merged); option 2 has no home.(8) Upstream h5coro
hyperslicehardening left as an untracked one-liner β PR #162PR #162's fix note: the optional upstream
setdefault("hyperslice", [])hardening "is out of scope here per the issue β it stays a candidate one-liner for a future SlideRuleEarth/h5coro PR." Distinct from #154 (numpy-vectorization hand-off); nothing else tracks this specific defensive nicety.(9) Browser verification of the ipyleaflet shardmap viewer still deferred β PR #44
PR #44's "Questions for review": "Browser verification of the live ipyleaflet map is still deferred (constructs + layers attach headlessly; in-browser rendering can't be verified here)." #74 (globe-view viewer, Phase B) is a separate, larger feature and doesn't cover manually verifying the existing inline widget (
src/zagg/viz/leaflet.py) in a real browser.(10) Two self-acknowledged non-blocking nits in the benchmark runner β PR #146
From PR #146's self-review: (a) a target manifest exceeding the 16-way concurrency cap lets already-queued targets finish before an abort rather than stopping immediately; (b) per-target progress lines print only after all targets complete rather than streaming. File:
.github/scripts/run_benchmark.py. Both called non-blocking by the author; neither has a tracking issue.Priority / severity table
shard_orderwrite-path knob untracked β blocks the active 88S dense-shard-under-2GB effortpublish_mirror.sh --credsignores region/endpoint β potential mis-upload to wrong regionhyperslicehardening β untracked one-liner for a library not owned here