Xray · see through your fleet
1h 6h 24h 48h 3d
custom ▾
updated 30s ago
← services

Trace flow

a458452a585b0d2cb53d6e60039c57f1 · live fetch 2105 ms · tilda-trial-automation
Waterfall
Request span + Neo4j queries by start offset (reconstructed from log timestamps — approximate)
request · 539msrequest539ms+0ms · 0ms · read · MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n0ms+8ms · 0ms · read · MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActiv0ms+16ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+19ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+27ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpendin0ms+36ms · 0ms · read · MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n0ms+45ms · 0ms · read · MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActiv0ms+54ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+57ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+64ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpendin0ms+74ms · 0ms · read · MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n0ms+81ms · 0ms · read · MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActiv0ms+88ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+91ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+98ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpendin0ms+107ms · 0ms · read · MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n0ms+115ms · 0ms · read · MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActiv0ms+123ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+126ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+133ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpendin0ms+204ms · 0ms · read · MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n0ms+213ms · 0ms · read · MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActiv0ms+222ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+226ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+234ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpendin0ms+243ms · 0ms · read · MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n0ms+252ms · 0ms · read · MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActiv0ms+261ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+264ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+272ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpendin0ms+280ms · 0ms · read · MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n0ms+288ms · 1ms · read · MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActiv1ms+296ms · 1ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1ms+300ms · 1ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1ms+309ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization) RETURN COALE0ms+317ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+319ms · 1ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1ms+329ms · 0ms · read · MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n0ms+337ms · 0ms · read · MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActiv0ms+345ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+347ms · 1ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1ms+356ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization) RETURN COALE0ms+364ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+367ms · 1ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1ms+376ms · 0ms · read · MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n0ms+384ms · 0ms · read · MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActiv0ms+392ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+395ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+403ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpendin0ms+411ms · 0ms · read · MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n0ms+419ms · 0ms · read · MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActiv0ms+427ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+431ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+438ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpendin0ms+447ms · 0ms · read · MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n0ms+455ms · 0ms · read · MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActiv0ms+462ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+465ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+472ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpendin0ms+480ms · 0ms · read · MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n0ms+488ms · 0ms · read · MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActiv0ms+495ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+499ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+505ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpendin0ms+514ms · 0ms · read · MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n0ms+521ms · 0ms · read · MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActiv0ms+529ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+532ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=0ms+539ms · 0ms · read · MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpendin0ms0ms270ms539ms
readwrite

Queries in this trace 69

QueryOffsetElapsedR/W
MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
0 ms read
MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'}) RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses RETURN count(a) as total
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses OPTIONAL MATCH (d:Document) WHERE d.tildaid IN COALESCE(a.docIds, []) WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents // Compute latest AI_MSG draft id per work order for gating REGENERATE OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity) WHERE ai.activity_type = 'AI_MSG' // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck WITH w, a, documents, max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts, collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs WITH a, documents, CASE WHEN size(ai_msgs) = 0 THEN false ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts) END AS is_latest_draft RETURN a, CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents, is_latest_draft ORDER BY a.createdat DESC SKIP $skip LIMIT $limit
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false RETURN f ORDER BY f.createdat ASC
0 ms read
MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
0 ms read
MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'}) RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses RETURN count(a) as total
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses OPTIONAL MATCH (d:Document) WHERE d.tildaid IN COALESCE(a.docIds, []) WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents // Compute latest AI_MSG draft id per work order for gating REGENERATE OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity) WHERE ai.activity_type = 'AI_MSG' // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck WITH w, a, documents, max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts, collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs WITH a, documents, CASE WHEN size(ai_msgs) = 0 THEN false ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts) END AS is_latest_draft RETURN a, CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents, is_latest_draft ORDER BY a.createdat DESC SKIP $skip LIMIT $limit
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false RETURN f ORDER BY f.createdat ASC
0 ms read
MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
0 ms read
MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'}) RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses RETURN count(a) as total
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses OPTIONAL MATCH (d:Document) WHERE d.tildaid IN COALESCE(a.docIds, []) WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents // Compute latest AI_MSG draft id per work order for gating REGENERATE OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity) WHERE ai.activity_type = 'AI_MSG' // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck WITH w, a, documents, max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts, collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs WITH a, documents, CASE WHEN size(ai_msgs) = 0 THEN false ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts) END AS is_latest_draft RETURN a, CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents, is_latest_draft ORDER BY a.createdat DESC SKIP $skip LIMIT $limit
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false RETURN f ORDER BY f.createdat ASC
0 ms read
MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
0 ms read
MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'}) RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses RETURN count(a) as total
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses OPTIONAL MATCH (d:Document) WHERE d.tildaid IN COALESCE(a.docIds, []) WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents // Compute latest AI_MSG draft id per work order for gating REGENERATE OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity) WHERE ai.activity_type = 'AI_MSG' // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck WITH w, a, documents, max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts, collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs WITH a, documents, CASE WHEN size(ai_msgs) = 0 THEN false ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts) END AS is_latest_draft RETURN a, CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents, is_latest_draft ORDER BY a.createdat DESC SKIP $skip LIMIT $limit
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false RETURN f ORDER BY f.createdat ASC
0 ms read
MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
0 ms read
MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'}) RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses RETURN count(a) as total
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses OPTIONAL MATCH (d:Document) WHERE d.tildaid IN COALESCE(a.docIds, []) WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents // Compute latest AI_MSG draft id per work order for gating REGENERATE OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity) WHERE ai.activity_type = 'AI_MSG' // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck WITH w, a, documents, max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts, collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs WITH a, documents, CASE WHEN size(ai_msgs) = 0 THEN false ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts) END AS is_latest_draft RETURN a, CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents, is_latest_draft ORDER BY a.createdat DESC SKIP $skip LIMIT $limit
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false RETURN f ORDER BY f.createdat ASC
0 ms read
MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
0 ms read
MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'}) RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses RETURN count(a) as total
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses OPTIONAL MATCH (d:Document) WHERE d.tildaid IN COALESCE(a.docIds, []) WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents // Compute latest AI_MSG draft id per work order for gating REGENERATE OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity) WHERE ai.activity_type = 'AI_MSG' // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck WITH w, a, documents, max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts, collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs WITH a, documents, CASE WHEN size(ai_msgs) = 0 THEN false ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts) END AS is_latest_draft RETURN a, CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents, is_latest_draft ORDER BY a.createdat DESC SKIP $skip LIMIT $limit
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false RETURN f ORDER BY f.createdat ASC
0 ms read
MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
0 ms read
MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'}) RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
1 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses RETURN count(a) as total
1 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses OPTIONAL MATCH (d:Document) WHERE d.tildaid IN COALESCE(a.docIds, []) WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents // Compute latest AI_MSG draft id per work order for gating REGENERATE OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity) WHERE ai.activity_type = 'AI_MSG' // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck WITH w, a, documents, max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts, collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs WITH a, documents, CASE WHEN size(ai_msgs) = 0 THEN false ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts) END AS is_latest_draft RETURN a, CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents, is_latest_draft ORDER BY a.createdat DESC SKIP $skip LIMIT $limit
1 ms read
MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization) RETURN COALESCE(o.reminderApprovalRequired, true) AS approval_required
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses RETURN count(a) as total
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses OPTIONAL MATCH (d:Document) WHERE d.tildaid IN COALESCE(a.docIds, []) WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents // Compute latest AI_MSG draft id per work order for gating REGENERATE OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity) WHERE ai.activity_type = 'AI_MSG' // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck WITH w, a, documents, max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts, collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs WITH a, documents, CASE WHEN size(ai_msgs) = 0 THEN false ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts) END AS is_latest_draft RETURN a, CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents, is_latest_draft ORDER BY a.createdat DESC SKIP $skip LIMIT $limit
1 ms read
MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
0 ms read
MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'}) RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses RETURN count(a) as total
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses OPTIONAL MATCH (d:Document) WHERE d.tildaid IN COALESCE(a.docIds, []) WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents // Compute latest AI_MSG draft id per work order for gating REGENERATE OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity) WHERE ai.activity_type = 'AI_MSG' // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck WITH w, a, documents, max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts, collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs WITH a, documents, CASE WHEN size(ai_msgs) = 0 THEN false ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts) END AS is_latest_draft RETURN a, CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents, is_latest_draft ORDER BY a.createdat DESC SKIP $skip LIMIT $limit
1 ms read
MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization) RETURN COALESCE(o.reminderApprovalRequired, true) AS approval_required
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses RETURN count(a) as total
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses OPTIONAL MATCH (d:Document) WHERE d.tildaid IN COALESCE(a.docIds, []) WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents // Compute latest AI_MSG draft id per work order for gating REGENERATE OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity) WHERE ai.activity_type = 'AI_MSG' // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck WITH w, a, documents, max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts, collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs WITH a, documents, CASE WHEN size(ai_msgs) = 0 THEN false ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts) END AS is_latest_draft RETURN a, CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents, is_latest_draft ORDER BY a.createdat DESC SKIP $skip LIMIT $limit
1 ms read
MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
0 ms read
MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'}) RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses RETURN count(a) as total
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses OPTIONAL MATCH (d:Document) WHERE d.tildaid IN COALESCE(a.docIds, []) WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents // Compute latest AI_MSG draft id per work order for gating REGENERATE OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity) WHERE ai.activity_type = 'AI_MSG' // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck WITH w, a, documents, max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts, collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs WITH a, documents, CASE WHEN size(ai_msgs) = 0 THEN false ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts) END AS is_latest_draft RETURN a, CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents, is_latest_draft ORDER BY a.createdat DESC SKIP $skip LIMIT $limit
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false RETURN f ORDER BY f.createdat ASC
0 ms read
MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
0 ms read
MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'}) RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses RETURN count(a) as total
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses OPTIONAL MATCH (d:Document) WHERE d.tildaid IN COALESCE(a.docIds, []) WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents // Compute latest AI_MSG draft id per work order for gating REGENERATE OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity) WHERE ai.activity_type = 'AI_MSG' // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck WITH w, a, documents, max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts, collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs WITH a, documents, CASE WHEN size(ai_msgs) = 0 THEN false ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts) END AS is_latest_draft RETURN a, CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents, is_latest_draft ORDER BY a.createdat DESC SKIP $skip LIMIT $limit
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false RETURN f ORDER BY f.createdat ASC
0 ms read
MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
0 ms read
MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'}) RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses RETURN count(a) as total
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses OPTIONAL MATCH (d:Document) WHERE d.tildaid IN COALESCE(a.docIds, []) WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents // Compute latest AI_MSG draft id per work order for gating REGENERATE OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity) WHERE ai.activity_type = 'AI_MSG' // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck WITH w, a, documents, max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts, collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs WITH a, documents, CASE WHEN size(ai_msgs) = 0 THEN false ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts) END AS is_latest_draft RETURN a, CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents, is_latest_draft ORDER BY a.createdat DESC SKIP $skip LIMIT $limit
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false RETURN f ORDER BY f.createdat ASC
0 ms read
MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
0 ms read
MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'}) RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses RETURN count(a) as total
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses OPTIONAL MATCH (d:Document) WHERE d.tildaid IN COALESCE(a.docIds, []) WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents // Compute latest AI_MSG draft id per work order for gating REGENERATE OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity) WHERE ai.activity_type = 'AI_MSG' // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck WITH w, a, documents, max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts, collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs WITH a, documents, CASE WHEN size(ai_msgs) = 0 THEN false ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts) END AS is_latest_draft RETURN a, CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents, is_latest_draft ORDER BY a.createdat DESC SKIP $skip LIMIT $limit
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false RETURN f ORDER BY f.createdat ASC
0 ms read
MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
0 ms read
MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'}) RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses RETURN count(a) as total
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses OPTIONAL MATCH (d:Document) WHERE d.tildaid IN COALESCE(a.docIds, []) WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents // Compute latest AI_MSG draft id per work order for gating REGENERATE OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity) WHERE ai.activity_type = 'AI_MSG' // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck WITH w, a, documents, max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts, collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs WITH a, documents, CASE WHEN size(ai_msgs) = 0 THEN false ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts) END AS is_latest_draft RETURN a, CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents, is_latest_draft ORDER BY a.createdat DESC SKIP $skip LIMIT $limit
0 ms read
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false RETURN f ORDER BY f.createdat ASC
0 ms read

