Tool · Data & provenance
Manifest File Relocator
Preview a file move, reject stale plans and restore moved files from the recorded journal.
Repository: CinvanaAI/manifest-file-relocator
Recorded synthetic example. Source with a complete offline example.
See the idea in action.
The real planner, executor and rollback restore the original bytes. The demo never touches your existing files.
Two disposable files and a manifest describing their new relative destinations.
{
"plan": {
"version": 1,
"workspace_name": "workspace",
"manifest_sha256": "ec078cda00f917153cc2d96d743e48c75a50a1faa18084f2b8918bf421cb7afc",
"item_count": 2,
"items": [
{
"operation_id": "accept-text",
"source": "inbox/alpha.txt",
"destination": "accepted/alpha.txt",
"bytes": 15,
"sha256": "71f49e4f25b46d85934e84dc2cd7263fc3e886196e66fb4dae5da8d290c29e1c"
},
{
"operation_id": "accept-text",
"source": "inbox/beta.txt",
"destination": "accepted/beta.txt",
"bytes": 14,
"sha256": "895530c53db52ae4d83617feecea2e53e76b819051f9e3c677c887c76b001504"
}
],
"plan_sha256": "af7f1eb12d01bae9c36188c9788a71b8228fa27751fb6c2f9ed61d3984438af6"
},
"execution": {
"version": 1,
"plan_sha256": "af7f1eb12d01bae9c36188c9788a71b8228fa27751fb6c2f9ed61d3984438af6",
"started_at": "2026-09-19T14:14:23Z",
"status": "complete",
"items": [
{
"operation_id": "accept-text",
"source": "inbox/alpha.txt",
"destination": "accepted/alpha.txt",
"bytes": 15,
"sha256": "71f49e4f25b46d85934e84dc2cd7263fc3e886196e66fb4dae5da8d290c29e1c",
"status": "moved"
},
{
"operation_id": "accept-text",
"source": "inbox/beta.txt",
"destination": "accepted/beta.txt",
"bytes": 14,
"sha256": "895530c53db52ae4d83617feecea2e53e76b819051f9e3c677c887c76b001504",
"status": "moved"
}
],
"journal_sha256": "efc93a628cd1f7f5ed20a98d8c2947afd4efd262affaacc6109f2df871301c8a",
"finished_at": "2026-09-19T14:14:23Z"
},
"rollback": {
"version": 1,
"source_journal_sha256": "efc93a628cd1f7f5ed20a98d8c2947afd4efd262affaacc6109f2df871301c8a",
"started_at": "2026-09-19T14:14:23Z",
"status": "complete",
"items": [
{
"operation_id": "accept-text",
"source": "inbox/beta.txt",
"destination": "accepted/beta.txt",
"bytes": 14,
"sha256": "895530c53db52ae4d83617feecea2e53e76b819051f9e3c677c887c76b001504",
"status": "restored"
},
{
"operation_id": "accept-text",
"source": "inbox/alpha.txt",
"destination": "accepted/alpha.txt",
"bytes": 15,
"sha256": "71f49e4f25b46d85934e84dc2cd7263fc3e886196e66fb4dae5da8d290c29e1c",
"status": "restored"
}
],
"rollback_sha256": "4beaba42e986404a2e7d59bd4dbb0c41022abec20a70a80e750ec1a013ca573d",
"finished_at": "2026-09-19T14:14:23Z"
}
}Try the example.
From the repository root, follow the dependency requirements in the README. This example uses supplied synthetic material.
python -m pip install -e . python -m examples.offline_demo
The real planner, executor and rollback restore the original bytes. The demo never touches your existing files.
Complete setup and instructions ↗The interesting part.
The reviewed plan is a byte-specific authorization boundary, and rollback operates against its own observed journal.
Where it came from.
A May 2026 mover.py selection script from a classification workspace.
May 2026 — Historical mover.py script. Source ↗
Replaces the unsafe execution model with reviewed plans, content checks, journals and rollback.
The original folder organization and private instruction files are not reproduced.