lobster-profile-full-validation-20260621-170210.json 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384
  1. {
  2. "basic": {
  3. "enabled": true,
  4. "projectionMode": "async",
  5. "searchMode": "db",
  6. "esEnabled": false,
  7. "mqConsumerEnabled": true,
  8. "missingBeans": [
  9. ],
  10. "beansOk": true,
  11. "simulationMode": "basic",
  12. "runtime": {
  13. "unifiedSearchTotal": 1,
  14. "unifiedSearchMode": "db",
  15. "searchTotal": 1,
  16. "searchMode": "db",
  17. "identityCount": 1,
  18. "orderStatsSample": 0,
  19. "qwContactSample": 1
  20. },
  21. "passed": true,
  22. "message": "profile domain ready"
  23. },
  24. "fullSimulation": {
  25. "enabled": true,
  26. "projectionMode": "async",
  27. "searchMode": "db",
  28. "esEnabled": false,
  29. "mqConsumerEnabled": true,
  30. "missingBeans": [
  31. ],
  32. "beansOk": true,
  33. "simulationMode": "full",
  34. "runtime": {
  35. "unifiedSearchTotal": 1,
  36. "unifiedSearchMode": "db",
  37. "searchTotal": 1,
  38. "searchMode": "db",
  39. "identityCount": 1,
  40. "orderStatsSample": 0,
  41. "qwContactSample": 1
  42. },
  43. "simulation": {
  44. "patchAdapter": true,
  45. "writePath": {
  46. "published": true,
  47. "readBack": true
  48. },
  49. "backfillLegacy": {
  50. "type": "legacy",
  51. "page": 1,
  52. "size": 5,
  53. "processed": 1,
  54. "published": 1
  55. },
  56. "backfillOrders": {
  57. "type": "order",
  58. "page": 1,
  59. "size": 5,
  60. "processed": 0,
  61. "published": 0
  62. },
  63. "backfillQwContacts": {
  64. "type": "qw_contact",
  65. "page": 1,
  66. "size": 5,
  67. "processed": 5,
  68. "published": 5
  69. }
  70. },
  71. "passed": true,
  72. "message": "profile domain ready"
  73. },
  74. "fullEngine": {
  75. "passed": false,
  76. "pageLinkProbes": {
  77. "totalPages": 29,
  78. "requiredTotal": 15,
  79. "requiredPassed": 14,
  80. "optionalSkipped": 0,
  81. "failures": [
  82. "/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"
  83. ],
  84. "passed": false,
  85. "durationMs": 3090,
  86. "pages": [
  87. {
  88. "path": "/lobster/company-workflowLobster",
  89. "title": "Workflow templates",
  90. "probe": "templateList",
  91. "required": true,
  92. "passed": true,
  93. "status": "OK",
  94. "message": "templates=39"
  95. },
  96. {
  97. "path": "/lobster/workflow-execution",
  98. "title": "Workflow execution tasks",
  99. "probe": "instanceList",
  100. "required": true,
  101. "passed": true,
  102. "status": "OK",
  103. "message": "instances=453"
  104. },
  105. {
  106. "path": "/lobster/instance",
  107. "title": "Instance monitor",
  108. "probe": "instanceMonitor",
  109. "required": true,
  110. "passed": true,
  111. "status": "OK",
  112. "message": "monitor list ok, count=453"
  113. },
  114. {
  115. "path": "/lobster/prompt",
  116. "title": "Prompt management",
  117. "probe": "promptList",
  118. "required": true,
  119. "passed": true,
  120. "status": "OK",
  121. "message": "prompt rows=49"
  122. },
  123. {
  124. "path": "/lobster/sensitive-words",
  125. "title": "Sensitive words",
  126. "probe": "sensitiveWords",
  127. "required": true,
  128. "passed": true,
  129. "status": "OK",
  130. "message": "words=131"
  131. },
  132. {
  133. "path": "/lobster/forbidden-words",
  134. "title": "Forbidden words",
  135. "probe": "forbiddenWords",
  136. "required": false,
  137. "passed": true,
  138. "status": "OK",
  139. "message": "forbidden=32"
  140. },
  141. {
  142. "path": "/lobster/typo-words",
  143. "title": "Typo words",
  144. "probe": "typoWords",
  145. "required": false,
  146. "passed": true,
  147. "status": "OK",
  148. "message": "typo=3"
  149. },
  150. {
  151. "path": "/lobster/conversation-summary",
  152. "title": "Conversation summary",
  153. "probe": "conversationSummary",
  154. "required": true,
  155. "passed": true,
  156. "status": "OK",
  157. "message": "summaries=13"
  158. },
  159. {
  160. "path": "/lobster/profile-config",
  161. "title": "Profile config",
  162. "probe": "profileConfig",
  163. "required": false,
  164. "passed": true,
  165. "status": "OK",
  166. "message": "profile fields=5"
  167. },
  168. {
  169. "path": "/lobster/channel-config",
  170. "title": "Channel config",
  171. "probe": "channelTypes",
  172. "required": true,
  173. "passed": true,
  174. "status": "OK",
  175. "message": "channels=14"
  176. },
  177. {
  178. "path": "/lobster/channel-plugin",
  179. "title": "Channel plugins",
  180. "probe": "channelPlugins",
  181. "required": true,
  182. "passed": true,
  183. "status": "OK",
  184. "message": "plugins=3"
  185. },
  186. {
  187. "path": "/lobster/api-registry",
  188. "title": "API registry",
  189. "probe": "apiRegistry",
  190. "required": true,
  191. "passed": true,
  192. "status": "OK",
  193. "message": "apis=0"
  194. },
  195. {
  196. "path": "/lobster/sales-corpus",
  197. "title": "Sales corpus",
  198. "probe": "salesCorpus",
  199. "required": false,
  200. "passed": false,
  201. "status": "WARN",
  202. "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"
  203. },
  204. {
  205. "path": "/lobster/chat-aggregate",
  206. "title": "Chat aggregate",
  207. "probe": "chatAggregate",
  208. "required": false,
  209. "passed": true,
  210. "status": "OK",
  211. "message": "sessions=0"
  212. },
  213. {
  214. "path": "/lobster/industry-bootstrap",
  215. "title": "Industry bootstrap",
  216. "probe": "industryPacks",
  217. "required": true,
  218. "passed": true,
  219. "status": "OK",
  220. "message": "packs=28"
  221. },
  222. {
  223. "path": "/lobster/identity-config",
  224. "title": "External role config",
  225. "probe": "identityConfig",
  226. "required": false,
  227. "passed": true,
  228. "status": "OK",
  229. "message": "identity config loaded"
  230. },
  231. {
  232. "path": "/lobster/semantic-keywords",
  233. "title": "Semantic keywords",
  234. "probe": "semanticKeywords",
  235. "required": true,
  236. "passed": false,
  237. "status": "FAIL",
  238. "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"
  239. },
  240. {
  241. "path": "/lobster/optimization",
  242. "title": "AI optimization audit",
  243. "probe": "optimization",
  244. "required": true,
  245. "passed": true,
  246. "status": "OK",
  247. "message": "optimization stats=0"
  248. },
  249. {
  250. "path": "/lobster/dynamic-impl",
  251. "title": "Dynamic node approval",
  252. "probe": "dynamicImpl",
  253. "required": true,
  254. "passed": true,
  255. "status": "OK",
  256. "message": "pending impls=0"
  257. },
  258. {
  259. "path": "/lobster/dashboard",
  260. "title": "Engine dashboard",
  261. "probe": "dashboard",
  262. "required": true,
  263. "passed": true,
  264. "status": "OK",
  265. "message": "dashboard keys=8"
  266. },
  267. {
  268. "path": "/lobster/token-stats",
  269. "title": "Token stats",
  270. "probe": "tokenStats",
  271. "required": false,
  272. "passed": false,
  273. "status": "WARN",
  274. "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"
  275. },
  276. {
  277. "path": "/lobster/evolution",
  278. "title": "Evolution engine",
  279. "probe": "evolution",
  280. "required": true,
  281. "passed": true,
  282. "status": "OK",
  283. "message": "evolution metrics=0"
  284. },
  285. {
  286. "path": "/lobster/chat-test",
  287. "title": "Chat test",
  288. "probe": "chatTest",
  289. "required": false,
  290. "passed": true,
  291. "status": "OK",
  292. "message": "e2e test service ready"
  293. },
  294. {
  295. "path": "/lobster/ab-test",
  296. "title": "AB / GEPA optimization",
  297. "probe": "abTest",
  298. "required": false,
  299. "passed": true,
  300. "status": "OK",
  301. "message": "active ab tests=0"
  302. },
  303. {
  304. "path": "/lobster/profile",
  305. "title": "Customer profile hub",
  306. "probe": "userProfile",
  307. "required": false,
  308. "passed": false,
  309. "status": "FAIL",
  310. "message": "\r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_user_profile\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/LobsterUserProfileMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, company_id, external_user_id, channel_type, nickname, persona, current_state, lifecycle_stage, value_score, total_purchase, interaction_count, last_active_time, internal_tags, variable_snapshot, create_time, update_time FROM lobster_user_profile WHERE company_id = ? AND deleted = 0 ORDER BY update_time DESC, id DESC LIMIT ?, ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_user_profile\u0027 doesn\u0027t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_user_profile\u0027 doesn\u0027t exist"
  311. },
  312. {
  313. "path": "/lobster/profile-domain",
  314. "title": "Unified profile domain",
  315. "probe": "profileDomain",
  316. "required": false,
  317. "passed": true,
  318. "status": "OK",
  319. "message": "profile domain ready, mode=async"
  320. },
  321. {
  322. "path": "/lobster/qdrant",
  323. "title": "Vector knowledge base",
  324. "probe": "qdrant",
  325. "required": false,
  326. "passed": false,
  327. "status": "WARN",
  328. "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"
  329. },
  330. {
  331. "path": "/lobster/global-stats",
  332. "title": "Global evolution stats",
  333. "probe": "globalStats",
  334. "required": false,
  335. "passed": true,
  336. "status": "OK",
  337. "message": "global metrics=0"
  338. },
  339. {
  340. "path": "/lobster/event-audit",
  341. "title": "Event node audit",
  342. "probe": "eventAudit",
  343. "required": false,
  344. "passed": true,
  345. "status": "OK",
  346. "message": "audits=0"
  347. }
  348. ]
  349. },
  350. "requiredPagesPassed": "14/15",
  351. "failures": [
  352. "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"
  353. ],
  354. "profileDomain": {
  355. "enabled": true,
  356. "projectionMode": "async",
  357. "searchMode": "db",
  358. "esEnabled": false,
  359. "mqConsumerEnabled": true,
  360. "missingBeans": [
  361. ],
  362. "beansOk": true,
  363. "simulationMode": "basic",
  364. "runtime": {
  365. "unifiedSearchError": "\r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.customer_profile_identity\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/CustomerProfileIdentityMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(1) FROM customer_profile_identity WHERE company_id = ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.customer_profile_identity\u0027 doesn\u0027t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.customer_profile_identity\u0027 doesn\u0027t exist",
  366. "searchError": "\r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.customer_profile_identity\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/CustomerProfileIdentityMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(1) FROM customer_profile_identity WHERE company_id = ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.customer_profile_identity\u0027 doesn\u0027t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.customer_profile_identity\u0027 doesn\u0027t exist",
  367. "identityTable": "missing_or_error",
  368. "identityError": "\r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.customer_profile_identity\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/ProfileBackfillMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(1) FROM customer_profile_identity WHERE company_id = ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.customer_profile_identity\u0027 doesn\u0027t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.customer_profile_identity\u0027 doesn\u0027t exist"
  369. },
  370. "warning": "customer_profile_identity table missing; run migration V20260701_01",
  371. "passed": true,
  372. "message": "profile domain ready"
  373. },
  374. "durationMs": 4077
  375. },
  376. "passed": false,
  377. "failures": [
  378. "engine: 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"
  379. ],
  380. "timestamp": "20260621-170210"
  381. }