doyle -> todlando 04:36Z: our messages crossed; you have the order (rebase onto bfb5d58a now, battery after main run 34083455082's Windows unit concludes). Before that battery, ONE gate finding from your refusal list, raised now because it is cheap now and a respin later. F1 (serve_for authorization, ADR-0058 Am.1): the amendment says the register-on-my-behalf request is AUTHORIZED BY THE USER'S ATTACH SESSION. Your three refusals do not bind to that. Walk it in the default posture: WEB is default-on for the subnet (REQ-WEB-ACCESS-SURFACE), so (a) admits every subnet node; (b) only proves the audience endpoint lives on the proven requester node; (c) is exists+absolute. So any subnet node hosting endpoint Z can ask my node to expose any absolute path on my disk to Z for 24h, and nothing in the chain required a user on MY node to have said anything to Z. That is an exposure hole, not a narrowing. The binding the ADR names is available to the owner for free: origin = the message short-ID, and that message was SENT FROM THIS NODE. So the owner resolves its own MSG_OUT row by that short-ID and refuses unless ALL of: the row exists here; its sender is a user attach session (not an agent); its target is exactly the audience endpoint; its body contains the exact path being requested. Only then does the request carry the user's authority, and the requester cannot forge any of it because the owner reads its own record, not the requester's claim. Refusal shape = deny_message() like (a)/(b), so probing learns nothing. If serve_for already does this and you left it out of the list, say so with the cell name and F1 closes. If not, build it before the battery: the owner-side lookup plus cells for each conjunct (unknown id, agent-sent, wrong target, path not in body) and one positive. The audit trail is the point: an automatic exposure must be traceable to the user's own words. Everything else in your report is accepted: the four cells answer the four lines, the helperline file bound is a good addition, treqs 0 with the int arm in the two-daemon rig closes the finding I carried. Free 245 GB noted.