Skip to content

TTY fallback for bt setup and agent detection#109

Merged
ViaDézo1er / cedric (viadezo1er) merged 27 commits intomainfrom
cedric-better-dx-pr2
Apr 14, 2026
Merged

TTY fallback for bt setup and agent detection#109
ViaDézo1er / cedric (viadezo1er) merged 27 commits intomainfrom
cedric-better-dx-pr2

Conversation

@viadezo1er
Copy link
Copy Markdown
Contributor

@viadezo1er ViaDézo1er / cedric (viadezo1er) commented Apr 13, 2026

Self-contained infra changes that the wizard depends on.

  • tty_term() function in src/ui/select.rs (/dev/tty fallback)
  • fuzzy_select using interact_on(&term)
  • detect_runnable_agents() (PATH-only check)
  • detect_agents simplification (drop config-dir heuristics)
  • resolve_unambiguous_instrument_agent
  • /dev/tty stdin fallback in run_agent_invocation for interactive mode

Cursor skill path detection, global quiet mode are fixed in the 3rd PR.

PATH only detection of the agent seem ok, I don't think people would want to install skills/mcp without having the agent.

Part 2 of #94

Rename/restructure CLI flags to improve UX without changing core behaviour:

BaseArgs:
- Remove --quiet/-q (BRAINTRUST_QUIET) and --no-input; quiet output is
  now the global default (set_quiet(true) in configure_output).
- Add verbose: bool as #[arg(skip)] — subcommands set it at runtime;
  set up output messages are shown only when verbose is active.

SetupArgs:
- --no-mcp-skill → --no-skills + --no-mcp (orthogonal opt-outs)
- Add --no-instrument (opt-out; instrument is the new default)
- Add --tui / --background (replace --interactive / --quiet in wizard)
- Add --language (repeatable), --interactive/-i, --verbose/-v at top level

AgentsSetupArgs:
- --agent (repeatable Vec) → --agent (single Option); drop AgentArg::All
- --yes removed from CLI (#[arg(skip)]); programmatic callers still set yes:true
- Add --no-workflow (conflicts with --workflow)

AgentsMcpSetupArgs:
- Same agents→agent and yes→skip treatment

InstrumentSetupArgs:
- --quiet → --background (run agent non-interactively, show spinner)
- --interactive → --tui (run agent in interactive TUI mode)
- --yes → #[arg(skip)]
- Add skip_launch: bool (#[arg(skip)]) for future wizard use

resolve_selected_agents: signature changes from &[AgentArg] to
Option<AgentArg>; None auto-detects all installed agents as before.

All call sites, struct literals in tests, and BaseArgs literals in
auth/switch/traces/functions updated to match.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- `bt setup instrument --interactive` now accepted as alias for --tui
- `bt setup instrument --quiet` now accepted as alias for --background
- `bt setup --no-mcp-skill` now accepted as hidden alias for --no-skills --no-mcp
- Explicit error when --json and --tui are both passed
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 13, 2026

Latest downloadable build artifacts for this PR commit 9a01df7fdf5d:

Available artifact names
  • ``artifacts-build-global
  • ``artifacts-build-local-x86_64-pc-windows-msvc
  • ``artifacts-build-local-x86_64-apple-darwin
  • ``artifacts-build-local-x86_64-unknown-linux-musl
  • ``artifacts-build-local-x86_64-unknown-linux-gnu
  • ``artifacts-build-local-aarch64-unknown-linux-musl
  • ``artifacts-build-local-aarch64-apple-darwin
  • ``artifacts-build-local-aarch64-unknown-linux-gnu
  • ``artifacts-plan-dist-manifest
  • ``cargo-dist-cache

@viadezo1er ViaDézo1er / cedric (viadezo1er) force-pushed the cedric-better-dx-pr2 branch 2 times, most recently from 3551ccd to f642f76 Compare April 13, 2026 22:04
move CLI coverage to integration tests
- tty_term(): open /dev/tty as fallback so fuzzy_select works even when
  stdin/stderr are redirected (e.g. `echo "bt setup" | sh`)
- fuzzy_select now uses interact_on(&term) instead of interact()
- detect_runnable_agents(): PATH-only check for all four agents
- detect_agents(): drop config-dir heuristics, PATH-only
- resolve_unambiguous_instrument_agent(): auto-select when exactly one
  agent is runnable/detected, avoiding an unnecessary prompt
- agent_launch_error(): friendly error when agent binary not found on PATH
- run_agent_invocation(): /dev/tty stdin fallback for interactive mode
- run_instrument_setup(): prefer runnable agents over detected agents

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@viadezo1er ViaDézo1er / cedric (viadezo1er) changed the title Cedric better dx pr2 TTY fallback for bt setup and agent detection Apr 14, 2026
Comment thread src/setup/mod.rs
Now agent detection is only done by looking at PATH

Co-authored-by: Abhijeet Prasad <abhijeet@braintrustdata.com>
@viadezo1er ViaDézo1er / cedric (viadezo1er) merged commit 3970185 into main Apr 14, 2026
34 checks passed
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