Skip to content

v2.5.0

Choose a tag to compare

@marcinpsk marcinpsk released this 21 Sep 10:53
· 416 commits to main since this release

v2.5.0 (2026-09-21)

This release is published under the Apache-2.0 License.

Bug Fixes

  • Allow escaped pipes in markdown table guard (61ab250)

  • Describe pending writes in sync summary (d8281f8)

  • contact: Ignore a suggestion answer meant for another row (1f816f0)

  • inference: Bound DNS resolution instead of cancelling its future (355b8bc)

  • inference: Let the DNS worker fail loudly when it cannot arm its alarm (5c1f275)

  • inference: Stop the DNS worker's descendants at its deadline (50d549a)

  • opengrep: Let the alarm rule accept an explicit SIG_DFL (1e54daf)

  • preview: Compare an IP the way the writer matches it (c1f84b1)

  • preview: Keep the no-rack filter value out of the rack names (3476d58)

  • preview: Preserve rack filter across recalculation (07e6c26)

  • preview: Report pending writes on a created Device (9bbf76f)

  • preview: Say that a rack row update writes (db2eb61)

  • sync: Name pending writes in every row summary (f0b07dc)

Build System

  • Install the test dependency group instead of restating it (38622a3)

  • Use uv --system-certs instead of the deprecated --native-tls (d23d8c7)

Chores

  • opengrep: Refuse a patched interpreter stream and a Python SIGALRM handler (cf510ab)

Code Style

  • Reduce the encoding guard docstring to its one non-obvious reason (3a52d3d)

  • Reduce the Markdown table guard docstring to its one non-obvious reason (2689c05)

Documentation

  • Correct supported source format (b67e498)

  • Name the PATCH procedure the permission belongs to (e95c0ed)

Refactoring

  • inference: Drop the DNS worker failure payload nothing reads (4bb2ed9)

  • inference: Give the DNS worker its streams instead of patching sys (aa74dc6)

Revert

  • preview: Restore the host and prefix canonical for an IP field (64b9aa5)

Testing

  • Apply the GFM fence rules in the Markdown table guard (bad83f6)

  • Close two silent holes in the repository guards (58c7811)

  • Decide a positional encoding by the value, not by the receiver's name (e698e40)

  • Fail the pending-write guard when its scan finds nothing (6f39839)

  • Keep scanning a table row whose pipe breaks the table (e7216c5)

  • Name the encoding on every text read and write (19b3840)

  • Read Markdown block structure from markdown-it-py (21245cf)

  • Read the encoding argument position from pathlib (7f69797)

  • Recognize tilde fences in the Markdown table guard (00af557)

  • Widen the resolver startup budget and drop host-specific assertions (14aab92)

  • inference: Cover the DNS worker entry point in process (dca96ce)

  • inference: Drop the racy liveness check on the orphaned DNS worker (bf0386b)

  • inference: Run the DNS worker as a real child process (50f506d)

  • preview: Lock the Contact picker to the row type its endpoint serves (1c8a9a6)

  • trace: Lock the device normalization a termination key carries (9d92a88)


Detailed Changes: v2.4.0...v2.5.0