lobster-profile-full-validation-20260621-165613.json 38 KB

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