From 62d6272b14efb2a8ae45676967c1f77f73048042 Mon Sep 17 00:00:00 2001 From: Sridhar Ratnakumar Date: Fri, 19 Jun 2026 13:51:45 -0400 Subject: [PATCH] doc --- docs/NAIVEINTENT-VS-PUREINTENT.md | 79 +++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 docs/NAIVEINTENT-VS-PUREINTENT.md diff --git a/docs/NAIVEINTENT-VS-PUREINTENT.md b/docs/NAIVEINTENT-VS-PUREINTENT.md new file mode 100644 index 0000000..0f67102 --- /dev/null +++ b/docs/NAIVEINTENT-VS-PUREINTENT.md @@ -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.