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

A complaint about a meaningless auto-generated hostname shipped as a feature: an operator-set name that wins everywhere, for $29.54.

Source: https://codeherder.com/examples/device-display-name/

Examples · New feature

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

[Request access →](https://codeherder.com/get-started/#request-access)

Measured from this task's real merge.

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

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](https://codeherder.com/calculator).

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