Leon4gr45 commited on
Commit
89137d4
·
verified ·
1 Parent(s): 947ac7d

Upload folder using huggingface_hub

Browse files
Files changed (4) hide show
  1. diag_logs.txt +0 -0
  2. entrypoint.sh +69 -37
  3. run_logs.txt +150 -50
  4. run_logs_all.txt +537 -0
diag_logs.txt ADDED
File without changes
entrypoint.sh CHANGED
@@ -9,79 +9,111 @@ mkdir -p "$HOME/.local/share/opencode"
9
  mkdir -p "$HOME/.config/gh"
10
 
11
  # Diagnostic information
12
- echo "--- Environment Diagnostics (Start) ---"
13
  echo "User ID: $(id -u)"
14
  echo "Home: $HOME"
15
  echo "Path: $PATH"
16
  echo "Data Dir: $DATA_DIR"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
  # Configure OpenCode authentication
19
- if [ -n "$OPENCODE_API_KEY" ] || [ -n "$JULES_API_KEY" ]; then
20
  echo "Configuring OpenCode authentication..."
21
 
22
- PRIMARY_KEY="${JULES_API_KEY:-$OPENCODE_API_KEY}"
23
 
24
- # Construct auth.json with both 'type: api' (for CLI) and 'api_key' field (for Automaker detection)
25
- # Include multiple providers to satisfy detection logic
 
26
  jq -n \
27
  --arg primary "$PRIMARY_KEY" \
28
- --arg opencode "$OPENCODE_API_KEY" \
29
- --arg jules "$JULES_API_KEY" \
30
  '{
31
  api_key: $primary,
32
- opencode: {type: "api", key: $opencode, api_key: $opencode},
33
- anthropic: {type: "api", key: $opencode, api_key: $opencode},
34
- openai: {type: "api", key: $opencode, api_key: $opencode},
35
- google: {type: "api", key: $opencode, api_key: $opencode},
36
- helmholtz: {type: "api", key: $jules, api_key: $jules, baseURL: "https://api.helmholtz-blablador.fz-juelich.de/v1"},
37
- copilot: {type: "api", key: $jules, api_key: $jules},
38
- "github-copilot": {type: "api", key: $jules, api_key: $jules}
39
  }' | jq "with_entries(select(.value.key != \"\" or .key == \"api_key\"))" > "$HOME/.local/share/opencode/auth.json"
40
 
41
  chmod 600 "$HOME/.local/share/opencode/auth.json"
42
 
43
  # Export env vars for fallback
44
- export ANTHROPIC_API_KEY="$OPENCODE_API_KEY"
45
- export OPENAI_API_KEY="$OPENCODE_API_KEY"
46
- export JULES_TOKEN="$JULES_API_KEY"
47
 
48
  # Update settings if Helmholtz is available
49
- if [ -n "$JULES_API_KEY" ] && [ -f "/usr/local/bin/update_settings.py" ]; then
50
  python3 /usr/local/bin/update_settings.py "$DATA_DIR" "helmholtz/alias-code"
51
  fi
52
- echo "OpenCode auth.json created."
53
- else
54
- echo "Neither OPENCODE_API_KEY nor JULES_API_KEY found."
55
  fi
56
 
57
  # Configure GitHub CLI authentication
58
- if [ -n "$GITHUB_API_KEY" ]; then
59
  echo "Configuring GitHub CLI authentication..."
60
- export GH_TOKEN="$GITHUB_API_KEY"
61
  # Use official login command for reliable authentication status
62
- echo "$GITHUB_API_KEY" | gh auth login --with-token --host github.com
63
- echo "GitHub CLI authentication configured."
64
- else
65
- echo "GITHUB_API_KEY not found."
66
  fi
67
 
68
- echo "Checking CLI presence:"
69
- which gh || echo "gh not found"
70
- which opencode || echo "opencode not found"
 
 
 
 
 
 
 
 
 
71
 
72
- echo "Checking config files:"
73
- ls -l "$HOME/.local/share/opencode/auth.json" || echo "opencode auth.json missing"
74
- ls -la "$HOME/.config/gh/" || echo "gh config dir missing"
 
 
 
75
 
76
- echo "CLI Auth Status:"
77
  if which gh >/dev/null 2>&1; then
78
- gh auth status || echo "gh auth status failed"
 
79
  fi
80
 
81
  if which opencode >/dev/null 2>&1; then
82
- opencode auth list || echo "opencode auth list failed"
 
83
  fi
84
- echo "--- Environment Diagnostics (End) ---"
85
 
86
  # Start the application
87
  echo "Starting application on port $PORT..."
 
9
  mkdir -p "$HOME/.config/gh"
10
 
11
  # Diagnostic information
12
+ echo "--- Initial Environment Diagnostics ---"
13
  echo "User ID: $(id -u)"
14
  echo "Home: $HOME"
15
  echo "Path: $PATH"
16
  echo "Data Dir: $DATA_DIR"
17
+ echo "Available secret-like environment variables (keys only):"
18
+ env | grep -E "TOKEN|KEY|PWD|SECRET" | cut -d'=' -f1 | sort
19
+ echo "----------------------------------------"
20
+
21
+ # Resolve OpenCode API Key
22
+ OC_KEY="${OPENCODE_API_KEY:-${OPENCODE_TOKEN:-${HF_TOKEN}}}"
23
+ if [ -z "$OC_KEY" ]; then
24
+ echo "Warning: No OpenCode API key found (tried OPENCODE_API_KEY, OPENCODE_TOKEN, HF_TOKEN)"
25
+ fi
26
+
27
+ # Resolve Jules API Key
28
+ J_KEY="${JULES_API_KEY:-${JULES_TOKEN:-${BLABLADOR_API_KEY}}}"
29
+ if [ -z "$J_KEY" ]; then
30
+ echo "Warning: No Jules API key found (tried JULES_API_KEY, JULES_TOKEN, BLABLADOR_API_KEY)"
31
+ fi
32
+
33
+ # Resolve GitHub API Key
34
+ GH_KEY="${GITHUB_API_KEY:-${GH_TOKEN}}"
35
+ if [ -z "$GH_KEY" ]; then
36
+ echo "Warning: No GitHub API key found (tried GITHUB_API_KEY, GH_TOKEN)"
37
+ fi
38
 
39
  # Configure OpenCode authentication
40
+ if [ -n "$OC_KEY" ] || [ -n "$J_KEY" ]; then
41
  echo "Configuring OpenCode authentication..."
42
 
43
+ PRIMARY_KEY="${J_KEY:-$OC_KEY}"
44
 
45
+ # Construct auth.json using jq
46
+ # We include 'key' for CLI functionality and 'api_key' for UI status detection
47
+ # type "api" is the normalized type the CLI expects
48
  jq -n \
49
  --arg primary "$PRIMARY_KEY" \
50
+ --arg oc "$OC_KEY" \
51
+ --arg jk "$J_KEY" \
52
  '{
53
  api_key: $primary,