Logs in this trace 111

3h ago DEBUG virtual-assistant ✅ Org 9f996610-f74a-4cd5-9052-cb5405d78c6f summary: processed=13, reminders_sent=0, moved_to_need_attention=0
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:377
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
✅ Org 9f996610-f74a-4cd5-9052-cb5405d78c6f summary: processed=13, reminders_sent=0, moved_to_need_attention=0
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:377",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\u2705 Org 9f996610-f74a-4cd5-9052-cb5405d78c6f summary: processed=13, reminders_sent=0, moved_to_need_attention=0",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.707Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [reminder] wo=485f1414-f260-45ca-806c-a1c7843624bc mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=485f1414-f260-45ca-806c-a1c7843624bc mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=2164m < step=2880m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=485f1414-f260-45ca-806c-a1c7843624bc mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=2164m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.707Z",
  "version": "unknown"
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 776.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24449867",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027485f1414-f260-45ca-806c-a1c7843624bc\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.703Z",
  "transactionId": 11911030.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 3272.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24449866",
  "pageFaults": 0.0,
  "pageHits": 4.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027485f1414-f260-45ca-806c-a1c7843624bc\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.696Z",
  "transactionId": 11911029.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24449865",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027485f1414-f260-45ca-806c-a1c7843624bc\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.693Z",
  "transactionId": 11911029.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (wo:WorkOrder {tildaid: $wo_id})
        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'})
        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
