.atonom/scripts/.manifest.json. Each entry records a relative path and the last synced remote SHA-256 hash. This is sync metadata, not a backup of previous script versions.
Pull intentionally
pull visits every visible Lua script tool.
Pull results include created, updated, unchanged, overwritten, skipped-local-edits, and skipped-no-script. A normal pull preserves a locally modified file. It still exits zero when files were skipped; read each result’s action.
pull --force overwrites local edits. It does not merge them.
Review and push
remote_changed_since_pull. A changed linked file is pushed with an expected_sha256 so the server can reject a stale update with HTTP 409.
push skips upload when the file matches the last synced hash. That no-op does not fetch the remote or prove it is still unchanged; use diff when you need a fresh comparison.
For a new local file, --tool-id identifies its remote target. Pulling the target first is preferable because it establishes a conflict-checking baseline. Files outside the configured scripts directory may be used with an explicit ID, but the CLI cannot remember their link in that workspace’s manifest.
Resolve a conflict without losing work
- Preserve your local file in version control or a backup outside the scripts directory.
- Run
atonom diff 42 --jsonand inspect the remote changes. - Once your edits are backed up, use
atonom pull 42 --forceto refresh the file and its baseline. - Reapply the intended edits to that refreshed file, merging the remote changes.
- Test again, review the new diff, and push normally.
push --force omits the expected hash; use it only for an intentional replacement of remote content. Do not use run as a shortcut around a rejected push: a default run saves without that hash check.
get --out also writes directly to its destination. It does not offer pull’s dirty-file protection. If you use it to inspect a remote copy, choose a separate scratch path.
Verify and enable
Keep environments separate
Use separate workspace roots for development, staging, and production. The manifest records a base URL, but the CLI does not enforce it as an environment guard. Verifyatonom config show and atonom status before writing to a different host.
Promote source files and fixtures; re-discover and explicitly link the target environment’s tool IDs. Do not copy a manifest and assume the IDs are portable. Avoid sharing a mutable scripts directory between concurrent editing agents.
