Phase 2: publish typed failures on total failure, and guard zero discovery
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 30/100
Research direction
Start in scripts/zarr/generate_zarr.py at the branch that handles attempted recordings with no converted entries, then at the zero-discovery path that publishes an index and runs the --clean removal step. First write a fixture-tree test that reproduces a zero-discovery run over a dataset with prior stores, and confirm whether it removes them. Done when total-failure runs write index.json with failures[] populated, zero-discovery runs publish a typed no-raw-recordings state rather than ready, and discovered_count == store_count + failure_count + pending_count holds in each new case.
Written by the indexing model from the issue text.
Description
Problem. When every attempted recording fails, the run writes only the callback and exits 1 (scripts/zarr/generate_zarr.py, the branch that handles attempted recordings with no converted entries and nothing to remove). No index.json is published. The API then reports the dataset as failed with its failure count, but no public reason exists. This affects the 18 no-index datasets in the gate, for example on002181 (failed, 226 failures) and nm000177 (failed, 360).
A separate path publishes a zero-store index. A run that discovers zero raw recordings publishes an index with zero stores and status ready, which is what 10 gate datasets show (converted 2026-09-06 to 09-08). Code review found no check on that path that compares the discovered set with prior stores before the --clean removal step, so a zero-discovery run could remove every prior store. This needs a reproduction in the phase's first test before it is treated as a deletion bug.
Expected. A run that attempted recordings publishes index.json with discovered_count, failure_count and failures[] populated, and the callback status is failed. A zero-discovery run publishes a typed no-raw-recordings state, never ready. A run that would remove every prior store refuses unless it is explicitly acknowledged.
Acceptance.
- A total-failure run writes index.json with failures[] populated; the gate still treats store_count 0 as not served.
- A zero-discovery run over a dataset with prior stores removes nothing and does not publish ready (fixture tree test).
- A zero-discovery run with no prior stores publishes the typed state.
- The invariant discovered_count == store_count + failure_count + pending_count holds for every new case.
Related: nemar-cli #1100 (closed diagnosis of this class), #1483.
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 1
- Avg merge
- 2h 52m
- Merged PRs (30d)
- 215
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from nemarOrg/nemar-cli
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
Maintainers usually reply within 1 day
-
bug zarr
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
All issues in nemarOrg/nemar-cli
Similar issues
-
Area/Cloud Needs Triage Type/Bug
Difficulty 1/5 1-3 hours Newbie friendliness 86/100
wso2/product-integrator#2847 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
bluesky-social/social-app#12118 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 1/5 Under an hour Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
heygen-com/hyperframes#6021 ·
Maintainers usually reply within 1 day
-
check:passed streams:edit
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day