Repository navigation
feat(agents): import old Buzz teams from the Teams tab - #985
Conversation
|
Read-only source review of team Import at remote-verified head IMPORTANT — Correctness: the committed fixture retains a known real team name
IMPORTANT — Correctness: the planned pre-existing same-name team case is not protected
Add a separate test that creates the same-name user team before the first import, then asserts the user team is exactly unchanged and a distinct expected What is solid
Optional test improvement: the cross-community test's fake native port always returns the first community's relay ( No local tests/builds/linters or mutations were run; the two red-then-green receipts were source-checked, not independently re-executed. DCO passed and the six automatic jobs listed at the single CI inspection were still running. Live native import and rendered UI checks remain with Gurney, followed by human acceptance; this is not a shipping approval. |
Team Import: second source reviewAll four previous findings are CLOSED; no new source blocker. Reviewed remote-verified head
The protected Rust construction/serialization and storage-before-memory failure tests remain intact. The full-page partial-success assertions change only their synthetic names. No new behavior, abstraction, recovery state or production scope was introduced. The incremental Evidence limits: no local tests, builds, linters or mutations executed, and no repository files changed. At the single hosted-check inspection, DCO Check succeeded; that response listed no other checks, so I am not claiming complete CI success. This clears the source findings, not the live Import workflow or readiness to merge. Independent live verification and human acceptance remain separate gates. — Thufir |
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 Source review found two issues: legacy directory-backed team membership is omitted, and the preview counts identities from other communities as already here. Please address these before merging. No tests or app execution performed.
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 Two issues remain: re-import can retain another account's team members, and partial imports leave the preview count stale. Please address these before merging. Source review only.
6d84fec to
e3655b2
Compare
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 Reviewed the latest head. Prior findings are resolved, including account-scoped imported teams and A → B → A regression coverage. No remaining actionable findings. Source review only; tests and runtime behavior were not exercised.
An agent imported from old Buzz now joins its old team in the community it was imported into, creating the team on its first member. The team is read again at import and keyed to the committed community; a failed team save keeps the agent and says so on the Import tab. Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
Fixtures and tests no longer reuse names from a real old Buzz setup. New cases pin that a same-name team made before any import is never adopted and that a deleted imported team is recreated, and the fake native now makes each agent in the community it was given. Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
Will's model: the Import tab lists old teams and old agents separately. Import team brings every member not here yet, then saves the team once with every member in the community it started in; Import agent never touches teams. Native lists teams with named members built before old Buzz's pubkey merge, so importing re-reads the same merged roster it previewed. Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
…t's owner Members old Buzz no longer lists fail by name before any import, and blank names show as a short npub. Result messages name the team as saved, and a failed save names the agents that came. Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
…ey label Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
The native registry is shared by every build and sign-in on the machine, so a member counted as already here by public key and community alone could be another owner's agent: hidden in Yours, unrunnable, and its import skipped. A member now joins as already here only when it shows in Yours; one owned by another account is left off and named, and the preview counts only agents in Yours. Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
Classifying members through the live binding put the captured owner's own agent in elsewhere once another owner signed in mid-import. One partition check against the captured binding now decides yours, foreign and elsewhere; the preview uses the selected binding. Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
An earlier import's copy of the team is keyed by old team and community, not owner, so its members were merged back unchecked and another account's agent stayed on a team the result reported as kept out. Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
Import dropped the imported agents from its list but left the team's "already here" count as it was before the import. Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
Import's per-community count of members already here, which fixed this, needed page and service coverage. Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
Old Buzz also links an agent to a team by its persona_team_dir folder name, matched against the team's source folder or ID. Import read only team_id, so folder-linked teams came without members and mixed teams lost them. Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
The early return for an import with no successful members ran before the saved team's filtered roster was written, so another account's agent stayed on it while the result reported it kept out. Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
Main moved Import into a dialog from New agent. The rebase left port without its closing onPendingChange(false), which would keep the dialog unclosable after a failed single import; restore it and mark team imports pending too. Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
The imported team ID hashed only the old team and community, so a second account importing the same old team took over the first account's saved team. Hash the owner-plus-community scope instead. Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
Team import was only reachable from New agent, so people looking on Your teams could not find it. New team now offers create and import, Import a team shows only teams, and teams render as cards in the agent grid. Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
e3655b2 to
8440b3d
Compare
The lifted edit id outlived the editor's draft across tab switches, and an id whose team vanished hid New team. The editor now opens only for a new or still-saved team, and leaving Teams clears it. Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
…-drag * origin/main: (34 commits) fix(channels): resolve template agents from ready inventory (#922) [buzz-app] Fit uploaded videos to the relay's 4K envelope and name video rejections (#1129) feat(github): reveal the PR comment a link points at (#947) fix(messages): stop WebKit freeze from muted composer video previews (#1143) test(browser): fix route-unroute and virtua-hold webkit flakes (#1149) test(browser): let dnd-kit see its first resize before text shrinks (#1150) fix(previews): keep a hovered preview through scroll anchoring (#1138) Unify owned agent profile panels (#1083) feat(agents): import old Buzz teams from the Teams tab (#985) Mark Me chats as personal in the session description for remote agents (#1058) feat(messages): optional way to open buzz message links in a thread tab (#1113) Distinguish thread originals and tighten conversation spacing (#929) fix(buzz-mcp): page channel reads past the relay limit (#1131) fix(inbox): show a session's top-level timeline as one conversation (#1094) feat: reorder sidebar groups by dragging their headers (#1118) fix(avatars): request the cached relay thumbnail at every avatar site (#1054) fix(messages): soften quote styling and tighten spacing (#1098) fix(emoji): shrink and raise inline custom emoji (#1097) fix: follow host theme in media review chrome (#1117) Highlight an already-open thread tab when reopening it (#1050) ... Signed-off-by: John Tennant <jtennant@block.xyz> Co-authored-by: Claude Worker <f425b86c3b780d43f8d9cf1802429d04dd985bf92eac44fca9468b5ad3887c5e@buzz.block.builderlab.xyz> # Conflicts: # src/features/channel-navigation/ChannelSidebarDnd.tsx
🤖 Brings old Buzz teams into the 1.0 app and gives the Teams tab the same layout as Your agents. On Your teams, New team (in the spot New agent takes on Your agents) opens a menu with Create a new team and Import a team. Import an agent, under New agent, lists only old agents; Import a team lists only old teams. Both use one dialog and one import path.
beta-<sha256(oldId\nscope)>, wherescopeis the signed-in account plus the community (relayPartition). They are never matched by name, so a hand-made team with the same name is left alone. Two accounts on one device that import the same old team get separate teams, and neither import changes the other's members, name or instructions. A deleted imported team is recreated by the next import.is_builtin) is not listed; its members import as ordinary agents.main.Native side:
agent-controllerlists old teams with named members and their source store. Members are linked as old Buzz links them: byteam_id, or by the name of theirpersona_team_dirfolder matched against the team's source folder (else its ID). Agents no longer carry a team.