Commit 5ee5d35
Closes seven hygiene gaps surfaced by the v8.0.30 review:
- Dispatcher drain loop now wraps user-callback invocation in
catch_unwind. A panic from user code (Rust closure / PyO3 callable
/ napi ThreadsafeFunction / C extern fn) no longer kills the
dispatcher thread; panics are counted on a new panic_count
AtomicU64 (exposed via StreamingDispatcher::panic_count) and logged
at error level, then the loop continues. SSOT: every binding
inherits this behavior, no per-binding panic handling.
- FPSS C ABI handle gains a permanent state field (Fresh / Active /
Shutdown). tdx_fpss_set_callback / _set_inline_callback /
_reconnect / _shutdown now enforce one-shot registration and
terminal shutdown; post-shutdown calls return -1 with a clear
tdx_last_error() string.
- Unified C ABI: tdx_unified_set_callback after stop is documented
as REPLACEMENT (high-level path supports stop+restart). Contract
divergence from FPSS one-shot is intentional and now explicit in
rustdoc + thetadx.h.
- thetadx.h documents ctx lifetime + queued-vs-inline thread
affinity on every set_callback / set_inline_callback declaration,
mirrored in the thetadx.hpp doxygen blocks.
- Python dropped_event_count rustdoc, README, and test corrected
to the actual reset-on-reconnect / zero-after-stop semantics.
Counter lives on the live StreamingDispatcher; reconnect rebuilds
it and resets to 0. Snapshot before reconnect for cross-session
accumulation. Matches the TypeScript binding.
- Dispatcher dropped counter is now strictly queue-full
(TrySendError::Full). TrySendError::Disconnected (rare; happens
during shutdown races) feeds a separate disconnected_count so the
user-facing drop metric is not inflated by lifecycle noise.
- TypeScript index.d.ts regenerated from the corrected napi-rs
rustdoc so the JS-visible doc matches the Rust source.
Version 8.0.30 -> 8.0.31 via scripts/bump_version.py.
Closes #498
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 78f40b4 commit 5ee5d35
27 files changed
Lines changed: 803 additions & 190 deletions
File tree
- crates/thetadatadx
- src/fpss
- docs-site/docs
- ffi
- src
- sdks
- cpp/include
- python
- src
- tests
- typescript
- npm
- darwin-arm64
- linux-x64-gnu
- win32-x64-msvc
- tools
- cli
- mcp
- server
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
8 | 46 | | |
9 | 47 | | |
10 | 48 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
0 commit comments