Skip to content

Register the DNS agent so entitled customers get it - #197

Merged
scotwells merged 1 commit into
mainfrom
feat/assistant-agent-registration
Sep 29, 2026
Merged

scotwells merged 1 commit into
mainfrom
feat/assistant-agent-registration

Conversation

@scotwells

Copy link
Copy Markdown
Contributor

This repo publishes DNS capabilities to the Patch assistant — a knowledge document, nine read-only zone and record tools, and nine triage guides. Until now the thing that registered all of that lived as raw JSON in the infra repository, mounted into the assistant as a fixture file.

That put this team's provider content somewhere it was neither reviewed nor versioned, and split every change in two: add a guide under docs/agent/skills/, then go edit a JSON blob in another repo to make anyone see it. The recently added domain-verification guide is a good example of the kind of change that needed both.

The fixture also could not be scoped to a project. It named none, so every project reaching the staging assistant got these tools whether entitled to DNS or not.

What this registers

Object Role
ServiceAgent The agent a customer's assistant talks to. Published means customers can get it.
ServiceAgentConfiguration What it offers: the knowledge document, the approved tool list, and the nine guides.

The service catalog copies that content into each entitled project, as the object the assistant reads there. This repo never writes into a customer's project — it says what it offers, and entitlement decides who gets it.

Content is byte-identical to the fixture it replaces, verified field by field, and both objects validate closed-world against the catalog's CRDs so a misspelled field would fail rather than being silently dropped. I also checked the nine guides registered here against the nine actually in docs/agent/skills/ — they match exactly, including domain-verification.

One improvement falls out of the shape: content changes now ship as a new configuration object rather than an edit, and the newest Published one wins. That keeps "which version did this customer actually see" answerable.

Depends on

milo-os/service-catalog#110, which adds these two kinds and the controller that copies them. Until that merges and deploys, these objects are inert — nothing reads them, and staging keeps serving from its fixture. Merging this changes no running deployment.

Sibling registrations: datum-cloud/compute#381 and datum-cloud/network-services-operator#518. All three have to land before the assistant can be switched off the fixture (datum-cloud/infra#6399), or whichever is missing silently disappears from every project.

Unchanged caveat

The MCP endpoint is still dns-mcp's in-cluster address, which is what staging dials today. Production needs it pointed at the AI gateway — going direct means the call is not billed, does not carry the customer's identity, and will be refused.

🤖 Generated with Claude Code

The DNS capabilities this repo publishes — the knowledge document, nine
read-only zone and record tools and nine triage guides — were registered from
raw JSON in the infra repository, mounted into the assistant as a fixture file.
This team's provider content sat where it neither reviewed nor versioned it, and
adding a guide under docs/agent/skills/ meant a second change in a repository
its author probably did not have open.

The fixture also could not be scoped: it named no project, so every project
reaching the staging assistant got these tools whether entitled or not.

Registers instead what a provider owns: a ServiceAgent for the agent itself and
a ServiceAgentConfiguration for the content it offers. The service catalog copies
that content into each entitled project, as the object the assistant reads there
(milo-os/service-catalog#110).

Content is byte-identical to the fixture it replaces, and both objects validate
closed-world against the catalog's CRDs.

The MCP endpoint is still dns-mcp's in-cluster address, which is what staging
dials. Production needs it pointed at the AI gateway.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@scotwells
scotwells requested a review from a team as a code owner September 29, 2026 01:52
@scotwells
scotwells merged commit 0ea53bd into main Sep 29, 2026
12 checks passed
@scotwells
scotwells deleted the feat/assistant-agent-registration branch September 29, 2026 02:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants