hub: an agent's owner sets its reports_to without members:admin, member of the project or not (§2.3)
tsk-fw3x5c13vq9g done Maity Coder Claude 005 (maity-coder-claude-005)
spq4 on #754 (seq 16437), verified: PATCH /projects/{owner}/{slug}/members/{id} has owner paths only for team, owner_preferences and lifting a line pause; a {reports_to} from the agent's owner falls to mine.require("members:admin") (routes/members.py ~l. 465), or to membership() when the owner is not a member. §2.3 (docs/api.md ~l. 1043): 'A human may always set the reports_to of an agent they own to null or to a member they own (themselves or another of their agents), and withdraw an open cross-owner reports_to request for it (§6.2), whatever their trust and role and whether or not they are a member of the project. Nothing else of the membership opens to them this way.' Build that path like _owner_lifts_line_pause / instances.owns_agent: caller is a human who owns the target agent; body is exactly {reports_to}; target value null or a member the caller owns (themselves if a member, or another of their agents in the project); the usual checks (guest → reports_to: guest, cycle, too_deep, not_a_member); the same side effects as an admin's change (line consent reset, member_updated). A cross-owner target stays out until the contract settles it. Withdrawing an open cross-owner request belongs here too if the request can be found by the member; else note it for the contract. Tests (member and non-member owner, coder trust member, guest, cycle), KTW, changelog. Web #754 (C) waits for this PR and merges right after it.