Files
2026-07-17 15:53:20 +08:00

1.9 KiB

BitLogger Update Changes

version 1.0.1(0.6.1)

Runtime

  • feat: add an additive file_rotation_i64(...) path so native large-file thresholds can exceed the default Int contract without replacing the existing API
  • feat: add with_file_rotation_i64(...) for file preset and config composition on the same wide-threshold path
  • fix: switch native file-size checks used by rotation decisions to 64-bit file positions so wide thresholds are enforced by the runtime backend

Config

  • feat: allow logger config parsing to prefer max_bytes_i64 when present and keep max_bytes as the compatibility numeric view
  • feat: export wide rotation thresholds through file_rotation_config_to_json(...) using max_bytes_i64 as a string for exact JSON roundtrip
  • feat: propagate the same wide-threshold JSON shape through sink config, file sink policy/state, and runtime file-state helpers

Docs

  • docs: add dedicated API references for file_rotation_i64(...) and with_file_rotation_i64(...)
  • docs: clarify the default Int-based file rotation contract versus the advanced native wide-threshold path across file sink and preset APIs
  • docs: document that JSON export keeps max_bytes as the compatibility field and max_bytes_i64 as the exact roundtrip field

Test

  • test: cover wide-threshold metadata preservation in direct rotation helpers and preset helpers
  • test: cover logger config parse/stringify roundtrip behavior for max_bytes_i64
  • test: cover nested wide-threshold JSON export in config, file policy, file state, and runtime file-state helpers

Verification

  • verify: keep the repository passing moon fmt, moon check, and moon test after the wide-threshold rotation update

Notes

  • the default public contract remains the existing Int-based file rotation API; the Int64 route is additive and opt-in
  • wide-threshold JSON transport now uses max_bytes_i64 as a string to avoid precision loss in JavaScript-shaped consumers