Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
c7ada60
feat(zsh): add setup orchestrator for shell dependency detection and …
ssddOnTop Mar 6, 2026
5e2412b
feat(zsh): implement full setup orchestration with dependency detecti…
ssddOnTop Mar 6, 2026
420e7e4
refactor(zsh): replace libc getuid with `id -u` command for root dete…
ssddOnTop Mar 6, 2026
6069a6d
fix(zsh): handle doctor failure gracefully during setup orchestration
ssddOnTop Mar 7, 2026
d92c096
Merge branch 'main' into feat/impl-auth-zsh-installation
ssddOnTop Mar 7, 2026
9b0ae0b
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 7, 2026
dd076ba
[autofix.ci] apply automated fixes (attempt 2/3)
autofix-ci[bot] Mar 7, 2026
33da85e
feat(cli): add --non-interactive flag to zsh setup command
ssddOnTop Mar 7, 2026
fed558e
feat(zsh): add reinstall parameter for broken module recovery
ssddOnTop Mar 7, 2026
5408567
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 7, 2026
e35a0d2
ci: add github workflow for zsh setup e2e testing
ssddOnTop Mar 7, 2026
dde1f4b
test(ci): add test for zsh setup workflow generation
ssddOnTop Mar 7, 2026
dfad1dc
fix(zsh): only show success message when all plugins install successf…
ssddOnTop Mar 7, 2026
0e780d9
make script executable
ssddOnTop Mar 7, 2026
2c565d2
fix(zsh): show warning instead of success when setup has errors
ssddOnTop Mar 7, 2026
7cc751c
feat(zsh): add bat and fd installation with version detection and git…
ssddOnTop Mar 7, 2026
1177619
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 7, 2026
ae6c250
test(ci): detect host architecture for platform-specific build targets
ssddOnTop Mar 7, 2026
f6ac6c3
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 7, 2026
7fb5685
test(ci): add native-build flag to zsh setup workflow for ci runners
ssddOnTop Mar 7, 2026
a1c3990
test(ci): add native-build flag to zsh setup workflow
ssddOnTop Mar 7, 2026
2f1eae9
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 7, 2026
df1466e
ci(zsh): add rust caching and cross-compilation support
ssddOnTop Mar 7, 2026
1dc7510
ci(zsh): split cargo cache into registry, toolchains, and build artif…
ssddOnTop Mar 7, 2026
6cd680d
test(ci): display full build log on compilation failure
ssddOnTop Mar 7, 2026
df20354
ci(zsh): replace rustup target with setup-cross-toolchain-action
ssddOnTop Mar 7, 2026
95f4c4c
ci(zsh): add protobuf compiler setup step
ssddOnTop Mar 7, 2026
fa27d89
test(ci): add fzf, bat, and fd-find to preinstalled test scenario
ssddOnTop Mar 7, 2026
b26c3e2
feat(zsh): add default shell change prompt during setup
ssddOnTop Mar 7, 2026
facb02a
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 7, 2026
2548983
test(zsh): run rerun test inside zsh shell context
ssddOnTop Mar 7, 2026
7421a88
refactor(zsh): replace echo pipes with here-strings for better readab…
ssddOnTop Mar 7, 2026
ade0220
fix(zsh): skip chsh in non-interactive mode for non-root users
ssddOnTop Mar 7, 2026
eb59d83
test(zsh): source zshrc in rerun test to simulate interactive shell
ssddOnTop Mar 7, 2026
f953534
fix(zsh): verify github binaries exist before downloading
ssddOnTop Mar 7, 2026
139e72c
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 7, 2026
493907c
refactor(zsh): remove unused get_latest_github_release function
ssddOnTop Mar 7, 2026
5abc2da
test(zsh): add bashrc test fixtures for installation scenarios
ssddOnTop Mar 7, 2026
500d6a0
fix(zsh): handle incomplete bashrc auto-start blocks during cleanup
ssddOnTop Mar 7, 2026
fa57e71
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 7, 2026
7070f43
refactor(zsh): surface bashrc warning via result struct instead of st…
ssddOnTop Mar 7, 2026
0930238
feat(zsh): add bashrc autostart block shell script template
ssddOnTop Mar 7, 2026
2c48789
refactor(zsh): remove BashrcConfigResult from public exports and fix …
ssddOnTop Mar 7, 2026
219fba5
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 7, 2026
6ba88f8
fix(zsh): remove unnecessary fallback branch for unknown package mana…
ssddOnTop Mar 7, 2026
e0a5dbf
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 7, 2026
4cb5924
[autofix.ci] apply automated fixes (attempt 2/3)
autofix-ci[bot] Mar 7, 2026
9c7ae29
refactor(zsh): replace which with posix command -v for portability
ssddOnTop Mar 7, 2026
2b20dc6
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 7, 2026
76bdc6e
test(zsh): add macOS-native E2E test suite for forge zsh setup
ssddOnTop Mar 7, 2026
fc1302b
ci(zsh): add macOS arm64 and x64 jobs to zsh setup test workflow
ssddOnTop Mar 7, 2026
ec1cf1c
ci(zsh): add test result artifact uploads and deduplicate setup steps
ssddOnTop Mar 7, 2026
0104cb1
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 7, 2026
f139480
test(zsh): handle no_brew mode in rerun idempotency check
ssddOnTop Mar 7, 2026
26d5004
test(zsh): strip ANSI escape codes from setup output before grep matc…
ssddOnTop Mar 7, 2026
b3600e4
ci(zsh): remove macOS x64 job and set NO_COLOR in test scripts
ssddOnTop Mar 7, 2026
7ea1703
ci(zsh): upload test artifacts only on failure instead of always
ssddOnTop Mar 7, 2026
1788e2a
test(zsh): add Windows/Git Bash E2E test suite for forge zsh setup
ssddOnTop Mar 8, 2026
776a7b2
ci(zsh): add Windows x86_64 job to zsh setup test workflow
ssddOnTop Mar 8, 2026
7a1a4f3
Merge branch 'main' into feat/impl-auth-zsh-installation
ssddOnTop Mar 8, 2026
39991fb
ci(zsh): add Windows ARM64 job to zsh setup test workflow
ssddOnTop Mar 8, 2026
a09c9f8
fix(zsh): rename git.exe binaries on Windows to hide from native PATH…
ssddOnTop Mar 8, 2026
f0bf2c9
fix(zsh): remove no_git test scenario from Windows and fix tool insta…
ssddOnTop Mar 8, 2026
53faf98
ci(zsh): upload test artifacts always instead of only on failure
ssddOnTop Mar 8, 2026
8bd4596
ci(zsh): reduce parallel test jobs from 8 to 4
ssddOnTop Mar 8, 2026
0178bae
fix(zsh): capture correct exit code from forge zsh doctor in test scr…
ssddOnTop Mar 8, 2026
cbfa3f8
fix(zsh): require exit code 0 from forge zsh doctor in test scripts
ssddOnTop Mar 8, 2026
5734f5c
fix(zsh): pass brew_mode to run_verify_checks and skip doctor exit ch…
ssddOnTop Mar 9, 2026
2f4164c
fix(zsh): remove unused brew_mode parameter from run_verify_checks
ssddOnTop Mar 9, 2026
9dd8892
test(zsh): add CHECK_SETUP_DOCTOR to detect internal doctor failures …
ssddOnTop Mar 9, 2026
185b8ee
test(zsh): set FORGE_EDITOR=vi in zsh setup test scripts
ssddOnTop Mar 9, 2026
33fa9ed
test(zsh): use forge-driven preinstall for PREINSTALLED_ALL and add ~…
ssddOnTop Mar 9, 2026
c72ff4d
fix(zsh): replace bail! with Err() in install functions to allow GitH…
ssddOnTop Mar 9, 2026
d3fda15
fix(zsh): filter zsh from /bin in addition to /usr/bin for NOBREW_NO_…
ssddOnTop Mar 9, 2026
9b9b483
fix(zsh): bump bat fallback version from 0.24.0 to 0.25.0
ssddOnTop Mar 9, 2026
93d787e
test(zsh): skip OMZ dir check for no_git and no_zsh test scenarios
ssddOnTop Mar 9, 2026
d09f571
test(zsh): change no_zsh scenario to use brew for zsh installation in…
ssddOnTop Mar 10, 2026
67443a5
Merge branch 'main' into feat/impl-auth-zsh-installation
ssddOnTop Mar 10, 2026
0c633c0
Test windows doctor issue (#2513)
ssddOnTop Mar 10, 2026
d6c94ec
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 10, 2026
c58cce7
fix(zsh): normalize CRLF to LF instead of stripping bare CR in script…
ssddOnTop Mar 10, 2026
2cc38f7
refactor: split zsh setup (#2516)
ssddOnTop Mar 10, 2026
3660828
Merge branch 'main' into feat/impl-auth-zsh-installation
ssddOnTop Mar 10, 2026
0562920
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 10, 2026
b138c69
refactor(zsh): extract shared helpers for platform, arch, detection, …
ssddOnTop Mar 10, 2026
9757658
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 10, 2026
841b68d
fix(zsh): use dynamic git_usr path for zsh.exe existence checks on Wi…
ssddOnTop Mar 11, 2026
4c890bd
fix(ui): remove fzf recommendation from doctor output
ssddOnTop Mar 11, 2026
032c048
refactor(ui): abort zsh setup early on any installation failure
ssddOnTop Mar 11, 2026
756ef3a
feat(zsh): add bash_profile autostart block script for zsh setup
ssddOnTop Mar 11, 2026
fc97e41
refactor(zsh): migrate autostart config from ~/.bashrc to ~/.bash_pro…
ssddOnTop Mar 11, 2026
cf8516f
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 11, 2026
ced94b1
[autofix.ci] apply automated fixes (attempt 2/3)
autofix-ci[bot] Mar 11, 2026
c58da24
Merge branch 'main' into feat/impl-auth-zsh-installation
ssddOnTop Mar 12, 2026
4d59065
test(zsh): update ci checks to verify .bash_profile instead of .bashrc
ssddOnTop Mar 13, 2026
7fb6c9f
refactor(zsh): simplify OmzStatus::Installed by removing unused path …
ssddOnTop Mar 13, 2026
f75eae3
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 13, 2026
57fbb70
fix(zsh): clarify outdated dependency messages with minimum version r…
ssddOnTop Mar 13, 2026
6ba133c
refactor(zsh): extract dependency status logging into dedicated method
ssddOnTop Mar 13, 2026
5de4eb4
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 13, 2026
5a20df8
feat(zsh): add installer module stub
ssddOnTop Mar 13, 2026
36f4d44
refactor(zsh): wrap installer functions in Installation trait structs
ssddOnTop Mar 13, 2026
d73f75e
refactor(zsh): extract installation phases into Task-based Installer …
ssddOnTop Mar 13, 2026
3c61fe2
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 13, 2026
23d3d42
Merge branch 'main' into feat/impl-auth-zsh-installation
ssddOnTop Mar 13, 2026
ddf6a43
refactor(zsh): change Installation::install signature to consume self
ssddOnTop Mar 13, 2026
86323eb
refactor(zsh): implement Installation trait on Task, Group, and Insta…
ssddOnTop Mar 13, 2026
6dcbe19
refactor(zsh): replace Task/Installer with composable Group builder API
ssddOnTop Mar 13, 2026
24d5a0f
refactor(zsh): use temp file for Windows zsh script execution
ssddOnTop Mar 13, 2026
db3072b
refactor(zsh): suppress command output and improve success messaging
ssddOnTop Mar 14, 2026
aae80bb
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 14, 2026
8c11e3d
refactor(zsh): pre-install fzf bat fd via brew in test setup
ssddOnTop Mar 14, 2026
41be0ae
refactor(zsh): update bash profile autostart block markers
ssddOnTop Mar 14, 2026
0afba53
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 14, 2026
7ab104e
Merge branch 'main' into feat/impl-auth-zsh-installation
ssddOnTop Mar 15, 2026
ac098eb
refactor(zsh): use ForgeWidget for confirm prompt
ssddOnTop Mar 15, 2026
5a7a05c
Merge branch 'main' into feat/impl-auth-zsh-installation
ssddOnTop Mar 15, 2026
eff1090
feat(shell): add background process manager with log lifecycle and pe…
ssddOnTop Mar 24, 2026
0772b65
feat(shell): add background execution mode for shell commands
ssddOnTop Mar 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
274 changes: 274 additions & 0 deletions .github/workflows/test-zsh-setup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,274 @@
# -------------------------------------------------------------------
# ------------------------------- WARNING ---------------------------
# -------------------------------------------------------------------
#
# This file was automatically generated by gh-workflows using the
# gh-workflow-gen bin. You should add and commit this file to your
# git repository. **DO NOT EDIT THIS FILE BY HAND!** Any manual changes
# will be lost if the file is regenerated.
#
# To make modifications, update your `build.rs` configuration to adjust
# the workflow description as needed, then regenerate this file to apply
# those changes.
#
# -------------------------------------------------------------------
# ----------------------------- END WARNING -------------------------
# -------------------------------------------------------------------

name: Test ZSH Setup
'on':
pull_request:
types:
- opened
- synchronize
- reopened
paths:
- crates/forge_main/src/zsh/**
- crates/forge_main/src/ui.rs
- crates/forge_ci/tests/scripts/test-zsh-setup.sh
- crates/forge_ci/tests/scripts/test-zsh-setup-macos.sh
- crates/forge_ci/tests/scripts/test-zsh-setup-windows.sh
- '.github/workflows/test-zsh-setup.yml'
push:
branches:
- main
workflow_dispatch: {}
jobs:
test_zsh_setup_amd64:
name: Test ZSH Setup (amd64)
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout Code
uses: actions/checkout@v6
- name: Cache Cargo registry and git
uses: actions/cache@v4
with:
path: |-
~/.cargo/registry
~/.cargo/git
key: cargo-registry-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |-
cargo-registry-${{ runner.os }}-${{ runner.arch }}-
cargo-registry-${{ runner.os }}-
- name: Cache Rust toolchains
uses: actions/cache@v4
with:
path: ~/.rustup
key: rustup-${{ runner.os }}-${{ runner.arch }}
- name: Cache build artifacts
uses: actions/cache@v4
with:
path: target
key: build-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('**/*.rs') }}
restore-keys: |-
build-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock') }}-
build-${{ runner.os }}-${{ runner.arch }}-
- name: Setup Protobuf Compiler
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Cross Toolchain
uses: taiki-e/setup-cross-toolchain-action@v1
with:
target: x86_64-unknown-linux-musl
- name: Run ZSH setup test suite
run: bash crates/forge_ci/tests/scripts/test-zsh-setup.sh --native-build --no-cleanup --jobs 4
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: zsh-setup-results-linux-amd64
path: test-results-linux/
retention-days: 7
if-no-files-found: ignore
test_zsh_setup_arm64:
name: Test ZSH Setup (arm64)
runs-on: ubuntu-24.04-arm
permissions:
contents: read
steps:
- name: Checkout Code
uses: actions/checkout@v6
- name: Cache Cargo registry and git
uses: actions/cache@v4
with:
path: |-
~/.cargo/registry
~/.cargo/git
key: cargo-registry-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |-
cargo-registry-${{ runner.os }}-${{ runner.arch }}-
cargo-registry-${{ runner.os }}-
- name: Cache Rust toolchains
uses: actions/cache@v4
with:
path: ~/.rustup
key: rustup-${{ runner.os }}-${{ runner.arch }}
- name: Cache build artifacts
uses: actions/cache@v4
with:
path: target
key: build-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('**/*.rs') }}
restore-keys: |-
build-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock') }}-
build-${{ runner.os }}-${{ runner.arch }}-
- name: Setup Protobuf Compiler
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Cross Toolchain
uses: taiki-e/setup-cross-toolchain-action@v1
with:
target: aarch64-unknown-linux-musl
- name: Run ZSH setup test suite (exclude Arch)
run: bash crates/forge_ci/tests/scripts/test-zsh-setup.sh --native-build --no-cleanup --exclude "Arch Linux" --jobs 4
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: zsh-setup-results-linux-arm64
path: test-results-linux/
retention-days: 7
if-no-files-found: ignore
test_zsh_setup_macos_arm64:
name: Test ZSH Setup (macOS arm64)
runs-on: macos-latest
permissions:
contents: read
steps:
- name: Checkout Code
uses: actions/checkout@v6
- name: Cache Cargo registry and git
uses: actions/cache@v4
with:
path: |-
~/.cargo/registry
~/.cargo/git
key: cargo-registry-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |-
cargo-registry-${{ runner.os }}-${{ runner.arch }}-
cargo-registry-${{ runner.os }}-
- name: Cache Rust toolchains
uses: actions/cache@v4
with:
path: ~/.rustup
key: rustup-${{ runner.os }}-${{ runner.arch }}
- name: Cache build artifacts
uses: actions/cache@v4
with:
path: target
key: build-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('**/*.rs') }}
restore-keys: |-
build-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock') }}-
build-${{ runner.os }}-${{ runner.arch }}-
- name: Setup Protobuf Compiler
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install shellcheck
run: brew install shellcheck
- name: Run macOS ZSH setup test suite
run: bash crates/forge_ci/tests/scripts/test-zsh-setup-macos.sh --no-cleanup
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: zsh-setup-results-macos-arm64
path: test-results-macos/
retention-days: 7
if-no-files-found: ignore
test_zsh_setup_windows:
name: Test ZSH Setup (Windows x86_64)
runs-on: windows-latest
permissions:
contents: read
steps:
- name: Checkout Code
uses: actions/checkout@v6
- name: Cache Cargo registry and git
uses: actions/cache@v4
with:
path: |-
~/.cargo/registry
~/.cargo/git
key: cargo-registry-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |-
cargo-registry-${{ runner.os }}-${{ runner.arch }}-
cargo-registry-${{ runner.os }}-
- name: Cache Rust toolchains
uses: actions/cache@v4
with:
path: ~/.rustup
key: rustup-${{ runner.os }}-${{ runner.arch }}
- name: Cache build artifacts
uses: actions/cache@v4
with:
path: target
key: build-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('**/*.rs') }}
restore-keys: |-
build-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock') }}-
build-${{ runner.os }}-${{ runner.arch }}-
- name: Setup Protobuf Compiler
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run Windows ZSH setup test suite
run: bash crates/forge_ci/tests/scripts/test-zsh-setup-windows.sh --no-cleanup
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: zsh-setup-results-windows
path: test-results-windows/
retention-days: 7
if-no-files-found: ignore
test_zsh_setup_windows_arm64:
name: Test ZSH Setup (Windows arm64)
runs-on: windows-11-arm
permissions:
contents: read
steps:
- name: Checkout Code
uses: actions/checkout@v6
- name: Cache Cargo registry and git
uses: actions/cache@v4
with:
path: |-
~/.cargo/registry
~/.cargo/git
key: cargo-registry-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |-
cargo-registry-${{ runner.os }}-${{ runner.arch }}-
cargo-registry-${{ runner.os }}-
- name: Cache Rust toolchains
uses: actions/cache@v4
with:
path: ~/.rustup
key: rustup-${{ runner.os }}-${{ runner.arch }}
- name: Cache build artifacts
uses: actions/cache@v4
with:
path: target
key: build-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('**/*.rs') }}
restore-keys: |-
build-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock') }}-
build-${{ runner.os }}-${{ runner.arch }}-
- name: Setup Protobuf Compiler
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run Windows ARM64 ZSH setup test suite
run: bash crates/forge_ci/tests/scripts/test-zsh-setup-windows.sh --no-cleanup
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: zsh-setup-results-windows-arm64
path: test-results-windows/
retention-days: 7
if-no-files-found: ignore
concurrency:
group: test-zsh-setup-${{ github.ref }}
cancel-in-progress: true
5 changes: 5 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions crates/forge_api/src/api.rs
Original file line number Diff line number Diff line change
Expand Up @@ -253,4 +253,10 @@ pub trait API: Sync + Send {
&self,
data_parameters: DataGenerationParameters,
) -> Result<BoxStream<'static, Result<serde_json::Value, anyhow::Error>>>;

