Skip to content

Comments

Add EvalStatus message handling and UI display for IPC client#29

Open
jsfakian wants to merge 1 commit intolf-edge:mainfrom
jsfakian:Added-evalstatus-message-for-the-ipc-client
Open

Add EvalStatus message handling and UI display for IPC client#29
jsfakian wants to merge 1 commit intolf-edge:mainfrom
jsfakian:Added-evalstatus-message-for-the-ipc-client

Conversation

@jsfakian
Copy link

  • Add EvalStatus struct with evaluation platform status fields
  • Extend IpcMessage enum to support EvalStatus variant
  • Create EvalStatusPage UI component to display eval information
  • Add EvalStatus tab to main navigation
  • Implement message handling in application layer

- Add EvalStatus struct with evaluation platform status fields
- Extend IpcMessage enum to support EvalStatus variant
- Create EvalStatusPage UI component to display eval information
- Add EvalStatus tab to main navigation
- Implement message handling in application layer

Signed-off-by: Ioannis Sfakianakis <jsfakas@gmail.com>
@jsfakian jsfakian requested review from Copilot and rucoder and removed request for rucoder February 18, 2026 14:58
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds end-to-end support for receiving an EvalStatus IPC message, storing it in the model, and presenting it as a new UI tab.

Changes:

  • Introduces EvalStatus IPC type and IpcMessage::EvalStatus variant.
  • Stores the latest EvalStatus in MonitorModel and updates it in the application message handler.
  • Adds an EvalStatusPage and wires it into the UI navigation.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
src/ui/ui.rs Adds EvalStatus tab and registers the new page in the UI view stack.
src/ui/mod.rs Exposes the new evalstatus_page module.
src/ui/evalstatus_page.rs New UI page rendering evaluation status fields from the model.
src/model/model.rs Adds eval_status field and updater on MonitorModel.
src/ipc/message.rs Adds EvalStatus message variant and debug logging on decode.
src/ipc/eve_types.rs Defines the EvalStatus struct for serde (de)serialization.
src/application.rs Handles IpcMessage::EvalStatus by updating the model.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

}
_ => {}
}
// dumpt raw binary TPM logs to file
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in comment: 'dumpt' should be 'dump'.

Suggested change
// dumpt raw binary TPM logs to file
// dump raw binary TPM logs to file

Copilot uses AI. Check for mistakes.
Comment on lines +60 to +63
Span::styled(
eval_status.current_slot.clone(),
Style::default().fg(Color::Cyan),
),
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These .clone() calls allocate new Strings on every render pass. Since the data is already borrowed for the duration of render, prefer passing string references (e.g., eval_status.current_slot.as_str() / &eval_status.current_slot) to Span::styled to avoid repeated allocations.

Copilot uses AI. Check for mistakes.
Comment on lines +67 to +70
Span::styled(
eval_status.phase.clone(),
Style::default().fg(Color::Cyan),
),
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These .clone() calls allocate new Strings on every render pass. Since the data is already borrowed for the duration of render, prefer passing string references (e.g., eval_status.current_slot.as_str() / &eval_status.current_slot) to Span::styled to avoid repeated allocations.

Copilot uses AI. Check for mistakes.
Comment on lines +81 to +84
Span::styled(
eval_status.note.clone(),
Style::default().fg(Color::Yellow),
),
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These .clone() calls allocate new Strings on every render pass. Since the data is already borrowed for the duration of render, prefer passing string references (e.g., eval_status.current_slot.as_str() / &eval_status.current_slot) to Span::styled to avoid repeated allocations.

Copilot uses AI. Check for mistakes.
Comment on lines +89 to +92
Span::styled(
eval_status.last_updated.clone(),
Style::default().fg(Color::Green),
),
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These .clone() calls allocate new Strings on every render pass. Since the data is already borrowed for the duration of render, prefer passing string references (e.g., eval_status.current_slot.as_str() / &eval_status.current_slot) to Span::styled to avoid repeated allocations.

Copilot uses AI. Check for mistakes.
Comment on lines +96 to +99
Span::styled(
eval_status.test_start_time.clone(),
Style::default().fg(Color::Green),
),
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These .clone() calls allocate new Strings on every render pass. Since the data is already borrowed for the duration of render, prefer passing string references (e.g., eval_status.current_slot.as_str() / &eval_status.current_slot) to Span::styled to avoid repeated allocations.

Copilot uses AI. Check for mistakes.
Comment on lines +125 to +128
Span::styled(
eval_status.inventory_dir.clone(),
Style::default().fg(Color::Cyan),
),
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These .clone() calls allocate new Strings on every render pass. Since the data is already borrowed for the duration of render, prefer passing string references (e.g., eval_status.current_slot.as_str() / &eval_status.current_slot) to Span::styled to avoid repeated allocations.

Copilot uses AI. Check for mistakes.
Comment on lines +46 to +48
let model = model.borrow();

let text = if let Some(eval_status) = &model.eval_status {
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This shadows the model: &Rc<Model> parameter name, which makes the subsequent code harder to read. Consider renaming the borrowed value to something like model_ref (or similar) to avoid shadowing and improve clarity.

Suggested change
let model = model.borrow();
let text = if let Some(eval_status) = &model.eval_status {
let model_ref = model.borrow();
let text = if let Some(eval_status) = &model_ref.eval_status {

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant