refactor(desktop): consolidate packs into teams#852
Merged
Conversation
wpfleger96
added a commit
that referenced
this pull request
Jun 4, 2026
wpfleger96
added a commit
that referenced
this pull request
Jun 4, 2026
wpfleger96
added a commit
that referenced
this pull request
Jun 4, 2026
wpfleger96
added a commit
that referenced
this pull request
Jun 4, 2026
wpfleger96
added a commit
that referenced
this pull request
Jun 4, 2026
wpfleger96
added a commit
that referenced
this pull request
Jun 4, 2026
This was referenced Jun 4, 2026
d9396bc to
75d39c6
Compare
3519a5e to
f489fd6
Compare
dda2d4b to
166f982
Compare
166f982 to
ab5ffb8
Compare
f313184 to
749d5f4
Compare
wpfleger96
pushed a commit
that referenced
this pull request
Jun 9, 2026
b10c938 to
f9bc286
Compare
wpfleger96
pushed a commit
that referenced
this pull request
Jun 9, 2026
Collaborator
Author
Team Management UI ScreenshotsE2E screenshot tests from 01 — Teams section with cards02 — Regular team context menu03 — Directory-backed team with version badge04 — Directory team context menu (Sync from directory, Reveal in Finder)05 — Symlinked team with link icon06 — Install from directory button |
wpfleger96
pushed a commit
that referenced
this pull request
Jun 9, 2026
… cleanup The team shipped four byte-identical PNGs on PR #852 because an unscoped full-page capture photographed the same resting grid for every shot, and then left the superseded screenshot comment live because post-screenshots.sh appends rather than replaces. AGENTS.md covered animation waits and cropping but neither failure mode. Add a shasum distinctness gate before posting and the gh api comment-delete step after reposting. Signed-off-by: npub1fgdl5qqnh3k3f2xkqrvt7cujalhm623x4s7fdjdj5yrtp5fzjl9qrjpucw <4a1bfa0013bc6d14a8d600d8bf6392efefbd2a26ac3c96c9b2a106b0d12297ca@sprout-oss.stage.blox.sqprod.co>
wpfleger96
pushed a commit
that referenced
this pull request
Jun 9, 2026
… cleanup The team shipped four byte-identical PNGs on PR #852 because an unscoped full-page capture photographed the same resting grid for every shot, and then left the superseded screenshot comment live because post-screenshots.sh appends rather than replaces. AGENTS.md covered animation waits and cropping but neither failure mode. Add a shasum distinctness gate before posting and the gh api comment-delete step after reposting. Signed-off-by: npub1fgdl5qqnh3k3f2xkqrvt7cujalhm623x4s7fdjdj5yrtp5fzjl9qrjpucw <4a1bfa0013bc6d14a8d600d8bf6392efefbd2a26ac3c96c9b2a106b0d12297ca@sprout-oss.stage.blox.sqprod.co>
06b322a to
8937db3
Compare
5c1a381 to
c342be8
Compare
… consolidation Replaces the pack abstraction with directory-backed teams. Teams are the single organizational unit for grouping personas — importable from a local directory (copy or symlink), syncable when the source changes, and removable with cascade cleanup of owned personas. Business logic: import_team_from_directory (copy/symlink, ID validation), delete_team_with_cascade, sync_team_from_dir (add/remove/update personas), runtime env var resolution via persona_team_dir/persona_name_in_team. Migration moves existing pack data into the new team schema and cleans up the packs directory (remove_dir, not remove_dir_all, to preserve external symlinks). Migration tests extracted to a sibling file to stay under the desktop file-size limit. Frontend: sourcePack→sourceTeam rename, team context menus with sync/reveal/delete for directory-backed teams, install-from-directory flow. E2E mock bridge extended with team fixtures and screenshot specs for all team UI states.
c342be8 to
9fee5c8
Compare
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.






Renames the internal "packs" concept to "teams" across the desktop app and replaces pack installation with directory-backed team management. This consolidates the data model, migration path, backend operations, and the full team management UI into a single change.
Backend
Type renames (with serde aliases for backward compat):
PersonaRecord:source_pack→source_team,source_pack_persona_slug→source_team_persona_slugManagedAgentRecord:persona_pack_path→persona_team_dir,persona_name_in_pack→persona_name_in_teamTeamRecord: addsource_dir,is_symlink,symlink_target,versionfieldsNew team operations (
teams.rs):import_team_from_directory()— copy or symlink a directory into team storage, validate and re-validate after installdelete_team_with_cascade()— remove directory and personas for directory-backed teamssync_team_from_dir()— reconcile directory changes with stored records (add/remove/update personas, update metadata)Migration (
migration.rs):migrate_packs_to_teams()— one-time on-launch migration: renamesagents/packs/→agents/teams/, rewrites field names inpersonas.jsonandmanaged-agents.jsonreconcile_persona_team_dirs()— replacesreconcile_persona_pack_paths(), handles both old and new field namesTauri commands: pack commands replaced with
install_team_from_directory,sync_team_directory,pick_team_directory.Removed:
import_persona_pack,uninstall_persona_pack,list_installed_packs, and all pack infrastructure frompersonas.rs.Runtime:
runtime.rsreadspersona_team_dir/persona_name_in_teamfor ACP env var resolution (env var names unchanged for compatibility).Frontend
TeamsSection.tsx+useTeamActions.ts— directory-backed team UI: install from directory, sync, delete, and "Reveal in Finder" viarevealItemInDir(team.sourceDir)tauriTeams.ts— wires the newinstall_team_from_directory,sync_team_directory,pick_team_directorycommandstypes.ts—AgentTeamgainssourceDir,isSymlink,symlinkTarget,version;sourcePack→sourceTeamAgentsView.tsx,PersonaActionsMenu.tsx— "Managed by pack" → "Managed by team"Notes
The migration test suite was extracted to
migration_tests.rsto keepmigration.rsunder the file-size limit.