
A 15-item digest of this week's highest-signal Hacker News engineering threads, from Anthropic replacing git with a version control system built for agents and a 9× Postgres storage benchmark to a supermarket refrigeration attack run through building controls.

cgi-bin directory behind OpenBSD's httpd, with SQLite as the database 6. Every request forks a process; deploying means replacing a statically linked binary, with no restart and no downtime 6.codex app-server --managed-daemon, a background process in its own session with no TTY that is reparented to PID 1 and keeps running after every window is closed 8. It copies the roughly 374 MB platform package into ~/.codex/packages/app-server-daemon/releases/ and runs the backend from that copy, so the backend's version decouples from the CLI the package manager installed 8.HTTPS_PROXY, and every later session's traffic goes through the first session's proxy regardless 8.codex app-server daemon stop stops the app server but leaves the updater loop running, still alive 70 seconds later. The workaround is to disable the feature flag, stop the daemon, pkill the update loop and delete the directory 8.wcscspn() and wcspbrk() in bionic returning a match for any character at or above U+0100, whenever the reject set holds two or more characters all below U+0100 10. A sweep of every code point found 1,111,808 affected values; wcsspn, wcschr, wcsrchr, wmemchr and wcsstr are correct, which locates the fault in the table-scan path that the complement functions share 10.libc.so. The routine fills a 256-byte boolean table from the set and scans the haystack against it, but stops the scan as soon as it meets a character at 0x100 or above instead of continuing past it 10. The reporter notes he had to do that because the public android-17.0.0_r1 sources are from June and build these functions from llvm-libc, which is correct — the September code is not in the tree.wcspbrk to find line endings; the project worked around it downstream 10. The existing bionic test for wcspbrk only uses ASCII, which is why nothing caught it 10.resp.Body.Close() with bytes still unread therefore abandoned the connection, and the next request paid a TCP handshake, a TLS handshake and the latency that comes with them 12.Connection: close 12.encoding/json.Decoder stops at the closing brace, so a trailing newline is enough to strand a healthy connection one byte from reuse 12.Close has never promised any of this, and asked how to slam a connection shut on purpose — for a client that genuinely will not reuse it — without draining a socket for the privilege 13.Close would be wrong there, one reply argued, because an HTTP/2 request lifecycle is not tied to any socket and an unread body blocks nothing 13.| Model | Prompt read, Janas | Prompt read, llama.cpp | Write, Janas | Write, llama.cpp |
|---|---|---|---|---|
| Qwen3-Next-80B-A3B (48.4 GB, exceeds memory) | 62 tok/s | 16 tok/s | 24 tok/s | 2.8 tok/s |
| Qwen3-Coder-Next (48.4 GB, exceeds memory) | 66 tok/s | 14 tok/s | 22 tok/s | 2.2 tok/s |
| Qwen3.6-35B-A3B | 104 tok/s | 79 tok/s | 19 tok/s | 12 tok/s |
| Qwen3-30B-A3B | 135 tok/s | 122 tok/s | 32 tok/s | 15 tok/s |
madvise hints — the Linux ones, not the POSIX ones — that free memory no longer needed and populate what is about to be, so the SSD is never waiting on the program 15.read_ahead_depth, which defaults to a value sized from the thread count — so it is on out of the box, and setting it to 0 restores the old behaviour 16.| Workload | DuckDB 1.5.5 | DuckDB 2.0 alpha |
|---|---|---|
| 2.2 GB Parquet on S3, one column | 18.8 s | 7.7 s |
| 23 Parquet files, 13.6 GB, one column | 11.8 s | 3.9 s |
| 1.7 GB CSV on S3 | 116 s | 55 s |
| 30 Parquet files of about 1 MB each | 3.7 s | 3.3 s |
| Ancestry walk over 20,000 commits | 1.8–16 s | 0.10 s |

REPACK CONCURRENTLY, which reclaims disk without the VACUUM FULL table lock, stays in.vector or halfvec columns without rewriting them, because vec32 and vec16 are binary-compatible with pgvector's types 29.prism.nprobe defaults to automatic, which the README describes as roughly 0.95 recall, and is the knob to raise or lower 29.| Measurement | Local NVMe | EBS gp3, 3,000 IOPS |
|---|---|---|
| Median throughput | 16,030 TPS | 1,734 TPS |
| Median transaction latency | 4.0 ms | 36.9 ms |
| VACUUM over 10 GB of bloat | 366 s | 964 s |
| Draining a 10 GB replication backlog | 139 s | 238 s |
| Period | Global bot share of HTTP requests | Russia-origin bot share |
|---|---|---|
| 1–6 October, pre-event baseline | 39.4% | 50.4% |
| 7–8 October, strike on Sasovo | 39.2% | 48% |
| 9 October, strike on Kaluga | 39.4% | 42.5% |
anthropic.com
sunshowers.io
news.ycombinator.com
sunshowers.io
news.ycombinator.com
prophitt.me
news.ycombinator.com
github.com
news.ycombinator.com
github.com
news.ycombinator.com
motherduck.com
news.ycombinator.com
status.yandex.cloud
news.ycombinator.com
news.ycombinator.com
github.com
news.ycombinator.com
news.ycombinator.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.