raw payload (15 fields)
{
  "allocatedBytes": 928.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "4C51129A",
  "id": "24449864",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027485f1414-f260-45ca-806c-a1c7843624bc\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.685Z",
  "transactionId": 11911028.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (n:WorkOrder {tildaid: $node_id}) 
RETURN n
raw payload (15 fields)
{
  "allocatedBytes": 312.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E0146DD7",
  "id": "24449863",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027485f1414-f260-45ca-806c-a1c7843624bc\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.677Z",
  "transactionId": 11911027.0,
  "waiting": 0.0
}
3h ago DEBUG virtual-assistant [daily_cron] Starting processing for work order 485f1414-f260-45ca-806c-a1c7843624bc
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 485f1414-f260-45ca-806c-a1c7843624bc
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 485f1414-f260-45ca-806c-a1c7843624bc",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.673Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [daily_cron] About to process work order 485f1414-f260-45ca-806c-a1c7843624bc
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 485f1414-f260-45ca-806c-a1c7843624bc
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 485f1414-f260-45ca-806c-a1c7843624bc",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.673Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [reminder] wo=88f04d6a-d740-47c4-bc29-a959b502598e mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=88f04d6a-d740-47c4-bc29-a959b502598e mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=3141m < step=2880m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=88f04d6a-d740-47c4-bc29-a959b502598e mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=3141m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.673Z",
  "version": "unknown"
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24449862",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u002788f04d6a-d740-47c4-bc29-a959b502598e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.669Z",
  "transactionId": 11911026.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 3272.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24449861",
  "pageFaults": 0.0,
  "pageHits": 4.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u002788f04d6a-d740-47c4-bc29-a959b502598e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.662Z",
  "transactionId": 11911025.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24449860",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u002788f04d6a-d740-47c4-bc29-a959b502598e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.659Z",
  "transactionId": 11911025.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (wo:WorkOrder {tildaid: $wo_id})
        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'})
        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
raw payload (15 fields)
{
  "allocatedBytes": 928.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "4C51129A",
  "id": "24449859",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u002788f04d6a-d740-47c4-bc29-a959b502598e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.652Z",
  "transactionId": 11911024.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (n:WorkOrder {tildaid: $node_id}) 
RETURN n
raw payload (15 fields)
{
  "allocatedBytes": 312.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E0146DD7",
  "id": "24449858",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u002788f04d6a-d740-47c4-bc29-a959b502598e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.644Z",
  "transactionId": 11911023.0,
  "waiting": 0.0
}
3h ago DEBUG virtual-assistant [daily_cron] Starting processing for work order 88f04d6a-d740-47c4-bc29-a959b502598e
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 88f04d6a-d740-47c4-bc29-a959b502598e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 88f04d6a-d740-47c4-bc29-a959b502598e",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.640Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [daily_cron] About to process work order 88f04d6a-d740-47c4-bc29-a959b502598e
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 88f04d6a-d740-47c4-bc29-a959b502598e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 88f04d6a-d740-47c4-bc29-a959b502598e",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.640Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [reminder] wo=8b2449c7-0c34-47c4-b4b9-ae5867fb2d45 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=8b2449c7-0c34-47c4-b4b9-ae5867fb2d45 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=3161m < step=2880m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=8b2449c7-0c34-47c4-b4b9-ae5867fb2d45 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=3161m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.639Z",
  "version": "unknown"
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 828.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24449857",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u00278b2449c7-0c34-47c4-b4b9-ae5867fb2d45\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.636Z",
  "transactionId": 11911022.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 3272.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24449856",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u00278b2449c7-0c34-47c4-b4b9-ae5867fb2d45\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.629Z",
  "transactionId": 11911021.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24449855",
  "pageFaults": 0.0,
  "pageHits": 13.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u00278b2449c7-0c34-47c4-b4b9-ae5867fb2d45\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.626Z",
  "transactionId": 11911021.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (wo:WorkOrder {tildaid: $wo_id})
        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'})
        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
raw payload (15 fields)
{
  "allocatedBytes": 928.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "4C51129A",
  "id": "24449854",
  "pageFaults": 0.0,
  "pageHits": 17.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u00278b2449c7-0c34-47c4-b4b9-ae5867fb2d45\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.619Z",
  "transactionId": 11911020.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (n:WorkOrder {tildaid: $node_id}) 
RETURN n
raw payload (15 fields)
{
  "allocatedBytes": 312.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E0146DD7",
  "id": "24449853",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00278b2449c7-0c34-47c4-b4b9-ae5867fb2d45\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.611Z",
  "transactionId": 11911019.0,
  "waiting": 0.0
}
3h ago DEBUG virtual-assistant [daily_cron] Starting processing for work order 8b2449c7-0c34-47c4-b4b9-ae5867fb2d45
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 8b2449c7-0c34-47c4-b4b9-ae5867fb2d45
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 8b2449c7-0c34-47c4-b4b9-ae5867fb2d45",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.606Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [daily_cron] About to process work order 8b2449c7-0c34-47c4-b4b9-ae5867fb2d45
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 8b2449c7-0c34-47c4-b4b9-ae5867fb2d45
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 8b2449c7-0c34-47c4-b4b9-ae5867fb2d45",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.606Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [reminder] wo=c6b45988-3afb-4efc-843d-efe22819df8a mode=RECURRING should_send=False escalate=False override=set reason='override pending: eligible...
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=c6b45988-3afb-4efc-843d-efe22819df8a mode=RECURRING should_send=False escalate=False override=set reason='override pending: eligible in 1147m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=c6b45988-3afb-4efc-843d-efe22819df8a mode=RECURRING should_send=False escalate=False override=set reason=\u0027override pending: eligible in 1147m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.605Z",
  "version": "unknown"
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 828.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24449852",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027c6b45988-3afb-4efc-843d-efe22819df8a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.602Z",
  "transactionId": 11911018.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 3272.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24449851",
  "pageFaults": 0.0,
  "pageHits": 17.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027c6b45988-3afb-4efc-843d-efe22819df8a\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.595Z",
  "transactionId": 11911017.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24449850",
  "pageFaults": 0.0,
  "pageHits": 18.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027c6b45988-3afb-4efc-843d-efe22819df8a\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.591Z",
  "transactionId": 11911017.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (wo:WorkOrder {tildaid: $wo_id})
        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'})
        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
raw payload (15 fields)
{
  "allocatedBytes": 928.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "4C51129A",
  "id": "24449849",
  "pageFaults": 0.0,
  "pageHits": 30.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027c6b45988-3afb-4efc-843d-efe22819df8a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.583Z",
  "transactionId": 11911016.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (n:WorkOrder {tildaid: $node_id}) 
RETURN n
raw payload (15 fields)
{
  "allocatedBytes": 312.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E0146DD7",
  "id": "24449848",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027c6b45988-3afb-4efc-843d-efe22819df8a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.575Z",
  "transactionId": 11911014.0,
  "waiting": 0.0
}
3h ago DEBUG virtual-assistant [daily_cron] Starting processing for work order c6b45988-3afb-4efc-843d-efe22819df8a
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order c6b45988-3afb-4efc-843d-efe22819df8a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order c6b45988-3afb-4efc-843d-efe22819df8a",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.570Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [daily_cron] About to process work order c6b45988-3afb-4efc-843d-efe22819df8a
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order c6b45988-3afb-4efc-843d-efe22819df8a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order c6b45988-3afb-4efc-843d-efe22819df8a",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.570Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [reminder] wo=d74db13c-677a-4fd3-89f6-02349b34abfb mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=d74db13c-677a-4fd3-89f6-02349b34abfb mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=3239m < step=2880m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=d74db13c-677a-4fd3-89f6-02349b34abfb mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=3239m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.570Z",
  "version": "unknown"
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 776.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24449846",
  "pageFaults": 0.0,
  "pageHits": 8.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027d74db13c-677a-4fd3-89f6-02349b34abfb\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.566Z",
  "transactionId": 11911013.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 3272.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24449845",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027d74db13c-677a-4fd3-89f6-02349b34abfb\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.559Z",
  "transactionId": 11911012.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24449844",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027d74db13c-677a-4fd3-89f6-02349b34abfb\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.556Z",
  "transactionId": 11911012.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (wo:WorkOrder {tildaid: $wo_id})
        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'})
        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
raw payload (15 fields)
{
  "allocatedBytes": 928.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "4C51129A",
  "id": "24449843",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027d74db13c-677a-4fd3-89f6-02349b34abfb\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.548Z",
  "transactionId": 11911011.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (n:WorkOrder {tildaid: $node_id}) 
RETURN n
raw payload (15 fields)
{
  "allocatedBytes": 312.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E0146DD7",
  "id": "24449842",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027d74db13c-677a-4fd3-89f6-02349b34abfb\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.540Z",
  "transactionId": 11911010.0,
  "waiting": 0.0
}
3h ago DEBUG virtual-assistant [daily_cron] Starting processing for work order d74db13c-677a-4fd3-89f6-02349b34abfb
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order d74db13c-677a-4fd3-89f6-02349b34abfb
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order d74db13c-677a-4fd3-89f6-02349b34abfb",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.535Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [daily_cron] About to process work order d74db13c-677a-4fd3-89f6-02349b34abfb
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order d74db13c-677a-4fd3-89f6-02349b34abfb
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order d74db13c-677a-4fd3-89f6-02349b34abfb",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.535Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [reminder] wo=8c5c5785-bead-41a8-8002-3d05b949c13d draft already pending — skipping reminder (no send, no draft) to preserve user intent
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:200
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=8c5c5785-bead-41a8-8002-3d05b949c13d draft already pending — skipping reminder (no send, no draft) to preserve user intent
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:200",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=8c5c5785-bead-41a8-8002-3d05b949c13d draft already pending \u2014 skipping reminder (no send, no draft) to preserve user intent",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.535Z",
  "version": "unknown"
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 7656.0,
  "cpu": 1.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24449841",
  "pageFaults": 0.0,
  "pageHits": 37.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 25, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u00278c5c5785-bead-41a8-8002-3d05b949c13d\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.531Z",
  "transactionId": 11911009.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24449840",
  "pageFaults": 0.0,
  "pageHits": 20.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u00278c5c5785-bead-41a8-8002-3d05b949c13d\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.528Z",
  "transactionId": 11911009.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization) RETURN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization)
            RETURN COALESCE(o.reminderApprovalRequired, true) AS approval_required
raw payload (15 fields)
{
  "allocatedBytes": 328.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E5CF3BBC",
  "id": "24449839",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]-\u003e(o:Organization)\n            RETURN COALESCE(o.reminderApprovalRequired, true) AS approval_required\n            ",
  "queryParameters": "{wo: \u00278c5c5785-bead-41a8-8002-3d05b949c13d\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.520Z",
  "transactionId": 11911008.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 7560.0,
  "cpu": 0.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24449838",
  "pageFaults": 0.0,
  "pageHits": 37.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u00278c5c5785-bead-41a8-8002-3d05b949c13d\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.512Z",
  "transactionId": 11911007.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24449837",
  "pageFaults": 0.0,
  "pageHits": 20.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u00278c5c5785-bead-41a8-8002-3d05b949c13d\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.509Z",
  "transactionId": 11911007.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (wo:WorkOrder {tildaid: $wo_id})
        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'})
        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
raw payload (15 fields)
{
  "allocatedBytes": 928.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "4C51129A",
  "id": "24449836",
  "pageFaults": 0.0,
  "pageHits": 28.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u00278c5c5785-bead-41a8-8002-3d05b949c13d\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.501Z",
  "transactionId": 11911006.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (n:WorkOrder {tildaid: $node_id}) 
RETURN n
raw payload (15 fields)
{
  "allocatedBytes": 312.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E0146DD7",
  "id": "24449835",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00278c5c5785-bead-41a8-8002-3d05b949c13d\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.493Z",
  "transactionId": 11911005.0,
  "waiting": 0.0
}
3h ago DEBUG virtual-assistant [daily_cron] Starting processing for work order 8c5c5785-bead-41a8-8002-3d05b949c13d
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 8c5c5785-bead-41a8-8002-3d05b949c13d
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 8c5c5785-bead-41a8-8002-3d05b949c13d",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.488Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [daily_cron] About to process work order 8c5c5785-bead-41a8-8002-3d05b949c13d
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 8c5c5785-bead-41a8-8002-3d05b949c13d
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 8c5c5785-bead-41a8-8002-3d05b949c13d",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.488Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [reminder] wo=27504fe1-a00e-459f-af03-ba243eb31670 draft already pending — skipping reminder (no send, no draft) to preserve user intent
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:200
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=27504fe1-a00e-459f-af03-ba243eb31670 draft already pending — skipping reminder (no send, no draft) to preserve user intent
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:200",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=27504fe1-a00e-459f-af03-ba243eb31670 draft already pending \u2014 skipping reminder (no send, no draft) to preserve user intent",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.487Z",
  "version": "unknown"
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 7656.0,
  "cpu": 0.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24449834",
  "pageFaults": 0.0,
  "pageHits": 53.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 25, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u002727504fe1-a00e-459f-af03-ba243eb31670\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.484Z",
  "transactionId": 11911004.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24449833",
  "pageFaults": 0.0,
  "pageHits": 28.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u002727504fe1-a00e-459f-af03-ba243eb31670\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.481Z",
  "transactionId": 11911004.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization) RETURN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization)
            RETURN COALESCE(o.reminderApprovalRequired, true) AS approval_required
raw payload (15 fields)
{
  "allocatedBytes": 328.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E5CF3BBC",
  "id": "24449832",
  "pageFaults": 0.0,
  "pageHits": 28.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]-\u003e(o:Organization)\n            RETURN COALESCE(o.reminderApprovalRequired, true) AS approval_required\n            ",
  "queryParameters": "{wo: \u002727504fe1-a00e-459f-af03-ba243eb31670\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.473Z",
  "transactionId": 11911003.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 7560.0,
  "cpu": 1.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24449831",
  "pageFaults": 0.0,
  "pageHits": 53.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u002727504fe1-a00e-459f-af03-ba243eb31670\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.465Z",
  "transactionId": 11911002.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24449830",
  "pageFaults": 0.0,
  "pageHits": 28.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u002727504fe1-a00e-459f-af03-ba243eb31670\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.461Z",
  "transactionId": 11911002.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (wo:WorkOrder {tildaid: $wo_id})
        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'})
        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
raw payload (15 fields)
{
  "allocatedBytes": 928.0,
  "cpu": 0.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "4C51129A",
  "id": "24449829",
  "pageFaults": 0.0,
  "pageHits": 34.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u002727504fe1-a00e-459f-af03-ba243eb31670\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.453Z",
  "transactionId": 11911001.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (n:WorkOrder {tildaid: $node_id}) 
RETURN n
raw payload (15 fields)
{
  "allocatedBytes": 312.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E0146DD7",
  "id": "24449828",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u002727504fe1-a00e-459f-af03-ba243eb31670\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.444Z",
  "transactionId": 11911000.0,
  "waiting": 0.0
}
3h ago DEBUG virtual-assistant [daily_cron] Starting processing for work order 27504fe1-a00e-459f-af03-ba243eb31670
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 27504fe1-a00e-459f-af03-ba243eb31670
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 27504fe1-a00e-459f-af03-ba243eb31670",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.440Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [daily_cron] About to process work order 27504fe1-a00e-459f-af03-ba243eb31670
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 27504fe1-a00e-459f-af03-ba243eb31670
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 27504fe1-a00e-459f-af03-ba243eb31670",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.440Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [reminder] wo=f42328f2-c28d-44dd-9ba7-0b43ac19af6d mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=f42328f2-c28d-44dd-9ba7-0b43ac19af6d mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=5270m < step=2880m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=f42328f2-c28d-44dd-9ba7-0b43ac19af6d mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=5270m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.439Z",
  "version": "unknown"
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 828.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24449827",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027f42328f2-c28d-44dd-9ba7-0b43ac19af6d\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.436Z",
  "transactionId": 11910999.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 3272.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24449826",
  "pageFaults": 0.0,
  "pageHits": 23.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027f42328f2-c28d-44dd-9ba7-0b43ac19af6d\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.428Z",
  "transactionId": 11910998.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24449825",
  "pageFaults": 0.0,
  "pageHits": 24.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027f42328f2-c28d-44dd-9ba7-0b43ac19af6d\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.424Z",
  "transactionId": 11910998.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (wo:WorkOrder {tildaid: $wo_id})
        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'})
        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
raw payload (15 fields)
{
  "allocatedBytes": 928.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "4C51129A",
  "id": "24449824",
  "pageFaults": 0.0,
  "pageHits": 44.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027f42328f2-c28d-44dd-9ba7-0b43ac19af6d\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.416Z",
  "transactionId": 11910997.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (n:WorkOrder {tildaid: $node_id}) 
RETURN n
raw payload (15 fields)
{
  "allocatedBytes": 312.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E0146DD7",
  "id": "24449823",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027f42328f2-c28d-44dd-9ba7-0b43ac19af6d\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.407Z",
  "transactionId": 11910996.0,
  "waiting": 0.0
}
3h ago DEBUG virtual-assistant [daily_cron] Starting processing for work order f42328f2-c28d-44dd-9ba7-0b43ac19af6d
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order f42328f2-c28d-44dd-9ba7-0b43ac19af6d
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order f42328f2-c28d-44dd-9ba7-0b43ac19af6d",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.402Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [daily_cron] About to process work order f42328f2-c28d-44dd-9ba7-0b43ac19af6d
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order f42328f2-c28d-44dd-9ba7-0b43ac19af6d
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order f42328f2-c28d-44dd-9ba7-0b43ac19af6d",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.402Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [reminder] wo=b26f2eda-ea91-4a98-b778-0a7db67a2b6a mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=b26f2eda-ea91-4a98-b778-0a7db67a2b6a mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=5035m < step=2880m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=b26f2eda-ea91-4a98-b778-0a7db67a2b6a mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=5035m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.401Z",
  "version": "unknown"
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 776.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24449822",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027b26f2eda-ea91-4a98-b778-0a7db67a2b6a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.398Z",
  "transactionId": 11910995.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 3272.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24449821",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027b26f2eda-ea91-4a98-b778-0a7db67a2b6a\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.390Z",
  "transactionId": 11910994.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24449820",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027b26f2eda-ea91-4a98-b778-0a7db67a2b6a\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.386Z",
  "transactionId": 11910994.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (wo:WorkOrder {tildaid: $wo_id})
        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'})
        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
raw payload (15 fields)
{
  "allocatedBytes": 928.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "4C51129A",
  "id": "24449819",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027b26f2eda-ea91-4a98-b778-0a7db67a2b6a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.377Z",
  "transactionId": 11910993.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (n:WorkOrder {tildaid: $node_id}) 
RETURN n
raw payload (15 fields)
{
  "allocatedBytes": 312.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E0146DD7",
  "id": "24449818",
  "pageFaults": 0.0,
  "pageHits": 8.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027b26f2eda-ea91-4a98-b778-0a7db67a2b6a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.368Z",
  "transactionId": 11910992.0,
  "waiting": 0.0
}
3h ago DEBUG virtual-assistant [daily_cron] Starting processing for work order b26f2eda-ea91-4a98-b778-0a7db67a2b6a
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order b26f2eda-ea91-4a98-b778-0a7db67a2b6a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order b26f2eda-ea91-4a98-b778-0a7db67a2b6a",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.363Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [daily_cron] About to process work order b26f2eda-ea91-4a98-b778-0a7db67a2b6a
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order b26f2eda-ea91-4a98-b778-0a7db67a2b6a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order b26f2eda-ea91-4a98-b778-0a7db67a2b6a",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.362Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [reminder] wo=a90625ed-5354-473f-8665-840a4b8ff106 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=a90625ed-5354-473f-8665-840a4b8ff106 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=9402m < step=17280m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=a90625ed-5354-473f-8665-840a4b8ff106 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=9402m \u003c step=17280m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.362Z",
  "version": "unknown"
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 828.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24449817",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027a90625ed-5354-473f-8665-840a4b8ff106\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.297Z",
  "transactionId": 11910991.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 3272.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24449816",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027a90625ed-5354-473f-8665-840a4b8ff106\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.290Z",
  "transactionId": 11910990.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24449815",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027a90625ed-5354-473f-8665-840a4b8ff106\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.287Z",
  "transactionId": 11910990.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (wo:WorkOrder {tildaid: $wo_id})
        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'})
        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
raw payload (15 fields)
{
  "allocatedBytes": 928.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "4C51129A",
  "id": "24449814",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027a90625ed-5354-473f-8665-840a4b8ff106\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.279Z",
  "transactionId": 11910989.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (n:WorkOrder {tildaid: $node_id}) 
RETURN n
raw payload (15 fields)
{
  "allocatedBytes": 312.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E0146DD7",
  "id": "24449813",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027a90625ed-5354-473f-8665-840a4b8ff106\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.271Z",
  "transactionId": 11910988.0,
  "waiting": 0.0
}
3h ago DEBUG virtual-assistant [daily_cron] Starting processing for work order a90625ed-5354-473f-8665-840a4b8ff106
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order a90625ed-5354-473f-8665-840a4b8ff106
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order a90625ed-5354-473f-8665-840a4b8ff106",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.266Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [daily_cron] About to process work order a90625ed-5354-473f-8665-840a4b8ff106
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order a90625ed-5354-473f-8665-840a4b8ff106
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order a90625ed-5354-473f-8665-840a4b8ff106",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.266Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [reminder] wo=e358167a-298a-4e2e-bd17-401ab034115e mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=e358167a-298a-4e2e-bd17-401ab034115e mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=9435m < step=17280m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=e358167a-298a-4e2e-bd17-401ab034115e mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=9435m \u003c step=17280m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.266Z",
  "version": "unknown"
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 828.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24449812",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027e358167a-298a-4e2e-bd17-401ab034115e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.262Z",
  "transactionId": 11910987.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 3272.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24449811",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027e358167a-298a-4e2e-bd17-401ab034115e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.255Z",
  "transactionId": 11910986.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24449810",
  "pageFaults": 0.0,
  "pageHits": 8.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027e358167a-298a-4e2e-bd17-401ab034115e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.252Z",
  "transactionId": 11910986.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (wo:WorkOrder {tildaid: $wo_id})
        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'})
        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
raw payload (15 fields)
{
  "allocatedBytes": 928.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "4C51129A",
  "id": "24449809",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027e358167a-298a-4e2e-bd17-401ab034115e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.245Z",
  "transactionId": 11910985.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (n:WorkOrder {tildaid: $node_id}) 
RETURN n
raw payload (15 fields)
{
  "allocatedBytes": 312.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E0146DD7",
  "id": "24449808",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027e358167a-298a-4e2e-bd17-401ab034115e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.238Z",
  "transactionId": 11910984.0,
  "waiting": 0.0
}
3h ago DEBUG virtual-assistant [daily_cron] Starting processing for work order e358167a-298a-4e2e-bd17-401ab034115e
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order e358167a-298a-4e2e-bd17-401ab034115e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order e358167a-298a-4e2e-bd17-401ab034115e",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.232Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [daily_cron] About to process work order e358167a-298a-4e2e-bd17-401ab034115e
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order e358167a-298a-4e2e-bd17-401ab034115e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order e358167a-298a-4e2e-bd17-401ab034115e",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.232Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [reminder] wo=ecbb0954-bd2f-480d-9a58-17f4a0b10e31 mode=RECURRING should_send=False escalate=False override=set reason='override pending: eligible in 59m'
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=ecbb0954-bd2f-480d-9a58-17f4a0b10e31 mode=RECURRING should_send=False escalate=False override=set reason='override pending: eligible in 59m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=ecbb0954-bd2f-480d-9a58-17f4a0b10e31 mode=RECURRING should_send=False escalate=False override=set reason=\u0027override pending: eligible in 59m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.232Z",
  "version": "unknown"
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 828.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24449807",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027ecbb0954-bd2f-480d-9a58-17f4a0b10e31\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.228Z",
  "transactionId": 11910983.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 3272.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24449806",
  "pageFaults": 0.0,
  "pageHits": 24.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027ecbb0954-bd2f-480d-9a58-17f4a0b10e31\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.221Z",
  "transactionId": 11910982.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24449805",
  "pageFaults": 0.0,
  "pageHits": 25.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027ecbb0954-bd2f-480d-9a58-17f4a0b10e31\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.218Z",
  "transactionId": 11910982.0,
  "waiting": 0.0
}
3h ago DEBUG virtual-assistant [daily_cron] wo=ecbb0954-bd2f-480d-9a58-17f4a0b10e31 inactivity escalation suppressed: next reminder deliberately held until 1785110400000...
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:164
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] wo=ecbb0954-bd2f-480d-9a58-17f4a0b10e31 inactivity escalation suppressed: next reminder deliberately held until 1785110400000 (waiting per site estimate, not stalled)
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:164",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] wo=ecbb0954-bd2f-480d-9a58-17f4a0b10e31 inactivity escalation suppressed: next reminder deliberately held until 1785110400000 (waiting per site estimate, not stalled)",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.213Z",
  "version": "unknown"
}
3h ago INFO virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (wo:WorkOrder {tildaid: $wo_id})
        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'})
        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
raw payload (15 fields)
{
  "allocatedBytes": 928.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "4C51129A",
  "id": "24449804",
  "pageFaults": 0.0,
  "pageHits": 33.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027ecbb0954-bd2f-480d-9a58-17f4a0b10e31\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.209Z",
  "transactionId": 11910981.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (n:WorkOrder {tildaid: $node_id}) 
RETURN n
raw payload (15 fields)
{
  "allocatedBytes": 312.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E0146DD7",
  "id": "24449803",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027ecbb0954-bd2f-480d-9a58-17f4a0b10e31\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.200Z",
  "transactionId": 11910980.0,
  "waiting": 0.0
}
3h ago DEBUG virtual-assistant [daily_cron] Starting processing for work order ecbb0954-bd2f-480d-9a58-17f4a0b10e31
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order ecbb0954-bd2f-480d-9a58-17f4a0b10e31
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order ecbb0954-bd2f-480d-9a58-17f4a0b10e31",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.195Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [daily_cron] About to process work order ecbb0954-bd2f-480d-9a58-17f4a0b10e31
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order ecbb0954-bd2f-480d-9a58-17f4a0b10e31
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order ecbb0954-bd2f-480d-9a58-17f4a0b10e31",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.195Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [reminder] wo=513b7315-882c-48fb-a126-ffc4e06834ec mode=RECURRING should_send=False escalate=False override=set reason='override pending: eligible...
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=513b7315-882c-48fb-a126-ffc4e06834ec mode=RECURRING should_send=False escalate=False override=set reason='override pending: eligible in 1069m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=513b7315-882c-48fb-a126-ffc4e06834ec mode=RECURRING should_send=False escalate=False override=set reason=\u0027override pending: eligible in 1069m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.194Z",
  "version": "unknown"
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 776.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24449802",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027513b7315-882c-48fb-a126-ffc4e06834ec\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.191Z",
  "transactionId": 11910979.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 3272.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24449801",
  "pageFaults": 0.0,
  "pageHits": 25.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027513b7315-882c-48fb-a126-ffc4e06834ec\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.183Z",
  "transactionId": 11910978.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24449800",
  "pageFaults": 0.0,
  "pageHits": 26.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027513b7315-882c-48fb-a126-ffc4e06834ec\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.180Z",
  "transactionId": 11910978.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (wo:WorkOrder {tildaid: $wo_id})
        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type: 'U_REPLY'})
        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts
raw payload (15 fields)
{
  "allocatedBytes": 928.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "4C51129A",
  "id": "24449799",
  "pageFaults": 0.0,
  "pageHits": 38.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027513b7315-882c-48fb-a126-ffc4e06834ec\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.172Z",
  "transactionId": 11910977.0,
  "waiting": 0.0
}
3h ago INFO virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-26 23:00:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podserver-2-dev-0
query
MATCH (n:WorkOrder {tildaid: $node_id}) 
RETURN n
raw payload (15 fields)
{
  "allocatedBytes": 312.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E0146DD7",
  "id": "24449798",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027513b7315-882c-48fb-a126-ffc4e06834ec\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:43384\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-26T23:00:10.164Z",
  "transactionId": 11910976.0,
  "waiting": 0.0
}
3h ago DEBUG virtual-assistant [daily_cron] Starting processing for work order 513b7315-882c-48fb-a126-ffc4e06834ec
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 513b7315-882c-48fb-a126-ffc4e06834ec
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 513b7315-882c-48fb-a126-ffc4e06834ec",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.160Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant [daily_cron] About to process work order 513b7315-882c-48fb-a126-ffc4e06834ec
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 513b7315-882c-48fb-a126-ffc4e06834ec
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 513b7315-882c-48fb-a126-ffc4e06834ec",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.159Z",
  "version": "unknown"
}
3h ago DEBUG virtual-assistant 🏢 Processing organization 9f996610-f74a-4cd5-9052-cb5405d78c6f (13 work orders)
time2026-07-26 23:00:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:362
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
tracea458452a585b0d2cb53d6e60039c57f1
span01b5b043d8879d43
podvirtual-assistant-65b975d66b-l8wpw
message
🏢 Processing organization 9f996610-f74a-4cd5-9052-cb5405d78c6f (13 work orders)
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:362",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\ud83c\udfe2 Processing organization 9f996610-f74a-4cd5-9052-cb5405d78c6f (13 work orders)",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-26T23:00:10.159Z",
  "version": "unknown"
}

Every log line sharing this trace id, across all services — fetched live from Cloud Logging (tilda-trial-automation), never stored. Open the Logs Explorer for the same view with field filters.