Why
A role is per repository, so vole whoami cannot print one role without first
knowing which repository is meant. The default answer stays the account name
because scripts such as -a "$(./vole whoami)" depend on it; the role is an
explicit question.
What changed
vole whoami --role prints the effective role the key holds on the repository
named by the remote:
vole whoami # keenan
vole whoami --role # admin
- The client sends the current remote’s repository path to the server’s
vole-whoamiverb. - The server resolves the repository’s ACL: its default and per-account rules, with the instance-wide role applied where the repository is public.
- A private repository the account cannot read is reported as not found, the same as a fetch, rather than revealing the repository or a role.
- A run credential may ask only about its own repository.
- The default
vole whoamiresponse is unchanged.
The CLI help, AGENTS.md, CONTRIBUTING.md, and the account, CLI and
getting-started docs point at the new query.
Verification
go test -tags sqlite_fts5 ./...- New
TestWhoAmIRoleAnswersFromTheInstancecovers the repository owner, a maintainer, a private repository hidden from a stranger, and the public default role. python3 scripts/check-links.py./vole workflow check