I'm running the agent-canvas. Sometimes the dialog shows calls to the file editor that are somehow showing up in the conversation. The agent assumes at this point that the conversation is over and stops.
I see the issue now - the TableScan case in the physical planner doesn't create an operator at all. Let me fix the physical planner to properly use the TableScanNode's table_handle and the TableScanContext:
file_editorstr_replace
path:/tmp/conversation-worktrees/c9601d84-1230-4c46-808f-1a3f60fd110a/hypatia/crates/hypatia-execution/src/physical_planner.rs
old_str> // These nodes have corresponding operators in hypatia-execution
TableScan(_table_scan_node) => {
// TableScanOperator exists in operator/table_scan.rs
// Full integration requires:
// 1. Proper Arc
ConnectorTableHandle to Box
dyn ConnectorTableHandle conversion
// 2. Split discovery from connector
// 3. Column handle resolution
// For now, table scan requires connector context at runtime
}
/parameter
parameter name="new_str // These nodes have corresponding operators in hypatia-execution
TableScan(table_scan_node) => {
// Create TableScanOperator using the table_handle and context
if let Some(ref ctx) = self.table_scan_context {
// Convert Arc
dyn ConnectorTableHandle to Box
dyn ConnectorTableHandle
let table_handle: Box
dyn ConnectorTableHandle = table_scan_node
.table_handle
.clone()
.into_boxed();
// Get the page source provider from context
let page_source_provider = ctx.page_source_provider.clone();
let transaction = ctx.transaction.clone();
let session = ctx.session.clone();
// Create the TableScanOperator with the connector's page source provider
let config = TableScanConfig::new(
page_source_provider,
transaction,
session,
table_handle,
);
let table_scan_op = TableScanOperator::new(config);
operators.push(Box::new(table_scan_op));
} else {
// No table scan context - create empty operator (placeholder)
tracing::warn!("No TableScanContext available - table scan will return no data");
}
}
/parameter
/invoke
/minimax:tool_call