{
  "project": "ai-knowledge-service",
  "status": "passed",
  "startedAt": "2026-11-06T08:25:21.080987+00:00",
  "verifiedAt": "2026-11-06T08:25:54.578524+00:00",
  "seconds": 33.5,
  "command": "mvn -o -B -ntp test",
  "exitCode": 0,
  "codeSha256": "99ef8cf3594ea90fbd81012982bf3974275833072b86cd933f9bafbb2386b587",
  "unchangedDuringTests": true,
  "summary": {
    "tests": 48,
    "failures": 0,
    "errors": 0,
    "skipped": 0,
    "passed": 48
  },
  "suites": [
    {
      "name": "cn.itfeng.aiknowledge.IndependentAuthorizationTest",
      "tests": 6,
      "failures": 0,
      "errors": 0,
      "skipped": 0
    },
    {
      "name": "cn.itfeng.aiknowledge.IndependentDocumentVersionTest",
      "tests": 7,
      "failures": 0,
      "errors": 0,
      "skipped": 0
    },
    {
      "name": "cn.itfeng.aiknowledge.IndependentPersistenceTest",
      "tests": 2,
      "failures": 0,
      "errors": 0,
      "skipped": 0
    },
    {
      "name": "cn.itfeng.knowledge.EmbeddingIndexIdentityTest",
      "tests": 1,
      "failures": 0,
      "errors": 0,
      "skipped": 0
    },
    {
      "name": "cn.itfeng.knowledge.IndependentConfigurationTest",
      "tests": 3,
      "failures": 0,
      "errors": 0,
      "skipped": 0
    },
    {
      "name": "cn.itfeng.knowledge.IndependentProviderContractTest",
      "tests": 20,
      "failures": 0,
      "errors": 0,
      "skipped": 0
    },
    {
      "name": "cn.itfeng.knowledge.IndependentStreamingTest",
      "tests": 5,
      "failures": 0,
      "errors": 0,
      "skipped": 0
    },
    {
      "name": "cn.itfeng.knowledge.IntegrationTest",
      "tests": 4,
      "failures": 0,
      "errors": 0,
      "skipped": 0
    }
  ],
  "fixtureOnly": true,
  "limitations": [
    "Local HTTP fixtures and isolated H2 only; no real provider called.",
    "Tests do not establish semantic quality, production capacity or complete prompt-injection resistance.",
    "SSE returns a complete answer event, not provider token streaming."
  ],
  "sourceFiles": [
    {
      "path": ".env.example",
      "bytes": 152,
      "sha256": "c28e32b7a60c4c5c8820a689619a9004a891fec3935cf085f9fbf64aae353688"
    },
    {
      "path": ".gitignore",
      "bytes": 29,
      "sha256": "6b423d2b1e9a0853ae36957e59eddbf6a0448943e857d62a4041577bfc27224a"
    },
    {
      "path": "API.md",
      "bytes": 3985,
      "sha256": "3c3d2ddfdc6ff83d19b8b2429cf7c42d928fe5c71cac23317c52122ad3ee323c"
    },
    {
      "path": "LICENSE",
      "bytes": 1146,
      "sha256": "785cef57982b0d63187c6a2416ef1e2aee6110dedf31104b524939877c3817a0"
    },
    {
      "path": "NOTICE.md",
      "bytes": 522,
      "sha256": "048dedfa9f47f72960708042e2d16a8d52dd98a17689ed02e9e832a7236deb1d"
    },
    {
      "path": "pom.xml",
      "bytes": 1498,
      "sha256": "f6e14bc4b7085bf806f233e0cabef1e408b7ed7df186f5c19845c05bedd466f0"
    },
    {
      "path": "README.md",
      "bytes": 2761,
      "sha256": "c4ee74638264845782853576f6aa78cbd44a7cfe241fd1248402fae3e707ded6"
    },
    {
      "path": "src/main/java/cn/itfeng/knowledge/Api.java",
      "bytes": 5551,
      "sha256": "b5362ab3ed7ff6a9ac4823e6b7f1c9a5fbe25f3f621ff430ae60fa493e3759ce"
    },
    {
      "path": "src/main/java/cn/itfeng/knowledge/Application.java",
      "bytes": 415,
      "sha256": "6e4932d83b77b7a72e7961204617f65b135ca9807f498565b335d6fbc95c4932"
    },
    {
      "path": "src/main/java/cn/itfeng/knowledge/Auth.java",
      "bytes": 7041,
      "sha256": "48d246f4f694b99d78e45e02a43321a7f8e1cb075ada45496ce76d5470a1b4bf"
    },
    {
      "path": "src/main/java/cn/itfeng/knowledge/Errors.java",
      "bytes": 2807,
      "sha256": "057d73e007233c8846368eb96157abe03e4f1eb2446104e0e41e51a47548c9df"
    },
    {
      "path": "src/main/java/cn/itfeng/knowledge/Knowledge.java",
      "bytes": 9834,
      "sha256": "a6292b4947b05b3ebc5742aac1b20d7072a0443276fb987a92c7518520d0ea8e"
    },
    {
      "path": "src/main/java/cn/itfeng/knowledge/Model.java",
      "bytes": 4325,
      "sha256": "ae9fd6873e93b330fd17126145dfe3b4b86fec66df561ea385dced1f19f0636d"
    },
    {
      "path": "src/main/resources/application.properties",
      "bytes": 502,
      "sha256": "565582d2e64d5adfcd6c492629e35fcbd1b7d45cbe3afee8749736c6e0296e45"
    },
    {
      "path": "src/main/resources/schema.sql",
      "bytes": 1094,
      "sha256": "ae395b887025698d069284e4a9439d8d45d4b765b1ad7445b2603f10cce57d4c"
    },
    {
      "path": "src/main/resources/static/console.js",
      "bytes": 560,
      "sha256": "120445721de0f31f9f9d60ccb4d4be541f8d10229c67a6e42fad2bfa777a2162"
    },
    {
      "path": "src/main/resources/static/index.html",
      "bytes": 570,
      "sha256": "a5db7d7122d08d18dbf4c1c7959cf5ccbb9999cf2ebc29f2795772fa490af685"
    },
    {
      "path": "src/main/resources/static/logo.png",
      "bytes": 447881,
      "sha256": "3b44b118de48fa93dec9400eed4ea97b55a9edd58f53e0755ccac417695880f8"
    },
    {
      "path": "src/test/java/cn/itfeng/aiknowledge/IndependentAuthorizationTest.java",
      "bytes": 12152,
      "sha256": "40f70a8823001b7c157a35505d8a605a1195762d36028c54e8d9b1de92b87fa2"
    },
    {
      "path": "src/test/java/cn/itfeng/aiknowledge/IndependentConfigurationTest.java",
      "bytes": 6707,
      "sha256": "6657c31a8c48822c3d26d9ae50a7beb3925c65e91d9be69d9532820353e25042"
    },
    {
      "path": "src/test/java/cn/itfeng/aiknowledge/IndependentDocumentVersionTest.java",
      "bytes": 11735,
      "sha256": "7d1b2630541ca7c60f8e8e8eefcaf05793e756f7506f621f183780945799c539"
    },
    {
      "path": "src/test/java/cn/itfeng/aiknowledge/IndependentPersistenceTest.java",
      "bytes": 7779,
      "sha256": "21fb19c41a46ccebc92c2d0703c41d1aa50eade97f76ba2ac137663dac0f82b2"
    },
    {
      "path": "src/test/java/cn/itfeng/aiknowledge/IndependentProviderContractTest.java",
      "bytes": 9520,
      "sha256": "baf214681baee45da006bce9975c0e9e385cd425bc51c6b7830b29d8dbb6bfda"
    },
    {
      "path": "src/test/java/cn/itfeng/aiknowledge/IndependentStreamingTest.java",
      "bytes": 11893,
      "sha256": "7c16fd3f78eef8dd9020d63c3b85ed0d9bf50655284aea80e3c2b610ac2f9112"
    },
    {
      "path": "src/test/java/cn/itfeng/knowledge/EmbeddingIndexIdentityTest.java",
      "bytes": 5000,
      "sha256": "c5998654590ede05113099c0180d0d3cce01cf7d5f80aecf36bea4cd025b27d7"
    },
    {
      "path": "src/test/java/cn/itfeng/knowledge/IntegrationTest.java",
      "bytes": 6593,
      "sha256": "73ec1a573eb9569ba258d5f6ace1e88f0869df0936957d402b1f3e2e128720a7"
    },
    {
      "path": "start.cmd",
      "bytes": 52,
      "sha256": "8d757a3be43dd52c13cd824782fc3396ec00cc27e2f296ebd6c19bb286c66c27"
    },
    {
      "path": "start.sh",
      "bytes": 68,
      "sha256": "f4f7b8c0abbd22276d43cc7a9eb76cc4e60a5709b1307d096c7202184ad32cd1"
    }
  ],
  "archive": {
    "file": "ai-knowledge-service.zip",
    "bytes": 472342,
    "sha256": "370d7684a83ec4ea2a4d1992dcd07a43d7364ce405a9fbdbbbbcc67c1cccc6f4",
    "verifiedFiles": 29
  }
}
