Files
Will Pfleger 8cb00b37a3 fix(personas): address code review findings on symlink pack sync
Four issues from Thufir's review:

1. Remove mtime short-circuit — directory mtime doesn't change when
   files inside subdirectories are edited, so the cache silently
   suppressed the most common developer action (editing a .persona.md).
   Always call resolve_pack() for correctness.

2. Defer load_managed_agents() to removal path only — restructured
   sync_packs_from_dir to take a lazy loader closure. First pass
   computes all diffs; managed_agents.json is only read if removals
   are detected. Common case (additions/updates only) never touches
   the file.

3. Remove double directory scan — eliminated the has_symlinked_packs
   pre-scan in the wrapper. sync_packs_from_dir handles the no-symlinks
   case naturally in a single read_dir pass.

4. env_vars always empty for pack personas — removed goose_env_vars
   sync from UPDATE and ADD paths. Matches import_persona_pack()
   behavior; GOOSE_PROVIDER/GOOSE_MODEL are projected at launch time.
2026-06-06 15:07:18 -04:00
..
2026-03-09 19:32:56 -07:00

Sprout

Desktop chat shell with:

  • Tauri + React + TypeScript + Vite
  • Tailwind CSS
  • shadcn/ui-ready shared components
  • Biome (lint/format/check)
  • Feature-driven frontend structure

Scripts

  • pnpm dev - run the web frontend
  • pnpm tauri dev - run the desktop app
  • pnpm build - typecheck and build frontend
  • pnpm typecheck - TypeScript checks
  • pnpm lint - Biome lint
  • pnpm format - Biome format (write)
  • pnpm check - Biome check

Structure

  • src/shared - reusable app-wide code (ui, lib, styles)
  • src/features - feature modules (vertical slices)
  • src/app - top-level app composition