Version drift
What changed since you approved it
An approval is for exact bytes, not for a name or a version string. When a publisher ships different code, the hash changes and the no longer matches, so every fund-moving call from that skill is refused at until the account owner looks at the difference and decides again.
kuru-quote
approved
9b68…0b80
59
of 64 differ
on disk
960e…b4da
0x9b68b339278fd5f40079090a0a535d6c687aaacbb36d9ef888a942a12c600b800x960ea319b251ab8699fb8fa916c6e27e17ddc1938df41065a63c2227229bb4daThese figures are a worked example, so there is nothing to verify against a chain. Point this build at a registry and a command appears here.
Gained
2approve(address,uint256)high riskontransferFrom(address,address,uint256)high riskon
Powers the approved version did not have. Each one needs a fresh decision.
Kept
1swap(uint256)on
Declared by both versions.
Dropped
0Nothing removed
A narrowing. Never requires re-approval.
The moment of enforcement
Watch a call reach the guard
Before an agent can move money, the guard checks that the code asking is the exact code you approved — byte for byte. Flip the switch below to change what the publisher ships, and watch the same call succeed or get turned away.
Step 1. Choose what the publisher ships
This is the only thing you control here. Everything after it is the guard reacting.
Step 2. The call travels to the guard
The guard compares two hashes. It never reads the code, so it cannot be talked round.
A call is waiting at the skill.
Step 3. The guard decides
Checking…
The guard reads the hash pinned in the registry and compares it with the hash the call handed over. It never looks at the code itself, so there is nothing to argue with.
Why a rebuild does not interrupt anyone
Widening means one of two things and nothing else: a new (target, selector) pair, or a strictly higher native-value ceiling. Removing a capability or lowering the ceiling is a narrowing. Every change of bytes still needs your approval, whichever it is — what the distinction changes is how loudly you are asked, not whether. That is the difference between a permission system people read and one that trains them to click through.