mirror of
https://github.com/zap-proto/zip.git
synced 2026-10-19 15:38:57 +00:00
One protocol for the three signals, shapes declared once in internal/otlz and pinned both directions against what the receiver accepts — a field invented fails as loudly as a field missed. No OpenTelemetry SDK is linked by otlz; importing the receiver for tests would have grown the module graph to 1145 modules, so the contract is goldens, measured not assumed. Zero configuration. A program reports because it exists: each signal resolves its collector by convention — an override if one is set, the well-known socket if it exists, loopback's conventional port otherwise — re-resolved on every attempt, so a collector that starts later is found without a restart. Absence is free: lazy dial, the batch dropped, one line when export begins working and one when it stops, with the reason. Over the socket the kernel attests which process exported a batch, which loopback cannot. Two races the tests forced out: the ship decision moved off the serve goroutine, so a request answered immediately after Serve no longer loses its span; and export starts in the last synchronous step Serve and Listen share, so a short-lived process cannot reach Shutdown before the flush hook exists. The runtime-directory scheme lives once in internal/sock; RuntimeDir and SocketPath delegate to it. luxfi/zap moves one patch, v1.2.6 to v1.2.7. Co-authored-by: Hanzo Dev <[email protected]>