The Name That Could Not Escape

A parent renames a screen. A kid renames a screen. The Firewalla app, AirPlay, and DHCP all happily show the new label. If curfew keyed on that label, bedtime would be a settings menu away. On 2026-07-23 we proved the opposite on the live haus, and closed the last soft edge where a rename could still feel like it had broken enforcement.
What happened
Section titled “What happened”The living-room Apple TV (HomeKit hub, mode: services) was renamed to Den
Room on the Gold Pro. Force Flow still held the curfew: same MAC, holiday
schedule 23:00, streaming DNS blocks still active (Netflix, YouTube, Disney+,
Apple TV+, …). The only thing that lagged was the label on surfaces that
cached the old Firewalla name until the box redis rediscovered it.
What we changed
Section titled “What we changed”In sanctum-screen-time the engine now:
- Treats MAC as identity for every enforce path (already true) and makes that explicit on rename.
- Records aliases (
device_aliasestable + optionalalso_known_asin config) so columbo-style hostname matching still finds the device after a rename. - Soft-updates the in-memory display name so Holocron stays truthful without
rewriting the gitignored haus
devices.yamlmid-tick.
Unit coverage lives in tests/test_rename_identity.py. The doctrine page is
Device Identity — section Display-name renames
cannot drop curfew.
E2E that shipped
Section titled “E2E that shipped”| Check | Result |
|---|---|
Force Flow /screen/status for the enrolled screen | curfew 23:00, blocked: true |
| Gold Pro host by MAC | new display name, still blocked |
| Streaming DNS policies scoped to that MAC | present (Netflix/YouTube/…) |
| Hostname match old label → same screen key | yes |
| Hostname match new label → same screen key | yes |
| Simulated further rename | MAC stays known; enforce set unchanged |
What rename still does not fix
Section titled “What rename still does not fix”A new MAC with no pin, no OUI path, and no unknown-during-curfew hit is a different problem — the evasion ladder on the Device Identity page. Renaming alone never was enough. The work tonight was making sure the system never behaves as if the label were the key.