@@ -6,10 +6,7 @@ use tauri_plugin_shell::{
66use tauri_plugin_store:: StoreExt ;
77use tokio:: sync:: oneshot;
88
9- use crate :: {
10- LogState ,
11- constants:: { MAX_LOG_ENTRIES , SETTINGS_STORE , WSL_ENABLED_KEY } ,
12- } ;
9+ use crate :: constants:: { SETTINGS_STORE , WSL_ENABLED_KEY } ;
1310
1411const CLI_INSTALL_DIR : & str = ".opencode/bin" ;
1512const CLI_BINARY_NAME : & str = "opencode" ;
@@ -29,7 +26,7 @@ pub async fn get_config(app: &AppHandle) -> Option<Config> {
2926 create_command ( app, "debug config" , & [ ] )
3027 . output ( )
3128 . await
32- . inspect_err ( |e| eprintln ! ( "Failed to read OC config: {e}" ) )
29+ . inspect_err ( |e| tracing :: warn !( "Failed to read OC config: {e}" ) )
3330 . ok ( )
3431 . and_then ( |out| String :: from_utf8 ( out. stdout . to_vec ( ) ) . ok ( ) )
3532 . and_then ( |s| serde_json:: from_str :: < Config > ( & s) . ok ( ) )
@@ -104,12 +101,12 @@ pub fn install_cli(app: tauri::AppHandle) -> Result<String, String> {
104101
105102pub fn sync_cli ( app : tauri:: AppHandle ) -> Result < ( ) , String > {
106103 if cfg ! ( debug_assertions) {
107- println ! ( "Skipping CLI sync for debug build" ) ;
104+ tracing :: debug !( "Skipping CLI sync for debug build" ) ;
108105 return Ok ( ( ) ) ;
109106 }
110107
111108 if !is_cli_installed ( ) {
112- println ! ( "No CLI installation found, skipping sync" ) ;
109+ tracing :: info !( "No CLI installation found, skipping sync" ) ;
113110 return Ok ( ( ) ) ;
114111 }
115112
@@ -132,21 +129,21 @@ pub fn sync_cli(app: tauri::AppHandle) -> Result<(), String> {
132129 let app_version = app. package_info ( ) . version . clone ( ) ;
133130
134131 if cli_version >= app_version {
135- println ! (
136- "CLI version {} is up to date (app version: {}), skipping sync" ,
137- cli_version , app_version
132+ tracing :: info !(
133+ %cli_version , %app_version ,
134+ "CLI is up to date, skipping sync"
138135 ) ;
139136 return Ok ( ( ) ) ;
140137 }
141138
142- println ! (
143- "CLI version {} is older than app version {}, syncing" ,
144- cli_version , app_version
139+ tracing :: info !(
140+ %cli_version , %app_version ,
141+ "CLI is older than app version, syncing"
145142 ) ;
146143
147144 install_cli ( app) ?;
148145
149- println ! ( "Synced installed CLI" ) ;
146+ tracing :: info !( "Synced installed CLI" ) ;
150147
151148 Ok ( ( ) )
152149}
@@ -207,7 +204,7 @@ pub fn create_command(app: &tauri::AppHandle, args: &str, extra_env: &[(&str, St
207204
208205 if cfg ! ( windows) {
209206 if is_wsl_enabled ( app) {
210- println ! ( "WSL is enabled, spawning CLI server in WSL. " ) ;
207+ tracing :: info !( "WSL is enabled, spawning CLI server in WSL" ) ;
211208 let version = app. package_info ( ) . version . to_string ( ) ;
212209 let mut script = vec ! [
213210 "set -e" . to_string( ) ,
@@ -280,38 +277,9 @@ pub fn serve(
280277 port : u32 ,
281278 password : & str ,
282279) -> ( CommandChild , oneshot:: Receiver < TerminatedPayload > ) {
283- let log_state = app. state :: < LogState > ( ) ;
284- let log_state_clone = log_state. inner ( ) . clone ( ) ;
285-
286280 let ( exit_tx, exit_rx) = oneshot:: channel :: < TerminatedPayload > ( ) ;
287281
288- println ! ( "spawning sidecar on port {port}" ) ;
289-
290- if let Ok ( mut logs) = log_state_clone. 0 . lock ( ) {
291- let args =
292- format ! ( "--print-logs --log-level WARN serve --hostname {hostname} --port {port}" ) ;
293-
294- #[ cfg( target_os = "windows" ) ]
295- {
296- logs. push_back ( format ! ( "[SPAWN] sidecar=opencode-cli args=\" {args}\" \n " ) ) ;
297- }
298-
299- #[ cfg( not( target_os = "windows" ) ) ]
300- {
301- let sidecar = get_sidecar_path ( app) ;
302- let shell = get_user_shell ( ) ;
303- let cmd = if shell. ends_with ( "/nu" ) {
304- format ! ( "^\" {}\" {}" , sidecar. display( ) , args)
305- } else {
306- format ! ( "\" {}\" {}" , sidecar. display( ) , args)
307- } ;
308- logs. push_back ( format ! ( "[SPAWN] shell=\" {shell}\" argv=\" -il -c {cmd}\" \n " ) ) ;
309- }
310-
311- while logs. len ( ) > MAX_LOG_ENTRIES {
312- logs. pop_front ( ) ;
313- }
314- }
282+ tracing:: info!( port, "Spawning sidecar" ) ;
315283
316284 let envs = [
317285 ( "OPENCODE_SERVER_USERNAME" , "opencode" . to_string ( ) ) ,
@@ -332,50 +300,22 @@ pub fn serve(
332300 match event {
333301 CommandEvent :: Stdout ( line_bytes) => {
334302 let line = String :: from_utf8_lossy ( & line_bytes) ;
335- print ! ( "{line}" ) ;
336-
337- // Store log in shared state
338- if let Ok ( mut logs) = log_state_clone. 0 . lock ( ) {
339- logs. push_back ( format ! ( "[STDOUT] {}" , line) ) ;
340- // Keep only the last MAX_LOG_ENTRIES
341- while logs. len ( ) > MAX_LOG_ENTRIES {
342- logs. pop_front ( ) ;
343- }
344- }
303+ tracing:: info!( target: "sidecar" , "{line}" ) ;
345304 }
346305 CommandEvent :: Stderr ( line_bytes) => {
347306 let line = String :: from_utf8_lossy ( & line_bytes) ;
348- eprint ! ( "{line}" ) ;
349-
350- // Store log in shared state
351- if let Ok ( mut logs) = log_state_clone. 0 . lock ( ) {
352- logs. push_back ( format ! ( "[STDERR] {}" , line) ) ;
353- // Keep only the last MAX_LOG_ENTRIES
354- while logs. len ( ) > MAX_LOG_ENTRIES {
355- logs. pop_front ( ) ;
356- }
357- }
307+ tracing:: info!( target: "sidecar" , "{line}" ) ;
358308 }
359309 CommandEvent :: Error ( err) => {
360- eprintln ! ( "{err}" ) ;
361-
362- if let Ok ( mut logs) = log_state_clone. 0 . lock ( ) {
363- logs. push_back ( format ! ( "[ERROR] {err}\n " ) ) ;
364- while logs. len ( ) > MAX_LOG_ENTRIES {
365- logs. pop_front ( ) ;
366- }
367- }
310+ tracing:: error!( target: "sidecar" , "{err}" ) ;
368311 }
369312 CommandEvent :: Terminated ( payload) => {
370- if let Ok ( mut logs) = log_state_clone. 0 . lock ( ) {
371- logs. push_back ( format ! (
372- "[EXIT] code={:?} signal={:?}\n " ,
373- payload. code, payload. signal
374- ) ) ;
375- while logs. len ( ) > MAX_LOG_ENTRIES {
376- logs. pop_front ( ) ;
377- }
378- }
313+ tracing:: info!(
314+ target: "sidecar" ,
315+ code = ?payload. code,
316+ signal = ?payload. signal,
317+ "Sidecar terminated"
318+ ) ;
379319
380320 if let Some ( tx) = exit_tx. take ( ) {
381321 let _ = tx. send ( payload) ;
0 commit comments