Skip to content

Remove v1 agents - #859

Open
baxen wants to merge 7 commits into
baxen/agents2-adoptfrom
baxen/remove-agents-v1-tail
Open

baxen wants to merge 7 commits into
baxen/agents2-adoptfrom
baxen/remove-agents-v1-tail

Conversation

@baxen

@baxen baxen commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator

Merge stack, bottom to top: #838 → #855 → #856 → #858 → #859 → #860 → #865 → #867 → #871. Each PR targets the one before it. Earlier stack notes here are superseded.

Now deletions only. The picture, erase and profile-metadata commits moved down to #858. The Profiles removal and its later restore are squashed into one commit, "Drop v1 agents from the Profiles plugin". The "clean up next rebase" fix is squashed into the commits that caused it. The tree is identical to the previous head 261db4c.

Retires the v1 agent UI, runtime, controller and packaging after the identity-adoption layer. Agents2 uses LocalAgents as its managed identity source while retaining community-wide runtime lifetime from #838 and the shared Codex server from #852.

Preserves agent keys across rename and non-key erasure, imports picture/description as ordinary metadata, restores the human/agent Profiles panel without the v1 runtime, and adds agent avatar uploads. Explicit identity deletion still removes keys. The retired controller bundles and channel-template extension are removed.

Validation: combined-tip type/lint/design checks passed; 103 focused controller/native tests and 54 tooling tests passed. The model layer additionally passed 124 runtime/hook and 268 composer tests, plus Chromium/WebKit pending-to-ready interaction checks. Independent integration review completed and blockers fixed. Required push checks and hosted CI are recorded separately.

Deferred: native human acceptance, destructive erase acceptance with the real credential store, packaged/signed installer validation. Keep this draft until human testing is complete. Test two Codex agents concurrently; remove one mid-turn and verify the other continues. Also verify cross-community operation, immediate model picker loading, per-turn overrides, identity adoption/rename, avatars and both erase choices.

Final publication checks passed: full JavaScript suite, TypeScript, design checks and native clippy. Three unchanged tests timed out during concurrent broad runs; all 102 tests in those files then passed, and the complete mandatory push check passed serially without modifying tests or timeouts.

