lobster-full-engine-validation-20260619-123351.json 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  1. {
  2. "companyId": 338,
  3. "includeTravelChain": false,
  4. "includeTravelStress": false,
  5. "startedAt": "2026-06-19 12:33:51",
  6. "sections": {
  7. "engineHealth": {
  8. "passed": true,
  9. "health": {
  10. "companyId": 338,
  11. "healthy": true,
  12. "missingCore": [
  13. ],
  14. "missingOptional": [
  15. ],
  16. "passThreshold": 120
  17. },
  18. "message": "core beans wired"
  19. },
  20. "integrationTests": {
  21. "passed": false,
  22. "summary": "2/4 tests passed in 1001ms",
  23. "details": [
  24. "[FAIL] NodeTypeService: START node not found",
  25. "[FAIL] DynamicNodeExecutor: Judgment node execution failed",
  26. "[PASS] MultiModelWorkflowGenerator: All tests passed",
  27. "[PASS] ModelConfigService: All tests passed"
  28. ],
  29. "executionTimeMs": 1001,
  30. "message": "2/4 tests passed in 1001ms"
  31. },
  32. "phase2Replay": {
  33. "passed": true,
  34. "verify": {
  35. "companyId": 338,
  36. "archiveTableExists": false,
  37. "hotIndexExists": true,
  38. "hotReplayRows": 66,
  39. "eventLogRows": 66,
  40. "archiveRows": 0,
  41. "archiveNote": "table missing or query failed",
  42. "status": "ok"
  43. },
  44. "message": "phase2 replay verify ok"
  45. },
  46. "pageLinkProbes": {
  47. "totalPages": 32,
  48. "requiredTotal": 17,
  49. "requiredPassed": 17,
  50. "optionalSkipped": 0,
  51. "failures": [
  52. ],
  53. "passed": true,
  54. "durationMs": 2490,
  55. "pages": [
  56. {
  57. "path": "/lobster/company-workflowLobster",
  58. "title": "Workflow templates",
  59. "probe": "templateList",
  60. "required": true,
  61. "passed": true,
  62. "status": "OK",
  63. "message": "templates=38"
  64. },
  65. {
  66. "path": "/lobster/workflow-execution",
  67. "title": "Workflow execution tasks",
  68. "probe": "instanceList",
  69. "required": true,
  70. "passed": true,
  71. "status": "OK",
  72. "message": "instances=428"
  73. },
  74. {
  75. "path": "/lobster/instance",
  76. "title": "Instance monitor",
  77. "probe": "instanceMonitor",
  78. "required": true,
  79. "passed": true,
  80. "status": "OK",
  81. "message": "monitor list ok, count=428"
  82. },
  83. {
  84. "path": "/lobster/prompt",
  85. "title": "Prompt management",
  86. "probe": "promptList",
  87. "required": true,
  88. "passed": true,
  89. "status": "OK",
  90. "message": "prompt rows=49"
  91. },
  92. {
  93. "path": "/lobster/sensitive-words",
  94. "title": "Sensitive words",
  95. "probe": "sensitiveWords",
  96. "required": true,
  97. "passed": true,
  98. "status": "OK",
  99. "message": "words=89"
  100. },
  101. {
  102. "path": "/lobster/forbidden-words",
  103. "title": "Forbidden words",
  104. "probe": "forbiddenWords",
  105. "required": false,
  106. "passed": false,
  107. "status": "FAIL",
  108. "message": "\r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \u0027fs_tenant_cs1.company_lobster_replace_word\u0027 doesn\u0027t exist\r\n### The error may exist in URL [jar:file:/D:/ylrz_saas_new/java/fs-saas-company/target/fs-saas-company.jar!/BOOT-INF/lib/fs-service-1.1.0.jar!/mapper/lobster/LobsterReplaceWordMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, tenant_id, word_type, content, replace_text, enabled, sort, create_time FROM company_lobster_replace_word WHERE (tenant_id = 0 OR tenant_id = ?) AND word_type = ? ORDER BY tenant_id, sort DESC, id DESC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \u0027fs_tenant_cs1.company_lobster_replace_word\u0027 doesn\u0027t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \u0027fs_tenant_cs1.company_lobster_replace_word\u0027 doesn\u0027t exist"
  109. },
  110. {
  111. "path": "/lobster/typo-words",
  112. "title": "Typo words",
  113. "probe": "typoWords",
  114. "required": false,
  115. "passed": false,
  116. "status": "FAIL",
  117. "message": "\r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \u0027fs_tenant_cs1.company_lobster_replace_word\u0027 doesn\u0027t exist\r\n### The error may exist in URL [jar:file:/D:/ylrz_saas_new/java/fs-saas-company/target/fs-saas-company.jar!/BOOT-INF/lib/fs-service-1.1.0.jar!/mapper/lobster/LobsterReplaceWordMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, tenant_id, word_type, content, replace_text, enabled, sort, create_time FROM company_lobster_replace_word WHERE (tenant_id = 0 OR tenant_id = ?) AND word_type = ? ORDER BY tenant_id, sort DESC, id DESC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \u0027fs_tenant_cs1.company_lobster_replace_word\u0027 doesn\u0027t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \u0027fs_tenant_cs1.company_lobster_replace_word\u0027 doesn\u0027t exist"
  118. },
  119. {
  120. "path": "/lobster/conversation-summary",
  121. "title": "Conversation summary",
  122. "probe": "conversationSummary",
  123. "required": true,
  124. "passed": true,
  125. "status": "OK",
  126. "message": "summaries=13"
  127. },
  128. {
  129. "path": "/lobster/summary-config",
  130. "title": "Summary config",
  131. "probe": "summaryConfig",
  132. "required": false,
  133. "passed": true,
  134. "status": "OK",
  135. "message": "summary configs=0"
  136. },
  137. {
  138. "path": "/lobster/profile-config",
  139. "title": "Profile config",
  140. "probe": "profileConfig",
  141. "required": false,
  142. "passed": true,
  143. "status": "OK",
  144. "message": "profile fields=0"
  145. },
  146. {
  147. "path": "/lobster/channel-config",
  148. "title": "Channel config",
  149. "probe": "channelTypes",
  150. "required": true,
  151. "passed": true,
  152. "status": "OK",
  153. "message": "channels=14"
  154. },
  155. {
  156. "path": "/lobster/channel-plugin",
  157. "title": "Channel plugins",
  158. "probe": "channelPlugins",
  159. "required": true,
  160. "passed": true,
  161. "status": "OK",
  162. "message": "plugins=14"
  163. },
  164. {
  165. "path": "/lobster/api-registry",
  166. "title": "API registry",
  167. "probe": "apiRegistry",
  168. "required": true,
  169. "passed": true,
  170. "status": "OK",
  171. "message": "apis=0"
  172. },
  173. {
  174. "path": "/lobster/sales-corpus",
  175. "title": "Sales corpus",
  176. "probe": "salesCorpus",
  177. "required": false,
  178. "passed": true,
  179. "status": "OK",
  180. "message": "corpus=0"
  181. },
  182. {
  183. "path": "/lobster/chat-aggregate",
  184. "title": "Chat aggregate",
  185. "probe": "chatAggregate",
  186. "required": false,
  187. "passed": true,
  188. "status": "OK",
  189. "message": "sessions=29"
  190. },
  191. {
  192. "path": "/lobster/industry-bootstrap",
  193. "title": "Industry bootstrap",
  194. "probe": "industryPacks",
  195. "required": true,
  196. "passed": true,
  197. "status": "OK",
  198. "message": "packs=7"
  199. },
  200. {
  201. "path": "/lobster/execution-config",
  202. "title": "Execution config",
  203. "probe": "executionConfig",
  204. "required": true,
  205. "passed": true,
  206. "status": "OK",
  207. "message": "execution config loaded"
  208. },
  209. {
  210. "path": "/lobster/identity-config",
  211. "title": "Identity config",
  212. "probe": "identityConfig",
  213. "required": false,
  214. "passed": true,
  215. "status": "OK",
  216. "message": "identity config loaded"
  217. },
  218. {
  219. "path": "/lobster/semantic-keywords",
  220. "title": "Semantic keywords",
  221. "probe": "semanticKeywords",
  222. "required": true,
  223. "passed": true,
  224. "status": "OK",
  225. "message": "keywords=1"
  226. },
  227. {
  228. "path": "/lobster/dedup-config",
  229. "title": "Dedup config",
  230. "probe": "dedupConfig",
  231. "required": false,
  232. "passed": true,
  233. "status": "OK",
  234. "message": "dedup configs=0"
  235. },
  236. {
  237. "path": "/lobster/model-route",
  238. "title": "Model route",
  239. "probe": "modelRoute",
  240. "required": true,
  241. "passed": true,
  242. "status": "OK",
  243. "message": "workflow model=gpt-4"
  244. },
  245. {
  246. "path": "/lobster/optimization",
  247. "title": "AI optimization audit",
  248. "probe": "optimization",
  249. "required": true,
  250. "passed": true,
  251. "status": "OK",
  252. "message": "optimization stats=5"
  253. },
  254. {
  255. "path": "/lobster/dynamic-impl",
  256. "title": "Dynamic node approval",
  257. "probe": "dynamicImpl",
  258. "required": true,
  259. "passed": true,
  260. "status": "OK",
  261. "message": "pending impls=0"
  262. },
  263. {
  264. "path": "/lobster/dashboard",
  265. "title": "Engine dashboard",
  266. "probe": "dashboard",
  267. "required": true,
  268. "passed": true,
  269. "status": "OK",
  270. "message": "dashboard keys=8"
  271. },
  272. {
  273. "path": "/lobster/token-stats",
  274. "title": "Token stats",
  275. "probe": "tokenStats",
  276. "required": false,
  277. "passed": true,
  278. "status": "OK",
  279. "message": "token summary loaded"
  280. },
  281. {
  282. "path": "/lobster/evolution",
  283. "title": "Evolution engine",
  284. "probe": "evolution",
  285. "required": true,
  286. "passed": true,
  287. "status": "OK",
  288. "message": "evolution metrics=6"
  289. },
  290. {
  291. "path": "/lobster/chat-test",
  292. "title": "Chat test",
  293. "probe": "chatTest",
  294. "required": false,
  295. "passed": true,
  296. "status": "OK",
  297. "message": "e2e test service ready"
  298. },
  299. {
  300. "path": "/lobster/ab-test",
  301. "title": "AB / GEPA optimization",
  302. "probe": "abTest",
  303. "required": false,
  304. "passed": true,
  305. "status": "OK",
  306. "message": "active ab tests=0"
  307. },
  308. {
  309. "path": "/lobster/profile",
  310. "title": "Customer profile hub",
  311. "probe": "userProfile",
  312. "required": false,
  313. "passed": true,
  314. "status": "OK",
  315. "message": "profile fields=0"
  316. },
  317. {
  318. "path": "/lobster/qdrant",
  319. "title": "Vector knowledge base",
  320. "probe": "qdrant",
  321. "required": false,
  322. "passed": false,
  323. "status": "WARN",
  324. "message": "\r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \u0027fs_tenant_cs1.lobster_vector_store\u0027 doesn\u0027t exist\r\n### The error may exist in com/fs/company/mapper/LobsterVectorStoreMapper.java (best guess)\r\n### The error may involve com.fs.company.mapper.LobsterVectorStoreMapper.selectByCompanyAndCategory-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT * FROM lobster_vector_store WHERE company_id = ? AND category = ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \u0027fs_tenant_cs1.lobster_vector_store\u0027 doesn\u0027t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \u0027fs_tenant_cs1.lobster_vector_store\u0027 doesn\u0027t exist"
  325. },
  326. {
  327. "path": "/lobster/global-stats",
  328. "title": "Global evolution stats",
  329. "probe": "globalStats",
  330. "required": false,
  331. "passed": true,
  332. "status": "OK",
  333. "message": "global metrics=6"
  334. },
  335. {
  336. "path": "/lobster/event-audit",
  337. "title": "Event node audit",
  338. "probe": "eventAudit",
  339. "required": false,
  340. "passed": true,
  341. "status": "OK",
  342. "message": "audits=0"
  343. }
  344. ]
  345. },
  346. "travelFullChain": {
  347. "message": "includeTravelChain=false",
  348. "passed": true,
  349. "skipped": true
  350. }
  351. },
  352. "failures": [
  353. "integrationTests: 2/4 tests passed in 1001ms"
  354. ],
  355. "passed": false,
  356. "durationMs": 3549,
  357. "pageCount": 32,
  358. "requiredPagesPassed": "17/17"
  359. }