Skip to content

feat(desktop): team & persona import/edit flows#288

Merged
tellaho merged 9 commits intomainfrom
codex/teams-import-update-20260409-191441
Apr 10, 2026
Merged

feat(desktop): team & persona import/edit flows#288
tellaho merged 9 commits intomainfrom
codex/teams-import-update-20260409-191441

Conversation

@tellaho
Copy link
Copy Markdown
Collaborator

@tellaho tellaho commented Apr 10, 2026

Sprout as an interface keeps getting better, but what makes it really work is the constant testing and tweaking of different agent styles and how they collaborate with each other. The goal here was to make it very easy to take json files (generated elsewhere) and dropping them in to wholesale update agent teams and personas.

Summary

  • Team edit/import flow: create/edit/duplicate/delete/export teams with persona multi-select; import .team.json files (new team or diff-update existing) with member matching, per-member checkboxes, and line change counts; removal confirmation dialog
Screen.Recording.2026-04-10.at.6.49.51.AM.mov
  • Persona import-update flow: import button in persona edit dialog footer; drop a .persona.json to open a field-level diff preview (display name, prompt, avatar, runtime, model, name pool) with per-field checkboxes and line counts; apply merges selected fields
Screen.Recording.2026-04-10.at.7.03.23.AM.mov
  • Supporting modules: import plan builders (LCS-based line diff), button state/tone helpers, selection utilities, useTeamActions and usePersonaImportActions hooks
  • Tests: 26 new persona tests + 18 team tests covering plan logic, state helpers, and dialog state

Test plan

  • Edit a persona → Import button in footer → drop .persona.json → diff preview → apply/clear
  • Team CRUD, import new .team.json, import-update existing team from edit dialog
  • pnpm check and node --test pass

🤖 Generated with Claude Code

@tellaho tellaho changed the title feat(desktop): persona edit/import-update flow feat(desktop): team import/edit flow + persona import-update flow Apr 10, 2026
@tellaho tellaho changed the title feat(desktop): team import/edit flow + persona import-update flow feat(desktop): team & persona import/edit flows Apr 10, 2026
tellaho and others added 9 commits April 10, 2026 07:07
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Extract shared RemoveMembersConfirmDialog used by both the edit team
and import update flows. When deselecting personas in the edit dialog,
prompts the user to keep or permanently remove the agents.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Port the team Edit/Import pattern to the persona ("My agents") flow.
When editing a persona, an Import button now appears in the dialog
footer. Dropping or selecting a .persona.json file opens a diff preview
dialog showing field-level changes (display name, system prompt, avatar,
runtime, model, name pool) with per-field checkboxes and line change
counts. Unchecked fields show the current value instead of a static
"will not be updated" message.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fix two biome formatting issues (single-line disabled prop, inline type
param) and remove unnecessary JSX fragment in PersonaImportUpdateDialog.
Also fix pre-existing TS2345 in teamImportPlan.ts where missingMembers
array was typed as the final output type before removedLines was added
via .map().

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…aImportActions hook

Move persona import-update state and handlers out of AgentsView into a
dedicated hook, mirroring the useTeamActions pattern. Brings AgentsView
back under the file size limit (994 → 874 lines). Add narrowly scoped
file size overrides for the new team dialog files.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@tellaho tellaho force-pushed the codex/teams-import-update-20260409-191441 branch from 639e9d3 to e52c975 Compare April 10, 2026 17:08
@tellaho tellaho marked this pull request as ready for review April 10, 2026 17:11
@tellaho tellaho merged commit 41d343b into main Apr 10, 2026
9 checks passed
@tellaho tellaho deleted the codex/teams-import-update-20260409-191441 branch April 10, 2026 17:17
tlongwell-block added a commit that referenced this pull request Apr 11, 2026
…ona-migration

* origin/main:
  feat(desktop): add Pulse social notes surface (#296)
  Fix flaky desktop smoke tests (#294)
  Add agent lifecycle controls to channel members sidebar (#291)
  Update nest_agents.md tagging info (#292)
  feat: add Sprout nest — persistent agent workspace at ~/.sprout (#290)
  Fix auth and SSRF vulns (#261)
  Add per-agent MCP toolset configuration to agent setup (#279)
  feat(desktop): team & persona import/edit flows (#288)
  Remove menu item subtitles and fix persona card overflow (#289)
  feat: Phase 1 video upload support (Blossom-compliant-ish) (#285)
  Add inline subtitles to menu items and field descriptions (#276)
  Improve ephemeral channel affordances and hide archived sidebar rows (#286)
  Fix @mention search to use word-boundary prefix matching (#278)
  Allow bot owners to remove their agents from any channel (#284)
  [codex] Polish agent selectors and settings layout (#283)

# Conflicts:
#	desktop/scripts/check-file-sizes.mjs
tlongwell-block added a commit that referenced this pull request Apr 11, 2026
Pack personas are immutable (backed by the pack directory, resolved at
runtime by ACP). The backend already blocks edit/delete, but without
frontend guards users would see confusing errors.

- PersonasSection: hide Edit menu item for pack personas
- PersonasSection: show disabled 'Managed by pack' instead of Delete
- teamImportPlan: skip pack personas from membersToUpdate (prevents
  team import-update from trying to edit pack-backed members)

Compatible with the persona editing GUI from PR #288.
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