4runr-os 2.9.41 → 2.9.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
Binary file
|
package/mk3-tui/src/ui/layout.rs
CHANGED
|
@@ -144,7 +144,7 @@ fn render_header(f: &mut Frame, area: Rect, state: &AppState) {
|
|
|
144
144
|
|
|
145
145
|
// Line 1: Brand + version + mode + uptime - Bug 3 fix: Use "4Runr." with dot (matches brand logo)
|
|
146
146
|
// Use npm package version (2.9.24) - matches package.json
|
|
147
|
-
const PACKAGE_VERSION: &str = "2.9.
|
|
147
|
+
const PACKAGE_VERSION: &str = "2.9.43";
|
|
148
148
|
let brand_line = Line::from(vec![
|
|
149
149
|
Span::styled("4Runr.", Style::default().fg(BRAND_PURPLE).add_modifier(Modifier::BOLD)),
|
|
150
150
|
Span::styled(" AI AGENT OS", Style::default().fg(BRAND_VIOLET)),
|
|
@@ -408,58 +408,22 @@ fn render_option_details(f: &mut Frame, area: Rect, state: &AppState) {
|
|
|
408
408
|
.border_style(Style::default().fg(TEXT_DIM))
|
|
409
409
|
.style(Style::default().bg(BG_PANEL));
|
|
410
410
|
|
|
411
|
-
// CRITICAL:
|
|
412
|
-
|
|
411
|
+
// CRITICAL: Use the standard Ratatui pattern - Paragraph with .block()
|
|
412
|
+
// This is more reliable than rendering Block and Paragraph separately
|
|
413
|
+
let paragraph = Paragraph::new(content)
|
|
414
|
+
.block(block)
|
|
415
|
+
.wrap(Wrap { trim: true })
|
|
416
|
+
.style(Style::default().bg(BG_PANEL)); // Ensure background fills the block
|
|
413
417
|
|
|
414
|
-
//
|
|
415
|
-
// Ratatui panics if area coordinates exceed terminal buffer
|
|
418
|
+
// Validate area before rendering
|
|
416
419
|
let terminal_size = f.size();
|
|
417
|
-
let safe_inner = Rect {
|
|
418
|
-
x: inner.x.min(terminal_size.width.saturating_sub(1)),
|
|
419
|
-
y: inner.y.min(terminal_size.height.saturating_sub(1)),
|
|
420
|
-
width: inner.width.min(terminal_size.width.saturating_sub(inner.x)),
|
|
421
|
-
height: inner.height.min(terminal_size.height.saturating_sub(inner.y)),
|
|
422
|
-
};
|
|
423
|
-
|
|
424
|
-
// DEBUG: Log block inner area
|
|
425
|
-
unsafe {
|
|
426
|
-
if LOG_COUNT % 10 == 1 {
|
|
427
|
-
eprintln!("[SETUP-PORTAL] Block outer: x={}, y={}, w={}, h={}",
|
|
428
|
-
area.x, area.y, area.width, area.height);
|
|
429
|
-
eprintln!("[SETUP-PORTAL] Block inner (original): x={}, y={}, w={}, h={}",
|
|
430
|
-
inner.x, inner.y, inner.width, inner.height);
|
|
431
|
-
eprintln!("[SETUP-PORTAL] Terminal size: {}x{}", terminal_size.width, terminal_size.height);
|
|
432
|
-
eprintln!("[SETUP-PORTAL] Block inner (safe): x={}, y={}, w={}, h={}",
|
|
433
|
-
safe_inner.x, safe_inner.y, safe_inner.width, safe_inner.height);
|
|
434
|
-
|
|
435
|
-
// Warn if we had to clamp
|
|
436
|
-
if inner.x != safe_inner.x || inner.y != safe_inner.y ||
|
|
437
|
-
inner.width != safe_inner.width || inner.height != safe_inner.height {
|
|
438
|
-
eprintln!("[SETUP-PORTAL] ⚠️ WARNING: Inner area was clamped to fit terminal bounds!");
|
|
439
|
-
}
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
// Validate area before rendering block
|
|
444
420
|
if area.width == 0 || area.height == 0 ||
|
|
445
421
|
area.x >= terminal_size.width || area.y >= terminal_size.height {
|
|
446
|
-
eprintln!("[SETUP-PORTAL] ⚠️ ERROR: Invalid
|
|
447
|
-
return;
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
f.render_widget(block, area);
|
|
451
|
-
|
|
452
|
-
// Validate safe_inner before rendering paragraph
|
|
453
|
-
if safe_inner.width == 0 || safe_inner.height == 0 {
|
|
454
|
-
eprintln!("[SETUP-PORTAL] ⚠️ ERROR: Invalid inner area (zero size), skipping paragraph render");
|
|
422
|
+
eprintln!("[SETUP-PORTAL] ⚠️ ERROR: Invalid area, skipping render");
|
|
455
423
|
return;
|
|
456
424
|
}
|
|
457
425
|
|
|
458
|
-
|
|
459
|
-
let paragraph = Paragraph::new(content)
|
|
460
|
-
.wrap(Wrap { trim: true });
|
|
461
|
-
|
|
462
|
-
f.render_widget(paragraph, safe_inner);
|
|
426
|
+
f.render_widget(paragraph, area);
|
|
463
427
|
}
|
|
464
428
|
|
|
465
429
|
fn render_error_box(f: &mut Frame, area: Rect, state: &AppState) {
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "4runr-os",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.43",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.9.
|
|
5
|
+
"description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.9.43: Release prep. v2.9.42: Reverted Setup Portal to standard Ratatui pattern - simplified rendering to fix content overlap and mixing. ⚠️ Pre-MVP / Development Phase",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
8
8
|
"4runr": "dist/index.js",
|