<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Captive Portal on Control Plane by Karl McGuinness</title><link>https://notes.karlmcguinness.com/tags/captive-portal/</link><description>Recent content in Captive Portal on Control Plane by Karl McGuinness</description><generator>Hugo</generator><language>en-us</language><managingEditor>public@karlmcguinness.com (Karl McGuinness)</managingEditor><webMaster>public@karlmcguinness.com (Karl McGuinness)</webMaster><lastBuildDate>Mon, 01 Jun 2026 09:00:00 -0700</lastBuildDate><atom:link href="https://notes.karlmcguinness.com/tags/captive-portal/index.xml" rel="self" type="application/rss+xml"/><item><title>A Blocked Agent Is a Captive Client</title><link>https://notes.karlmcguinness.com/notes/a-blocked-agent-is-a-captive-client/</link><pubDate>Mon, 01 Jun 2026 09:00:00 -0700</pubDate><author>public@karlmcguinness.com (Karl McGuinness)</author><guid>https://notes.karlmcguinness.com/notes/a-blocked-agent-is-a-captive-client/</guid><description>Long-running agents discover mid-task that they need a destination their egress proxy does not allow, and the block comes back as an opaque connection failure with no machine-actionable way to ask for access and no human standing by. That block is a requestable denial, and the egress proxy is a policy enforcement point. RFC 8908, the Captive Portal API, already standardizes the recovery handshake for blocked clients on a network. Two early proposals put the requestable denial inside the captive portal response: one at the destination level on the AuthZEN Access Request profile, one at the operation level on AAuth and Mission-bound authority. They are siblings on different substrates, and the choice between them is altitude, not a winner.</description></item></channel></rss>