/// Returns all tracked background processes with their alive status.
fn list_background_processes(&self) -> Result<Vec<(forge_domain::BackgroundProcess, bool)>>;

/// Kills a background process by PID and optionally deletes its log file.
fn kill_background_process(&self, pid: u32, delete_log: bool) -> Result<()>;
}
12 changes: 10 additions & 2 deletions crates/forge_api/src/forge_api.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ use forge_app::{
AgentProviderResolver, AgentRegistry, AppConfigService, AuthService, CommandInfra,
CommandLoaderService, ConversationService, DataGenerationApp, EnvironmentInfra,
EnvironmentService, FileDiscoveryService, ForgeApp, GitApp, GrpcInfra, McpConfigManager,
McpService, ProviderAuthService, ProviderService, Services, User, UserUsage, Walker,
WorkspaceService,
McpService, ProviderAuthService, ProviderService, Services, ShellService, User, UserUsage,
Walker, WorkspaceService,
};
use forge_domain::{Agent, ConsoleWriter, InitAuth, LoginInfo, *};
use forge_infra::ForgeInfra;
Expand Down Expand Up @@ -416,6 +416,14 @@ impl<
app.execute(data_parameters).await
}

fn list_background_processes(&self) -> Result<Vec<(forge_domain::BackgroundProcess, bool)>> {
self.services.shell_service().list_background_processes()
}

fn kill_background_process(&self, pid: u32, delete_log: bool) -> Result<()> {
self.services.shell_service().kill_background_process(pid, delete_log)
}

async fn get_default_provider(&self) -> Result<Provider<Url>> {
let provider_id = self.services.get_default_provider().await?;
self.services.get_provider(provider_id).await
Expand Down
13 changes: 8 additions & 5 deletions crates/forge_app/src/fmt/fmt_input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,14 @@ impl FormatContent for ToolCatalog {
let display_path = display_path_for(&input.path);
Some(TitleFormat::debug("Undo").sub_title(display_path).into())
}
ToolCatalog::Shell(input) => Some(
TitleFormat::debug(format!("Execute [{}]", env.shell))
.sub_title(&input.command)
.into(),
),
ToolCatalog::Shell(input) => {
let label = if input.background {
format!("Spawned [{}]", env.shell)
} else {
format!("Execute [{}]", env.shell)
};
Some(TitleFormat::debug(label).sub_title(&input.command).into())
}
ToolCatalog::Fetch(input) => {
Some(TitleFormat::debug("GET").sub_title(&input.url).into())
}
Expand Down
Loading
Loading