pub struct GhostCommandReport {
pub frontend_only: Vec<GhostCommand>,
pub registry_only: Vec<GhostCommand>,
pub total_frontend_commands: usize,
pub total_registry_commands: usize,
}Expand description
Report of commands that exist on only one side of the introspection registry boundary (frontend IPC traffic vs. the registry Victauri knows about).
IMPORTANT — what frontend_only does and does not mean: it is the set of
commands invoked from the frontend that are absent from Victauri’s
introspection registry (the #[inspectable] / register_command_names set).
That registry is usually a subset of the app’s real tauri::generate_handler!
command set, so a frontend_only entry is only a true “ghost” (a call with
no backend handler — a typo/dead command) when the registry mirrors the app’s
full handler list. If the registry is empty or sparse, frontend_only is
dominated by perfectly real, merely-uninstrumented commands and must NOT be read
as a bug list. The MCP/REST detect_ghost_commands tool annotates each report
with a reliability signal for exactly this reason. registry_only is purely
informational (registered handlers never invoked during the observation window).
Fields§
§frontend_only: Vec<GhostCommand>Commands invoked from the frontend but absent from Victauri’s introspection registry. A candidate ghost — only a real ghost if the registry is complete.
registry_only: Vec<GhostCommand>Informational: registered in the backend but never invoked from the frontend.
total_frontend_commands: usizeTotal unique commands observed from the frontend.
total_registry_commands: usizeTotal commands registered in the backend registry.
Trait Implementations§
Source§impl Clone for GhostCommandReport
impl Clone for GhostCommandReport
Source§fn clone(&self) -> GhostCommandReport
fn clone(&self) -> GhostCommandReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for GhostCommandReport
impl Debug for GhostCommandReport
Source§impl<'de> Deserialize<'de> for GhostCommandReport
impl<'de> Deserialize<'de> for GhostCommandReport
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for GhostCommandReport
§Examples
use victauri_core::{GhostCommandReport, GhostCommand, GhostSource};
let report = GhostCommandReport {
frontend_only: vec![
GhostCommand {
name: "delete".to_string(),
source: GhostSource::FrontendOnly,
description: None,
},
],
registry_only: vec![],
total_frontend_commands: 3,
total_registry_commands: 2,
};
assert_eq!(
report.to_string(),
"1 ghost command(s) (3 frontend, 2 registry)"
);
impl Display for GhostCommandReport
§Examples
use victauri_core::{GhostCommandReport, GhostCommand, GhostSource};
let report = GhostCommandReport {
frontend_only: vec![
GhostCommand {
name: "delete".to_string(),
source: GhostSource::FrontendOnly,
description: None,
},
],
registry_only: vec![],
total_frontend_commands: 3,
total_registry_commands: 2,
};
assert_eq!(
report.to_string(),
"1 ghost command(s) (3 frontend, 2 registry)"
);impl Eq for GhostCommandReport
Source§impl PartialEq for GhostCommandReport
impl PartialEq for GhostCommandReport
Source§fn eq(&self, other: &GhostCommandReport) -> bool
fn eq(&self, other: &GhostCommandReport) -> bool
self and other values to be equal, and is used by ==.