Cleanup follow-ups after #419: display-name delete proofs, legacy backfill, reason wording
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 22/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- go, kubernetes
- Domain
- infrastructure
Research direction
Read the #419 diff first: it is the precedent for every item here. For item 1, follow the CoderAIProvider sweep for records without a provider ID and the CoderMCPServer live delete path; they should stop deleting on a display-name match and instead keep the record, emit coder_k8s_cleanup_records_unmatched and a ManualCleanupNeeded Event. Item 4 copies the MCP database-switch check so CoderAIProvider reports CoderDeploymentChanged rather than DeletedExternally. Items 2, 3 and 5 need the record/config linking logic before they can be scoped; item 6 is closed, so don't touch it.
Written by the indexing model from the issue text.
Description
Cleanup gaps that remain after #419 (which fixes #353). Each one exists on main before #419 or is a documented limit of it. An independent verifier reproduced items 1 and 3 on main.
- Display-name proofs on delete. The
CoderAIProvidersweep (for a record without a provider ID) and theCoderMCPServerlive delete path still remove a resource whose display name matches the operator's temporary display name. Display names are editable in Coder, so a resource that a person renamed to that pattern can be removed. #413 and #419 adopted the rule "a record without a recorded ID never deletes" for provisioner keys and the MCP sweep. Apply the same rule here: keep the record, surface it (coder_k8s_cleanup_records_unmatched,ManualCleanupNeededEvent), and document manual cleanup. - An MCP config whose slug and display name were both edited after a lost create answer has nothing left that links it to its record. The sweep drops the record and the config stays in Coder.
- Legacy-config backfill. A config made by an older operator version can end up without a record. This happens when the buildinfo read or the record write fails, and then the DELETE fails during the one bounded delete attempt while the control plane is being deleted. Codex thread: https://github.com/coder/coder-k8s/pull/419#discussion_r4427958297
CoderAIProviderreportsDeletedExternallyafter a database switch, whereCoderMCPServernow reportsCoderDeploymentChanged. Nothing leaks, but the reason misleads. Copy the MCP check.- An MCP server whose status lost its config ID stalls with
SlugConflicton its own config. Its delete still uses the recorded ID. #362items 1 and 4 are closed by decision: the control plane hold never ends early, because no signal proves that no dependent cleanup is in flight. Two attempts in #410 were rejected for this reason. Reopen only with such a signal.
Refs #353, #419, #410
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high
- Dominant language
- Go
- Stars
- 5
- Forks
- 3
- Avg merge
- 2h 56m
- Merged PRs (30d)
- 185
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from coder/coder-k8s
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
Maintainers usually reply within 1 day
-
CoderProvisioner: inherited key-record pruning and legacy-record limits after #420Possibly taken @ThomasK33 claimed this today. Open
Difficulty 4/5 3-5 days Newbie friendliness 25/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 22/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 28/100
Maintainers usually reply within 1 day
Similar issues
-
docs(prompts): IF BLOCKED workflow-scope branch says to comment on the issue on jira/local trackersOpenagent-butler-finding bug
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
jordansmall/spindrift#6238 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
microcks/microcks-cli#608 · 1 comment ·
Maintainers usually reply within 1 day
-
bug from-studio
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
esengine/DeepSeek-Reasonix#14868 ·
Maintainers usually reply within 1 day
-
Install notes print "Camunda REST API: https://" without a host when global.host is setPossibly taken @irisfield claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
camunda/camunda-platform-helm#7790 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
wso2/agent-manager#2220 ·
Maintainers usually reply within 1 day