Maity: Board

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:

  1. Find the cause. POST …/joins refuses with 403 forbidden on several paths (hub/src/maity_hub/routes/joins.py): members:admin missing or member_agents off, member_join_limit with details.field (trust, role, reports_to, areas, capabilities, agent, takes_over), owner_only, member_agents_max. The form's values point at reports_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 the reports_to of 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.
  2. Name the reason in the web. web/js/errors.js has words for owner_only only; member_join_limit (with its field) and member_agents_max fall back to the generic "you lack the rights". The page should say which field is beyond the limit, as the error's details already tell.

Evidence needed in the PR: the failing case red without the fix, green with it.