feat(aosguard): let the netlify alias leaf remove, so a rename is one write #1358
No reviewers
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agentic-os!1358
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/mt75-netlify-remove"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The surface I shipped in #1355 was one-way: aliases could accumulate and never be shed. Vera hit it finishing a rename Kai asked for.
Current live state
Confirmed by reading the site, not from the report:
Five aliases where there should be three. The two dead names hold valid certificates and will serve the site root once Delphi's rules move. Nothing is broken; it is untidy and irreversible.
Worth recording: the read-modify-write did its job on the first write where it mattered. Vera's add reported "adding 2 alias(es) to 3 existing" and preserved all five.
Why
--removeon the same leaf, not analias removeverbA rename is a removal and an addition of the same thing. Two verbs make it two writes, and every write re-issues the certificate covering
www.coilysiren.me. That is exactly the cost the batched add was built to avoid, reappearing one operation over.Why not
alias settaking the final list, which Vera raised and held loosely:setmoves the read-modify-write to the caller, and a caller stating what exists rather than what changes is the precise failure that bit twice today - her kai-server ConfigMap comment showing what changed rather than what the object held, and this field's own replace semantics.setwould be honest about the API and hand the trap back to the caller.add --removekeeps the union logic inside the module. Her lean and mine agree.The three decisions she asked for
custom_domainis a separate field so it could not be clobbered structurally, but a caller asking has misunderstood and should be told.Also refused: the same name passed to both
--aliasand--remove.Verified against the built binary and live state
--removean absent alias--removethe primary domain--siteTests pin the rename as a single write with the untouched alias preserved, plus each refusal and the remove-everything case.
uv run pytest753 passed,pre-commit run --all-filesgreen.Finishing the rename
Once this lands and aosguard is rebuilt, one call removes both dead names:
aosguard ops netlify alias add --site coilysiren-dot-me.netlify.app --remove agent-compose.coilyco.ai --remove mcp-beaver.coilyco.aiOne write, one certificate event. That is Vera's to run, and it wants watching for the same reason the add did.