Skip to main content

vtcode_core/utils/
migration.rs

1use crate::config::VTCodeConfig;
2use serde_json::json;
3
4/// Apply backward-compatible defaults for new config sections.
5pub fn apply_migration_defaults(config: &mut VTCodeConfig) {
6    if config.tools.plugins.manifests.is_empty() {
7        config.tools.plugins.manifests = vec!["~/.vtcode/plugins".into()];
8    }
9}
10
11/// Emit a structured migration summary for callers.
12pub fn migration_summary(config: &VTCodeConfig) -> serde_json::Value {
13    json!({
14        "plugins": {
15            "enabled": config.tools.plugins.enabled,
16            "manifests": config.tools.plugins.manifests,
17        },
18        "security": {
19            "zero_trust": config.security.zero_trust_mode,
20            "integrity_checks": config.security.integrity_checks,
21        }
22    })
23}
24
25#[cfg(test)]
26mod tests {
27    use super::*;
28
29    #[test]
30    fn fills_missing_defaults() {
31        let mut config = VTCodeConfig::default();
32        apply_migration_defaults(&mut config);
33        assert!(!config.tools.plugins.manifests.is_empty());
34    }
35}