diff --git a/packages/tracker/meshnet_tracker/dashboard.html b/packages/tracker/meshnet_tracker/dashboard.html
index ef4b282..8f4df39 100644
--- a/packages/tracker/meshnet_tracker/dashboard.html
+++ b/packages/tracker/meshnet_tracker/dashboard.html
@@ -212,7 +212,7 @@
.chat-compose button:disabled { opacity:.45; cursor:not-allowed; }
.console {
background:var(--bg); border:1px solid var(--border); border-radius:6px;
- min-height:160px; max-height:280px; overflow:auto; padding:7px 9px;
+ min-height:160px; max-height:520px; overflow-y:auto; overflow-x:auto; padding:7px 9px;
white-space:pre-wrap; word-break:break-word; font-size:11px;
}
.console-line { padding:1px 0; border-bottom:1px solid #161b22; }
@@ -1083,6 +1083,7 @@ function renderBillingUsage(records) {
}
let consoleClearedAt = 0;
+const CONSOLE_MAX_LINES = 1000;
function clearConsole() {
consoleClearedAt = Date.now() / 1000;
@@ -1096,7 +1097,7 @@ function renderConsole(data) {
$("console").innerHTML = '
no console events
';
return;
}
- $("console").innerHTML = events.slice(-120).map(e => {
+ $("console").innerHTML = events.slice(-CONSOLE_MAX_LINES).map(e => {
const level = String(e.level || "info");
const cls = level === "error" ? "console-level-error" : level === "warn" ? "console-level-warn" : "console-level-info";
const fields = e.fields && Object.keys(e.fields).length ? " " + JSON.stringify(e.fields) : "";
diff --git a/packages/tracker/meshnet_tracker/server.py b/packages/tracker/meshnet_tracker/server.py
index 149ff3d..cbb3663 100644
--- a/packages/tracker/meshnet_tracker/server.py
+++ b/packages/tracker/meshnet_tracker/server.py
@@ -86,7 +86,7 @@ from .model_files import files_for_layer_range, snapshot_dir_for_repo
from .raft import RaftNode
-_CONSOLE_LIMIT = 300
+_CONSOLE_LIMIT = 1000
_PROXY_PROGRESS_LOG_INTERVAL = 5.0
_SESSION_COOKIE_NAME = "meshnet_session"
diff --git a/tests/test_dashboard.py b/tests/test_dashboard.py
index d3c1234..f387d21 100644
--- a/tests/test_dashboard.py
+++ b/tests/test_dashboard.py
@@ -44,6 +44,9 @@ def test_dashboard_served_with_all_panels():
assert ".wide { grid-column:span 2; }" in html
assert 'onclick="clearConsole()"' in html
assert "let consoleClearedAt = 0;" in html
+ assert "max-height:520px; overflow-y:auto; overflow-x:auto;" in html
+ assert "const CONSOLE_MAX_LINES = 1000;" in html
+ assert "events.slice(-CONSOLE_MAX_LINES)" in html
finally:
tracker.stop()