This commit is contained in:
Sridhar Ratnakumar 2026-06-19 13:51:45 -04:00
parent 4dffd94546
commit 62d6272b14

View file

@ -0,0 +1,79 @@
# pureintent vs naiveintent — which to use for dev + agentic work
Both are AMD Zen 4 (Phoenix) 8c/16t boxes, so CPU is nearly a wash. The
real differences are **RAM, SSD, and form factor**. All numbers below
were measured directly on each machine (June 2026).
## Measured comparison
| | **pureintent** (Beelink SER8) | **naiveintent** (Lenovo ThinkPad 21ME) |
|---|---|---|
| CPU | Ryzen 7 **8845HS**, 8c/16t | Ryzen 7 PRO **8840HS**, 8c/16t |
| Sustained all-core clock | **4.59 GHz** | 4.27 GHz |
| Single-core throughput | ~4.55 GB/s sha (tie) | ~4.70 GB/s sha (tie) |
| RAM | 32 GB — 20 GB free, **already swapping (5.5 GB)** | **64 GB** — 55 GB free, 0 swap |
| SSD | Crucial P3 Plus (QLC, **DRAM-less**) | KIOXIA KXG8 (premium TLC) |
| Sustained write (4 GB, fdatasync) | **729 MB/s** | **3.1 GB/s** (4.3×) |
| Sequential read (direct) | 5.3 GB/s | 3.2 GB/s (through LUKS) |
| Free disk | 200 GB (**77% full**) | 782 GB (13% full) |
| Encryption | none | LUKS full-disk |
| Form factor | always-on mini PC | laptop (battery, lid, roams) |
Both run the `powersave` governor with `balance_performance` EPP
(amd-pstate active mode — normal, not a real powersave), so that's not
a differentiator.
## What it means
- **CPU: a wash.** Same silicon. pureintent holds ~7% higher *sustained*
all-core clock (mini-PC cooling beats a thin laptop chassis), so large
parallel Nix builds finish marginally faster on it. Single-core /
interactive latency is a tie. Not a deciding factor.
- **RAM strongly favors naiveintent (2×).** This is what bites agentic
work — several Claude Code agents + language servers + builds + a
browser + incus containers eat RAM fast. pureintent already dips into
swap at light load; naiveintent has 55 GB free.
- **Disk strongly favors naiveintent.** 4.3× faster sustained writes and
6× more free space, on a better drive. Agentic/dev I/O is write-heavy
(nix store, git, node_modules, compile artifacts, logs). pureintent's
QLC + DRAM-less drive at 77% full only degrades further. LUKS on
naiveintent is effectively free (AES-NI).
## Verdict
For *doing* heavy interactive + agentic work, **naiveintent wins
clearly** — 2× RAM and 4× write throughput dwarf pureintent's ~7%
multi-core edge.
The only caveat was form factor: a laptop that sleeps/roams makes a poor
always-on host for a service like Kolu. **naiveintent will be deployed
always-on and plugged in**, so that caveat is moot → **migrate to
naiveintent.**
## Migration notes
naiveintent's config is currently near-empty (`kolu` + `gc`); pureintent
carries the workhorse stack. To port the setup from
`configurations/nixos/pureintent/default.nix`:
- **Kolu**`services.kolu.host = "naiveintent"` is already set. Revisit
`allowedOrigins` (pureintent allows its Tailscale MagicDNS origin) and
any Tailscale-IP binding.
- **home-manager shared modules** naiveintent lacks: `ssh-agent-forwarding`,
`controlpersist`, `claude-code`, `work/juspay.nix`, `services/vira.nix`,
`services/drishti`.
- **incus** stack (`beszel.nix`, `incus`) + the `core.https_address`
preseed, if you want anywhen/containers and the incus UI.
- **remote builders** (`buildMachines` + `sincereintent.nix`).
- the dbus-broker / NetworkManager-wait-online activation workarounds.
Won't move cleanly:
- **drishti** CI-fleet monitoring depends on pureintent-local ssh aliases
(`pu`-managed `ssh_config`, `kolu-ci-1..8`, reachable only from
pureintent). Either keep drishti on pureintent or move the `pu` state.
- Decide whether pureintent is decommissioned or kept as a secondary
builder.
Regardless of the outcome: **GC pureintent** — at 77% full on a degrading
QLC drive it needs headroom.