fix/bat272
safe6477b55 · fullpre-PRreviewed 2026-07-17 17:30 UTC0H · 0M · 0L · 1IThe branch
- Purpose
- Stop CFE collector from silently swallowing a transient Mi Espacio registration/discovery failure as a successful zero-bill collection (BAT-272).
- Goal
- Throw RecoverableCollectionFailure on 0-collected+0-cached Mi Espacio failure so SFN retries; grade finalize outcome as failed/partial_success instead of completed; fix strategy label when Mi Espacio was attempted but failed.
- Sub-goals
- SG-1: Capture Mi Espacio recoverable-failure signal on CollectorOutput (additive discriminator)
- SG-2: Fix retry guards — throw RecoverableCollectionFailure with correct Error.name when 0 new + 0 cached
- SG-3: Rework strategy label — distinguish discovery-failed from deliberate gobierno_only
- SG-4: Finalize grading — recoverable-failed run surfaces failure entry so decideFinalizeJob grades partial_success/failed
- SG-5: Preview e2e validation
- SG-N: Framework learnings → cfe-pipeline.md
The changes (whole branch)
- What
- Branch provisioning — .branch/scope.md updated with BAT-272 fix scope, .branch/intent.md cleared from previous branch content.
- Why
- Fresh branch cut to fix CFE collector silent-success bug; provisioning commit sets scope and intent documents.
- Areas
- .branch+48−314
- Blast
- 2 planning files only (+48/−314); no production code changed in this commit.
➖CI· no CI checks on provisioning commit➖CodeRabbit· no .coderabbit.yaml
Findings · 1
tests1
info
Tests planned but not yet written — provisioning commit only
.branch/scope.md:1
Scope.md plans collector.*.test.ts + cfe-job.decisions.test.ts covering repro shape, empty-account, and partial-success cases. Will be evaluated when implementation lands.