← back to Filemaker Mcp
verification/e2e-proof.json
59 lines
{
"ticket": "TK-10953",
"intent": "Prove the com.steve.new-invoice-monitor launchd job reaches the FileMaker 401 empty-result branch and exits successfully after restoring locked dependencies.",
"risk_tier": "R3",
"environment": "Mac2 local launchd gui/501; FileMaker read-only dry-run; no Slack/email send and no cursor write",
"build_identity": "cd8f9737bd0d8a650d868f139411161dd9d5d885",
"timestamp": "2026-08-31T08:34:00Z",
"baseline": {
"scheduler_runs": 6450,
"scheduler_last_exit": 1,
"observed_error": "ERR_MODULE_NOT_FOUND: amazon-cognito-identity-js",
"dependency_directory": "absent"
},
"actions": [
{
"command": "npm ci --ignore-scripts --no-audit --no-fund",
"result": "PASS: restored 115 packages from package-lock.json"
},
{
"command": "npm ls --depth=0",
"result": "PASS: @modelcontextprotocol/sdk 1.29.0, amazon-cognito-identity-js 6.3.18, zod 3.25.76"
},
{
"command": "/opt/homebrew/bin/node scripts/new-invoice-monitor.mjs --dry-run",
"result": "PASS: exit 0; FileMaker 401 reported as zero invoices and nothing to post"
},
{
"command": "launchctl print gui/501/com.steve.new-invoice-monitor",
"result": "PASS: natural scheduled run advanced to 6454 and last exit code became 0"
},
{
"command": "bash ~/.agents/skills/cron-fire-canary/run.sh",
"result": "PASS for com.steve.new-invoice-monitor: state=ok, NOT-firing=0 fleet-wide"
}
],
"assertions": {
"file_boundary": "PASS: dependencies resolve from the committed lockfile; tracked source and lockfile unchanged",
"auth_negative_boundary": "PASS: blank FileMaker credentials exit 1 with the explicit missing-credentials error",
"filemaker_boundary": "PASS: authenticated dry-run reached the live FileMaker Data API and handled fmCode 401 as an empty result",
"scheduler_boundary": "PASS: launchd executed the configured Node command naturally and recorded exit 0",
"artifact_boundary": "PASS: /tmp/new-invoice-monitor.log was refreshed at 2026-08-31 01:32:57 PDT with the empty-result success message",
"state_boundary": "PASS: data/.last-invoice mtime, size, and SHA-256 were identical before and after the dry-run",
"side_effect_boundary": "PASS: DRY_RUN prevented Slack posting; FM401 returned before the post loop; no email route exists in this flow",
"retry_boundary": "PASS: the recurring launchd execution succeeded after earlier dependency-resolution failures without duplicate cursor movement"
},
"evidence": {
"launchd_label": "com.steve.new-invoice-monitor",
"launchd_runs_after": 6454,
"launchd_last_exit_after": 0,
"artifact": "/tmp/new-invoice-monitor.log",
"artifact_mtime": "2026-08-31T01:32:57-07:00",
"cursor_sha256_before": "096d74ce9cec29425c3eabd13897d930958fe87f93fa1a00146722b8b9423a83",
"cursor_sha256_after": "096d74ce9cec29425c3eabd13897d930958fe87f93fa1a00146722b8b9423a83",
"canary_state": "ok"
},
"cleanup": "No temporary records or external messages were created. Installed node_modules is gitignored runtime state retained for the scheduler.",
"verdict": "PASS"
}