Commit Graph

6 Commits

Author SHA1 Message Date
Tom Brow
1c852eda3b fix(mobile): keep ambiguous agent setups recoverable
A sent registration may have allocated an identity even if its response
was lost, so only an explicit server rejection can be discarded; Resume
recovers the identity with the same idempotency key. An unfinished setup
now blocks deleting only its own agent, or any agent while its identity
is unknown. Owned-agent admission uses the profile-level NIP-OA check.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tom Brow <tomb@block.xyz>
2026-10-27 12:10:59 -07:00
Tom Brow
745ad85b6f fix(mobile): recover a pending setup whose instructions were lost
Preferences can outlive device-only secure storage, so a pending setup
whose private instructions are missing is restored with the instructions
field re-enabled instead of failing every registry operation. Adds a
loopback relay test that registration publish and removal reach an
http(s)-saved community over a WebSocket URL.

Co-authored-by: george <973be878edd6d4f79692a3827f20a6f7fe0ed0362f269ff6b6ba8867033d7d8e@sprout-oss.stage.blox.sqprod.co>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tom Brow <tomb@block.xyz>
2026-10-27 10:32:02 -07:00
Tom Brow
3697d528a5 fix(mobile): publish agent registrations over wss and clean up safely
Relay publication and removal now derive the WebSocket URL through
RelayConfig, so communities saved with an https relay URL work. Finished
and discarded setups remove their pending record before deleting its
instructions, so an interrupted cleanup cannot strand the account.

Co-authored-by: george <973be878edd6d4f79692a3827f20a6f7fe0ed0362f269ff6b6ba8867033d7d8e@sprout-oss.stage.blox.sqprod.co>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tom Brow <tomb@block.xyz>
2026-10-27 09:55:59 -07:00
Tom Brow
a897b6e7d0 fix(mobile): present remote agents as Online only with a live registration
Availability now also requires the owner's kind 30177 registration on the
active relay, so an agent whose registration is absent (interrupted create
or delete) keeps its local presence. The Agents list still shows owned
agents without one, so an interrupted delete remains retryable. Clarifies
that agents belong to the member who owns them, not the community.

Co-authored-by: george <973be878edd6d4f79692a3827f20a6f7fe0ed0362f269ff6b6ba8867033d7d8e@sprout-oss.stage.blox.sqprod.co>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tom Brow <tomb@block.xyz>
2026-10-27 09:39:44 -07:00
Tom Brow
b76bfdbf1e fix(mobile): scope remote availability to the community and account
Online status now counts only ACTIVE agents with owner-attested profiles on
the active relay, so agents from another community stay offline. The account
client publishes subject changes, which clear the previous account's registry
immediately. A failed registry load is retried on the next load or relay
reconnect.

Co-authored-by: george <973be878edd6d4f79692a3827f20a6f7fe0ed0362f269ff6b6ba8867033d7d8e@sprout-oss.stage.blox.sqprod.co>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tom Brow <tomb@block.xyz>
2026-10-27 09:39:43 -07:00
Tom Brow
46d0f8267a feat(mobile): manage Builderlab remote agents
Adds an Agents sheet to the channels header for hosted communities: list,
create (register, attest, subscribe, publish the owner registration) and
delete remote agents, and show ACTIVE remote agents as Online. Everything is
gated by HostedEnvironment.enabled, so builds without BUZZ_AUTH_DOMAINS are
unchanged.

Co-authored-by: george <973be878edd6d4f79692a3827f20a6f7fe0ed0362f269ff6b6ba8867033d7d8e@sprout-oss.stage.blox.sqprod.co>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tom Brow <tomb@block.xyz>
2026-10-27 09:39:43 -07:00