Validation is staged in two layers:
- prove that the FS-first substrate is correct
- only then evaluate
llm-wikias a knowledge workflow
That split matters because storage, sync, search, and conflict-control failures should not be mixed with higher-level wiki quality evaluation.
Run the existing Rust tests first. They provide the correctness baseline.
Use canbench and deployed canister benchmarks for API-level workload validation.
The main benchmark targets are:
write_nodeappend_nodeedit_nodemove_nodedelete_nodelist_nodesglob_nodessearch_nodesexport_snapshotfetch_updates
- create
1KB,4KB,16KB, and64KBmarkdown nodes - append to an existing node
- apply plain-text edits to an existing node
- rename a node and confirm the new path appears while the old path disappears
- delete a node and recreate the same path
- update succeeds when
etagmatches - update fails when
etagmismatches - delete fails when
etagmismatches
list_nodesunder1,000and10,000nodes- deep
glob_nodes("**/*.md") search_nodeswith FTS enabled
- empty
fetch_updatesdelta - small
fetch_updatesdelta - rename returns the expected
removed_paths + changed_nodes - delete keeps
removed_pathsstable
- CRUD, move, search, and sync deltas behave consistently
etagconflicts fail as designed- physical delete followed by same-path recreation remains consistent
list_nodes,search_nodes, andfetch_updatesdo not collapse as node counts grow- small changes remain delta-syncable without falling back to full refresh
- single-operation transaction cost stays within an acceptable range
Once VFS validation is good enough, move on to workflow validation:
- navigation from
index.md - source-to-page update flow
- citations near the claims they support
- orphan-page detection
- search as navigation support
- coexistence of human edits and agent edits
cargo test --workspace
bash scripts/build-vfs-canister-canbench.shIf the fixed canbench runtime is available, also run:
bash scripts/run_canbench_guard.shSee:
- VFS_CORRECTNESS_CHECKLIST.md for coverage and known gaps
- VFS_DEPLOYED_CANISTER_BENCHMARKS.md for the deployed benchmark contract