Skip to content

chore(release): 0.21.0 -- the sell side in preview, and three review fixes - #949

Merged
eaitbrahim merged 2 commits into
mainfrom
chore/release-0.21.0
Sep 30, 2026
Merged

eaitbrahim merged 2 commits into
mainfrom
chore/release-0.21.0

Conversation

@eaitbrahim

Copy link
Copy Markdown
Contributor

Version bump only: every workspace pyproject.toml 0.20.0 -> 0.21.0 plus the refreshed uv.lock, the same nine files every bump moves (tests/test_packaging.py green locally). Merge this, then run the Release workflow with 0.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:

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 ~/keel 0.20.0 binary self-reports (DIRTY).

…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).
@eaitbrahim
eaitbrahim merged commit 9b1db87 into main Sep 30, 2026
4 checks passed
@eaitbrahim
eaitbrahim deleted the chore/release-0.21.0 branch September 30, 2026 10:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant