lobster-full-engine-validation-20260621-020722.json 37 KB

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