CodeHerderSearch⌘KRequest access →

Examples · New feature

A useless hostname, replaced with a name an operator actually chooses

Added an operator-set device name that now wins everywhere a device is shown, with the old hostname kept as a fallback.

$29.54
Cost, start to finish
3h 9m
Lead time, filed to merged
58
Files changed in the merge

Measured from this task's real merge.

Cost
$29.54
Turns
504
Lead time
3h 9m
Merged
Aug 7, 2026
Diff
58 files · +902 -200

Devices used to inherit their name from the EC2 instance that created them. That was replaced with a generated hash, which is stable but tells an operator nothing about which machine they're looking at.

What was asked for

We recently changed it so that devices didn't keep the names of the ec2 servers they were created from - probably an ok change... but what it has been replaced with is useless... some hash that means nothing...

Filed from the web app, no CLI or git required (go, react).

What the herd did

  1. plan
  2. code
  3. review
  4. merge
  5. verify
  6. done
plan
Decided the fix needed a real, separately-stored device name rather than a smarter hostname, since a hostname is a fact about the machine, not a label an operator picks.
code
Added a device name column and a migration, a resolver that prefers the operator-set name and falls back to the hostname, and updated every screen and CLI command that shows a device.
review
Checked the fallback chain end to end and the new migration against the storage package's own conventions.
merge
Fifty-eight files touched: the migration, the Go handler and repo layers, the SPA's device pages, and the ch CLI.
verify
Confirmed a named device shows its name everywhere, and an unnamed one still falls back to its hostname exactly as before.
done
$29.54 across 504 turns, the widest-reaching change in this set.

What it changed

The merge touched 58 files (+902 −200). Among them:

  • internal/devicename/devicename.go
  • internal/devices/handler.go
  • internal/storage/migrations/20260807030218_devices_name.up.sql
  • app/src/pages/DeviceDetail.tsx
  • cmd/ch/device.go

What it cost

$29.54 in model spend, 504 agent turns, and 3h 9m from filed to merged. See what a month of work like this would cost your own team on our cost calculator.

A generated identifier and an operator's own name for a thing are two different fields, not one.

CodeHerder

Got something like this to ship?

Tell us what you're building. We'll set your workspace up and you can file it today.

Try "pricing", "connect a device", or "who reviews the code"

↑↓ move · ↵ open · esc close