main-128d627
·
48 commits
to main
since this release
feat(admin): report the running build as config.server_version A measurement campaign that cannot name the build it was taken against is not evidence, and "did my redeploy actually land?" should not require shell access to the container. The harness was reaching for a `server_version` field that had never existed — the same class of mistake as guessing `port` for what the API calls `public_port`, so this adds the field rather than deleting the reference. FULL_VERSION moves from the binary into the library, and both the binary's `--version` and the new field read that one constant: two independently computed version strings drift, and a drifted one is worse than none because it is believed. The Configuration panel renders it as "Server Version". Also in this change, harness work that the evidence-gathering exposed: * raw_origin.py gains a HOLD verb and raw_client.py a matching `hold` mode. The concurrency ladder used to hold connections by asking each for 4 GiB, which saturates the link and measures the link rather than the concurrency, and it forked one OS process per held connection — 512 Python interpreters on a 2-vCPU / 3.8 GiB VM measures the driver's memory pressure. HOLD answers once and then moves no bytes, and all N connections are opened with asyncio inside one process. The arm now reports `up=` beside `active_at_server=` so a ladder that silently held fewer connections than it claims is visible. * vm_pub_stab.sh read `server_rss_bytes`; MetricsView calls it `mem_rss_bytes`. The soak now prints the RSS delta across its hour, which is the leak evidence it was supposed to be collecting. * srv/redeploy.sh listed public tunnels by `.port` and `.client_addr`; the fields are `.public_port` and `.peer`. Gates: config_view_names_the_running_build (asserts the field equals the same constant the binary prints and has the documented shape) and T-CFGVER in the frontend config panel test. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BqfehFhjLR3Yj1sgaf5KCi