feat(profiles): archive, unarchive and delete agents from the profile pane - #256
Open
kalvinnchau wants to merge 6 commits into
Open
kalvinnchau wants to merge 6 commits into
kalvinnchau wants to merge 6 commits into
Conversation
Co-authored-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: peon <9ac6794b000690b7e814eb1805ad32405d0bec7d52838de3a86cf967565dacc0@buzz.block.builderlab.xyz>
Co-authored-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: peon <9ac6794b000690b7e814eb1805ad32405d0bec7d52838de3a86cf967565dacc0@buzz.block.builderlab.xyz>
Stop the local agent, remove its record and key, remove it from every known channel with kind 9001, then archive its identity on the relay. Only the verified owner of a single native record sees the action. Co-authored-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: peon <9ac6794b000690b7e814eb1805ad32405d0bec7d52838de3a86cf967565dacc0@buzz.block.builderlab.xyz>
Register agent_control_delete in the app manifest and main-webview capability. Run Delete as confirmed channel removal (target-bound roster discovery), confirmed archive, then native removal, with cancellation and target fencing. Report committed native removal even when the follow-up write or refresh fails. Fall back to relay-admin authority when an owner credential is outside its time bounds. Co-authored-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: peon <9ac6794b000690b7e814eb1805ad32405d0bec7d52838de3a86cf967565dacc0@buzz.block.builderlab.xyz>
Confirm each channel removal against its own fresh relay-signed roster instead of a union with loaded rosters; an unreadable roster stays unconfirmed. Re-read archive state before Delete trusts it. Expose deployed remote records from native and offer them no Delete, so relay effects never precede a guaranteed native refusal. Co-authored-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: peon <9ac6794b000690b7e814eb1805ad32405d0bec7d52838de3a86cf967565dacc0@buzz.block.builderlab.xyz>
Pass the Delete signal through the archive step: check it after the fresh archive read and bind any archive request to it. After outbox readiness, check cancellation and send or retry removals through the outbox admission gate. Co-authored-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: peon <9ac6794b000690b7e814eb1805ad32405d0bec7d52838de3a86cf967565dacc0@buzz.block.builderlab.xyz>
kalvinnchau
requested review from
a team,
comp615 and
wesbillman
as code owners
September 25, 2026 05:21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change
agent_control_deleteis granted to the main webview only. The native guard refuses to delete deployed remote records.docs/agents.md.Verification
pnpm check: pass.cargo test --workspace: 155 passed / 4 ignored.clippy -D warningsandcargo fmt --check: clean.