feat: continue tree rust family cutover

- add rust renderer/state-family scaffolds and inline compat host thinning for page tree, file tree, and picker
- route tree/filetree preflight, file projection, resource artifact, and stream delta contracts through rust plans
- preserve canonical move-order validation, file-tree search projection, and related frontend/runtime regression coverage
This commit is contained in:
lix-2026
2026-04-26 19:35:52 +08:00
parent 338bb2e20f
commit e564dfde02
93 changed files with 17492 additions and 1856 deletions
+6
View File
@@ -212,6 +212,8 @@ pub struct KernelProjectionFilter {
pub node_types: Vec<KernelNodeType>,
#[serde(default)]
pub edge_types: Vec<KernelEdgeType>,
pub query: Option<String>,
pub max_results: Option<usize>,
#[serde(default)]
pub include_deleted: bool,
}
@@ -526,6 +528,8 @@ mod tests {
filters: KernelProjectionFilter {
node_types: vec![KernelNodeType::Page, KernelNodeType::Folder],
edge_types: vec![KernelEdgeType::ParentOf],
query: Some("预算".into()),
max_results: Some(20),
include_deleted: false,
},
include_content: false,
@@ -535,6 +539,8 @@ mod tests {
let value = serde_json::to_value(&request).expect("request 应可序列化");
assert_eq!(value["projection"], json!("sidebar_tree"));
assert_eq!(value["subtree"]["rootNodeId"], json!("page_root"));
assert_eq!(value["filters"]["query"], json!("预算"));
assert_eq!(value["filters"]["maxResults"], json!(20));
let decoded: KernelProjectionRequest =
serde_json::from_value(value).expect("request 应可反序列化");