Series build: a partial refusal exits 2, so a wrapper can still deliver - #35
Merged
Merged
Conversation
TradingView restated two put/call closes on 2026-09-25. The build refused those two symbols exactly as designed, and because the only signal it gave was "non-zero", run-series.cmd exited before its replica syncs. Thirteen breadth series sat correct on the producer and five sessions stale on both replicas until someone went looking. A refusal has to stop the symbol, not the delivery of every other symbol. The build now says which kind of non-zero it is. EXIT_PARTIAL (2) means some targets refused and others did not; 1 keeps its old meaning of nothing usable coming of the run (every target refused, a defer, a hard error); 0 still means nothing refused. The result dict carries a `partial` flag beside `ok`, and the CLI prints a line telling a wrapper to run its syncs anyway. A symbol that was already current counts as succeeding. The flag answers "did every symbol refuse", not "did this run write rows" -- keying it on rows written would have left the live case blocked, because the thirteen good series were already current by the time the two bad ones started refusing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 task done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The failure this fixes
TradingView restated two put/call closes. The build refused those two symbols exactly as designed, and because the only signal it gave was "non-zero",
run-series.cmdexited before its replica syncs. Thirteen breadth series sat correct on the producer box and five sessions stale on both replicas until someone went looking.A refusal has to stop the symbol, not the delivery of every other symbol.
The change
The build now says which kind of non-zero it is:
EXIT_PARTIAL)The result dict carries
partialbesideok, and the CLI prints a line telling a wrapper to run its syncs anyway.A symbol that was already current counts as succeeding. The flag answers "did every symbol refuse", not "did this run write rows". Keying it on rows written would have left the live case blocked, because the thirteen good series were already current by the time the two bad ones began refusing. There is a test for exactly that.
Test plan
partial.Wrapper side: mspinola/cotdata#119.
🤖 Generated with Claude Code