Skip to content

release: 0.9.0-beta.153 — ship the stranded June 12 fixes (#252–#256)#265

Merged
deucebucket merged 6 commits into
mainfrom
develop
Jul 14, 2026
Merged

release: 0.9.0-beta.153 — ship the stranded June 12 fixes (#252–#256)#265
deucebucket merged 6 commits into
mainfrom
develop

Conversation

@deucebucket

Copy link
Copy Markdown
Owner

Promotes the five fixes that were merged to develop on 2026-06-12 at 09:48 — 26 minutes after the beta.152 main cut — and have been stranded on develop since:

Verification (2026-07-14, full audit before promotion)

  • Diff audited: 6 commits, 10 files, no unrelated changes; version bumped to 0.9.0-beta.153.
  • Server compatibility (the security: Signing replay window too wide at 300 seconds #256 risk): Skaldleita's lm_gate is key-or-401 — signatures are not load-bearing for keyed clients, so the new nonce-signed headers cannot break auth. Verified in gate source AND live.
  • Live E2E against production Skaldleita: develop's get_signed_headers() + API key → HTTP 200 with results; keyless + nonce headers → clean 401 (no server error).
  • Unit verification of each fix: signing nonce roundtrip + plain-signature back-compat + wrong-nonce rejection; sanitizer strips XSS/control chars/oversize; rate limiter min_delay 12.0s; SOURCE_WEIGHTS ordering audio>transcript>scrape.
  • No regressions: test-env suites identical on main vs develop (290 naming + 10 precog passed on both; book-verification is environment-gated on both, 0 ran).
  • CI green on develop head (Code Quality + Docker build).

Merging this closes #252, #253, #254, #255, #256 via the commit messages. #264's remaining straggler call sites are NOT in this batch and stay open.

deucebucket and others added 6 commits June 12, 2026 04:48
* Fix #255: Validate and sanitize BookDB response data

* Bump version to 0.9.0-beta.153 for integration security fixes

* Add CHANGELOG entries for 0.9.0-beta.152 and 0.9.0-beta.153

---------

Co-authored-by: deucebucket <deucebucket@users.noreply.github.com>
BookDB can return server_notice with action=abort_task to signal LM
should stop processing. This was handled in search_bookdb() but not in
identify_audio_with_bookdb(). Added server_notice handling in three
places: the initial submit response, the poll completion response, and
the final result data (covers old sync path and acts as catch-all).

Co-authored-by: deucebucket <deucebucket@users.noreply.github.com>
- Changed bookdb min_delay from 3.6s (1000/hr) to 12.0s (300/hr) to match
  the actual API key tier limit
- Added adaptive rate limiting: when BookDB returns a 429 with Retry-After
  header, min_delay is increased to match the server's requested pace
- Added specific 429 handling to identify_audio_with_bookdb() which
  previously fell through to the generic non-200 handler

Co-authored-by: deucebucket <deucebucket@users.noreply.github.com>
Map BookDB sl_source field to differentiated source names so the
BookProfile weights transcript-only and web-scraped results lower
than verified database matches.

- bookdb_audio (weight 65): database match, highest trust
- bookdb_transcript (weight 55): Whisper transcript only
- bookdb_scrape (weight 45): live web scrape, lowest trust

Co-authored-by: deucebucket <deucebucket@users.noreply.github.com>
- Add generate_nonce() function returning UUID4 hex string
- Make nonce optional in generate_signature() and verify_signature()
  for backwards compatibility with older Skaldleita versions
- Update get_signed_headers() in bookdb.py to include X-LM-Nonce
- Reduce TIMESTAMP_TOLERANCE from 300s to 120s (2 minutes)

Co-authored-by: deucebucket <deucebucket@users.noreply.github.com>
Co-authored-by: deucebucket <deucebucket@users.noreply.github.com>
@deucebucket
deucebucket merged commit 6764a47 into main Jul 14, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant