fabro/lib/crates
Bryan Helmkamp e2f884df23 Fix resume command bugs, remove --ssh flag, simplify EventEmitter
Fix three bugs from PR review in the new `fabro resume` command:

1. RunArgs.workflow lost its required constraint when --run-branch was
   removed — add #[arg(required = true)] so clap enforces it.

2. run_resumed ignored --preserve-sandbox (hardcoded false),
   --verbose (no ProgressUI), and --ssh (no listener). Wire
   preserve_sandbox through resolve_preserve_sandbox, create a
   ProgressUI registered on the emitter, and handle SSH access.

3. prepare_from_checkpoint unconditionally created a LocalSandbox,
   ignoring --sandbox. Add the same sandbox resolution logic used by
   prepare_from_branch (Local, Docker, Ssh, Exe, Daytona).

Remove --ssh from `fabro run` and `fabro resume` since `fabro ssh`
is the dedicated command now. Remove the flag from RunArgs, ResumeArgs,
RunSpec, and all docs/changelogs.

Simplify EventEmitter: change on_event to take &self (via
Mutex<Vec<Arc<...>>>) instead of &mut self, removing the need for
the late_listeners workaround. emit() snapshots the listener list
before dispatching to prevent deadlocks from reentrant emit calls.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 13:07:58 -04:00
..
fabro-agent Use short hex IDs for subagents instead of UUIDs (#128) 2026-03-20 21:38:16 -04:00
fabro-api Fix resume command bugs, remove --ssh flag, simplify EventEmitter 2026-03-21 13:07:58 -04:00
fabro-beastie Fix fabro-beastie linker error by linking IOKit framework 2026-03-15 18:27:42 -04:00
fabro-cli Fix resume command bugs, remove --ssh flag, simplify EventEmitter 2026-03-21 13:07:58 -04:00
fabro-config Add skip_clone to DaytonaConfig to fix concurrent test failures 2026-03-19 12:27:56 -04:00
fabro-db rename Arc to Fabro in all Rust crates, symbols, env vars, and supporting files 2026-03-12 12:25:58 -04:00
fabro-devcontainer Fix: Remove std::env::set_var/remove_var from tests (#101) 2026-03-19 13:09:46 -04:00
fabro-git-storage Add fabro rewind command to rewind workflow runs to earlier checkpoints 2026-03-14 11:38:17 -04:00
fabro-github Merge fabro-linear and GitHub tracker into fabro-tracker (#108) 2026-03-19 22:26:32 -04:00
fabro-graphviz Extract fabro-validate crate from fabro-workflows 2026-03-17 13:33:34 -04:00
fabro-hooks Extract fabro-model crate from fabro-llm (#109) 2026-03-19 22:26:47 -04:00
fabro-interview Decompose fabro run into create / start / attach (#116) 2026-03-20 14:08:54 -04:00
fabro-llm Fix OpenAI reasoning round-trip: use store: false with encrypted_content 2026-03-21 11:46:01 -04:00
fabro-mcp Move config type tests into fabro-config 2026-03-17 15:21:16 -04:00
fabro-model Update model catalog snapshots with new effort field 2026-03-21 12:11:09 -04:00
fabro-openai-oauth Add Codex endpoint support for OpenAI OAuth flow 2026-03-17 00:47:47 -04:00
fabro-retro Extract fabro-retro crate from fabro-workflows 2026-03-17 11:48:40 -04:00
fabro-sandbox Unified WorktreeSandbox (#117) 2026-03-20 15:35:04 -04:00
fabro-slack Extract fabro-interview crate from fabro-workflows 2026-03-17 13:53:36 -04:00
fabro-telemetry Fix release CI test failures caused by telemetry fork flushing stdout 2026-03-19 15:18:03 -04:00
fabro-tracker Merge fabro-linear and GitHub tracker into fabro-tracker (#108) 2026-03-19 22:26:32 -04:00
fabro-types rename Arc to Fabro in all Rust crates, symbols, env vars, and supporting files 2026-03-12 12:25:58 -04:00
fabro-util Unify goal prefix stripping into shared strip_goal_decoration() in fabro-util 2026-03-20 20:58:59 -04:00
fabro-validate Add node-level model validation + missing catalog aliases (#110) 2026-03-19 22:48:08 -04:00
fabro-workflows Fix resume command bugs, remove --ssh flag, simplify EventEmitter 2026-03-21 13:07:58 -04:00