Commit graph

4 commits

Author SHA1 Message Date
Fabro
350df9315b fabro(01KM4DKAWADPG0HY3PZCGQJ7H2): simplify_opus (success)
Fabro-Run: 01KM4DKAWADPG0HY3PZCGQJ7H2
Fabro-Completed: 6
Fabro-Checkpoint: 140b789412

⚒️ Generated with [Fabro](https://fabro.sh)
2026-03-20 01:56:43 +00:00
Fabro
2cf3330731 fabro(01KM4DKAWADPG0HY3PZCGQJ7H2): implement (success)
Fabro-Run: 01KM4DKAWADPG0HY3PZCGQJ7H2
Fabro-Completed: 5
Fabro-Checkpoint: 92504d679a

⚒️ Generated with [Fabro](https://fabro.sh)
2026-03-20 01:46:09 +00:00
Bryan Helmkamp
1430fb1f8e Clean up fabro-interview extraction
- Use already-imported names in run_from_branch instead of fully-qualified
  fabro_interview::* paths
- Use std::io::Error::other() for serde error conversion (matches codebase
  convention, more concise)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 13:56:51 -04:00
Bryan Helmkamp
075812478b Extract fabro-interview crate from fabro-workflows
The interviewer module (trait + 7 implementations for human-in-the-loop
interactions) had zero dependencies on fabro-workflows internals, making
it a clean extraction. Consumers (fabro-api, fabro-slack) now depend on
fabro-interview directly instead of reaching through fabro-workflows.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 13:53:36 -04:00