Repository navigation
chore(release): 0.21.0 -- the sell side in preview, and three review fixes - #949
Merged
Merged
Conversation
…fixes MINOR: new preview-only commands and a rail change of scope; schema 21 -> 22, additive (sell_proposals). P17/P18 -- live sell placement -- are NOT built; every sell rule is preview-only. What lands: #889 (#799) -- a bracket leg that throws after a filled entry downgrades to open-unbracketed. #896 (#811) -- keel doctor: position.unmanaged, position.unprotected. #898 (#799, #798) -- ledger.drift and ledger.venue_drift, fed by a per-cycle venue-holdings record. #901 (#798) -- keel positions close <id>: an operator-declared exit. #905 (#900 forward fix) -- tranches and brackets book at the venue's filled size; spend rails keep counting the full quote, fee included. #908-#914 -- sell-side contracts, sell_proposals (schema v22), executor.reduce in preview, reductions running last in the cycle. #918-#928 -- reverse_dca, keel dca distribute --preview, the sim reverse path, and the sleeve_sell promotion gate (CLI-only). #935, #936 -- keel dca trim --preview (lots, bands, gain) and profit_take. #937, #939 -- the sleeve exit monitor and keel dca exit --preview, sleeve_exit. #927 -- pyjwt 2.13.0 -> 2.14.0 (CVE-2026-102274). #946 (#943) -- exposure resets at the moment a product goes flat. #947 (#944) -- a watching rule's fee quote can no longer halt the next day's buys; paper sleeve rules propose offline (R78), a sell-preview refusal stays on its row (R79). #948 (#945) -- a permissions refusal on a bracket leg is definite: rejected and retried, not state-unknown (R80).
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.
Version bump only: every workspace
pyproject.toml0.20.0 -> 0.21.0 plus the refresheduv.lock, the same nine files every bump moves (tests/test_packaging.pygreen locally). Merge this, then run the Release workflow with0.21.0.MINOR: new preview-only commands and a rail change of scope; schema 21 -> 22, additive (
sell_proposals). P17/P18 -- live sell placement -- are NOT built; every sell rule remains preview-only.What lands since 0.20.0:
Decimalparse error abortsopen_position, stranding funded inventory #799/doctor: nothing warns when an open tranche has no live rule and no retry record -- PAXG sat unwatched for five cycles #811/Reconcile: out-of-band venue executions leave phantom exposure; nokeel positions close#798), fix(execution): book tranches and brackets at the venue-filled size (#900) #905 (Tranche qty is the ordered quote/price, not the venue's filled size -- ledger likely overstates held base by the fee (~0.9-1.2%) #900 forward fix: book at the venue's filled size), feat(strategy): sell-side contracts -- Holding, Reduction, Action.REDUCE, reduce_signal, book_exit(is_dca=None) (#857) #908-feat(agent): _handle_reductions -- arbitration, one proposal per product per day, sleeve.proposal notifications (#857) #914 (contracts,sell_proposalsschema v22,executor.reducein preview, reductions running last in the cycle), feat(rules): reverse_dca, preview-only (#857) #918-feat(promotion): the sleeve_sell gate, proposal replay, proposals review, --allow-concurrent-dca (#857) #928 (reverse_dca,keel dca distribute --preview, the sim reverse path, the CLI-onlysleeve_sellpromotion gate), feat(dca): keel dca trim --preview --view lots and --view bands (#857) #935-feat(rules): profit_take in preview, and --view gain as trim's default (#857) #936 (keel dca trim --preview,profit_take), feat(execution): the sleeve exit monitor -- transition alerts, doctor, keel dca exit --preview (#857) #937-feat(rules): sleeve_exit, preview-only (#857) #939 (the sleeve exit monitor,sleeve_exit).Live impact (from the review, unchanged by the three fixes): buys cannot be delayed, blocked, mis-sized or moved by anything here; each buy waits up to 3.5s for the venue's final fill and books at the filled size; one extra balance read per cycle; the 21 -> 22 migration only adds a table (ran clean, idempotent, and reversible on a read-only copy of the live DB); no notifications configured on live.
Deploy note: build from this clean tag/commit only -- the current
~/keel0.20.0 binary self-reports(DIRTY).