lobster-full-engine-validation-20260621-020912.json 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. {
  2. "companyId": 338,
  3. "includeTravelChain": false,
  4. "includeTravelStress": false,
  5. "startedAt": "2026-06-21 02:09:12",
  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 497ms",
  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": 497,
  30. "message": "2/4 tests passed in 497ms"
  31. },
  32. "phase2Replay": {
  33. "passed": true,
  34. "verify": {
  35. "companyId": 338,
  36. "archiveTableExists": false,
  37. "hotIndexExists": true,
  38. "hotReplayRows": 68,
  39. "eventLogRows": 68,
  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": 28,
  48. "requiredTotal": 15,
  49. "requiredPassed": 14,
  50. "optionalSkipped": 0,
  51. "failures": [
  52. "/lobster/semantic-keywords: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_tenant_keywords\u0027 doesn\u0027t exist\r\n### The error may exist in com/fs/company/mapper/LobsterTenantKeywordMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id,company_id,category,keywords,enabled,create_time,update_time FROM lobster_tenant_keywords WHERE company_id = ? ORDER BY category ASC , id DESC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_tenant_keywords\u0027 doesn\u0027t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_tenant_keywords\u0027 doesn\u0027t exist"
  53. ],
  54. "passed": false,
  55. "durationMs": 1677,
  56. "pages": [
  57. {
  58. "path": "/lobster/company-workflowLobster",
  59. "title": "Workflow templates",
  60. "probe": "templateList",
  61. "required": true,
  62. "passed": true,
  63. "status": "OK",
  64. "message": "templates=39"
  65. },
  66. {
  67. "path": "/lobster/workflow-execution",
  68. "title": "Workflow execution tasks",
  69. "probe": "instanceList",
  70. "required": true,
  71. "passed": true,
  72. "status": "OK",
  73. "message": "instances=453"
  74. },
  75. {
  76. "path": "/lobster/instance",
  77. "title": "Instance monitor",
  78. "probe": "instanceMonitor",
  79. "required": true,
  80. "passed": true,
  81. "status": "OK",
  82. "message": "monitor list ok, count=453"
  83. },
  84. {
  85. "path": "/lobster/prompt",
  86. "title": "Prompt management",
  87. "probe": "promptList",
  88. "required": true,
  89. "passed": true,
  90. "status": "OK",
  91. "message": "prompt rows=49"
  92. },
  93. {
  94. "path": "/lobster/sensitive-words",
  95. "title": "Sensitive words",
  96. "probe": "sensitiveWords",
  97. "required": true,
  98. "passed": true,
  99. "status": "OK",
  100. "message": "words=131"
  101. },
  102. {
  103. "path": "/lobster/forbidden-words",
  104. "title": "Forbidden words",
  105. "probe": "forbiddenWords",
  106. "required": false,
  107. "passed": true,
  108. "status": "OK",
  109. "message": "forbidden=32"
  110. },
  111. {
  112. "path": "/lobster/typo-words",
  113. "title": "Typo words",
  114. "probe": "typoWords",
  115. "required": false,
  116. "passed": true,
  117. "status": "OK",
  118. "message": "typo=3"
  119. },
  120. {
  121. "path": "/lobster/conversation-summary",
  122. "title": "Conversation summary",
  123. "probe": "conversationSummary",
  124. "required": true,
  125. "passed": true,
  126. "status": "OK",
  127. "message": "summaries=13"
  128. },
  129. {
  130. "path": "/lobster/profile-config",
  131. "title": "Profile config",
  132. "probe": "profileConfig",
  133. "required": false,
  134. "passed": true,
  135. "status": "OK",
  136. "message": "profile fields=5"
  137. },
  138. {
  139. "path": "/lobster/channel-config",
  140. "title": "Channel config",
  141. "probe": "channelTypes",
  142. "required": true,
  143. "passed": true,
  144. "status": "OK",
  145. "message": "channels=14"
  146. },
  147. {
  148. "path": "/lobster/channel-plugin",
  149. "title": "Channel plugins",
  150. "probe": "channelPlugins",
  151. "required": true,
  152. "passed": true,
  153. "status": "OK",
  154. "message": "plugins=3"
  155. },
  156. {
  157. "path": "/lobster/api-registry",
  158. "title": "API registry",
  159. "probe": "apiRegistry",
  160. "required": true,
  161. "passed": true,
  162. "status": "OK",
  163. "message": "apis=0"
  164. },
  165. {
  166. "path": "/lobster/sales-corpus",
  167. "title": "Sales corpus",
  168. "probe": "salesCorpus",
  169. "required": false,
  170. "passed": false,
  171. "status": "WARN",
  172. "message": "\r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \u0027optimized_answer\u0027 in \u0027field list\u0027\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/company/LobsterSalesCorpusMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: select id, dialog_text, customer_question, sales_answer, optimized_answer, ai_feedback, scenario, score, source_type, external_user_id, company_id, task_id, salesperson_name, tags, status, quality_status, kb_written, enabled, create_by, create_time, update_by, update_time from lobster_sales_corpus where company_id = ? order by create_time desc limit ? offset ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \u0027optimized_answer\u0027 in \u0027field list\u0027\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \u0027optimized_answer\u0027 in \u0027field list\u0027"
  173. },
  174. {
  175. "path": "/lobster/chat-aggregate",
  176. "title": "Chat aggregate",
  177. "probe": "chatAggregate",
  178. "required": false,
  179. "passed": true,
  180. "status": "OK",
  181. "message": "sessions=0"
  182. },
  183. {
  184. "path": "/lobster/industry-bootstrap",
  185. "title": "Industry bootstrap",
  186. "probe": "industryPacks",
  187. "required": true,
  188. "passed": true,
  189. "status": "OK",
  190. "message": "packs=7"
  191. },
  192. {
  193. "path": "/lobster/identity-config",
  194. "title": "External role config",
  195. "probe": "identityConfig",
  196. "required": false,
  197. "passed": true,
  198. "status": "OK",
  199. "message": "identity config loaded"
  200. },
  201. {
  202. "path": "/lobster/semantic-keywords",
  203. "title": "Semantic keywords",
  204. "probe": "semanticKeywords",
  205. "required": true,
  206. "passed": false,
  207. "status": "FAIL",
  208. "message": "\r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_tenant_keywords\u0027 doesn\u0027t exist\r\n### The error may exist in com/fs/company/mapper/LobsterTenantKeywordMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id,company_id,category,keywords,enabled,create_time,update_time FROM lobster_tenant_keywords WHERE company_id = ? ORDER BY category ASC , id DESC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_tenant_keywords\u0027 doesn\u0027t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_tenant_keywords\u0027 doesn\u0027t exist"
  209. },
  210. {
  211. "path": "/lobster/optimization",
  212. "title": "AI optimization audit",
  213. "probe": "optimization",
  214. "required": true,
  215. "passed": true,
  216. "status": "OK",
  217. "message": "optimization stats=0"
  218. },
  219. {
  220. "path": "/lobster/dynamic-impl",
  221. "title": "Dynamic node approval",
  222. "probe": "dynamicImpl",
  223. "required": true,
  224. "passed": true,
  225. "status": "OK",
  226. "message": "pending impls=0"
  227. },
  228. {
  229. "path": "/lobster/dashboard",
  230. "title": "Engine dashboard",
  231. "probe": "dashboard",
  232. "required": true,
  233. "passed": true,
  234. "status": "OK",
  235. "message": "dashboard keys=8"
  236. },
  237. {
  238. "path": "/lobster/token-stats",
  239. "title": "Token stats",
  240. "probe": "tokenStats",
  241. "required": false,
  242. "passed": false,
  243. "status": "WARN",
  244. "message": "\r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_token_consumption\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/company/LobsterTokenConsumptionMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT DATE(request_time) AS date, SUM(token_count) AS totalTokens, SUM(estimated_cost) AS totalCost, COUNT(1) AS requestCount FROM lobster_token_consumption WHERE company_id = ? AND request_time BETWEEN ? AND ? GROUP BY DATE(request_time) ORDER BY date DESC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_token_consumption\u0027 doesn\u0027t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_token_consumption\u0027 doesn\u0027t exist"
  245. },
  246. {
  247. "path": "/lobster/evolution",
  248. "title": "Evolution engine",
  249. "probe": "evolution",
  250. "required": true,
  251. "passed": true,
  252. "status": "OK",
  253. "message": "evolution metrics=0"
  254. },
  255. {
  256. "path": "/lobster/chat-test",
  257. "title": "Chat test",
  258. "probe": "chatTest",
  259. "required": false,
  260. "passed": true,
  261. "status": "OK",
  262. "message": "e2e test service ready"
  263. },
  264. {
  265. "path": "/lobster/ab-test",
  266. "title": "AB / GEPA optimization",
  267. "probe": "abTest",
  268. "required": false,
  269. "passed": true,
  270. "status": "OK",
  271. "message": "active ab tests=0"
  272. },
  273. {
  274. "path": "/lobster/profile",
  275. "title": "Customer profile hub",
  276. "probe": "userProfile",
  277. "required": false,
  278. "passed": true,
  279. "status": "OK",
  280. "message": "profile fields=0"
  281. },
  282. {
  283. "path": "/lobster/qdrant",
  284. "title": "Vector knowledge base",
  285. "probe": "qdrant",
  286. "required": false,
  287. "passed": false,
  288. "status": "WARN",
  289. "message": "\r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.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 \u0027ylrz_saas.lobster_vector_store\u0027 doesn\u0027t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_vector_store\u0027 doesn\u0027t exist"
  290. },
  291. {
  292. "path": "/lobster/global-stats",
  293. "title": "Global evolution stats",
  294. "probe": "globalStats",
  295. "required": false,
  296. "passed": true,
  297. "status": "OK",
  298. "message": "global metrics=0"
  299. },
  300. {
  301. "path": "/lobster/event-audit",
  302. "title": "Event node audit",
  303. "probe": "eventAudit",
  304. "required": false,
  305. "passed": true,
  306. "status": "OK",
  307. "message": "audits=0"
  308. }
  309. ]
  310. },
  311. "travelFullChain": {
  312. "passed": true,
  313. "message": "includeTravelChain=false",
  314. "skipped": true
  315. }
  316. },
  317. "integrationWarning": "2/4 tests passed in 497ms",
  318. "failures": [
  319. "page./lobster/semantic-keywords: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_tenant_keywords\u0027 doesn\u0027t exist\r\n### The error may exist in com/fs/company/mapper/LobsterTenantKeywordMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id,company_id,category,keywords,enabled,create_time,update_time FROM lobster_tenant_keywords WHERE company_id = ? ORDER BY category ASC , id DESC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_tenant_keywords\u0027 doesn\u0027t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_tenant_keywords\u0027 doesn\u0027t exist"
  320. ],
  321. "passed": false,
  322. "durationMs": 2220,
  323. "pageCount": 28,
  324. "requiredPagesPassed": "14/15"
  325. }