# Universal machine-model synchronization

Tool:

```
/opt/router-ops/bin/router-machine-model-sync
```

VM101 profile:

```
/opt/router-ops/etc/machine-models/vm101.json
```

Current published model:

https://admissions-instances-geneva-radius.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260712-130249_vm101_model_rootfs_v1/

Current managed rootfs:

https://admissions-instances-geneva-radius.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260712-130249_vm101_model_rootfs_v1/rootfs/

## Managed selectors

The machine profile supports two selector types:

- `include_roots`: exact files or recursively managed directories.
- `include_globs`: shell file patterns expanded on the remote machine.

VM101 uses:

```
/root/hmn/hmn-*.sh
```

for HideMyName program files.

The complete `/root/hmn` directory is deliberately not managed because it
also contains downloaded VPN configurations, runtime state, reports, caches,
logs, backups and test evidence.

New root-level files ending in `hmn-*.sh` are included automatically.
Files such as `*.sh.before-...` are not matched.