54
+ opencode: {type: "api", key: $oc, api_key: $oc},
55
+ anthropic: {type: "api", key: $oc, api_key: $oc},
56
+ openai: {type: "api", key: $oc, api_key: $oc},
57
+ google: {type: "api", key: $oc, api_key: $oc},
58
+ helmholtz: {type: "api", key: $jk, api_key: $jk, baseURL: "https://api.helmholtz-blablador.fz-juelich.de/v1"},
59
+ copilot: {type: "api", key: $jk, api_key: $jk},
60
+ "github-copilot": {type: "api", key: $jk, api_key: $jk}
61
  }' | jq "with_entries(select(.value.key != \"\" or .key == \"api_key\"))" > "$HOME/.local/share/opencode/auth.json"
62
 
63
  chmod 600 "$HOME/.local/share/opencode/auth.json"
64
 
65
  # Export env vars for fallback
66
+ [ -n "$OC_KEY" ] && export ANTHROPIC_API_KEY="$OC_KEY"
67
+ [ -n "$OC_KEY" ] && export OPENAI_API_KEY="$OC_KEY"
68
+ [ -n "$J_KEY" ] && export JULES_TOKEN="$J_KEY"
69
 
70
  # Update settings if Helmholtz is available
71
+ if [ -n "$J_KEY" ] && [ -f "/usr/local/bin/update_settings.py" ]; then
72
  python3 /usr/local/bin/update_settings.py "$DATA_DIR" "helmholtz/alias-code"
73
  fi
74
+ echo "OpenCode auth.json created and environment variables exported."
 
 
75
  fi
76
 
77
  # Configure GitHub CLI authentication
78
+ if [ -n "$GH_KEY" ]; then
79
  echo "Configuring GitHub CLI authentication..."
80
+ export GH_TOKEN="$GH_KEY"
81
  # Use official login command for reliable authentication status
82
+ echo "$GH_KEY" | gh auth login --with-token --host github.com
83
+ echo "GitHub CLI authentication configured via gh auth login."
 
 
84
  fi
85
 
86
+ echo "--- Post-Config Diagnostics ---"
87
+ echo "CLI Detection:"
88
+ which gh || echo "gh not found in PATH"
89
+ which opencode || echo "opencode not found in PATH"
90
+
91
+ echo "Config File Verification:"
92
+ if [ -f "$HOME/.local/share/opencode/auth.json" ]; then
93
+ echo "✓ OpenCode auth.json exists"
94
+ echo "Structure check (keys only): $(jq -r 'keys | join(", ")' "$HOME/.local/share/opencode/auth.json")"
95
+ else
96
+ echo "✗ OpenCode auth.json is missing!"
97
+ fi
98
 
99
+ if [ -d "$HOME/.config/gh" ]; then
100
+ echo " GitHub config directory exists"
101
+ ls -la "$HOME/.config/gh/"
102
+ else
103
+ echo "✗ GitHub config directory is missing!"
104
+ fi
105
 
106
+ echo "CLI Auth Verification:"
107
  if which gh >/dev/null 2>&1; then
108
+ echo "GitHub Status:"
109
+ gh auth status || echo "gh auth status reported failure"
110
  fi
111
 
112
  if which opencode >/dev/null 2>&1; then
113
+ echo "OpenCode Status:"
114
+ opencode auth list || echo "opencode auth list reported failure"
115
  fi
116
+ echo "--- End Diagnostics ---"
117
 
118
  # Start the application
119
  echo "Starting application on port $PORT..."
run_logs.txt CHANGED
@@ -1,100 +1,200 @@
1
- data: {"data":"===== Application Startup at 2026-04-06 20:45:11 =====\n","timestamp":"2026-04-06T20:45:11Z"}
2
 
3
- data: {"data":"Starting Automaker entrypoint script...","timestamp":"2026-04-06T20:45:33.114Z"}
4
 
5
- data: {"data":"--- Environment Diagnostics ---","timestamp":"2026-04-06T20:45:33.132Z"}
6
 
7
- data: {"data":"User ID: 1000","timestamp":"2026-04-06T20:45:33.134Z"}
8
 
9
- data: {"data":"Home: /home/node","timestamp":"2026-04-06T20:45:33.134Z"}
10
 
11
- data: {"data":"Path: /home/node/.local/bin:/home/node/.opencode/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","timestamp":"2026-04-06T20:45:33.134Z"}
12
 
13
- data: {"data":"Data Dir: /app/data","timestamp":"2026-04-06T20:45:33.134Z"}
14
 
15
- data: {"data":"Checking CLI presence:","timestamp":"2026-04-06T20:45:33.134Z"}
16
 
17
- data: {"data":"/usr/bin/gh","timestamp":"2026-04-06T20:45:33.138Z"}
18
 
19
- data: {"data":"/home/node/.opencode/bin/opencode","timestamp":"2026-04-06T20:45:33.139Z"}
20
 
21
- data: {"data":"Checking config files:","timestamp":"2026-04-06T20:45:33.139Z"}
22
 
23
- data: {"data":"ls: cannot access '/home/node/.local/share/opencode/auth.json': No such file or directory","timestamp":"2026-04-06T20:45:33.142Z"}
24
 
25
- data: {"data":"opencode auth.json missing","timestamp":"2026-04-06T20:45:33.142Z"}
26
 
27
- data: {"data":"total 0","timestamp":"2026-04-06T20:45:33.144Z"}
28
 
29
- data: {"data":"drwxr-xr-x. 2 node node 6 Apr 6 20:45 .","timestamp":"2026-04-06T20:45:33.144Z"}
30
 
31
- data: {"data":"drwxr-xr-x. 3 node node 16 Apr 6 20:45 ..","timestamp":"2026-04-06T20:45:33.144Z"}
32
 
33
- data: {"data":"CLI Auth Status:","timestamp":"2026-04-06T20:45:33.145Z"}
34
 
35
- data: {"data":"You are not logged into any GitHub hosts. To log in, run: gh auth login","timestamp":"2026-04-06T20:45:33.174Z"}
36
 
37
- data: {"data":"gh auth status failed","timestamp":"2026-04-06T20:45:33.176Z"}
38
 
39
- data: {"data":"Performing one time database migration, may take a few minutes...","timestamp":"2026-04-06T20:45:34.638Z"}
40
 
41
- data: {"data":"sqlite-migration:done","timestamp":"2026-04-06T20:45:34.655Z"}
42
 
43
- data: {"data":"Database migration complete.","timestamp":"2026-04-06T20:45:34.655Z"}
44
 
45
- data: {"data":"\u001b[0m","timestamp":"2026-04-06T20:45:34.656Z"}
46
 
47
- data: {"data":"┌ Credentials \u001b[90m~/.local/share/opencode/auth.json","timestamp":"2026-04-06T20:45:34.656Z"}
48
 
49
- data: {"data":"","timestamp":"2026-04-06T20:45:34.719Z"}
50
 
51
- data: {"data":" 0 credentials","timestamp":"2026-04-06T20:45:34.719Z"}
52
 
53
- data: {"data":"","timestamp":"2026-04-06T20:45:34.719Z"}
54
 
55
- data: {"data":"--- End Diagnostics ---","timestamp":"2026-04-06T20:45:34.742Z"}
56
 
57
- data: {"data":"Starting application on port 7860...","timestamp":"2026-04-06T20:45:34.742Z"}
58
 
