Skip to content

chore(scripts): add real-world managerdomain fallback probe#4286

Merged
bokelley merged 1 commit intomainfrom
claude/probe-managerdomain-fallback-script
May 9, 2026
Merged

chore(scripts): add real-world managerdomain fallback probe#4286
bokelley merged 1 commit intomainfrom
claude/probe-managerdomain-fallback-script

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

@bokelley bokelley commented May 9, 2026

Ad-hoc developer tool (`server/scripts/probe-managerdomain-fallback.ts`) that hits live DNS / public web against a small fixture of known publisher-manager pairs and asserts the `AdAgentsValidationResult` envelope.

Not for CI — meant as a manual probe a developer runs after touching `adagents-manager.ts` to confirm the path still does what we think against real managed-network publishers. Existed as a manual `curl` exercise before; moving the fixture set into version control so the next regression is caught on demand rather than after merge.

The original gap fixed in #4283 (property-level scoping rejected by the gate) is exactly what this would have caught — every fixture against a real Raptive/Mediavine/Freestar-managed site would have failed the strict envelope, and a developer running the probe before merging #4204/#4210/#4251 would have surfaced it.

Fixtures

Fixture Expected Why
`craftgossip.com` direct path control Serves `/.well-known/adagents.json` itself
`homestratosphere.com` Mediavine fallback 404 on origin → ads.txt MANAGERDOMAIN=mediavine.com
`momtastic.com` Freestar fallback (fail closed) freestar.com does not yet serve a manifest
`raptive.com` non-404 control 403 on /.well-known confirms fallback only fires on 404

What the initial run surfaced

Three real-world divergences captured in fixture rationales as TODOs:

  1. craftgossip's adagents.json fails JSON validation. Probably stale / non-conformant publisher file.
  2. homestratosphere's fallback to mediavine.com does not reach the scope gate. Hypothesis: validator schema delta against Mediavine's `agent_url` field naming. Worth investigating — if Mediavine's shape is conformant, our validator is stale; if not, file upstream so they migrate.
  3. freestar.com 404s on /.well-known, so its delegating publishers fail closed today. Same pattern as cafemedia.com — managers haven't all rolled out yet.

Each is a follow-up; the script captures the current state so future regressions surface as fixture failures.

Usage

```
npx tsx server/scripts/probe-managerdomain-fallback.ts
npx tsx server/scripts/probe-managerdomain-fallback.ts --verbose
```

Exit 0 on all-pass, 1 on any fixture failing its envelope.

Refs #4173, #4200, #4283.

Ad-hoc developer tool that hits live DNS / public web against a small
fixture of known publisher-manager pairs and asserts the
AdAgentsValidationResult envelope.

Not for CI — meant as a manual probe to confirm the fallback path
still does what we think against real managed-network publishers.
Caught three real-world divergences during initial run, captured in
the fixture rationales as TODOs for follow-up:

  1. craftgossip's adagents.json fails JSON validation.
  2. homestratosphere's fallback to mediavine.com does not reach the
     scope gate — likely a validator schema delta against Mediavine's
     agent_url field naming.
  3. freestar.com 404s on /.well-known, so its delegating publishers
     fail closed today.

Existed as a manual curl exercise before — moving the fixture set
into version control so the next regression is caught on demand. The
original gap fixed in #4283 (property-level scoping) is exactly what
this would have caught.

Usage:
  npx tsx server/scripts/probe-managerdomain-fallback.ts --verbose

Refs #4173, #4200, #4283.
@bokelley bokelley merged commit 16efb2e into main May 9, 2026
13 checks passed
@bokelley bokelley deleted the claude/probe-managerdomain-fallback-script branch May 9, 2026 12:43
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.

1 participant