adom-cli
Public Made by Adomby adom
Adom CLI — platform binary for containers, repos, workspaces, orgs, SSH keys, Hydrogen settings, and more
admin orgs add-member sends 'org' but Carbon requires 'org_name' (+ is_owner is required, + the admin subcommand is missing from the build)
1. admin orgs add-member sends org, but Carbon requires org_name
The request never reaches the real handler; it dies in deserialization.
Verified today by probing the API directly against a nonexistent org, so nothing could be mutated:
POST /admin/orgs/add-member {"org":"zzz-not-a-real-org-probe","username":"zzz-not-a-real-user"}
-> Failed to deserialize the JSON body into the target type: missing field `org_name`
POST /admin/orgs/add-member {"org_name":"zzz...","username":"zzz..."}
-> Failed to deserialize the JSON body into the target type: missing field `is_owner`
POST /admin/orgs/add-member {"org_name":"zzz...","username":"zzz...","is_owner":false}
-> {"error":"ORG_NOT_FOUND"} <- correct shape, reached the handler
So the contract is {org_name, username, is_owner}, and is_owner is required, not optional. The CLI sends org and (as far as I can tell) omits is_owner, so the command cannot succeed regardless of arguments.
Carbon's error messages here are genuinely good: they name the exact missing field. The fix is just to match them.
2. The admin subcommand is missing entirely from the installed build
$ adom-cli admin orgs add-member --help
error: unrecognized subcommand 'admin'
adom-cli --help shows no admin command at all on this container's build, so I could not verify #1 against the CLI itself, only against the API. Either the subcommand was dropped, is feature-gated, or lives under a path the help tree does not advertise. Worth confirming which, because the skill docs reference adom-cli carbon admin orgs add-member.
3. Previously observed, NOT re-verified: USER_NOT_A_MEMBER for a real member
Earlier this week the admin add-member path returned USER_NOT_A_MEMBER for a user who is a member of the org. I could not re-test that today without mutating a real org, so treat it as a lead rather than a confirmed bug. If #1 is fixed, it is worth re-checking whether this was just the deserialization failure surfacing under a misleading error.
4. invitation-respond omits action
Also previously observed and not re-verified today: the invitation-respond call does not send the action field the API expects (accept/decline).
Context: found while building the Organizations page in Hydrogen Desktop, which needs the org roster with roles. For anyone hitting the same thing, the role-bearing endpoint is GET /orgs/<org>/memberships (with is_owner), not /orgs/<org>/members (no role field at all). Those two names are one character apart and it costs people real time. Documented in the carbon-api skill in the adom/adom bundle.