Repository navigation
Releases: victorstewart/basics
Release list
Basics 0.4.13-rc.1 — exact BPF map and TCX recovery identities
Candidate dependency for Prodigy's isolated retained-runtime qualification.
Reopened BPF maps resolve by exact kernel name and schema, avoiding the wh_egress/wh_egress4 prefix collision. TCX adoption binds the exact interface, direction, program, link, and tag; closing an adopted reference preserves an independently pinned link. Explicit teardown detaches both owned and adopted TCX links even when a pin retains their objects.
Validation: full real-kernel eBPF suite passed in the pinned Apple Linux guest. Retention coverage includes owner SIGKILL with and without a pin, borrowed close, wrong/ambiguous identities, and explicit detach. The newly added owned-pinned detach regression failed before its correction and passed afterward. No skips were reported.
Source: 782488d. The detached DepoFile binds the immutable source archive by SHA256. This prerelease is not a Prodigy rollout or migration qualification certificate; the exact legacy first-hop rehearsal remains blocked by the old master's evacuation behavior.
Origins: ambiguous reopened-map identity was introduced in 3b28f65 (2026-04-12), fixed in 3c1ddbb. Close-only owned TCX teardown originated in f5aef67 (2026-07-13); retention pins expose its limitation, fixed in 782488d. Exact TCX retention/adoption support is in 8cdb52b.
Basics 0.4.12 — asynchronous Netlink transactions
Add bounded asynchronous Netlink transactions through the existing Ring, with exact ACK/dump completion, timeout, cancellation and descriptor lifetime ownership. Independent requests can be submitted together; successful sends alone do not authorize dependent work. Existing synchronous APIs remain available.
Validated read-only kernel Netlink lookup, delayed and reordered ACKs, multipart/error/interrupted dumps, cancellation, timeout, stream destruction and Ring integration with Clang 22 / C++26. In a 100 ms delayed-ACK fixture, 49 timer intervals measured 2.034 ms p95 and 4.294 ms maximum. Production cold-cluster qualification remains pending.
Basics 0.4.11 — gate preattached BPF diagnostics
Compile successful preattached BPF trace formatting and file I/O only when BASICS_DEBUG is enabled. Preserve map resolution and existing failure/verifier logging.
Validated actual XDP preattached map reopen, map identity and seeded readback in an isolated network namespace with Clang 22 / C++26. Identical release fixture fails before the change and passes after it with zero trace I/O; debug diagnostics remain enabled. Thirty samples of 128 map resolutions include wall and thread CPU measurements.
Basics 0.4.10 — bounded TidesDB value-log retention
Add String::ownsMemory() to distinguish owned heap/mmap storage from mutable and read-only borrowed views. This lets asynchronous owners retain already-owned values without a redundant allocation and copy, while continuing to detach borrowed data. No String layout or existing copy/move behavior changes.
Validated the existing String test suite, including ownership checks across heap/mmap/view/read-only copy and move, with Clang 22 / C++26 and the pinned runtime dependencies.
Basics 0.4.9 — bounded TidesDB value-log retention
Add an opt-in logical-write byte budget and checked memtable flush to the TidesDB wrapper. Flushes occur before the next transaction, allowing obsolete separated values to be reclaimed without changing successful-commit semantics. Existing consumers keep their current behavior unless they select a budget.
Validated with the pinned TidesDB 10 master library, focused durability/crash-reopen tests, and a repeated-overwrite comparison.
Basics 0.4.8 — TidesDB 10 master support
Pins TidesDB support to upstream master commit 2e029f971e664319edec26e0a19f2dd02344bcff and updates the wrapper for the shared WAL and database-wide full-sync setting. The detached DepoFile retains the default TidesDB-off package; Prodigy derives its TidesDB-enabled variant through its existing package owner.
Validated on Linux x86-64 with Clang 22 and C++26: Prodigy/Mothership builds, durability and package-contract checks, persistence/registry suites, and focused replication/recovery checks. TidesDB 9.x databases require an explicit export/import migration before a TidesDB 10 process opens them; this source release does not perform that migration automatically.
Basics 0.4.7
Fix retained BPF map reopening so wh_egress4 cannot resolve to wh_egress. Names must match exactly; both prefixes were previously accepted even though supported names already fit the kernel name limit. Wrong selection can pass an undersized key buffer to the kernel and make map enumeration loop indefinitely.
The regression forces the retained-FD name fallback with the observed 10-byte and 8-byte keys and checks map identity before data access. In an isolated network namespace inside KVM guest22994, the old implementation failed the key-size and map-ID checks; the corrected implementation passed the complete ebpf_program_tests target without skips. Tests used Clang22, C++26, STATIC dependencies and MIMALLOC=NONE to isolate the map behavior from the test host/guest allocator startup mismatch. This release does not claim the public Prodigy runtime has recovered.
Basics 0.4.6
Adds explicit primary and peer Netkit scrub modes while preserving the kernel-default policy for existing callers. Consumers can now retain authenticated skb metadata until their own BPF trust boundary consumes and clears it. Includes focused Netlink builder coverage and an immutable Depos release artifact.
Basics 0.4.5
Full Changelog: v0.4.4...v0.4.5
Basics 0.4.4
Makes explicitly configured c-ares hosts files deterministic across system NSS lookup orders.