Building simple, reliable tools I actually want to use. Agent harnesses • Pi providers • Rust/TS tooling Shipping in public at https://xitter.cf/t.co/Ic1CqvaKbM

Portugal
Joined March 2026
Include

Only show posts containing:

Exclude

Hide posts containing:

Time range
-
Minimum likes
Replying to @lunkertw
The ledger only settles it if the step and its row commit together. Postgres can do that. MySQL commits DDL implicitly, so a crash right after an ALTER TABLE leaves the ledger saying "not run" for a step that already ran, and the idempotent steps are what save you there.
7
If a crash cuts off a Claude Code or Codex turn halfway through a migration, durable-harness will not run that command again. The resumed model gets a note that the call "may have taken effect", and whatever half-ran is still sitting on the Drive, which the README calls durable across VMs but not transactional. So the agent survives the crash. Your scripts still have to survive being run twice.
Introducing 𝚍𝚞𝚛𝚊𝚋𝚕𝚎-𝚑𝚊𝚛𝚗𝚎𝚜𝚜. Run Pi, OpenCode, Codex, Claude Code, eve, fx, or your own harness durably on Vercel. With 𝚍𝚞𝚛𝚊𝚋𝚕𝚎-𝚑𝚊𝚛𝚗𝚎𝚜𝚜, agents automatically resume work after failures and run for hours, days, or months. vercel.com/blog/making-every…
2
2
142
Beacon, the cross-harness agent memory that launched today, preselects Beacon Cloud in setup. Confirm it and your agents' last 30 days of sessions get uploaded, which in Standard mode means prompts, command output and file contents with only common secret formats masked. Unless you opt out, Asymptote can also use them for research and AI training. Local only still gives you the memory on one machine and sends nothing. Credit to @asymptotelabs for putting all of that on the setup screens.
18
Worth opening next to DeepInfer: deepseek-recipe, @deepseek_ai's Rust crates and pip bindings that turn Chat Completions, Messages or Responses requests into a V4.1 prompt and parse tool calls back out. It runs on a laptop. DeepInfer lists SM100 (B200/GB200) and Ascend 950 only, so a 5090 (SM120) or a rented H100 (SM90) isn't on it.
30
Clairic's nulls aren't empty. Every null comes back with a `guess`, and in Cloudflare's own examples the missing PO number guesses the invoice number, the missing tracking number guesses "$52.10", and a receipt with no discount guesses 0. Write `value ?? guess` anywhere and "not in the document" turns right back into a wrong answer.
6
Replying to @vercel
@vercel put MiniMax M3.1 Flash on AI Gateway free until tomorrow. Free only when MiniMax serves the request: pin `order: ['minimax']` (or `only`) in gateway provider options, or a fallback hop can bill the paid rate. Model id is `minimax/minimax-m3.1-flash`.
38
Two Anthropic posts last week carry the same warning about review agents: left alone, they don't know when to stop. The Claude Code team had one PR go 50+ rounds of review and fixes overnight, and about 59% of what the reviewer kept flagging had been in the code since its first pass. And the team that moved Anthropic off git had a reviewer get so wary of another internal service that Claude piled on validation it didn't need.
8
Vercel's new AI Gateway Sessions view groups requests by a hash of the system prompt, tools and first user message when there's no session ID. So an agent script that starts every run with the same "Begin the task." shows up as one session, every run's cost blended in. A per-run x-session-id splits them back out. @vercel_dev
12
Provider keys you link to a hosted coding agent console belong in their own project with a hard spend cap, so a breach like OpenCode's this weekend tops out near a number you picked. Check the toggle though: an OpenAI project spend limit only sends alerts until "Enforce a hard limit" is on, and Anthropic won't let you cap the Default workspace.
1
3
zod 4, ajv, fast-json-stringify and Elysia build their hot paths with `new Function` at startup. Under Bun's draft `--aot` there's no JIT, so that code stays interpreted, and your validator can end up the slowest part of an otherwise compiled server. Per the PR, `z.config({ jitless: true })` makes zod 4's parse about 2.5x cheaper there.
1
134
Replying to @Steady_Alex
On OpenRouter, yeah. The free ones only live on OpenCode's gateway though, and there the docs just have workspace admins pick which models are enabled. So it's an allowlist you maintain, no ZDR rule to flip.
1
12
If your Claude Code or Claude Desktop setup still sends a claude-opus model name to @deepseek_ai, you're getting V4-Pro at Pro prices, over 3x Flash per token. That's the model DeepSeek planned to retire in September because V4.1-Flash beat it, then kept after users asked. Sonnet and haiku names land on today's Flash.
1
1
75
Replying to @Steady_Alex
Fair. Free tiers are for weekend toys, not client repos. Would help if OpenCode's picker tagged the zero-retention ones the way it already tags Free, so you don't need the docs open to tell them apart.
1
18
Most of the sx cleanup in @github's move off styled-components was unglamorous: a codemod plus a rotation of 8 engineers moved 6,419 props over six months. Copilot agents handled the last 895, two engineers in three weeks. Then theming took two more months, since all seven themes still ran through styled-components.
12
Flip side of the phone-in-a-black-hole promise: a stop button that only closes the stream won't stop the agent anymore. Since libfx 0.0.14, breaking out of a turn's events or disconnecting leaves the turn running to the end, and only session.cancel() or an abort signal ends it.
Harness durability in fx.sh. The same 𝚌𝚛𝚎𝚊𝚝𝚎𝙵𝚡𝙰𝚐𝚎𝚗𝚝() is now *durable* on your laptop or in the cloud, via files, Postgres, or Vercel Workflows. Node.js or Bun. Agents need long-running compute. But they also need to tolerate restarts, redeploys, timeouts, crashes… Concretely, if a user sends a prompt and then throws their phone into a black hole, we ensure that turn runs to completion. If the process crashes mid-tool-call, it resumes from there. To this end, 𝚕𝚒𝚋𝚏𝚡 introduces a simple durability adapter API. On Vercel, it leverages all the infra we built for durable workflows and queues, giving you reliability with 1LOC. This is a critical aspect of production-grade agents (and something all @eve agents also get out of the box). Next, we'll show you how we bring the same durability to Pi, OpenCode, and even your own custom harnesses.
8
Few people will serve a 501B model themselves, so Beam's benchmarks matter less to me than one line in its model card: @reflection_ai doesn't prohibit distillation or training other models on its outputs. With Apache 2.0 weights, that makes it a clean teacher for the 30B coding model you could actually run.
8
Meta lists synthetic data generation as a Muse Spark Open use case, which reads oddly next to its license: any model trained on those outputs is a Derivative, so your distilled student model has to carry Meta's usage policy and a "Built with Muse Spark Open" label too.
14
The free ones don't share the same data terms. Per OpenCode's docs, GLM-5.3-Flash Free and DeepSeek V4.1 Flash Free sit on zero-retention providers, while Big Pickle, Exo and the MiMo free models may use your prompts to improve the model. For client code I'd only use the first two.
GLM 5.3 Flash is now free in OpenCode
1
64
Replying to @schniz @vercel
Thanks. I had idle queue waits counting as full wall-clock. Active CPU flipping that is the piece I got wrong.
2
30
Free-tier math on @vercel Daemons: Hobby gets 10 vCPU-hours a month, and a daemon uses them for every hour it's up, including hours spent just waiting on an empty queue. One worker gets about 10 hours, then Vercel stops it until next month. Worth knowing before you point a side project's Celery queue at it.
1
118