)]}'
{
  "commit": "5851bc4b867b7491a9e001dc3338f796844bce9b",
  "tree": "a3ca1485a2a4c5ad632dc600475fef2a7fe419d4",
  "parents": [
    "9b54a17b475c53a1474ab13f1ca910f0073c3e2a"
  ],
  "author": {
    "name": "Zeyu Zhang",
    "email": "111627783+Alchuang22-dev@users.noreply.github.com",
    "time": "Thu Sep 10 11:18:30 2026 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Sep 10 11:18:30 2026 +0800"
  },
  "message": "Refactor IoTDB MCP Server and migrate agent enhancements (#18)\n\n* Refactor code and update server to current agent style\n\n* Mask password in startup config log output (#19)\n\n* Mask password in startup config log output\n\nThe startup log printed the full IoTDB config dict including the password field. Log a copy of the config with the password masked instead, and exclude the password from the Config repr.\n\n* Remove outdated smithery badge links\n\n* Upgrade apache-iotdb to 2.0.10\n\n* fix: fix P1 review problem\n\n* fix: fix P2 review problem\n\n* fix: fix bug in config params\n\n* fix: fix broken TableSession clear bug\n\n* fix: fix broken TableSession discard path\n\n* fix: close broken pipe after `ConnectionError`\n\n---------\n\nCo-authored-by: CritasWang \u003ccritas@outlook.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "92570d558e301a1704d9b5cab20e843c472444fa",
      "old_mode": 33188,
      "old_path": "Dockerfile",
      "new_id": "44cbd6283a9aedaef4acae65df7e7dfbe1211b20",
      "new_mode": 33188,
      "new_path": "Dockerfile"
    },
    {
      "type": "modify",
      "old_id": "c01ea90b657b780623bb7b40d74c1d2df699a5ea",
      "old_mode": 33188,
      "old_path": "README-zh.md",
      "new_id": "112d2f508b9bc5087910773a1ab8074490f3e2fa",
      "new_mode": 33188,
      "new_path": "README-zh.md"
    },
    {
      "type": "modify",
      "old_id": "b94317bd9be7647a9b90204d4c95cd02cb3a0f6f",
      "old_mode": 33188,
      "old_path": "README.md",
      "new_id": "622e785cec7cd6531624b7abacfc1b74bd874be9",
      "new_mode": 33188,
      "new_path": "README.md"
    },
    {
      "type": "modify",
      "old_id": "db52b61fd93b57b88b8d9615179f5e438701e08f",
      "old_mode": 33188,
      "old_path": "pyproject.toml",
      "new_id": "ca7327054325be0058e3bb16d161b25f2697bcf7",
      "new_mode": 33188,
      "new_path": "pyproject.toml"
    },
    {
      "type": "modify",
      "old_id": "9d8a9bb67fe852f39f93e641a5c36dc4d2d3187d",
      "old_mode": 33188,
      "old_path": "smithery.yaml",
      "new_id": "a820101399af3fb5fc9604263a9bdca2dd0a84cb",
      "new_mode": 33188,
      "new_path": "smithery.yaml"
    },
    {
      "type": "modify",
      "old_id": "184f75b38bcdbd7ce58bb89f7414fda3be24dd35",
      "old_mode": 33188,
      "old_path": "src/iotdb_mcp_server/__init__.py",
      "new_id": "86dc83dd0870932027875c95c3ed591a7532cd2c",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/__init__.py"
    },
    {
      "type": "modify",
      "old_id": "7e4ad78be611aa7181f67818b8338be46b0d345e",
      "old_mode": 33188,
      "old_path": "src/iotdb_mcp_server/config.py",
      "new_id": "f0b542ec14da91f1dcaf025630ddfe206e4a9e93",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/config.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "782318a9f884b641b77ff08b93e37e0f9e97544d",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/result_store.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4b3f4180a9c0526be055b3a19cf609e9b78cc59a",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/runtime_policy.py"
    },
    {
      "type": "modify",
      "old_id": "489687ec6a4b9c860d5236f5362303b033456746",
      "old_mode": 33188,
      "old_path": "src/iotdb_mcp_server/server.py",
      "new_id": "b0935e9a779a94948ca1ec7cb793f6dda9aa9a21",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/server.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "27d1dad063ff602ee923aa179dbbfa0a4567b554",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5578c1ec3987f51eb8f1e10147e09903ff45c13b",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/database.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3c67e1d66d7250a8122d91618bc9e8a4f5d9479b",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/explain.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b4c138df23ee6e14fa0d8c6756969b54e586d59a",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/json_response.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b7a83985614288f3284814860a49210c8053bd3e",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/metadata.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "577c17230eea80c2f8ea8bf4b10cf56b8d930200",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/model.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "096a36bf57d3afc6322a478c3c2f45b50c90b516",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/query.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7d64f525b2b62bb64a2903043b22406acd63e0cf",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/results.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c768389160ff239fed5aba692c7dbf98c3867250",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/runtime_policy.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "055c3e5bfdca2bc3926b8ab18d969008cf593811",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/sql_driver.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "958a05f33fa04f28bc4dc47faf16b7b025076dd2",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/table.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e07aadddafb8b44d11787f176ee8828c4efb7830",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/target_selection.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e51e52eded82a2cc73938a91a3155f589d58f57",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/targets.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "89b034e8bf780aade0f8ca437c75471fcee4ae86",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/timeseries.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7d2a87ba379a72301df75aecab9137591b670d66",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/tree_sql_guardrails.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b22786ecc1c098f8be4cc06f56e8094700c95306",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/ttl.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e720c351df27c508459acfd9cb1c93b91337e4b4",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/udf.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "525011254ac46985409774d51a8a396b860bcd06",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/services/write.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3321440857e1b866df36ebd6827c1c65cd8500da",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/session_manager.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3bc064094060e97e9acfffb92e3621a71dbef1e1",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/target_cli.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "63940a5ca088e4e7dc97080be378cc9989d1e814",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/target_lifecycle.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ed3462b7e10847662bd0367bb468bf3b691155b0",
      "new_mode": 33188,
      "new_path": "src/iotdb_mcp_server/target_registry.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a2f18386ef20c8f8ef9dea5a0fa505405df9c260",
      "new_mode": 33188,
      "new_path": "tests/test_config_fallback.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "59d33dfc7e7842c77385228d287519f776127776",
      "new_mode": 33188,
      "new_path": "tests/test_database_target_routing.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "85c55cec9dcf5253dc7b468f637b831f97157af4",
      "new_mode": 33188,
      "new_path": "tests/test_readonly_target_routing.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0c7830aac3547e5eabf68e1c667a53073a04c508",
      "new_mode": 33188,
      "new_path": "tests/test_result_store.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "df1e21363611b2400e6cf9a5d520171844e2b6f1",
      "new_mode": 33188,
      "new_path": "tests/test_runtime_policy.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d931031990748c24a98de7f41615db007d54d22a",
      "new_mode": 33188,
      "new_path": "tests/test_session_manager_auth_cache.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b5ab34e36adbe38961d743f4d4154e90517db428",
      "new_mode": 33188,
      "new_path": "tests/test_sql_driver_batch.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "235d46e0698c31e54decc5ae8acf989a6f7a1aa1",
      "new_mode": 33188,
      "new_path": "tests/test_target_cli.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "008aacf1b29a5a34fe671e72c3a79db91b4175c1",
      "new_mode": 33188,
      "new_path": "tests/test_target_lifecycle.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f80c1fe522ab5e876b6a7a58b7714656d1c07fc9",
      "new_mode": 33188,
      "new_path": "tests/test_udf_results.py"
    }
  ]
}
