Key custody is a configuration boundary
Signing keys are split across two trust-domain secrets, not one shared secret, and separation is enforced at runtime: each service refuses to load the other domain’s role, and — tested directly, bypassing that guard — decrypting the approver key with the agent secret fails authenticated decryption. That is a real boundary.
It is still a configuration boundary, not a credential boundary. All keys live in one table, and possession of an environment string is the entire authorization model with no external check. Nothing structurally prevents both secrets reaching one process; that happened once, briefly, during initial setup.
ImplementedThe accurate sentence is: the agent process does not currently hold that credential. Never: the agent process cannot obtain it.
The ledger is tamper-evident, not independently verifiable
Verification passing proves the rows carry valid signatures from the trusted keys and form an intact hash chain — nobody edited a row without holding the relevant key. It does not prove the chain was never wholesale replaced by someone who also holds the keys or controls the trust map, because the rows and the trust policy currently live in the same database.
Approval identity is a string, not an identity
There is one keypair per role, not per individual. The recorded approver identity is whatever the caller supplies. There is no SSO, SAML, or OIDC integration, and the membership model distinguishes only whether someone belongs to an organization, not what they may do within it.
Merge is not deployment
Approval merges the pull request. There is no automated production deployment step in this system, and no rollback loop: deploying a merged change is a separate, manual process. Anything claiming a deployment or a one-click undo as a current capability would be describing design, not code.
The connector’s permissions are not minimal
The current connector authenticates with a classic personal access token carrying full repository scope. Narrowing it is real work that has not been done. See Tokens and permissions for the exact scope and why it is what it is.
What is recorded, and what is not
Token counts and per-call cost are metered per fix. There is no raw prompt or response transcript store anywhere in the system, so a claim that every model request and response is recorded would be false. There is no runtime command log as a general control either.