Files
g3/crates/g3-console
Dhanji R. Prasanna da91459e09 Fix auto-continue bug: don't return early when tools executed but final_output not called
The bug was in the chunk.finished block inside stream_completion_with_tools.
When no tool was executed in the CURRENT iteration (!tool_executed), the code
would return early without checking if tools were executed in PREVIOUS iterations
(any_tool_executed) and final_output was never called.

This caused the agent to terminate prematurely after executing tools like
todo_read when the LLM responded with text instead of calling final_output.

The fix adds a check: if any_tool_executed && !final_output_called, we break
to let the outer loop's auto-continue logic prompt the LLM to continue.

Also fixed missing debug! import in g3-console/src/main.rs.
2025-12-22 16:45:17 +11:00
..
2025-11-27 21:00:02 +11:00
2025-11-14 16:31:46 +11:00
2025-11-21 13:56:36 +11:00
2025-11-07 09:29:29 +11:00
2025-11-07 09:29:29 +11:00
2025-11-07 09:29:29 +11:00
2025-11-07 09:29:29 +11:00
2025-11-07 09:29:29 +11:00

g3-console

A web-based console for monitoring and managing running g3 instances.

Features

  • Instance Discovery: Automatically detects all running g3 processes (both binary and cargo run)
  • Real-time Monitoring: View live statistics, progress, and logs
  • Process Control: Kill and restart instances
  • Launch New Instances: Start new g3 runs with custom configuration
  • Project Context: View requirements, README, and git status
  • Chat History: Browse complete conversation history with syntax highlighting
  • Tool Call Inspection: Examine tool calls with parameters and results
  • Dark/Light Themes: Modern Hero UI design system

Installation

# Build the console
cargo build --release -p g3-console

# Or run directly
cargo run --release -p g3-console

Usage

# Start console on default port (9090)
g3-console

# Specify custom port
g3-console --port 3000

# Specify custom host
g3-console --host 0.0.0.0

# Auto-open browser
g3-console --open

Frontend Development

The frontend is built with React and Vite.

cd crates/g3-console/web

# Install dependencies
npm install

# Run development server (with hot reload)
npm run dev

# Build for production
npm run build

Architecture

Backend (Rust)

  • Axum web framework for REST API
  • Process detection using sysinfo crate
  • Log parsing from <workspace>/logs/ directories
  • Process control via system signals

Frontend (React)

  • React Router for navigation
  • Tailwind CSS for styling
  • Hero UI design system
  • Marked for Markdown rendering
  • Highlight.js for syntax highlighting

API Endpoints

  • GET /api/instances - List all running instances
  • GET /api/instances/:id - Get instance details
  • GET /api/instances/:id/logs - Get instance logs
  • POST /api/instances/launch - Launch new instance
  • POST /api/instances/:id/kill - Kill instance
  • POST /api/instances/:id/restart - Restart instance

Configuration

Console state is persisted in ~/.config/g3/console-state.json.

Requirements

  • Rust 1.70+
  • Node.js 18+ (for frontend development)
  • Running g3 instances with --workspace flag

License

MIT