Skip to content

chore: bump to 0.7.0 for the taker-fee correction and the live PBO gate - #250

Merged
eaitbrahim merged 1 commit into
mainfrom
chore/bump-0.7.0
Aug 12, 2026
Merged

chore: bump to 0.7.0 for the taker-fee correction and the live PBO gate#250
eaitbrahim merged 1 commit into
mainfrom
chore/bump-0.7.0

Conversation

@eaitbrahim

Copy link
Copy Markdown
Contributor

Bumps all six workspace packages and every inter-package == pin from 0.6.1 to 0.7.0, and
relocks. No other code changes.

Closes #249.

Why this release matters operationally

The ~/keel deployment is running 0.6.1, whose backtest() still defaults to
fee_pct=Decimal("0.006"). The simulator fills market-style at the next bar open — taker
behaviour — so every backtest run on the box today is costed at the maker rate. #247 fixed that on
main six commits ago and it has never been released, which means the promotion gate is currently
reading numbers that are roughly twice as favourable as the fee schedule the config declares.

Why minor, not patch

#247 is not a bugfix in the version-number sense. It changed can_promote's return type from a
bare (bool, reasons) tuple to a PromotionDecision, and it added a blocking condition that did
not previously exist: a missing trial matrix (pbo=None) is now NOT_RUN, appears in reasons,
and fails closed instead of passing silently. A rule that cleared promotion under 0.6.1 can be
refused under 0.7.0 with identical stats.

Every backtest figure this release produces also differs from 0.6.1's, for the fee reason above.
Callers who diff results across the upgrade should expect that and not treat it as a regression.

What is in the release

PR
#247 fix(strategy): price fills at the taker rate, and wire the dormant PBO gate into promotion
#248 docs(experiments): at zero fee turtle_breakout makes money and rsi_meanrev does not — two failure modes, not one
#246 docs(experiments): the hourly objection was right, and 0 of 144 tuned param sets clear break-even
#245 docs(experiments): the promotion floor is reachable, and the rule fails it on edge

Verification

  • uv lock refreshed, so the release build is not dirty (same reason as dc99601).
  • grep -rn "0\.6\.1" --include=pyproject.toml --include=uv.lock . | grep -i keel → empty.
  • uv run pytest -q2712 passed, 1 skipped. tests/test_packaging.py fails the build if a
    pin is left behind, so a green suite is itself the pin check.
  • Diff is version lines only — no third-party constraint, requires-python, or
    keel/_build_info.py was touched (the release workflow stamps the latter).

After merge: Actions → Release → Run workflow with input 0.7.0, then install the four deployment
wheels into ~/keel/.venv by path and run keel versions + keel migrate against both databases.

🤖 Generated with Claude Code

Minor, not patch: #247 changed `can_promote`'s return type from a bare
`(bool, reasons)` tuple to a `PromotionDecision`, and added a blocking
condition that did not exist before. Every backtest number this release
produces also differs from 0.6.1's, because fills are now priced at the
taker rate the simulator actually models.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@eaitbrahim
eaitbrahim merged commit 5c434d3 into main Aug 12, 2026
1 check passed
@eaitbrahim
eaitbrahim deleted the chore/bump-0.7.0 branch August 12, 2026 11:32
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.

Release 0.7.0: taker-fee correction and the live PBO gate

1 participant