59
- data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Auth]\u001b[0m Generated new API key","timestamp":"2026-04-06T20:45:35.288Z"}
60
 
61
- data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Auth]\u001b[0m ","timestamp":"2026-04-06T20:45:35.288Z"}
62
 
63
- data: {"data":"╔═════════════════════════════════════════════════════════════════════╗","timestamp":"2026-04-06T20:45:35.288Z"}
64
 
65
- data: {"data":"║ 🔐 API Key for Web Mode Authentication ║","timestamp":"2026-04-06T20:45:35.288Z"}
66
 
67
- data: {"data":"═════════════════════════════════════════════════════════════════════","timestamp":"2026-04-06T20:45:35.288Z"}
68
 
69
- data: {"data":"║ ║","timestamp":"2026-04-06T20:45:35.288Z"}
70
 
71
- data: {"data":"║ When accessing via browser, you'll be prompted to enter this key: ║","timestamp":"2026-04-06T20:45:35.288Z"}
72
 
73
- data: {"data":"║ ║","timestamp":"2026-04-06T20:45:35.288Z"}
74
 
75
- data: {"data":"║ 3000c744-a42b-4b35-8894-552bc8770938 ║","timestamp":"2026-04-06T20:45:35.288Z"}
76
 
77
- data: {"data":"║ ║","timestamp":"2026-04-06T20:45:35.288Z"}
78
 
79
- data: {"data":"║ In Electron mode, authentication is handled automatically. ║","timestamp":"2026-04-06T20:45:35.288Z"}
80
 
81
- data: {"data":"║ ║","timestamp":"2026-04-06T20:45:35.288Z"}
82
 
83
- data: {"data":"║ Auto-login (AUTOMAKER_AUTO_LOGIN): enabled (auto-login active) ║","timestamp":"2026-04-06T20:45:35.288Z"}
84
 
85
- data: {"data":"║ ║","timestamp":"2026-04-06T20:45:35.288Z"}
86
 
87
- data: {"data":"╠═════════════════════════════════════════════════════════════════════╣","timestamp":"2026-04-06T20:45:35.288Z"}
88
 
89
- data: {"data":"║ 💡 Tips ║","timestamp":"2026-04-06T20:45:35.288Z"}
90
 
91
- data: {"data":"╠═════════════════════════════════════════════════════════════════════╣","timestamp":"2026-04-06T20:45:35.288Z"}
92
 
93
- data: {"data":"║ Set AUTOMAKER_API_KEY env var to use a fixed key ║","timestamp":"2026-04-06T20:45:35.288Z"}
94
 
95
- data: {"data":"║ Set AUTOMAKER_AUTO_LOGIN=true to skip the login prompt ║","timestamp":"2026-04-06T20:45:35.288Z"}
96
 
97
- data: {"data":"╚═════════════════════════════════════════════════════════════════════╝","timestamp":"2026-04-06T20:45:35.288Z"}
98
 
99
- data: {"data":"","timestamp":"2026-04-06T20:45:35.288Z"}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
 
 
1
+ data: {"data":"===== Application Startup at 2026-04-06 21:02:20 =====\n","timestamp":"2026-04-06T21:02:20Z"}
2
 
3
+ data: {"data":"Starting Automaker entrypoint script...","timestamp":"2026-04-06T21:02:47.311Z"}
4
 
5
+ data: {"data":"--- Environment Diagnostics (Start) ---","timestamp":"2026-04-06T21:02:47.326Z"}
6
 
7
+ data: {"data":"User ID: 1000","timestamp":"2026-04-06T21:02:47.328Z"}
8
 
9
+ data: {"data":"Home: /home/node","timestamp":"2026-04-06T21:02:47.328Z"}
10
 
11
+ data: {"data":"Path: /home/node/.local/bin:/home/node/.opencode/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","timestamp":"2026-04-06T21:02:47.328Z"}
12
 
13
+ data: {"data":"Data Dir: /app/data","timestamp":"2026-04-06T21:02:47.328Z"}
14
 
15
+ data: {"data":"Neither OPENCODE_API_KEY nor JULES_API_KEY found.","timestamp":"2026-04-06T21:02:47.328Z"}
16
 
17
+ data: {"data":"GITHUB_API_KEY not found.","timestamp":"2026-04-06T21:02:47.328Z"}
18
 
19
+ data: {"data":"Checking CLI presence:","timestamp":"2026-04-06T21:02:47.328Z"}
20
 
21
+ data: {"data":"/usr/bin/gh","timestamp":"2026-04-06T21:02:47.331Z"}
22
 
23
+ data: {"data":"/home/node/.opencode/bin/opencode","timestamp":"2026-04-06T21:02:47.332Z"}
24
 
25
+ data: {"data":"Checking config files:","timestamp":"2026-04-06T21:02:47.332Z"}
26
 
27
+ data: {"data":"ls: cannot access '/home/node/.local/share/opencode/auth.json': No such file or directory","timestamp":"2026-04-06T21:02:47.335Z"}
28
 
29
+ data: {"data":"opencode auth.json missing","timestamp":"2026-04-06T21:02:47.335Z"}
30
 
31
+ data: {"data":"total 0","timestamp":"2026-04-06T21:02:47.338Z"}
32
 
33
+ data: {"data":"drwxr-xr-x. 2 node node 6 Apr 6 21:02 .","timestamp":"2026-04-06T21:02:47.338Z"}
34
 
35
+ data: {"data":"drwxr-xr-x. 3 node node 16 Apr 6 21:02 ..","timestamp":"2026-04-06T21:02:47.338Z"}
36
 
37
+ data: {"data":"CLI Auth Status:","timestamp":"2026-04-06T21:02:47.338Z"}
38
 
39
+ data: {"data":"You are not logged into any GitHub hosts. To log in, run: gh auth login","timestamp":"2026-04-06T21:02:47.394Z"}
40
 
41
+ data: {"data":"gh auth status failed","timestamp":"2026-04-06T21:02:47.398Z"}
42
 
43
+ data: {"data":"Performing one time database migration, may take a few minutes...","timestamp":"2026-04-06T21:02:49.610Z"}
44
 
45
+ data: {"data":"sqlite-migration:done","timestamp":"2026-04-06T21:02:49.642Z"}
46
 
47
+ data: {"data":"Database migration complete.","timestamp":"2026-04-06T21:02:49.642Z"}
48
 
49
+ data: {"data":"\u001b[0m","timestamp":"2026-04-06T21:02:49.643Z"}
50
 
51
+ data: {"data":" Credentials \u001b[90m~/.local/share/opencode/auth.json","timestamp":"2026-04-06T21:02:49.643Z"}
52
 
53
+ data: {"data":"","timestamp":"2026-04-06T21:02:49.729Z"}
54
 
55
+ data: {"data":"└ 0 credentials","timestamp":"2026-04-06T21:02:49.729Z"}
56
 
57
+ data: {"data":"","timestamp":"2026-04-06T21:02:49.729Z"}
58
 
59
+ data: {"data":"--- Environment Diagnostics (End) ---","timestamp":"2026-04-06T21:02:49.757Z"}
60
 
61
+ data: {"data":"Starting application on port 7860...","timestamp":"2026-04-06T21:02:49.757Z"}
62
 
63
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Auth]\u001b[0m Generated new API key","timestamp":"2026-04-06T21:02:50.276Z"}
64
 
65
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Auth]\u001b[0m ","timestamp":"2026-04-06T21:02:50.277Z"}
66
 
67
+ data: {"data":"═════════════════════════════════════════════════════════════════════","timestamp":"2026-04-06T21:02:50.277Z"}
68
 
69
+ data: {"data":"║ 🔐 API Key for Web Mode Authentication ║","timestamp":"2026-04-06T21:02:50.277Z"}
70
 
71
+ data: {"data":"╠═════════════════════════════════════════════════════════════════════╣","timestamp":"2026-04-06T21:02:50.277Z"}
72
 
73
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.277Z"}
74
 
75
+ data: {"data":"║ When accessing via browser, you'll be prompted to enter this key: ║","timestamp":"2026-04-06T21:02:50.277Z"}
76
 
77
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.277Z"}
78
 
79
+ data: {"data":"║ 7bb62127-c713-4337-ab5e-7bf5edcab7a0 ║","timestamp":"2026-04-06T21:02:50.277Z"}
80
 
81
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.277Z"}
82
 
83
+ data: {"data":"║ In Electron mode, authentication is handled automatically. ║","timestamp":"2026-04-06T21:02:50.277Z"}
84
 
85
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.277Z"}
86
 
87
+ data: {"data":"║ Auto-login (AUTOMAKER_AUTO_LOGIN): enabled (auto-login active) ║","timestamp":"2026-04-06T21:02:50.277Z"}
88
 
89
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.277Z"}
90
 
91
+ data: {"data":"╠═════════════════════════════════════════════════════════════════════╣","timestamp":"2026-04-06T21:02:50.277Z"}
92
 
93
+ data: {"data":"║ 💡 Tips ║","timestamp":"2026-04-06T21:02:50.277Z"}
94
 
95
+ data: {"data":"╠═════════════════════════════════════════════════════════════════════╣","timestamp":"2026-04-06T21:02:50.277Z"}
96
 
97
+ data: {"data":"║ Set AUTOMAKER_API_KEY env var to use a fixed key ║","timestamp":"2026-04-06T21:02:50.277Z"}
98
 
99
+ data: {"data":"║ Set AUTOMAKER_AUTO_LOGIN=true to skip the login prompt ║","timestamp":"2026-04-06T21:02:50.277Z"}
100
+
101
+ data: {"data":"╚═════════════════════════════════════════════════════════════════════╝","timestamp":"2026-04-06T21:02:50.277Z"}
102
+
103
+ data: {"data":"","timestamp":"2026-04-06T21:02:50.277Z"}
104
+
105
+ data: {"data":"[dotenv@17.2.3] injecting env (0) from .env -- tip: ⚙️ enable debug logging with { debug: true }","timestamp":"2026-04-06T21:02:50.452Z"}
106
+
107
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m [SERVER_STARTUP] process.env.DATA_DIR: /app/data","timestamp":"2026-04-06T21:02:50.452Z"}
108
+
109
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m [SERVER_STARTUP] Resolved DATA_DIR: /app/data","timestamp":"2026-04-06T21:02:50.452Z"}
110
+
111
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m [SERVER_STARTUP] process.cwd(): /app","timestamp":"2026-04-06T21:02:50.452Z"}
112
+
113
+ data: {"data":"[Security] ⚠️ ALLOWED_ROOT_DIRECTORY not set - allowing access to all paths","timestamp":"2026-04-06T21:02:50.454Z"}
114
+
115
+ data: {"data":"[Security] ✓ DATA_DIR configured: /app/data","timestamp":"2026-04-06T21:02:50.454Z"}
116
+
117
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[EventHooks]\u001b[0m Event hook service initialized","timestamp":"2026-04-06T21:02:50.457Z"}
118
+
119
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[SettingsService]\u001b[0m Checking for legacy data migration from: /home/node/.config/Automaker","timestamp":"2026-04-06T21:02:50.458Z"}
120
+
121
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[SettingsService]\u001b[0m Current data directory: /app/data","timestamp":"2026-04-06T21:02:50.458Z"}
122
+
123
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m ","timestamp":"2026-04-06T21:02:50.491Z"}
124
+
125
+ data: {"data":"╔═════════════════════════════════════════════════════════════════════╗","timestamp":"2026-04-06T21:02:50.491Z"}
126
+
127
+ data: {"data":"║ 🚀 Automaker Backend Server ║","timestamp":"2026-04-06T21:02:50.491Z"}
128
+
129
+ data: {"data":"╠═════════════════════════════════════════════════════════════════════╣","timestamp":"2026-04-06T21:02:50.491Z"}
130
+
131
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.491Z"}
132
+
133
+ data: {"data":"║ Listening: 0.0.0.0:7860 ║","timestamp":"2026-04-06T21:02:50.491Z"}
134
+
135
+ data: {"data":"║ HTTP API: http://r-leon4gr45-hyp-yfa3z031-42cc7-4fvwf:7860 ║","timestamp":"2026-04-06T21:02:50.491Z"}
136
+
137
+ data: {"data":"║ WebSocket: ws://r-leon4gr45-hyp-yfa3z031-42cc7-4fvwf:7860/api/events║","timestamp":"2026-04-06T21:02:50.491Z"}
138
+
139
+ data: {"data":"║ Terminal WS: ws://r-leon4gr45-hyp-yfa3z031-42cc7-4fvwf:7860/api/terminal/ws║","timestamp":"2026-04-06T21:02:50.491Z"}
140
+
141
+ data: {"data":"║ Health: http://r-leon4gr45-hyp-yfa3z031-42cc7-4fvwf:7860/api/health║","timestamp":"2026-04-06T21:02:50.491Z"}
142
+
143
+ data: {"data":"║ Terminal: enabled ║","timestamp":"2026-04-06T21:02:50.491Z"}
144
+
145
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.491Z"}
146
+
147
+ data: {"data":"╚═════════════════════════════════════════════════════════════════════╝","timestamp":"2026-04-06T21:02:50.491Z"}
148
+
149
+ data: {"data":"","timestamp":"2026-04-06T21:02:50.491Z"}
150
+
151
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Server log level set to: info","timestamp":"2026-04-06T21:02:50.494Z"}
152
+
153
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m HTTP request logging: enabled","timestamp":"2026-04-06T21:02:50.494Z"}
154
+
155
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Agent service initialized","timestamp":"2026-04-06T21:02:50.495Z"}
156
+
157
+ data: {"data":"\u001b[33mWARN \u001b[0m \u001b[34m[Server]\u001b[0m ","timestamp":"2026-04-06T21:02:50.495Z"}
158
+
159
+ data: {"data":"╔═════════════════════════════════════════════════════════════════════╗","timestamp":"2026-04-06T21:02:50.495Z"}
160
+
161
+ data: {"data":"║ ⚠️ WARNING: No Claude authentication configured ║","timestamp":"2026-04-06T21:02:50.495Z"}
162
+
163
+ data: {"data":"╠═════════════════════════════════════════════════════════════════════╣","timestamp":"2026-04-06T21:02:50.495Z"}
164
+
165
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.495Z"}
166
+
167
+ data: {"data":"║ The Claude Agent SDK requires authentication to function. ║","timestamp":"2026-04-06T21:02:50.495Z"}
168
+
169
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.495Z"}
170
+
171
+ data: {"data":"║ Options: ║","timestamp":"2026-04-06T21:02:50.495Z"}
172
+
173
+ data: {"data":"║ 1. Install Claude Code CLI and authenticate with subscription ║","timestamp":"2026-04-06T21:02:50.495Z"}
174
+
175
+ data: {"data":"║ 2. Set your Anthropic API key: ║","timestamp":"2026-04-06T21:02:50.495Z"}
176
+
177
+ data: {"data":"║ export ANTHROPIC_API_KEY=\"sk-ant-...\" ║","timestamp":"2026-04-06T21:02:50.495Z"}
178
+
179
+ data: {"data":"║ 3. Use the setup wizard in Settings to configure authentication. ║","timestamp":"2026-04-06T21:02:50.495Z"}
180
+
181
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.495Z"}
182
+
183
+ data: {"data":"║ Paths checked: ║","timestamp":"2026-04-06T21:02:50.495Z"}
184
+
185
+ data: {"data":"║ Settings: /home/node/.claude/settings.json ║","timestamp":"2026-04-06T21:02:50.495Z"}
186
+
187
+ data: {"data":"║ Stats cache: /home/node/.claude/stats-cache.json ║","timestamp":"2026-04-06T21:02:50.495Z"}
188
+
189
+ data: {"data":"║ Projects dir: /home/node/.claude/projects ║","timestamp":"2026-04-06T21:02:50.495Z"}
190
+
191
+ data: {"data":"║ Credentials: /home/node/.claude/.credentials.json ║","timestamp":"2026-04-06T21:02:50.495Z"}
192
+
193
+ data: {"data":"║ Credentials: /home/node/.claude/credentials.json ║","timestamp":"2026-04-06T21:02:50.495Z"}
194
+
195
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.495Z"}
196
+
197
+ data: {"data":"╚═════════════════════════════════════════════════════════════════════╝","timestamp":"2026-04-06T21:02:50.495Z"}
198
+
199
+ data: {"data":"","timestamp":"2026-04-06T21:02:50.495Z"}
200
 
run_logs_all.txt ADDED
@@ -0,0 +1,537 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ data: {"data":"===== Application Startup at 2026-04-06 21:02:20 =====\n","timestamp":"2026-04-06T21:02:20Z"}
2
+
3
+ data: {"data":"Starting Automaker entrypoint script...","timestamp":"2026-04-06T21:02:47.311Z"}
4
+
5
+ data: {"data":"--- Environment Diagnostics (Start) ---","timestamp":"2026-04-06T21:02:47.326Z"}
6
+
7
+ data: {"data":"User ID: 1000","timestamp":"2026-04-06T21:02:47.328Z"}
8
+
9
+ data: {"data":"Home: /home/node","timestamp":"2026-04-06T21:02:47.328Z"}
10
+
11
+ data: {"data":"Path: /home/node/.local/bin:/home/node/.opencode/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","timestamp":"2026-04-06T21:02:47.328Z"}
12
+
13
+ data: {"data":"Data Dir: /app/data","timestamp":"2026-04-06T21:02:47.328Z"}
14
+
15
+ data: {"data":"Neither OPENCODE_API_KEY nor JULES_API_KEY found.","timestamp":"2026-04-06T21:02:47.328Z"}
16
+
17
+ data: {"data":"GITHUB_API_KEY not found.","timestamp":"2026-04-06T21:02:47.328Z"}
18
+
19
+ data: {"data":"Checking CLI presence:","timestamp":"2026-04-06T21:02:47.328Z"}
20
+
21
+ data: {"data":"/usr/bin/gh","timestamp":"2026-04-06T21:02:47.331Z"}
22
+
23
+ data: {"data":"/home/node/.opencode/bin/opencode","timestamp":"2026-04-06T21:02:47.332Z"}
24
+
25
+ data: {"data":"Checking config files:","timestamp":"2026-04-06T21:02:47.332Z"}
26
+
27
+ data: {"data":"ls: cannot access '/home/node/.local/share/opencode/auth.json': No such file or directory","timestamp":"2026-04-06T21:02:47.335Z"}
28
+
29
+ data: {"data":"opencode auth.json missing","timestamp":"2026-04-06T21:02:47.335Z"}
30
+
31
+ data: {"data":"total 0","timestamp":"2026-04-06T21:02:47.338Z"}
32
+
33
+ data: {"data":"drwxr-xr-x. 2 node node 6 Apr 6 21:02 .","timestamp":"2026-04-06T21:02:47.338Z"}
34
+
35
+ data: {"data":"drwxr-xr-x. 3 node node 16 Apr 6 21:02 ..","timestamp":"2026-04-06T21:02:47.338Z"}
36
+
37
+ data: {"data":"CLI Auth Status:","timestamp":"2026-04-06T21:02:47.338Z"}
38
+
39
+ data: {"data":"You are not logged into any GitHub hosts. To log in, run: gh auth login","timestamp":"2026-04-06T21:02:47.394Z"}
40
+
41
+ data: {"data":"gh auth status failed","timestamp":"2026-04-06T21:02:47.398Z"}
42
+
43
+ data: {"data":"Performing one time database migration, may take a few minutes...","timestamp":"2026-04-06T21:02:49.610Z"}
44
+
45
+ data: {"data":"sqlite-migration:done","timestamp":"2026-04-06T21:02:49.642Z"}
46
+
47
+ data: {"data":"Database migration complete.","timestamp":"2026-04-06T21:02:49.642Z"}
48
+
49
+ data: {"data":"\u001b[0m","timestamp":"2026-04-06T21:02:49.643Z"}
50
+
51
+ data: {"data":"┌ Credentials \u001b[90m~/.local/share/opencode/auth.json","timestamp":"2026-04-06T21:02:49.643Z"}
52
+
53
+ data: {"data":"│","timestamp":"2026-04-06T21:02:49.729Z"}
54
+
55
+ data: {"data":"└ 0 credentials","timestamp":"2026-04-06T21:02:49.729Z"}
56
+
57
+ data: {"data":"","timestamp":"2026-04-06T21:02:49.729Z"}
58
+
59
+ data: {"data":"--- Environment Diagnostics (End) ---","timestamp":"2026-04-06T21:02:49.757Z"}
60
+
61
+ data: {"data":"Starting application on port 7860...","timestamp":"2026-04-06T21:02:49.757Z"}
62
+
63
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Auth]\u001b[0m Generated new API key","timestamp":"2026-04-06T21:02:50.276Z"}
64
+
65
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Auth]\u001b[0m ","timestamp":"2026-04-06T21:02:50.277Z"}
66
+
67
+ data: {"data":"╔═════════════════════════════════════════════════════════════════════╗","timestamp":"2026-04-06T21:02:50.277Z"}
68
+
69
+ data: {"data":"║ 🔐 API Key for Web Mode Authentication ║","timestamp":"2026-04-06T21:02:50.277Z"}
70
+
71
+ data: {"data":"╠═════════════════════════════════════════════════════════════════════╣","timestamp":"2026-04-06T21:02:50.277Z"}
72
+
73
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.277Z"}
74
+
75
+ data: {"data":"║ When accessing via browser, you'll be prompted to enter this key: ║","timestamp":"2026-04-06T21:02:50.277Z"}
76
+
77
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.277Z"}
78
+
79
+ data: {"data":"║ 7bb62127-c713-4337-ab5e-7bf5edcab7a0 ║","timestamp":"2026-04-06T21:02:50.277Z"}
80
+
81
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.277Z"}
82
+
83
+ data: {"data":"║ In Electron mode, authentication is handled automatically. ║","timestamp":"2026-04-06T21:02:50.277Z"}
84
+
85
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.277Z"}
86
+
87
+ data: {"data":"║ Auto-login (AUTOMAKER_AUTO_LOGIN): enabled (auto-login active) ║","timestamp":"2026-04-06T21:02:50.277Z"}
88
+
89
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.277Z"}
90
+
91
+ data: {"data":"╠═════════════════════════════════════════════════════════════════════╣","timestamp":"2026-04-06T21:02:50.277Z"}
92
+
93
+ data: {"data":"║ 💡 Tips ║","timestamp":"2026-04-06T21:02:50.277Z"}
94
+
95
+ data: {"data":"╠═════════════════════════════════════════════════════════════════════╣","timestamp":"2026-04-06T21:02:50.277Z"}
96
+
97
+ data: {"data":"║ Set AUTOMAKER_API_KEY env var to use a fixed key ║","timestamp":"2026-04-06T21:02:50.277Z"}
98
+
99
+ data: {"data":"║ Set AUTOMAKER_AUTO_LOGIN=true to skip the login prompt ║","timestamp":"2026-04-06T21:02:50.277Z"}
100
+
101
+ data: {"data":"╚═════════════════════════════════════════════════════════════════════╝","timestamp":"2026-04-06T21:02:50.277Z"}
102
+
103
+ data: {"data":"","timestamp":"2026-04-06T21:02:50.277Z"}
104
+
105
+ data: {"data":"[dotenv@17.2.3] injecting env (0) from .env -- tip: ⚙️ enable debug logging with { debug: true }","timestamp":"2026-04-06T21:02:50.452Z"}
106
+
107
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m [SERVER_STARTUP] process.env.DATA_DIR: /app/data","timestamp":"2026-04-06T21:02:50.452Z"}
108
+
109
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m [SERVER_STARTUP] Resolved DATA_DIR: /app/data","timestamp":"2026-04-06T21:02:50.452Z"}
110
+
111
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m [SERVER_STARTUP] process.cwd(): /app","timestamp":"2026-04-06T21:02:50.452Z"}
112
+
113
+ data: {"data":"[Security] ⚠️ ALLOWED_ROOT_DIRECTORY not set - allowing access to all paths","timestamp":"2026-04-06T21:02:50.454Z"}
114
+
115
+ data: {"data":"[Security] ✓ DATA_DIR configured: /app/data","timestamp":"2026-04-06T21:02:50.454Z"}
116
+
117
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[EventHooks]\u001b[0m Event hook service initialized","timestamp":"2026-04-06T21:02:50.457Z"}
118
+
119
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[SettingsService]\u001b[0m Checking for legacy data migration from: /home/node/.config/Automaker","timestamp":"2026-04-06T21:02:50.458Z"}
120
+
121
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[SettingsService]\u001b[0m Current data directory: /app/data","timestamp":"2026-04-06T21:02:50.458Z"}
122
+
123
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m ","timestamp":"2026-04-06T21:02:50.491Z"}
124
+
125
+ data: {"data":"╔═════════════════════════════════════════════════════════════════════╗","timestamp":"2026-04-06T21:02:50.491Z"}
126
+
127
+ data: {"data":"║ 🚀 Automaker Backend Server ║","timestamp":"2026-04-06T21:02:50.491Z"}
128
+
129
+ data: {"data":"╠═════════════════════════════════════════════════════════════════════╣","timestamp":"2026-04-06T21:02:50.491Z"}
130
+
131
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.491Z"}
132
+
133
+ data: {"data":"║ Listening: 0.0.0.0:7860 ║","timestamp":"2026-04-06T21:02:50.491Z"}
134
+
135
+ data: {"data":"║ HTTP API: http://r-leon4gr45-hyp-yfa3z031-42cc7-4fvwf:7860 ║","timestamp":"2026-04-06T21:02:50.491Z"}
136
+
137
+ data: {"data":"║ WebSocket: ws://r-leon4gr45-hyp-yfa3z031-42cc7-4fvwf:7860/api/events║","timestamp":"2026-04-06T21:02:50.491Z"}
138
+
139
+ data: {"data":"║ Terminal WS: ws://r-leon4gr45-hyp-yfa3z031-42cc7-4fvwf:7860/api/terminal/ws║","timestamp":"2026-04-06T21:02:50.491Z"}
140
+
141
+ data: {"data":"║ Health: http://r-leon4gr45-hyp-yfa3z031-42cc7-4fvwf:7860/api/health║","timestamp":"2026-04-06T21:02:50.491Z"}
142
+
143
+ data: {"data":"║ Terminal: enabled ║","timestamp":"2026-04-06T21:02:50.491Z"}
144
+
145
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.491Z"}
146
+
147
+ data: {"data":"╚═════════════════════════════════════════════════════════════════════╝","timestamp":"2026-04-06T21:02:50.491Z"}
148
+
149
+ data: {"data":"","timestamp":"2026-04-06T21:02:50.491Z"}
150
+
151
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Server log level set to: info","timestamp":"2026-04-06T21:02:50.494Z"}
152
+
153
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m HTTP request logging: enabled","timestamp":"2026-04-06T21:02:50.494Z"}
154
+
155
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Agent service initialized","timestamp":"2026-04-06T21:02:50.495Z"}
156
+
157
+ data: {"data":"\u001b[33mWARN \u001b[0m \u001b[34m[Server]\u001b[0m ","timestamp":"2026-04-06T21:02:50.495Z"}
158
+
159
+ data: {"data":"╔═════════════════════════════════════════════════════════════════════╗","timestamp":"2026-04-06T21:02:50.495Z"}
160
+
161
+ data: {"data":"║ ⚠️ WARNING: No Claude authentication configured ║","timestamp":"2026-04-06T21:02:50.495Z"}
162
+
163
+ data: {"data":"╠═════════════════════════════════════════════════════════════════════╣","timestamp":"2026-04-06T21:02:50.495Z"}
164
+
165
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.495Z"}
166
+
167
+ data: {"data":"║ The Claude Agent SDK requires authentication to function. ║","timestamp":"2026-04-06T21:02:50.495Z"}
168
+
169
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.495Z"}
170
+
171
+ data: {"data":"║ Options: ║","timestamp":"2026-04-06T21:02:50.495Z"}
172
+
173
+ data: {"data":"║ 1. Install Claude Code CLI and authenticate with subscription ║","timestamp":"2026-04-06T21:02:50.495Z"}
174
+
175
+ data: {"data":"║ 2. Set your Anthropic API key: ║","timestamp":"2026-04-06T21:02:50.495Z"}
176
+
177
+ data: {"data":"║ export ANTHROPIC_API_KEY=\"sk-ant-...\" ║","timestamp":"2026-04-06T21:02:50.495Z"}
178
+
179
+ data: {"data":"║ 3. Use the setup wizard in Settings to configure authentication. ║","timestamp":"2026-04-06T21:02:50.495Z"}
180
+
181
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.495Z"}
182
+
183
+ data: {"data":"║ Paths checked: ║","timestamp":"2026-04-06T21:02:50.495Z"}
184
+
185
+ data: {"data":"║ Settings: /home/node/.claude/settings.json ║","timestamp":"2026-04-06T21:02:50.495Z"}
186
+
187
+ data: {"data":"║ Stats cache: /home/node/.claude/stats-cache.json ║","timestamp":"2026-04-06T21:02:50.495Z"}
188
+
189
+ data: {"data":"║ Projects dir: /home/node/.claude/projects ║","timestamp":"2026-04-06T21:02:50.495Z"}
190
+
191
+ data: {"data":"║ Credentials: /home/node/.claude/.credentials.json ║","timestamp":"2026-04-06T21:02:50.495Z"}
192
+
193
+ data: {"data":"║ Credentials: /home/node/.claude/credentials.json ║","timestamp":"2026-04-06T21:02:50.495Z"}
194
+
195
+ data: {"data":"║ ║","timestamp":"2026-04-06T21:02:50.495Z"}
196
+
197
+ data: {"data":"╚═════════════════════════════════════════════════════════════════════╝","timestamp":"2026-04-06T21:02:50.495Z"}
198
+
199
+ data: {"data":"","timestamp":"2026-04-06T21:02:50.495Z"}
200
+
201
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:04:21.837Z"}
202
+
203
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:04:22.174Z"}
204
+
205
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:04:22.254Z"}
206
+
207
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:04:27.725Z"}
208
+
209
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:04:28.038Z"}
210
+
211
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:04:28.092Z"}
212
+
213
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:04:33.786Z"}
214
+
215
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:04:34.021Z"}
216
+
217
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:04:34.051Z"}
218
+
219
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:04:39.725Z"}
220
+
221
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:04:39.922Z"}
222
+
223
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:04:39.960Z"}
224
+
225
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:04:45.712Z"}
226
+
227
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:04:45.912Z"}
228
+
229
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:04:45.980Z"}
230
+
231
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:04:51.712Z"}
232
+
233
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:04:51.914Z"}
234
+
235
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:04:51.982Z"}
236
+
237
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:04:57.785Z"}
238
+
239
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:04:57.980Z"}
240
+
241
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:04:58.075Z"}
242
+
243
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:05:03.711Z"}
244
+
245
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:05:03.906Z"}
246
+
247
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:05:03.999Z"}
248
+
249
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:05:09.708Z"}
250
+
251
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:05:09.901Z"}
252
+
253
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:05:10Z"}
254
+
255
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:05:15.703Z"}
256
+
257
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:05:15.902Z"}
258
+
259
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:05:16.019Z"}
260
+
261
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:05:21.762Z"}
262
+
263
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:05:21.956Z"}
264
+
265
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:05:22.103Z"}
266
+
267
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:05:27.715Z"}
268
+
269
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:05:27.911Z"}
270
+
271
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:05:28.043Z"}
272
+
273
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:05:33.717Z"}
274
+
275
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:05:33.922Z"}
276
+
277
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:05:34.121Z"}
278
+
279
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:05:39.722Z"}
280
+
281
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:05:39.920Z"}
282
+
283
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:05:40.277Z"}
284
+
285
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:05:45.723Z"}
286
+
287
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:05:45.923Z"}
288
+
289
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:05:46.596Z"}
290
+
291
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:05:52.719Z"}
292
+
293
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:05:52.948Z"}
294
+
295
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:05:54.654Z"}
296
+
297
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:06:00.741Z"}
298
+
299
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:06:00.935Z"}
300
+
301
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:06:04.069Z"}
302
+
303
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:06:09.724Z"}
304
+
305
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:06:09.919Z"}
306
+
307
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:06:14.902Z"}
308
+
309
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:06:20.723Z"}
310
+
311
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:06:20.928Z"}
312
+
313
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:06:26.032Z"}
314
+
315
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:06:31.718Z"}
316
+
317
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:06:31.914Z"}
318
+
319
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:06:36.665Z"}
320
+
321
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:06:42.718Z"}
322
+
323
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:06:42.912Z"}
324
+
325
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:06:45.015Z"}
326
+
327
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:06:50.717Z"}
328
+
329
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:06:50.912Z"}
330
+
331
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:06:54.332Z"}
332
+
333
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:06:59.718Z"}
334
+
335
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:06:59.911Z"}
336
+
337
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:07:02.051Z"}
338
+
339
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:07:07.716Z"}
340
+
341
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:07:07.912Z"}
342
+
343
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:07:10.277Z"}
344
+
345
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:07:15.728Z"}
346
+
347
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:07:15.924Z"}
348
+
349
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:07:17.249Z"}
350
+
351
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:07:22.703Z"}
352
+
353
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:07:22.896Z"}
354
+
355
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:07:27.227Z"}
356
+
357
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:07:32.711Z"}
358
+
359
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:07:32.902Z"}
360
+
361
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:07:34.265Z"}
362
+
363
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:07:39.708Z"}
364
+
365
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:07:39.905Z"}
366
+
367
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:07:42.335Z"}
368
+
369
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:07:47.717Z"}
370
+
371
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:07:47.917Z"}
372
+
373
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:07:49.154Z"}
374
+
375
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:07:54.714Z"}
376
+
377
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:07:54.909Z"}
378
+
379
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:07:57.532Z"}
380
+
381
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:08:03.715Z"}
382
+
383
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:08:03.924Z"}
384
+
385
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:08:06.589Z"}
386
+
387
+ : keep-alive
388
+
389
+ : keep-alive
390
+
391
+ : keep-alive
392
+
393
+ : keep-alive
394
+
395
+ data: {"data":"GET /sw.js \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:54.501Z"}
396
+
397
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:20:54.502Z"}
398
+
399
+ data: {"data":"GET /manifest.json \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:54.673Z"}
400
+
401
+ data: {"data":"GET / \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:54.742Z"}
402
+
403
+ data: {"data":"GET /index.html \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:54.743Z"}
404
+
405
+ data: {"data":"GET /logo.png \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:54.815Z"}
406
+
407
+ data: {"data":"GET /logo_larger.png \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:54.877Z"}
408
+
409
+ data: {"data":"GET /automaker.svg \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:54.878Z"}
410
+
411
+ data: {"data":"GET /favicon.ico \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:55.024Z"}
412
+
413
+ data: {"data":"GET /assets/index-DWb5eQJ2.js \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:55.026Z"}
414
+
415
+ data: {"data":"GET /assets/vendor-markdown-yNf7jtcM.js \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:55.223Z"}
416
+
417
+ data: {"data":"GET /assets/vendor-tanstack-D_7fJLHw.js \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:55.477Z"}
418
+
419
+ data: {"data":"GET /assets/vendor-react-CWkAX8On.js \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:55.477Z"}
420
+
421
+ data: {"data":"GET /assets/vendor-state-BfiR06Sd.js \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:55.729Z"}
422
+
423
+ data: {"data":"GET /assets/vendor-radix-CPY_l3qs.js \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:56.277Z"}
424
+
425
+ data: {"data":"GET /assets/vendor-icons-XQRfxEcr.js \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:56.345Z"}
426
+
427
+ data: {"data":"GET /assets/vendor-xterm-CCtC1jAK.js \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:56.421Z"}
428
+
429
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Server]\u001b[0m Authentication failed, rejecting connection","timestamp":"2026-04-06T21:20:56.526Z"}
430
+
431
+ data: {"data":"GET /assets/vendor-xterm-DpAwu-Ps.css \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:56.547Z"}
432
+
433
+ data: {"data":"GET /assets/index-BDXNlyfS.css \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:56.816Z"}
434
+
435
+ data: {"data":"GET /api/auth/token \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:20:56.821Z"}
436
+
437
+ data: {"data":"GET / \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:58.846Z"}
438
+
439
+ data: {"data":"GET /logo.png \u001b[36m304\u001b[0m","timestamp":"2026-04-06T21:20:58.945Z"}
440
+
441
+ data: {"data":"GET /automaker.svg \u001b[36m304\u001b[0m","timestamp":"2026-04-06T21:20:58.989Z"}
442
+
443
+ data: {"data":"GET /assets/index-CR-PL_u7.js \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:59.342Z"}
444
+
445
+ data: {"data":"GET /api/setup/cursor-status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:59.385Z"}
446
+
447
+ data: {"data":"GET /api/setup/claude-status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:59.395Z"}
448
+
449
+ data: {"data":"GET / \u001b[36m304\u001b[0m","timestamp":"2026-04-06T21:20:59.438Z"}
450
+
451
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[CodexAuth]\u001b[0m CLI not found","timestamp":"2026-04-06T21:20:59.447Z"}
452
+
453
+ data: {"data":"GET /api/setup/codex-status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:59.448Z"}
454
+
455
+ data: {"data":"GET /assets/index-CR-PL_u7.js \u001b[36m304\u001b[0m","timestamp":"2026-04-06T21:20:59.456Z"}
456
+
457
+ data: {"data":"GET /logo.png \u001b[36m304\u001b[0m","timestamp":"2026-04-06T21:20:59.509Z"}
458
+
459
+ data: {"data":"GET /automaker.svg \u001b[36m304\u001b[0m","timestamp":"2026-04-06T21:20:59.517Z"}
460
+
461
+ data: {"data":"GET /api/setup/cursor-status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:59.611Z"}
462
+
463
+ data: {"data":"GET /api/setup/claude-status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:59.615Z"}
464
+
465
+ data: {"data":"GET /api/health \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:59.617Z"}
466
+
467
+ data: {"data":"GET /api/health \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:59.618Z"}
468
+
469
+ data: {"data":"GET /api/settings/status \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:20:59.799Z"}
470
+
471
+ data: {"data":"GET /api/settings/global \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:20:59.801Z"}
472
+
473
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[CodexAuth]\u001b[0m CLI not found","timestamp":"2026-04-06T21:20:59.806Z"}
474
+
475
+ data: {"data":"GET /api/setup/codex-status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:59.806Z"}
476
+
477
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:20:59.972Z"}
478
+
479
+ data: {"data":"GET /api/zai/status \u001b[33m401\u001b[0m","timestamp":"2026-04-06T21:21:00.031Z"}
480
+
481
+ data: {"data":"POST /api/auth/logout \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:00.174Z"}
482
+
483
+ data: {"data":"GET /api/setup/gemini-status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:00.190Z"}
484
+
485
+ data: {"data":"GET /sw.js \u001b[36m304\u001b[0m","timestamp":"2026-04-06T21:21:01.776Z"}
486
+
487
+ data: {"data":"GET /assets/login-qgLk51-3.js \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:11.115Z"}
488
+
489
+ data: {"data":"GET /api/auth/status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:11.323Z"}
490
+
491
+ data: {"data":"POST /api/auth/login \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:13.692Z"}
492
+
493
+ data: {"data":"GET /api/settings/status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:13.841Z"}
494
+
495
+ data: {"data":"GET /api/settings/global \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:13.979Z"}
496
+
497
+ data: {"data":"GET /api/settings/global \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:13.981Z"}
498
+
499
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Settings]\u001b[0m [SERVER_SETTINGS_UPDATE] Request received: projects=n/a, trashedProjects=n/a, theme=n/a, localStorageMigrated=true","timestamp":"2026-04-06T21:21:14.159Z"}
500
+
501
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Settings]\u001b[0m [SERVER_SETTINGS_UPDATE] Calling updateGlobalSettings...","timestamp":"2026-04-06T21:21:14.160Z"}
502
+
503
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[SettingsService]\u001b[0m Global settings updated","timestamp":"2026-04-06T21:21:14.162Z"}
504
+
505
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Settings]\u001b[0m [SERVER_SETTINGS_UPDATE] Update complete, projects count: 0","timestamp":"2026-04-06T21:21:14.163Z"}
506
+
507
+ data: {"data":"PUT /api/settings/global \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:14.163Z"}
508
+
509
+ data: {"data":"GET /assets/setup-fMi6ESse.js \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:14.227Z"}
510
+
511
+ data: {"data":"GET /api/auth/status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:14.295Z"}
512
+
513
+ data: {"data":"GET /api/setup/cursor-status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:19.975Z"}
514
+
515
+ data: {"data":"GET /api/setup/copilot-status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:19.996Z"}
516
+
517
+ data: {"data":"GET /api/setup/opencode-status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:20.002Z"}
518
+
519
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Settings]\u001b[0m [SERVER_SETTINGS_UPDATE] Request received: projects=0, trashedProjects=0, theme=forest, localStorageMigrated=n/a","timestamp":"2026-04-06T21:21:20.004Z"}
520
+
521
+ data: {"data":"GET /api/setup/gemini-status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:20.021Z"}
522
+
523
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Settings]\u001b[0m [SERVER_SETTINGS_UPDATE] Calling updateGlobalSettings...","timestamp":"2026-04-06T21:21:20.023Z"}
524
+
525
+ data: {"data":"GET /api/setup/claude-status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:20.024Z"}
526
+
527
+ data: {"data":"GET /api/setup/claude-status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:20.025Z"}
528
+
529
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[CodexAuth]\u001b[0m CLI not found","timestamp":"2026-04-06T21:21:20.028Z"}
530
+
531
+ data: {"data":"GET /api/setup/codex-status \u001b[32m200\u001b[0m","timestamp":"2026-04-06T21:21:20.028Z"}
532
+
533
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[SettingsService]\u001b[0m Global settings updated","timestamp":"2026-04-06T21:21:20.033Z"}
534
+
535
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Settings]\u001b[0m [SERVER_SETTINGS_UPDATE] Update complete, projects count: 0","timestamp":"2026-04-06T21:21:20.033Z"}
536
+
537
+ data: {"data":"\u001b[36mINFO \u001b[0m \u001b[34m[Settings]\u001b[0m [TERMINAL_CONFIG] Theme changed from dark to