Skip to content

chore: merge dev into main (resolve session.ts conflict) - #539

Merged
namastex888 merged 38 commits into
mainfrom
fix/resolve-dev-main-conflict
Mar 14, 2026
Merged

namastex888 merged 38 commits into
mainfrom
fix/resolve-dev-main-conflict

Conversation

@namastex888

@namastex888 namastex888 commented Mar 14, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Resolves merge conflict between dev and main in src/genie-commands/session.ts.

The v2 framework redesign (PR #536) gutted session.ts to only export helpers (getAgentsSystemPrompt, buildClaudeCommand, sanitizeWindowName). Main still had the full session command with all the old tmux session management code. Dev's version is correct.

Conflict Resolution

  • src/genie-commands/session.ts: Keep dev version (cleaned-up helpers only)

Context

This replaces the rolling PR #537 which had the same conflict.

Summary by CodeRabbit

  • New Features

    • Introduced agent directory for persistent agent registry with CRUD operations
    • Added wish-based state machine replacing legacy beads system
    • Implemented dispatch commands (brainstorm, wish, work, review) with context injection
    • Added team management with git worktree integration and member lifecycle (hire/fire)
    • Introduced team chat for member communication
    • Added branch guard for main/master protection
    • Enabled named session management
    • New top-level commands: spawn, kill, stop, ls, history, read, answer
  • Documentation

    • Updated guides to reflect wish terminology and new command names
    • Skill documentation refactored to use unified dispatch pattern
  • Removals

    • Removed legacy beads-based infrastructure
    • Eliminated outdated command namespace (task, council, work, approve, etc.)
    • Removed worker profiles and council presets

github-actions Bot and others added 30 commits March 10, 2026 22:36
tmux uses '.' as a pane separator in targets (session:window.pane),
so folder names like 'ravi.bot' cause "can't find pane: bot" errors.
Sanitize dots to dashes in deriveWindowName.
Covers the fix for tmux "can't find pane" error when folder names
contain dots (e.g. ravi.bot). Tests sanitizeWindowName as a pure
function — no mock.module needed.
Replace `const { basename } = require('node:path')` with top-level
ESM import for consistency with the rest of the file.
…ests

Bun's mock.module replaces the entire module cache process-wide.
When a mock only provides a subset of exports, unrelated test files
that import the same module get "Export named 'X' not found" errors.

Add stubs for all agent-registry and tmux exports to prevent cache
corruption causing flaky CI failures.
Bun's mock.module corrupts the global module cache process-wide,
causing "Export named 'X' not found" errors in unrelated test files.

Refactored idle-timeout to accept dependencies via optional IdleDeps
parameter (defaults to real implementations). Tests inject mocks
directly — no mock.module needed anywhere in the codebase now.
Dotted folder names (e.g. `foo.bar`) bypassed collision detection because
`resolveWindowName` searched for the unsanitized basename while existing
windows were stored with sanitized names (`foo-bar`). This caused
`focusTeamWindow` to attach to an unrelated window running a different
project.

Move `sanitizeWindowName()` call inside `resolveWindowName` so the tmux
lookup matches what's actually stored. The outer `sanitizeWindowName` in
`deriveWindowName` is now a harmless no-op (idempotent).

Adds regression tests for idempotency and dot-dash collision equivalence.
Apply sanitizeWindowName to teamName in team-auto-spawn.ts before
passing to ensureTeamWindow and constructing tmux target strings.
Prevents "can't find pane" errors when team names contain dots.
sanitizeTeamName lowercases + strips non-alnum, while the tmux window
is created with sanitizeWindowName (dots only). Return the actual
window name so callers target the correct tmux window.
Implements Group 1 of the genie v2 redesign:

- Create src/lib/agent-directory.ts — JSON registry at ~/.genie/agent-directory.json
  with add/rm/resolve/ls/edit/loadIdentity API and file-lock pattern
- Create src/lib/builtin-agents.ts — 10 built-in roles + 10 council members
  with default models, prompts, and descriptions
- Create src/term-commands/dir.ts — genie dir add/rm/ls/edit CLI commands
- Remove blueprint system from team-manager.ts (BLUEPRINTS, getBlueprint, listBlueprints)
- Remove genie profiles commands from genie.ts
- Remove genie team blueprints and genie team ensure commands
- Resolution order: user directory > built-in registry
Files removed from genie.ts by Groups 1 and 4 but not yet deleted:
profiles.ts, ledger/validate.ts, team-auto-spawn.ts, beads-validate.ts,
daemon.ts, beads-registry.ts, wish-state.ts
Previous commit had stale linter changes from concurrent agents.
This version starts from dev, adds only dir namespace registration
while keeping all existing commands intact.
Group 4 deliverables:
- Create src/lib/wish-state.ts with WishState schema, createState/
  startGroup/completeGroup/getState API, and file-locked state file
  at .genie/state/<slug>.json
- Add genie done <slug>#<group> and genie status <slug> CLI commands
  in src/term-commands/state.ts
- Remove all beads integration: daemon commands, ledger commands,
  brainstorm crystallize, beads-registry, beads-issues-jsonl
- Remove bd CLI calls from close, ship, work, and task commands
- Clean beads/bd references from comments throughout codebase
- Add systemPromptFile, promptMode, model to SpawnParams in provider-adapters
- buildClaudeCommand emits --system-prompt-file or --append-system-prompt-file
- buildClaudeCommand emits --model flag when model is set
- Rewrite genie agent spawn: positional <name> resolves from directory/built-ins
- Remove --role as required option; name is the primary identifier
- Agent CWD resolved from directory entry.dir, overridable with --cwd
- Agent identity injected via --append-system-prompt-file <dir>/AGENTS.md
- Replace persistSystemPrompt() + $(cat) pattern with --*-system-prompt-file
- Update all tests to match new --*-file flag patterns
- Rewrite team-manager.ts: new schema with repo, baseBranch, worktreePath,
  leader, members[]; createTeam creates git worktree (idempotent);
  hireAgent/fireAgent for member management; disbandTeam removes worktree
- Rewrite team.ts CLI: create (--repo, --branch), hire (council special case),
  fire, ls (teams or members), disband commands
- Remove _open hidden command and team shortcut routing from genie.ts
- Add comprehensive tests for both team-manager and team CLI
- Remove sessionCommand and SessionOptions exports (dead after _open removal)
- Remove deprecated deleteTeam alias from team-manager
- Remove unused GroupStatus type export from wish-state
- Clean up knip config: remove stale ignores for profiles.ts and bd binary
- Remove export from getWindowEnv, setWindowEnv, killSession (only used
  by removed session functions)
- Remove unused GroupStatus type alias from wish-state
- local-tasks.test.ts: save/restore TERM_USE_LOCAL_TASKS env var to
  prevent parallel test interference
- work.test.ts: disable husky hooks in temp repos via core.hooksPath
  and use conventional commit messages
Implement Group 5 dispatch commands that bridge the wish state machine
and agent spawn with context injection:

- genie brainstorm <agent> <slug> — reads DRAFT.md, spawns with content
- genie wish <agent> <slug> — reads DESIGN.md, spawns with content
- genie dispatch-work <agent> <slug>#<group> — checks deps, starts group, spawns
- genie review <agent> <slug>#<group> — spawns with group + git diff context

Shared utilities: extractGroup(), extractWishContext(), buildContextPrompt(),
writeContextFile() for temp file context injection via --append-system-prompt-file.

Exports handleWorkerSpawn and SpawnOptions from agents.ts for reuse.
…nd team chat

- Rewrite msg.ts: remove --team from send, add scope enforcement, broadcast,
  and chat commands (post/read via JSONL team channels)
- Create team-chat.ts: JSONL-based group channel with postMessage/readMessages
- Rewrite protocol-router.ts: directory-first resolution order
  (directory → built-in → worker registry), auto-spawn for directory agents
- Update auto-spawn.ts: check agent directory before templates for
  offline agent resolution with expanded search candidates
- Add comprehensive tests for team-chat, scope checking, and protocol-router
…s, add session management

Group 7 of the Genie v2 Framework Redesign:

- Promote agent subcommands to top-level: genie spawn, kill,
  stop, history, read, answer
- Add `genie ls` smart view showing registered agents with
  runtime status (NAME|DIR|STATUS|TEAM|MODEL)
- Add `genie --session <name>` for named leader sessions with
  name→UUID mapping
- Remove `genie agent` namespace entirely (spawn, list, kill,
  suspend, dashboard, watchdog, approve, history, answer,
  events, close, ship, read, exec)
- Remove `genie task` namespace entirely (create, update, ship,
  close, ls, link, unlink, create-local, list-local,
  update-local)
- Remove `genie council` and `genie profiles` commands
- Rename suspend→stop for consistency
- All commands resolve by agent name (with role/suffix fallback)
- Update all command references in target-resolver, work,
  history
…il skill

- Add systemPrompt field to SpawnParams for built-in agents without AGENTS.md
- Build --append-system-prompt flag in Claude adapter for inline prompts
- Resolve built-in system prompts in agent spawn flow via getBuiltin()
- Update /council skill with dual-mode awareness:
  - Lightweight mode (default): simulated perspectives in single session
  - Full spawn mode: detects hired council members, posts to team chat,
    council members respond independently, leader synthesizes
…d remove old patterns

Replace genie agent spawn --role with genie spawn across all 10 skill
SKILL.md files. Remove Task tool, TeamCreate/TeamDelete/SendMessage
references. Remove bd/beads/bd close references. Strip state management
from /work (no checkboxes, no Status: SHIPPED). Add shared worktree
context injection sections to brainstorm, wish, review, and work skills.
Verify council dual-mode documentation. Also fix report skill dispatch.
…sign

Delete 10 unused files (profiles, skill-loader, wish-tasks, close,
council, create, exec, ship, task/commands, update) and remove 11
unused exports left over from groups 1-9 parallel work. Fix biome
format, import-type, and unused-import errors.
…sion-store

- Set GENIE_AGENT_NAME env var before the native team conditional block
  so all spawns (not just native team ones) get the env var set
- Native team path still overrides with the more specific agentName
- Confirmed crypto.randomUUID() works as a Bun global (Web Crypto API),
  added clarifying comment in session-store.ts
Test User and others added 8 commits March 13, 2026 22:14
- Replace `genie agent list/kill/spawn/read/history` with promoted
  top-level commands (`genie ls/kill/spawn/read/history`)
- Replace `genie council <topic>` with `/council` skill reference
- Update CO-ORCHESTRATION-GUIDE from beads/bd paradigm to wish
  state machine context
- Update agent-profiles.md spawn references
- Fix import ordering in team-manager.ts
- Remove unused exports and files flagged by knip: task-backend.ts,
  event-monitor.ts, updateState, generateWorkerId, findAllByTask,
  loadFullAutoApproveConfig, getSessionName, getDefaultWorkerProfile,
  getWorkerProfile, extractPermissionDetails, detectCompletion,
  executeCommand, WorkerProfile type
- Update test to match new GENIE_AGENT_NAME behavior (always set from role)
feat: Genie CLI v2 — Complete Framework Redesign
fix(hooks): update auto-spawn to use top-level genie spawn command
The v2 redesign gutted session.ts to only export helpers.
Main still had the full session command. Dev is correct.
@coderabbitai

coderabbitai Bot commented Mar 14, 2026 •

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

This PR implements a comprehensive architectural redesign replacing the beads task system with a wish-based state machine, introducing a persistent agent directory with CRUD operations, adding context-injected dispatch commands for orchestrating multi-agent workflows, and refactoring team lifecycle management around git worktrees.

Changes

Cohort / File(s) Summary
Agent Directory & Built-in Registry
src/lib/agent-directory.ts, src/lib/agent-directory.test.ts, src/lib/builtin-agents.ts, src/lib/builtin-agents.test.ts
New persistent agent directory module with file-locking CRUD operations (add, rm, resolve, ls, edit, loadIdentity) and built-in role/council-member registry. Replaces profile-based system.
Wish State Machine
src/lib/wish-state.ts, src/lib/wish-state.test.ts
New deterministic state machine tracking grouped wish tasks with dependency graphs, file-backed persistence under .genie/state/<slug>.json, and concurrency safeguards via file locking.
Team Management Overhaul
src/lib/team-manager.ts, src/lib/team-manager.test.ts, src/term-commands/team.ts, src/term-commands/team.test.ts
Reworked team lifecycle from blueprint-based to git-worktree-backed; new public APIs for hireAgent, fireAgent, disbandTeam, listMembers.
Team Chat
src/lib/team-chat.ts, src/lib/team-chat.test.ts
New JSONL-based team chat per-channel storage under .genie/chat/<team>.jsonl with postMessage and readMessages APIs.
Dispatch & State Commands
src/term-commands/dispatch.ts, src/term-commands/dispatch.test.ts, src/term-commands/state.ts
New context-injected dispatch commands (brainstorm, wish, work, review) and state machine CLI (done, status) with group dependency enforcement and wish-context extraction.
Agent Spawn & Resolution
src/term-commands/agents.ts, src/lib/protocol-router.ts, src/lib/provider-adapters.ts, src/hooks/handlers/auto-spawn.ts
Refactored spawn workflow to resolve agents from directory first, extended SpawnParams with systemPrompt/promptMode/model, directory-first messaging resolution with auto-spawn fallback.
Removed Beads Legacy
src/lib/beads-registry.ts, src/lib/beads-issues-jsonl.ts, src/lib/task-backend.ts, src/lib/wish-tasks.ts, src/term-commands/beads-validate.ts, src/term-commands/brainstorm-beads.ts, src/term-commands/close.ts, src/term-commands/work.ts, src/term-commands/daemon.ts, src/term-commands/council.ts, src/term-commands/task/commands.ts, src/__tests__/beads-issues-jsonl.test.ts, src/__tests__/brainstorm-crystallize.test.ts
Wholesale removal of beads-based task/issue system, daemon, council, work command, and associated registry/persistence logic (~2200 lines deleted).
Removed Legacy Commands & Configuration
src/genie-commands/brainstorm/crystallize.ts, src/genie-commands/ledger/validate.ts, src/genie-commands/profiles.ts, src/genie-commands/session.ts, src/term-commands/approve.ts, src/term-commands/create.ts, src/term-commands/exec.ts, src/term-commands/ship.ts, src/term-commands/update.ts, src/lib/skill-loader.ts, src/lib/orchestrator/event-monitor.ts, src/lib/orchestrator/state-detector.ts, src/lib/genie-config.ts (partial removal)
Removed profile management, crystallize command, ledger validation, skill-loader, event monitoring, and various legacy task/approval/ship workflows.
Session & Prompt Handling
src/lib/session-store.ts, src/lib/team-lead-command.ts, src/lib/provider-adapters.ts
New session store for named team-lead sessions; refactored prompt persistence from inline to file-based (--system-prompt-file / --append-system-prompt-file).
Branch Guard & Hook Handlers
src/hooks/handlers/branch-guard.ts, src/hooks/handlers/branch-guard.test.ts, src/hooks/handlers/identity-inject.ts
New branch-guard handler blocking main/master mutations; minor identity-inject comment update.
Messaging & Protocol Router
src/lib/protocol-router.ts, src/lib/protocol-router.test.ts, src/term-commands/msg.ts, src/term-commands/msg.test.ts
Directory-first message resolution, new broadcast/chat commands with team-scoping, sender identity detection, scope enforcement.
Events & Logging Refactor
src/lib/orchestrator/event-monitor.ts (deleted), src/term-commands/events.ts, src/lib/claude-logs.ts (partial)
Replaced live pane-based event tailing with file-backed JSONL event storage; removed tailLogFile.
Removed Tmux/Registry Helpers
src/lib/tmux.ts, src/lib/agent-registry.ts, src/lib/idle-timeout.ts, src/lib/spawn-command.ts, src/lib/claude-logs.ts (partial), src/lib/worktree-manager.ts
Removed tmux command execution, session killing, environment setting; removed beads-related agent state, task-based worker generation; removed runWatchdogLoop; removed beads-based worktree manager.
Removed Config & Auto-Approve
src/lib/auto-approve.ts, src/lib/genie-config.ts, src/lib/local-tasks.test.ts
Removed loadFullAutoApproveConfig wrapper; removed WorkerProfile/CouncilPreset types; added env var test harness.
Target & Command Resolution
src/lib/target-resolver.ts, src/term-commands/history.ts
Updated error messaging and examples from genie agent list → genie ls, from bd-* targets → wish-*.
CLI Entrypoint Refactor
src/genie.ts
Rewrote top-level command surface to new handlers (spawn, kill, stop, ls, history, read, answer); added --session pre-parse hook for named sessions; new registrations for dir, dispatch, state namespaces.
Documentation & Skills Updates
docs/CO-ORCHESTRATION-GUIDE.md, docs/agent-profiles.md, skills/brainstorm/SKILL.md, skills/council/SKILL.md, skills/wish/SKILL.md, skills/work/SKILL.md, skills/review/SKILL.md, skills/fix/SKILL.md, skills/docs/SKILL.md, skills/dream/SKILL.md, skills/report/SKILL.md, skills/trace/SKILL.md, skills/onboarding/SKILL.md
Comprehensive terminology updates: beads → wishes, bd-* → wish-*, genie agent spawn → genie spawn, genie agent list → genie ls; added shared worktree sections; updated dispatch flow and subagent spawn patterns.
Design Documents & Wishes
.genie/brainstorms/agent-directory/DESIGN.md, .genie/brainstorms/agent-directory/DRAFT.md, .genie/wishes/fix-onboarding-prod-bugs/WISH.md, .genie/wishes/genie-v2-framework-redesign/WISH.md
Design docs for agent directory architecture, v2 framework redesign specs, onboarding bug fixes, acceptance criteria, and risk catalogs.
Build & Config
knip.json, .gitignore
Updated knip config to ignore src/lib/team-auto-spawn.ts and removed "bd" from ignoreBinaries; added .claude/worktrees/ to gitignore.

Sequence Diagram(s)

sequenceDiagram
    participant CLI as CLI / Entrypoint
    participant Dir as Agent Directory
    participant SM as Wish State Machine
    participant Dispatch as Dispatch Commands
    participant Spawn as Spawn Handler
    participant Chat as Team Chat
    
    CLI->>Dir: resolve agent by name
    Dir-->>CLI: DirectoryEntry (with systemPrompt path)
    
    CLI->>SM: initialize wish state (groups + deps)
    SM-->>CLI: WishState (groups: ready/blocked)
    
    CLI->>Dispatch: dispatch work (slug#group)
    Dispatch->>SM: validate group & start
    SM-->>Dispatch: GroupState (in_progress)
    
    Dispatch->>Spawn: spawn agent with context
    Spawn->>Dir: resolve agent + load identity
    Dir-->>Spawn: agent entry + AGENTS.md path
    Spawn-->>Dispatch: worker spawned
    
    CLI->>Chat: broadcast to team members
    Chat->>Chat: write message to team JSONL
    Chat-->>CLI: message posted
    
    Dispatch->>SM: complete group
    SM->>SM: recalculate dependents (blocked→ready)
    SM-->>Dispatch: dependent groups unblocked
Loading

Estimated Code Review Effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Rationale: This PR introduces heterogeneous, interdependent architectural changes across multiple subsystems (agent directory, state machine, team management, dispatch, messaging, and legacy removal). High logic density in core modules (agent-directory.ts, wish-state.ts, dispatch.ts), breaking changes to CLI surface, file-backed concurrency safeguards, and extensive public API surface modifications require meticulous validation of state transitions, dependency graph handling, message routing, and cross-module integration points.

Possibly Related PRs

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/resolve-dev-main-conflict

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request integrates the extensive Genie CLI v2 framework redesign into the main branch. The core purpose is to modernize agent orchestration, task management, and inter-agent communication by introducing a robust agent directory, a new wish-based state machine, and a simplified command structure. The changes significantly enhance the CLI's capabilities for multi-agent workflows and improve overall developer experience, while also addressing a specific merge conflict in the session management module.

Highlights

  • Genie CLI v2 Framework Redesign: Incorporated a comprehensive redesign of the Genie CLI framework, introducing a new agent directory, a wish-native state machine, and streamlined agent communication.
  • Agent Directory and Spawn Management: Implemented a persistent agent directory (genie dir) for registering, listing, and managing agents, and updated genie spawn to resolve agent identities from this directory or built-in roles.
  • Wish-Native State Machine: Replaced the 'beads' task tracking system with a new wish-native state machine (genie status, genie done) for deterministic state transitions of execution groups.
  • Team Lifecycle and Worktree Management: Introduced new genie team commands (create, hire, fire, disband) for dynamic team collaboration, including git worktree integration and hiring built-in council members.
  • Context-Injecting Dispatch Commands: Added new dispatch commands (genie brainstorm, genie wish, genie work, genie review) that inject relevant context (file paths, section content, wish-level info) into agent prompts.
  • Simplified Messaging and Auto-Spawn: Refactored messaging to use flat routing by agent name (genie send, genie broadcast, genie chat), removed the --team flag from direct messages, and enabled auto-spawning of offline agents.
  • Command Consolidation and Deprecation: Promoted key agent commands to top-level (genie spawn, kill, stop, ls) and removed over 25 deprecated commands related to old agent management, tasks, profiles, and daemon functionality.
  • Merge Conflict Resolution: Resolved a merge conflict in src/genie-commands/session.ts by adopting the dev branch's streamlined version, which focuses on core session helpers.
Changelog
  • .genie/brainstorms/agent-directory/DESIGN.md
    • Added a design document outlining the agent directory and multi-agent spawn redesign.
  • .genie/brainstorms/agent-directory/DRAFT.md
    • Added a draft document detailing the Genie CLI v2 framework redesign.
  • .genie/wishes/fix-onboarding-prod-bugs/WISH.md
    • Added a wish document detailing fixes for onboarding bugs related to tmux defaults and prompt loading.
  • .genie/wishes/genie-v2-framework-redesign/WISH.md
    • Added a wish document outlining the complete Genie CLI v2 framework redesign.
  • .gitignore
    • Added entries for Claude Code worktrees.
  • README.md
    • Updated command examples to reflect the new wish pipeline and simplified agent management.
  • docs/CO-ORCHESTRATION-GUIDE.md
    • Updated the co-orchestration guide to reflect the new wish pipeline and command changes, removing 'beads' references.
  • docs/agent-profiles.md
    • Updated command examples from genie agent spawn to genie spawn.
  • knip.json
    • Updated ignoreBinaries to remove bd and added ignore entries.
  • report.md
    • Added a competitive analysis report for Claude Code frameworks.
  • skills/brainstorm/SKILL.md
    • Updated the brainstorm skill to be multi-agent aware and operate on a shared worktree.
  • skills/council/SKILL.md
    • Updated the council skill to support both lightweight and full spawn modes for deliberation.
  • skills/docs/SKILL.md
    • Updated dispatch examples to use genie spawn docs.
  • skills/dream/SKILL.md
    • Updated the dream skill to use genie spawn for dispatch and operate on a shared worktree.
  • skills/fix/SKILL.md
    • Updated dispatch examples to use genie spawn fixer and genie spawn reviewer.
  • skills/onboarding/SKILL.md
    • Updated command references from genie agent to genie spawn/genie ls and genie team ensure to genie team create.
  • skills/report/SKILL.md
    • Updated dispatch examples to use genie spawn tracer.
  • skills/review/SKILL.md
    • Updated the review skill to include context injection, council participation, and genie spawn reviewer dispatch.
  • skills/trace/SKILL.md
    • Updated dispatch examples to use genie spawn tracer.
  • skills/wish/SKILL.md
    • Updated the wish skill to operate on a shared worktree and acknowledge injected context.
  • skills/work/SKILL.md
    • Updated the work skill to use context injection, genie spawn for dispatch, and remove state management.
  • src/tests/beads-issues-jsonl.test.ts
    • Removed the test file for beads issues JSONL.
  • src/tests/brainstorm-crystallize.test.ts
    • Removed the test file for brainstorm crystallize.
  • src/genie-commands/tests/session.test.ts
    • Updated session command tests to reflect changes in system prompt handling.
  • src/genie-commands/brainstorm/crystallize.ts
    • Removed the brainstorm crystallize command file.
  • src/genie-commands/ledger/validate.ts
    • Removed the ledger validate command file.
  • src/genie-commands/profiles.ts
    • Removed the profiles command file.
  • src/genie-commands/session.ts
    • Refactored to remove old tmux session management code and related helper functions, keeping only core session helpers.
  • src/genie.ts
    • Refactored the main CLI entrypoint to remove deprecated commands and integrate new top-level commands and namespaces.
  • src/hooks/tests/branch-guard.test.ts
    • Added a new test file for the branch guard hook.
  • src/hooks/handlers/auto-spawn.ts
    • Modified the auto-spawn hook to include directory awareness and update the spawn command reference.
  • src/hooks/handlers/branch-guard.ts
    • Added a new hook handler to block git/gh commands targeting main/master branches.
  • src/hooks/handlers/identity-inject.ts
    • Updated comments to reflect genie spawn instead of genie agent spawn.
  • src/hooks/inject.ts
    • Updated comments to reflect genie spawn instead of genie agent spawn.
  • src/lib/agent-directory.test.ts
    • Added a new test file for the agent directory module.
  • src/lib/agent-directory.ts
    • Added a new module for persistent agent registry with CRUD operations.
  • src/lib/agent-registry.ts
    • Updated agent interface fields, removed updateState function, and removed template removal function.
  • src/lib/auto-approve.test.ts
    • Updated a test case for command smuggling prevention.
  • src/lib/auto-approve.ts
    • Removed loadFullAutoApproveConfig function.
  • src/lib/beads-issues-jsonl.ts
    • Removed the beads issues JSONL helper file.
  • src/lib/beads-registry.ts
    • Removed the beads registry file.
  • src/lib/builtin-agents.test.ts
    • Added a new test file for built-in agents.
  • src/lib/builtin-agents.ts
    • Added a new module defining built-in roles and council members.
  • src/lib/claude-logs.ts
    • Removed tailLogFile function.
  • src/lib/genie-config.ts
    • Removed getSessionName, getWorkerProfile, getDefaultWorkerProfile, getCouncilPreset, getDefaultCouncilPreset, and getFallbackCouncilPreset functions.
  • src/lib/idle-timeout.ts
    • Removed runWatchdogLoop function.
  • src/lib/local-tasks.test.ts
    • Updated test setup to save/restore TERM_USE_LOCAL_TASKS environment variable.
  • src/lib/local-tasks.ts
    • Updated isLocalTasksEnabled logic.
  • src/lib/orchestrator/event-monitor.ts
    • Removed the event monitor file.
  • src/lib/orchestrator/index.ts
    • Removed re-export of event-monitor.ts.
  • src/lib/orchestrator/state-detector.ts
    • Removed detectCompletion and extractPermissionDetails functions.
  • src/lib/protocol-router.test.ts
    • Added a new test file for the protocol router.
  • src/lib/protocol-router.ts
    • Modified sendMessage to use directory-first resolution and auto-spawn.
  • src/lib/provider-adapters.test.ts
    • Added tests for --model, --system-prompt-file, and --append-system-prompt-file flags in buildClaudeCommand.
  • src/lib/provider-adapters.ts
    • Added systemPromptFile, systemPrompt, promptMode, and model to SpawnParams and updated buildClaudeCommand to handle these.
  • src/lib/session-store.ts
    • Added a new module for named leader session management.
  • src/lib/skill-loader.ts
    • Removed the skill loader file.
  • src/lib/spawn-command.test.ts
    • Removed tests related to beadsDir and simplified shell escaping tests.
  • src/lib/spawn-command.ts
    • Removed beadsDir from SpawnOptions and related logic.
  • src/lib/target-resolver.test.ts
    • Updated error messages to reflect new command names (genie ls, genie kill).
  • src/lib/target-resolver.ts
    • Updated error messages to reflect new command names (genie ls, genie kill).
  • src/lib/task-backend.ts
    • Removed the task backend abstraction file.
  • src/lib/team-chat.test.ts
    • Added a new test file for the team chat module.
  • src/lib/team-chat.ts
    • Added a new module for JSONL-based group chat channels.
  • src/lib/team-lead-command.ts
    • Refactored to remove persistSystemPrompt and update buildTeamLeadCommand to use --system-prompt-file or --append-system-prompt-file.
  • src/lib/team-manager.test.ts
    • Added a new test file for the team manager module.
  • src/lib/team-manager.ts
    • Refactored to manage teams with git worktrees, add hireAgent, fireAgent, disbandTeam functions, and remove blueprint-related logic.
  • src/lib/team-shortcut.test.ts
    • Updated KNOWN_COMMANDS to reflect dir instead of profiles.
  • src/lib/tmux.ts
    • Removed shellQuote, getWindowEnv, setWindowEnv, killSession, killWindow, killWindowQualified, killPane, executeCommand, and runCommandSync functions.
  • src/lib/wish-state.test.ts
    • Added a new test file for the wish state machine.
  • src/lib/wish-state.ts
    • Added a new module for deterministic state tracking for wish execution groups.
  • src/lib/wish-tasks.ts
    • Removed the wish-task linking file.
  • src/lib/worktree-manager.test.ts
    • Removed BeadsWorktreeManager tests and isBdAvailable tests.
  • src/lib/worktree-manager.ts
    • Removed BeadsWorktreeManager and isBdAvailable related logic.
  • src/term-commands/approve.test.ts
    • Removed tests related to WorkOptions and noAutoApprove.
  • src/term-commands/approve.ts
    • Removed sharedQueue and related CLI command handler logic.
  • src/term-commands/beads-validate.ts
    • Removed the beads validate command file.
  • src/term-commands/brainstorm-beads.ts
    • Removed the brainstorm beads file.
  • src/term-commands/close.ts
    • Removed the close command file.
  • src/term-commands/council.ts
    • Removed the council command file.
  • src/term-commands/create.ts
    • Removed the create command file.
  • src/term-commands/daemon.ts
    • Removed the daemon command file.
  • src/term-commands/dir.ts
    • Added a new module for agent directory CRUD commands.
  • src/term-commands/dispatch.test.ts
    • Added a new test file for dispatch commands.
  • src/term-commands/dispatch.ts
    • Added a new module for context-injecting dispatch commands.
  • src/term-commands/events.ts
    • Removed EventsOptions interface, resolvePaneContext, tailEvents, readEvents, eventsCommand, eventsAllCommand, and outputEvent functions.
  • src/term-commands/exec.ts
    • Removed the exec command file.
  • src/term-commands/history.ts
    • Updated error messages to reflect genie ls.
  • src/term-commands/msg.test.ts
    • Updated tests for sender identity detection and added tests for checkSendScope.
  • src/term-commands/msg.ts
    • Refactored to include broadcast and chat commands, added checkSendScope logic, and updated detectSenderIdentity.
  • src/term-commands/ship.ts
    • Removed the ship command file.
  • src/term-commands/state.ts
    • Added a new module for wish state machine CLI commands.
  • src/term-commands/task/commands.ts
    • Removed the task commands file.
  • src/term-commands/team.test.ts
    • Added a new test file for team CLI commands.
  • src/term-commands/team.ts
    • Refactored to integrate new team manager functions (hireAgent, fireAgent, disbandTeam) and update create and ls commands.
  • src/term-commands/update.ts
    • Removed the update command file.
  • src/term-commands/work.ts
    • Removed the work command file.
  • src/types/genie-config.ts
    • Removed WorkerProfile and CouncilPreset types.
Activity
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request merges the dev branch into main, bringing in the comprehensive v2 framework redesign. The changes are substantial, replacing the beads-based task management with a new wish-native state machine, and introducing a persistent agent directory to replace profiles. The command-line interface has been significantly streamlined, with many commands removed and others promoted to the top level for better usability. Key improvements include git worktree integration for team collaboration, directory-first agent resolution, and a new set of context-aware dispatch commands (brainstorm, wish, work, review). The codebase is significantly simplified and more maintainable with the removal of many complex and fragile components. The addition of a branch guard hook is a notable security enhancement. Overall, this is an excellent and well-executed redesign that modernizes the entire framework.

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.

3 participants