basemodo diff
Show what a Deploy changed in its App's code, file by file.
basemodo diff [OPTIONS] <DEPLOY> [OTHER]Compares the Deploy's code with the code of the Deploy live just before it went live, so a Rollback shows what it undid; a Deploy that never went live is compared with the one live when it ended, and the App's first Deploy with no code. With a second Deploy of the same App, compares the first with it. Each file says whether it was added, changed or removed, or only its mode changed (executable or not), with the lines added and removed and its unified diff. Text files of up to 1 MB are compared line by line; a binary or larger file is too large to compare. A file moved is one removed and one added. A long diff is cut: the files past it are named, each to ask for alone with --path.
Arguments
DEPLOY(required): The Deploy whose changes to show (its id, from basemodo deploys).OTHER: Another Deploy of the same App to compare it with. Default: the one live just before it went live (live when it ended, for one that never went live).--path <PATH>: Compare only this file, or the files of this folder: how to see a file whose diff a long answer left out.
Like every command, it also takes the global options --json and --api-url.
Examples
Show what a Deploy changed (its id from basemodo deploys):
basemodo diff 0b8f6a52-3f0e-4c1e-9a57-5d1c2e7f9a10Show what changed since an older Deploy:
basemodo diff 0b8f6a52-3f0e-4c1e-9a57-5d1c2e7f9a10 7c1d9e30-6a2b-4f8e-b1c5-3e9a0d2f4b67Show one file a long diff left out:
basemodo diff 0b8f6a52-3f0e-4c1e-9a57-5d1c2e7f9a10 --path src/app.tsOutput
With --json, it prints {"deploy", "against" (the Deploy compared with, null for the first), "changes": {"files_added", "files_changed", "files_removed", "lines_added", "lines_removed"}, "files": [{"path", "status" (added, changed, removed or mode), "mode" (100644, or 100755 for executable), "previous_mode", "lines_added", "lines_removed", "diff", "too_large_to_compare", "left_out"}], "left_out": [paths whose diff the answer left out]}. A Deploy of another App, as either, is an error with code deploy_not_found; one whose code is no longer kept, code_not_kept.
From an agent
Basemodo's MCP serves it as the tool diff. It only reads, so an agent's client may run it without asking you. Its arguments are the command's, named as JSON keys: deploy (text), other (text), path (text). It answers what the command prints with --json.