← AI Hacker Daily

Edition

06

picks

# AI Hacker Daily — 2026-09-22 Linear's test suite has nearly quadrupled since January.

AI Hacker Daily — 2026-09-22

Linear's test suite has nearly quadrupled since January. The company published the accounting yesterday: about 2,000 new tests a week arriving, and a full CI rebuild to absorb them — third-party runners instead of GitHub Actions, eight test shards instead of four, tsgo and Oxlint replacing the old toolchain, schema snapshots instead of replaying migrations, 87,000 runner-minutes a month saved on job batching alone. All of that bought a drop in PR wait time from more than six minutes to just over five, because the input rate kept climbing the whole time they were fixing it. That post is the clearest public accounting of what agent-written code does to the machinery around the code, and CI is only one piece of that machinery. Today's five picks are five other pieces, each shipped or repositioned inside the last week, each rebuilding a layer that was designed for one worker moving at human speed: version control (Foremerge), scheduling and isolation (Google's AX), tool and credential access (treg), memory between sessions (ResumeContext), and the processes nobody turned off (Clueprint). No two come from the same company, and the most useful thing about four of them is how plainly they state what they cannot do yet.

01

Foremerge — the merge conflict Git cannot see, caught before either agent writes code

Foremerge (Apache-2.0, Rust, 491 stars, 18 forks, created August 21, 99 commits, 1 contributor, v0.4.3 released September 18) is a coordination layer that sits above Git without changing how Git works. The problem it names is specific and checkable against your own repo: one agent replaces PaymentService with StripePaymentService while another adds PayPal support to PaymentService. Different files, no overlapping lines, so Git merges both without complaint — and the PayPal work is now stranded on a class nothing calls. Foremerge makes each agent declare its intent and the scopes it will touch before editing, as prose plus a typed operation (replace, extend), reads those declarations against every other agent's, and raises a HIGH advisory naming both agents while both worktrees are still clean. State lives in a SQLite file under the repo's Git common directory, so separate worktrees share one picture. curl -fsSL https://foremerge.com/install.sh | sh, then foremerge init and foremerge setup all to wire the MCP server and skill into Claude Code, Codex, or Cursor.

Two design choices are worth more than the pitch. Acceptance is verification-gated: you register a check by name (foremerge checks set test -- cargo test --all-targets) and Foremerge runs it itself rather than taking an agent's word that it passed, with agent-reported results recorded as provenance only and work accepted without a check stamped UNVERIFIED with the reason. And nothing here calls a model — the conflict detector is deterministic, so the same inputs produce the same verdict, and claims are advisory rather than locks on the reasoning that one crashed agent holding a lock stalls the whole fleet. The README's status block is unusually direct about the rest: "Published benchmark results do not yet exist, and coordination between machines is outside this project's scope." Two things surfaced only in the Show HN thread. Asked the obvious objection — you do not know in advance what you will need to change — the author answered that the initial intent does not have to be complete, only correct about the destructive parts, which is why it is declared as prose rather than a file list and why only a HIGH signal on declared scope blocks acceptance. And asked whether a decision model would help, he disclosed that his company has been training its own, Corgen, for eighteen months and is benchmarking it now; none of that appears in the README.

Reach for it if you run more than two coding agents on one repo in parallel worktrees and have already lost an afternoon to two plans that were each individually correct; it replaces the PR-time conflict review that catches this class of problem only when a human happens to know both tickets. Delete the convention where your agents announce their plans in a shared Slack channel nobody reads. Tradeoffs: one contributor and 99 commits, with the README documenting a 0.5.0 that is ahead of the 0.4.3 on crates.io; the SQLite store does not replicate across machines, and the README warns you not to infer distributed safety from putting it on a network mount; and 85 total crates.io downloads against 491 stars is the usual signal that far more people have starred this than have run it.

github.com/naw103/foremergediscussion ↗

02

AX — Google shipped kubectl for agent workloads, then quietly widened what it is

AX (Apache-2.0, Go, 6,772 stars, 319 forks, created March 30, 625 commits, 10 contributors, 21 open issues and zero open PRs, v0.3.0 released September 20) treats an agent run as a declarative cluster resource. Four kinds, all ax.io/v1alpha1: Task for the sandboxed run with CPU and memory limits, Workspace for pre-wired Git repos and MCP servers so an agent starts warm, Gateway for an explicit outbound host allowlist, Model for which LLM the platform itself uses with credentials from a Kubernetes secret. The CLI is deliberately kubectl-shaped — apply, get, describe, watch, delete — plus the verbs the workload type actually needs: ax ssh task123 to shell into a running sandbox, ax suspend to checkpoint an idle agent, ax resume to pick it up where it stopped. It follows your active kube context, so kubectx prod-cluster && ax get tasks resolves and tunnels to that cluster's control plane.

The reason it appeared at the top of GitHub trending today is not a launch. The repository has existed since March with 625 commits behind it, and the September 20 commit is titled, in its own words, "Restructure AX into a general-purpose orchestration layer for agentic tasks." Before that, the README described AX as Agent Executor, "a distributed harness runtime" — narrower framing, same machinery, and a policy paragraph that has since come out of the README stating that external pull requests were temporarily not being accepted while the core stabilized. That history explains the shape of the repo today: ten contributors, 625 commits, zero open pull requests. What the framing does not explain is the claim in the first paragraph, that AX is "built to run billions of tasks per cluster," for which there is no benchmark, no published cluster size, and no test anywhere in the docs. The honest part is the banner directly above it, warning that core concepts, protocols and specifications are still being refined and that major breaking changes are likely before a stable release.

Reach for it if you already run Kubernetes and your agent fleet has outgrown the shell script that starts containers; it replaces the homegrown job runner that gives each agent a sandbox, a network policy, and a place to resume from. Delete the bespoke checkpointing you wrote so a long agent run survives a node restart. Tradeoffs: go install gets you the CLI, but a working install also needs a Kubernetes cluster, ko, a registry your cluster can pull from, and a reachable Agent Substrate control API — meaning the real dependency is a second Google-adjacent project, agent-substrate/substrate, itself only four months old; the API version is v1alpha1 and the maintainers say so loudly; and "billions of tasks per cluster" is a design intention presented in the voice of a measurement.

github.com/google/ax

03

treg — a metered tool catalog, so your agent can call Semrush without you buying Semrush

treg (Python, 1,974 stars, 206 forks, created July 15, 2,086 commits, 12 contributors, 81 open issues, no tagged releases) describes itself as OpenRouter for agent tools rather than models: one base URL, one token, and roughly 3,000 catalogued endpoints across 60-plus providers — backlinks, rank tracking, people and company enrichment, ads, scraping, image and video generation — billed per call from about a cent, with no signup at the provider. The premise is a real procurement problem rather than a technical one. The tools an agent needs for one run sit behind subscriptions nobody buys for one run: Semrush at $139/mo, Moz at $99/mo, Crunchbase at $99/mo, Apollo at $59 a seat. treg holds those accounts and meters them. Search is by job rather than vendor: treg catalog search "find a work email" returns the providers that do it with prices side by side, then treg call hunter.people.email.find --query domain=reddit.com.

The routing rules are written down precisely enough to audit, which is rarer than it should be for a billing proxy. Credentials resolve in a fixed ladder: a tool your team registered wins, then a secret your team stored, then a verified public route that needs no key at all and is free, and only then treg's own key against your prepaid balance. Your own key always beats treg's, so connecting a subscription you already pay for makes those calls free of the balance rather than double-charging you. An endpoint treg has no published price for is refused rather than served free. Running out of balance returns HTTP 402 carrying balance_micro, estimated_cost_micro and a topup_url, so an agent can act on the failure without parsing English. And treg states that it does not silently pick or fail over between providers — that stays your choice, except for treg.<capability> routed endpoints you opt into, where it picks and names the provider on the response. The proxy relays rather than models the upstream and injects auth server-side, so callers never hold keys.

Reach for it when an agent needs data from a vendor you would never justify a seat for, or when you want your team's API keys callable by everyone's agent without the credential leaving the server; it replaces the folder of one-off vendor clients and the shared .env behind them. Delete the annual SaaS seat you bought for four lookups a quarter. Tradeoffs: routing agent tool calls through a third party that holds the upstream credentials is exactly the trust move it sounds like; 2,086 commits with no tags or releases at all means nothing to pin a self-hosted deployment to; and GitHub reports the license as "Other" for a reason — it is Apache-2.0 plus additional terms that forbid offering it as a hosted or managed service to third parties without written authorization, which the README says plainly and which still means this is not OSI-open source.

github.com/superdesigndev/treg

04

ResumeContext — every session your agents ever ran, verbatim, in one archive they can search

ResumeContext, from SuperTokens founder Rishabh Poddar, is an MCP server over a shared archive of coding-agent sessions. A background daemon reads the session history Claude Code, Cursor and Codex already write to disk — nothing is installed into the agent, nothing changes about how you prompt — and syncs it roughly every 20 seconds to a project archive scoped to the directory you ran resumecontext init in. Your agents then get six tools against it: search_conversation_history by meaning or keyword, grep_conversation_history for exact regex and counts, read_conversation_session for specific line ranges, query_archive for SQL over sessions, dates, people and machines, plus add_project_member and remove_project_member. Four read, two write, with the read-only guarantee enforced by a database role rather than by convention. The two questions it is built to answer are "what were we doing yesterday" after a usage limit ended a session mid-task, and "why did we drop the Redis cache" six weeks later.

The design decision that distinguishes this from the memory layer every agent vendor now ships is that ResumeContext runs no model of its own. It does not summarize your sessions and does not answer questions itself; the tools hand your agent the raw passages, matches and transcript pages, so nothing you read came from a second model you cannot inspect. The docs are equally direct about the gap: turns are captured whole, "full tool-call arguments and full output, not truncated snippets," and the one thing the archive does not have is the conversation you are in right now, which has not synced yet. Semantic search lags keyword search by seconds to a few minutes on a large first sync, and says how much is still indexing rather than quietly returning less.

Reach for it if agents on your team keep rediscovering decisions that were already made and argued out in somebody else's terminal three weeks ago; it replaces the handoff notes nobody writes and the practice of asking a teammate what their agent concluded. Delete the NOTES.md you keep at the repo root for the next session's benefit. Tradeoffs: "captured whole" means the full text of every prompt, reply and tool output leaves your machine for a hosted archive, which includes whatever your agent happened to print from a config file, and there is no self-host option in the docs; it is macOS and Linux with Windows still in progress; and it is free during beta with pricing not yet published, so the number you will eventually pay is unknown.

resumecontext.com

05

Clueprint — the forty dev servers your agents started and never stopped

Clueprint is a native macOS menu-bar app, 4.6 MB and not Electron, that inventories what coding agents left running: every Git worktree, Docker stack and dev server, grouped by project and branch, with what started it, what it is costing in CPU, memory and disk, and whether you are actually finished with it. The origin is the least aspirational product story of the week — every Claude Code session spawns a worktree, every worktree runs a dev server, and three weeks later there are forty of them and the fans are at takeoff thrust. This is the layer none of today's other picks addresses. Foremerge coordinates the work, AX schedules it, treg pays for its API calls and ResumeContext remembers it; nothing turns anything off.

The interesting engineering is in the cleanup gate rather than the inventory. Clueprint proposes removing something only when it can prove every one of a specific list: nothing uncommitted, nothing unpushed, the branch merged upstream, nothing currently running, and idle at least 24 hours. It re-verifies at the moment you press the button rather than trusting the scan that populated the list, and it archives or moves to Trash rather than deleting, so the failure mode of a wrong verdict is an inconvenience rather than lost work. Abandoned projects get moved aside with every file intact. It runs entirely on the machine with no account and no telemetry — which is the opposite trade from ResumeContext above, and the right one for a tool whose job is reading your working directories. One practical note: searching GitHub for this will find a repository of the same name under the same developer's handle, an MIT-licensed npm package for giving a coding assistant a view of the browser, last pushed in February. Different product, same name; the menu-bar app is not open source.

Reach for it if your laptop has quietly become a server farm for abandoned agent sessions and you no longer trust yourself to docker ps your way out of it; it replaces the periodic panic where you kill everything and hope nothing had uncommitted work in it. Delete the shell alias that nukes all your worktrees indiscriminately. Tradeoffs: macOS 14 or later on Apple Silicon only, so half of any team is out; it is paid at €19/year or €39 for a lifetime license after a 14-day trial, with the yearly price 30% off through September 29 as a launch promotion; and it is closed source from a solo developer, which is a harder sell for a tool that enumerates your repositories and decides what is safe to throw away.

clueprint.ai/

06

Also on the desk. Radar (Apache-2.0, Go, 3,421 stars, 57 contributors, v1.14.1 released September 17) is a single-binary Kubernetes UI that runs on your laptop against the cluster API with no in-cluster agents, and ships an MCP server so an agent can investigate topology, events and Helm state through it — the ops half of the same story, though it is a good cluster UI first and an agent surface second. local-coder (MIT, TypeScript, 7 stars, created September 16) is an orchestrator inside OpenCode that sizes a task and delegates parts of it to different local Ollama models; the author built it for train commutes through dead zones, after repeatedly hitting agents that reported a detailed list of changes to files that had not actually changed. lossless-memory (MIT, Python, 96 stars, created September 4) is the maximalist position on the ResumeContext question — a personal AI memory that never summarizes, keeps every line, and timestamps everything, on the argument that summarization is where the fact you needed went missing.

Verification notes: star, fork, commit and contributor counts are from the GitHub API on 2026-09-22; commit totals use the per_page=1 Link-header last-page trick, and open issue/PR splits use the search API's type:issue and type:pr filters rather than the combined open_issues_count field. AX's repositioning is from repos/google/ax/commits plus a raw README pull at the last pre-restructure commit (b7773130, August 20), not inferred from the current text. treg's license characterization is from reading the raw LICENSE file, which GitHub summarizes only as "Other." Foremerge's crates.io version and download count are from the crates.io API; its thread quotes are from the Algolia API against item 49789356. ResumeContext's sync, capture and MCP-tool details are quoted from its own docs at resumecontext.com/docs, reached via its llms.txt index; Clueprint's pricing, requirements and cleanup rules are from clueprint.ai, and the name-collision note is a direct check of the GitHub repo that shares the name. Pipeline health: today's pool held 95 rows against the ~280 the compose prompt assumes. Reddit returned zero rows again — 136 days since the last nonzero day on May 9. github:trending returned 9 rows across five feeds (all 3, go 5, rust 1) with python and typescript both empty, a worse showing than yesterday's 12. Product Hunt's 36 rows carried two of today's five picks, the best that source has done in weeks.

One of these,
every weekday.

Free. Unsubscribe by replying with one word. No tracking pixels in the email.