baxen added a commit that referenced this pull request Oct 11, 2026
Mirror baxen/agent-working-reactions at 11d731a (#860, stacked on #859). Preserve the existing next/green ancestry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Bradley Axen <baxen@squareup.com>
@baxen
baxen force-pushed the baxen/remove-agents-v1-tail branch from 261db4c to afa8713 Compare October 11, 2026 23:11
@baxen
baxen force-pushed the baxen/agents2-adopt branch from c3a2a21 to 987566f Compare October 11, 2026 23:11
@baxen baxen changed the title Retire v1 agents and preserve Agents2 identities and profiles Remove v1 agents Oct 11, 2026
@baxen
baxen force-pushed the baxen/remove-agents-v1-tail branch from afa8713 to 8fd8bb0 Compare October 11, 2026 23:55
@baxen
baxen force-pushed the baxen/agents2-adopt branch from 987566f to 3aa3760 Compare October 11, 2026 23:55
@baxen
baxen marked this pull request as ready for review October 11, 2026 23:56
@baxen
baxen requested a review from a team as a code owner October 11, 2026 23:56
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-12T00:12:53.755187Z 8fd8bb0 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

baxen and others added 7 commits October 11, 2026 17:09
…d agent-mention popups

Delete the bundled Agents and Channel templates plugins and every v1
mention popup: wake notices, owner-review requests, the mention attach
path in agent control, and snapshot previews. Adding an agent to a
channel no longer starts it.

Settings > Agents keeps only "Remember mentioned agents" and the saved
activity archive. The shell's collapsible-sidebar, retry and icon
special cases move from the v1 Agents page to Agents2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Bradley Axen <baxen@squareup.com>
Keep the Profiles panel for people and Agents2 agents, and drop only what
served v1 agents: Runtime, Instances, harness log, start/stop/restart,
archive, Memories, Add to channel, exact-instance targets and the
kind-10100 Agent type and Capabilities rows. Human profiles render as
before. Agents2 agents keep their type's tabs and Delete, and Message for
an agent follows the Agents2 LocalAgents snapshot. Browser fixtures use
LocalAgents instead of AgentControl; v1-only cases are removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Bradley Axen <baxen@squareup.com>
…g and security

With the v1 Agents page, Profiles and Channel templates gone, the services
behind them have no consumer. Delete v1 AgentControl and its native bridge,
AgentSecurity, agent snapshots and snapshot sharing, team bundles and
import, the community catalog, the agent-management request lease, and the
channel kit's team payload/text write paths.

Names, mentions and New message now read a LocalAgents snapshot published
by Agents2 (the viewer's own live identities) instead of v1 native control,
so Agents2 agents stay "managed" for DMs and mention invitations. The
plugin author API no longer exports the AgentControl or AgentSecurity
types. Docs drop agent-control.md and agent-security.md and describe the
remaining agent surfaces.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Bradley Axen <baxen@squareup.com>
Templates & teams was the only TemplateProviders contributor, so with it
gone the extension point only rendered empty slots and "templates are off"
notes. Remove ctx.channelTemplates and its editor, group-default and
save-as slots from Create channel, the channel menu, Channel settings and
Personal groups. Create now sends name, privacy, duration and destination
group only.

The channel kit model and session setup stay: groups and Canvas depend on
them, and frozen setup receipts saved by earlier builds still retry with
their original agents and Canvas.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Bradley Axen <baxen@squareup.com>
Nothing in the frontend drives the v1 agent controller any more. Delete
AgentHost and every agent_control_* command, agent_security, native model
discovery (agent/codex/goose/pi models), harness installers and managed
npm, media_snapshot_read, the kit team-catalog reader and the agent
supervisor dispatch, with their build.rs, capability and permission-test
entries, plus the orphaned authorize-agent route in native-api and the
dev broker. Drop the now-unused buzz-agent dependency.

Agents2's app_agent_* commands are unchanged; app_agents.rs now owns the
NIP-98 header helper it borrowed from the v1 module. Quit, update restart
and sign-out no longer wait on a native agent host: Agents2 agents are
plugin host processes that stop when Buzz exits. Sign-out still deletes
keys listed in the v1 agent registry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Bradley Axen <baxen@squareup.com>
Stop building and shipping the unused v1 agent runtime. Keep desktop launch,
application signing, installer verification and AppImage launch repairs.

Trim the controller crate to Agents2 identities, credentials, profile signing
and legacy import. Preserve legacy key deletion with bounded registry reads,
identity validation and controller locking, without retaining the v1 runtime.

Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: Bradley Axen <baxen@squareup.com>
…e it is used

With the v1 controller gone, credential locking is its only caller, and
that is compiled only on macOS and in tests. Linux and Windows lint
failed on the now-unused function.

Co-authored-by: claude00 <fb8b76a01257932b8ca35060862c29bd09b2137638573731c2d5074fc02c5385@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Bradley Axen <baxen@squareup.com>
@baxen
baxen force-pushed the baxen/agents2-adopt branch from 3aa3760 to c3f4fbe Compare October 12, 2026 00:12
@baxen
baxen force-pushed the baxen/remove-agents-v1-tail branch from 8fd8bb0 to 0ab40dd Compare October 12, 2026 00:12

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One change needed: restore native agent-list recovery through the shared chooser (inline).

Optional documentation cleanup: docs/agents.md:8–11 says Profiles is gone, but src/bundled/index.ts:110–114 still bundles/enables it, consistent with this PR's stated intent.

Star Lord's automated source review via Wes's account. Head 0ab40dd5db1b040db1f221ec3fee4de6ed263bd6; base c3f4fbe549cde9a1347467ba8790be5aaa06e03d. Source-only: no tests, app launches, or CI verification; browser/native interaction, credential-store erasure, and packaged acceptance remain unverified.

@@ -206,15 +206,13 @@ export function createAgentChoices({
if (signal.aborted) return;
if (includeLegacy && library.snapshot().status === "idle")
void library.refresh();
if (native?.snapshot().status === "idle") void native.refresh();
if (archive && archives?.snapshot().status === "idle")
void archives.ensure();
},
async refresh(source: SelectionSource = true) {
if (signal.aborted) return;
await Promise.all([
usesLegacy(source) ? library.refresh() : undefined,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] Keep Retry connected to the native agent-list producer

Removing native.refresh() leaves this method refreshing only the legacy library and archive state. On desktop, if app_agent_list fails, Agents2Service.refresh() sets the local source to error; MentionPicker and the session chooser still offer “Retry agent list”, but clicking it never issues another native list read. Managed candidates therefore remain absent even after the read problem is resolved. The Agents2 timer/reconnect paths do not reload this list; only startup and unrelated agent mutations do.

Expose a producer-owned reload path through the new binding and invoke it here, without restoring v1 control. Also clear the prior error after a successful native read: local() now forwards it, and templates.complete requires an error-free snapshot. Retain coverage where the first native read fails and chooser Retry performs a second read, restores managed choices, and clears the error.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants