Skip to content

Release 0.6.0 (deflated expectancy; monitor calibration in years) - #117

Merged
mspinola merged 1 commit into
mainfrom
claude/release-0.6.0
Aug 3, 2026
Merged

Release 0.6.0 (deflated expectancy; monitor calibration in years)#117
mspinola merged 1 commit into
mainfrom
claude/release-0.6.0

Conversation

@mspinola

@mspinola mspinola commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Bumps pyproject.toml and crucible.__version__ to 0.6.0 and moves [Unreleased] into a dated [0.6.0] section.

Why a second release today

Deliberate rather than sloppy. 0.5.0 shipped the edge monitor this morning; running it against a real 47-market book rather than the synthetic fixtures it was built on immediately exposed three calibration problems and confirmed the one gap already known. Leaving those in the published version for weeks is worse than two tags in one day.

What's in it, ordered by impact on anyone already on 0.5.0

1. deflated_expectancy exists (#116). 0.5.0's EdgeBaseline accepted a deflated number and nothing in the package produced one, so every real baseline was the raw in-sample mean — the number the search optimized. The monitor's central argument, that decay should be measured from a search-corrected reference, was a docstring. It is now a function.

2. The false-alarm budget is denominated in years, not trades (#115). This recalibrates any design built under 0.5.0 against a baseline that knows its firing rate, and for a slow book substantially: the old default gave a 23-trades/yr book a nominal detection latency of 24 years.

3. The opportunity-set channel works for logs without entry_date (#115). Under 0.5.0 it silently switched itself off for an ordinary class of books — the channel covering a signal that stops firing, which neither other channel can see.

Minor rather than patch on the merits: #2 changes behaviour and #1 adds public API.

Verification

  • 378 passed
  • ruff check src tests examples (0.15.22): clean
  • mkdocs build --strict: clean
  • Version reads identically in pyproject.toml, crucible.__version__ and the changelog heading. The release workflow refuses a mismatched tag, and tests/test_boundaries.py pins the other two together.

After merge

Tag v0.6.0 on the merge commit to trigger Trusted Publishing. I will not push that tag without explicit confirmation — the publish is irreversible and a version number can never be reused.

🤖 Generated with Claude Code

Bumps pyproject and crucible.__version__ to 0.6.0 and moves [Unreleased] into a
dated [0.6.0] section.

The second release today, which is deliberate rather than sloppy. 0.5.0 shipped
the edge monitor; running it against a real 47-market book rather than the
synthetic fixtures it was built on immediately exposed three calibration problems
and confirmed the one gap already known. Shipping the monitor and then leaving
those in a published version for weeks is worse than two tags in one day.

In order of how much it matters to anyone already on 0.5.0:

1. deflated_expectancy exists (#116). 0.5.0's EdgeBaseline accepted a deflated
   number and nothing in the package produced one, so every real baseline was the
   raw in-sample mean and the monitor's central argument was a docstring.
2. The false-alarm budget is denominated in years, not trades (#115). Any design
   built under 0.5.0 against a baseline that knows its firing rate recalibrates
   here, and for a slow book substantially: the old default gave a 23-trades/yr
   book a nominal detection latency of 24 years.
3. The opportunity-set channel works for logs without entry_date (#115), where
   0.5.0 silently switched it off for an ordinary class of books.

378 tests pass, ruff clean on src/tests/examples, mkdocs --strict clean, and the
version reads identically in pyproject, crucible.__version__ and the changelog
heading (the release workflow refuses a mismatched tag, and
tests/test_boundaries.py pins the other two together).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mspinola
mspinola merged commit 598fc72 into main Aug 3, 2026
3 checks passed
@mspinola
mspinola deleted the claude/release-0.6.0 branch August 3, 2026 02:10
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