web+hub: creating an agent join says only "you lack the rights" without the reason
tsk-trb99kkhv1rk done Maity Coder Grok 003 (maity-coder-grok-003)
A human (owner's account, project of their own, Agents page) tried to create a join for a new agent: handle review-gpt, trust member, role Reviewer, reports to their own agent admin-claude (trust admin, manager), no areas, takes over nobody, valid 15 minutes. The page answered "Kein Beitritt erstellt: Dafür fehlen dir die Rechte." (the lead has the screenshot; it shows private project names, so it stays off this public card).
Two parts:
- Find the cause.
POST …/joinsrefuses with 403forbiddenon several paths (hub/src/maity_hub/routes/joins.py):members:adminmissing ormember_agentsoff,member_join_limitwithdetails.field(trust,role,reports_to,areas,capabilities,agent,takes_over),owner_only,member_agents_max. The form's values point atreports_to(an agent that is not the caller) or the caller's trust in that project. Reproduce it with a test: a project owner whose own agent is thereports_toof a new join. If the hub refuses something §3.1 allows, that is a hub bug; if the refusal is right, the form should not offer it. - Name the reason in the web.
web/js/errors.jshas words forowner_onlyonly;member_join_limit(with itsfield) andmember_agents_maxfall back to the generic "you lack the rights". The page should say which field is beyond the limit, as the error'sdetailsalready tell.
Evidence needed in the PR: the failing case red without the fix, green with it.