)]}'
{
  "commit": "8c03c6b6f793f19eabb97556a4819125beb83197",
  "tree": "6b3c189b71a8d631fa296d3f3f7c0b874c6fbc09",
  "parents": [
    "1bcf0449be428268b8530dc7822a457469409788"
  ],
  "author": {
    "name": "deacon",
    "email": "marksoccerman1@aol.com",
    "time": "Mon Mar 16 00:29:20 2026 -0400"
  },
  "committer": {
    "name": "deacon",
    "email": "marksoccerman1@aol.com",
    "time": "Mon Mar 16 00:29:20 2026 -0400"
  },
  "message": "fix: address Copilot review feedback\n\n- Remove l.command from debug logs in trim_links() to avoid leaking sensitive\n  command payloads; log ability_id and count only\n- Fix UnboundLocalError: move UNSET DROP debug log to after remove_links_with_unset_variables()\n  and log counts (before/after) instead of last-iterated link reference\n- Replace redundant hasattr(self, \u0027get_config\u0027) guard with direct get_config() call;\n  add explicit None check and int() coercion with ValueError/TypeError fallback to\n  avoid TypeError when config value is a string or None\n- Add int() coercion guard around executor.timeout comparison to avoid TypeError\n- Rewrite tests to exercise the production add_test_variants() method with real\n  link/agent mocks rather than inlining the capping logic\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "38fd751e78980c8faa287dbc0b68ab6469bb4263",
      "old_mode": 33188,
      "old_path": "app/utility/base_planning_svc.py",
      "new_id": "99c1be7571b140fdaeadd8e17c8a0a485c0db064",
      "new_mode": 33188,
      "new_path": "app/utility/base_planning_svc.py"
    },
    {
      "type": "modify",
      "old_id": "48da8db24167e1420157bf251089dc21585dd499",
      "old_mode": 33188,
      "old_path": "tests/security/test_link_timeout.py",
      "new_id": "69f1ced580a2966ad066f2479c7c873ff77fa378",
      "new_mode": 33188,
      "new_path": "tests/security/test_link_timeout.py"
    }
  ]
}
