diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..5628ffb --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,25 @@ +# zlay + +AT Protocol relay in zig 0.16. reader thread per PDS + shared frame +processing pool. ReleaseSafe in production. Io.Threaded backend (Evented +attempt shelved — see docs/evented-attempt.md). + +## before pushing + +- `zig fmt --check .` and `zig build test` +- production is `-Dtarget=x86_64-linux-gnu` (glibc malloc's per-thread arenas + page-return are load-bearing for RSS at ~2,800 threads). the "musl breaks RocksDB" belief is **retired** — musl builds and runs SIGILL-free on 0.16 — but mimalloc (the only static-musl allocator we found viable) leaks under our thread model, so prod stays glibc. see [docs/musl-investigation.md](docs/musl-investigation.md) +- ReleaseFast has a known double-free — do not use + +## deploy + +configs at `../@zzstoatzz.io/relay/` — `just zlay publish-remote ReleaseSafe` + +KUBECONFIG is set automatically by the zlay module (`zlay/kubeconfig.yaml`). + +## docs + +- [docs/design.md](docs/design.md) — architecture, threading, memory model +- [docs/deployment.md](docs/deployment.md) — build flags, infra, resource usage +- [docs/gotchas.md](docs/gotchas.md) — zig/pg.zig/rocksdb-zig/deploy traps +- [docs/incident-2026-03-04.md](docs/incident-2026-03-04.md) — ReleaseSafe RSS analysis +- [docs/evented-attempt.md](docs/evented-attempt.md) — Evented backend attempt and why we reverted diff --git a/scripts/fiber_gpf_repro.zig b/scripts/fiber_gpf_repro.zig index 9c01e23..1141f74 100644 --- a/scripts/fiber_gpf_repro.zig +++ b/scripts/fiber_gpf_repro.zig @@ -28,7 +28,6 @@ ///! ///! Build & run: ///! zig build-exe -OReleaseSafe fiber_gpf_repro.zig -lc && ./fiber_gpf_repro - const std = @import("std"); const Io = std.Io;