Xray · see through your fleet
1h 6h 24h 48h 3d
custom ▾
live

Logs

Live Cloud Logging query (nothing stored) · master · last 1h · newest first · page 2 (200/page) · 200 entries in 1281 ms all app neo4j weaviate time relative absolute

reset
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 5fda6743-4617-464f-9598-5ffebf341fa6
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 5fda6743-4617-464f-9598-5ffebf341fa6
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 5fda6743-4617-464f-9598-5ffebf341fa6",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.243Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [daily_cron] About to process work order 5fda6743-4617-464f-9598-5ffebf341fa6
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 5fda6743-4617-464f-9598-5ffebf341fa6
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 5fda6743-4617-464f-9598-5ffebf341fa6",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.243Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [reminder] wo=322547e7-b0fd-4d98-963d-afb231950377 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=322547e7-b0fd-4d98-963d-afb231950377 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=322547e7-b0fd-4d98-963d-afb231950377 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.242Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
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": "24641258",
  "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: \u0027322547e7-b0fd-4d98-963d-afb231950377\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.239Z",
  "transactionId": 12025328.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j 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-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
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": "24641257",
  "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        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: \u0027322547e7-b0fd-4d98-963d-afb231950377\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.232Z",
  "transactionId": 12025327.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j 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-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
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": "24641256",
  "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        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027322547e7-b0fd-4d98-963d-afb231950377\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.229Z",
  "transactionId": 12025327.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
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": "24641255",
  "pageFaults": 0.0,
  "pageHits": 13.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: \u0027322547e7-b0fd-4d98-963d-afb231950377\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.221Z",
  "transactionId": 12025326.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
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": "24641254",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027322547e7-b0fd-4d98-963d-afb231950377\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.214Z",
  "transactionId": 12025325.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 322547e7-b0fd-4d98-963d-afb231950377
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 322547e7-b0fd-4d98-963d-afb231950377
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 322547e7-b0fd-4d98-963d-afb231950377",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.209Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [daily_cron] About to process work order 322547e7-b0fd-4d98-963d-afb231950377
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 322547e7-b0fd-4d98-963d-afb231950377
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 322547e7-b0fd-4d98-963d-afb231950377",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.209Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [reminder] wo=6ff3918b-05db-4310-bde3-9019341f582a no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=6ff3918b-05db-4310-bde3-9019341f582a no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=6ff3918b-05db-4310-bde3-9019341f582a no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.209Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
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": "24641253",
  "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: \u00276ff3918b-05db-4310-bde3-9019341f582a\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.205Z",
  "transactionId": 12025324.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j 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-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
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": 1.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24641252",
  "pageFaults": 0.0,
  "pageHits": 11.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: \u00276ff3918b-05db-4310-bde3-9019341f582a\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.198Z",
  "transactionId": 12025323.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j 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-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
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": "24641251",
  "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        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u00276ff3918b-05db-4310-bde3-9019341f582a\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.194Z",
  "transactionId": 12025323.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
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": "24641250",
  "pageFaults": 0.0,
  "pageHits": 16.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: \u00276ff3918b-05db-4310-bde3-9019341f582a\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.186Z",
  "transactionId": 12025322.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
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": "24641249",
  "pageFaults": 0.0,
  "pageHits": 8.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00276ff3918b-05db-4310-bde3-9019341f582a\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.179Z",
  "transactionId": 12025321.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 6ff3918b-05db-4310-bde3-9019341f582a
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 6ff3918b-05db-4310-bde3-9019341f582a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 6ff3918b-05db-4310-bde3-9019341f582a",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.174Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [daily_cron] About to process work order 6ff3918b-05db-4310-bde3-9019341f582a
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 6ff3918b-05db-4310-bde3-9019341f582a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 6ff3918b-05db-4310-bde3-9019341f582a",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.174Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [reminder] wo=c10303ac-4c50-40fa-9713-4e535108f3b7 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=c10303ac-4c50-40fa-9713-4e535108f3b7 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=c10303ac-4c50-40fa-9713-4e535108f3b7 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.173Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
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": "24641248",
  "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: \u0027c10303ac-4c50-40fa-9713-4e535108f3b7\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.170Z",
  "transactionId": 12025320.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j 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-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
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": "24641247",
  "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: \u0027c10303ac-4c50-40fa-9713-4e535108f3b7\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.162Z",
  "transactionId": 12025319.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j 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-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
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": "24641246",
  "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: \u0027c10303ac-4c50-40fa-9713-4e535108f3b7\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.159Z",
  "transactionId": 12025319.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
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": "24641245",
  "pageFaults": 0.0,
  "pageHits": 26.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: \u0027c10303ac-4c50-40fa-9713-4e535108f3b7\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.151Z",
  "transactionId": 12025318.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
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": "24641244",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027c10303ac-4c50-40fa-9713-4e535108f3b7\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.142Z",
  "transactionId": 12025317.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order c10303ac-4c50-40fa-9713-4e535108f3b7
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order c10303ac-4c50-40fa-9713-4e535108f3b7
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order c10303ac-4c50-40fa-9713-4e535108f3b7",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.138Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [daily_cron] About to process work order c10303ac-4c50-40fa-9713-4e535108f3b7
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order c10303ac-4c50-40fa-9713-4e535108f3b7
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order c10303ac-4c50-40fa-9713-4e535108f3b7",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.138Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant 🏢 Processing organization 4510cbf5-af86-40c7-ba81-1e7aa0df8c2e (4 work orders)
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:362
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
trace030b3d02596a5fe630d1335ca674a257
spane4e1fa1fc62bdafe
podvirtual-assistant-65b975d66b-l8wpw
message
🏢 Processing organization 4510cbf5-af86-40c7-ba81-1e7aa0df8c2e (4 work orders)
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:362",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\ud83c\udfe2 Processing organization 4510cbf5-af86-40c7-ba81-1e7aa0df8c2e (4 work orders)",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.137Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant ✅ Org 8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30 summary: processed=2, reminders_sent=0, moved_to_need_attention=0
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:377
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
podvirtual-assistant-65b975d66b-l8wpw
message
✅ Org 8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30 summary: processed=2, 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 8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30 summary: processed=2, reminders_sent=0, moved_to_need_attention=0",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.137Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [reminder] wo=57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.137Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
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": "24641243",
  "pageFaults": 0.0,
  "pageHits": 5.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: \u002757c957cb-a23f-4f3a-8bf1-bb9e566a2b6e\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.133Z",
  "transactionId": 12025316.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j 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-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
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": "24641242",
  "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: \u002757c957cb-a23f-4f3a-8bf1-bb9e566a2b6e\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.126Z",
  "transactionId": 12025315.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j 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-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
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": "24641241",
  "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: \u002757c957cb-a23f-4f3a-8bf1-bb9e566a2b6e\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.123Z",
  "transactionId": 12025315.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
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": "24641240",
  "pageFaults": 0.0,
  "pageHits": 14.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: \u002757c957cb-a23f-4f3a-8bf1-bb9e566a2b6e\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.114Z",
  "transactionId": 12025314.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
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": "24641239",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u002757c957cb-a23f-4f3a-8bf1-bb9e566a2b6e\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.104Z",
  "transactionId": 12025313.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.098Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [daily_cron] About to process work order 57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.098Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [reminder] wo=d4a889a1-a6b0-4bdd-9ede-fae571005b67 draft already pending — skipping reminder (no send, no draft) to preserve user intent
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:200
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=d4a889a1-a6b0-4bdd-9ede-fae571005b67 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=d4a889a1-a6b0-4bdd-9ede-fae571005b67 draft already pending \u2014 skipping reminder (no send, no draft) to preserve user intent",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.097Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC neo4j 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-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
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": "24641238",
  "pageFaults": 0.0,
  "pageHits": 11.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: \u0027d4a889a1-a6b0-4bdd-9ede-fae571005b67\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.093Z",
  "transactionId": 12025312.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j 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-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
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": "24641237",
  "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: \u0027d4a889a1-a6b0-4bdd-9ede-fae571005b67\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.090Z",
  "transactionId": 12025312.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization) RETURN...
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
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": "24641236",
  "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: \u0027d4a889a1-a6b0-4bdd-9ede-fae571005b67\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.081Z",
  "transactionId": 12025311.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j 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-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
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": 0.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24641235",
  "pageFaults": 0.0,
  "pageHits": 11.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: \u0027d4a889a1-a6b0-4bdd-9ede-fae571005b67\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.070Z",
  "transactionId": 12025310.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j 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-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
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": "24641234",
  "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: \u0027d4a889a1-a6b0-4bdd-9ede-fae571005b67\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.066Z",
  "transactionId": 12025310.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
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": "24641233",
  "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: \u0027d4a889a1-a6b0-4bdd-9ede-fae571005b67\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.058Z",
  "transactionId": 12025309.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
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": "24641232",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027d4a889a1-a6b0-4bdd-9ede-fae571005b67\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.050Z",
  "transactionId": 12025308.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order d4a889a1-a6b0-4bdd-9ede-fae571005b67
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order d4a889a1-a6b0-4bdd-9ede-fae571005b67
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order d4a889a1-a6b0-4bdd-9ede-fae571005b67",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.046Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [daily_cron] About to process work order d4a889a1-a6b0-4bdd-9ede-fae571005b67
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order d4a889a1-a6b0-4bdd-9ede-fae571005b67
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order d4a889a1-a6b0-4bdd-9ede-fae571005b67",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.046Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant 🏢 Processing organization 8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30 (2 work orders)
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:362
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
trace2c344adafbe9d43062b2d439f4d7d9fa
span5b6f968bb97d2cde
podvirtual-assistant-65b975d66b-l8wpw
message
🏢 Processing organization 8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30 (2 work orders)
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:362",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\ud83c\udfe2 Processing organization 8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30 (2 work orders)",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.045Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant ✅ Org 9f996610-f74a-4cd5-9052-cb5405d78c6f summary: processed=12, reminders_sent=0, moved_to_need_attention=0
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:377
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
podvirtual-assistant-65b975d66b-l8wpw
message
✅ Org 9f996610-f74a-4cd5-9052-cb5405d78c6f summary: processed=12, 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=12, reminders_sent=0, moved_to_need_attention=0",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.045Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC 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-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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=2231m < 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=2231m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.045Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641231",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.041Z",
  "transactionId": 12025307.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j 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-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641230",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.034Z",
  "transactionId": 12025306.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j 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-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641229",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.031Z",
  "transactionId": 12025306.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641228",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.023Z",
  "transactionId": 12025305.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641227",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.015Z",
  "transactionId": 12025304.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 485f1414-f260-45ca-806c-a1c7843624bc
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:10.010Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC DEBUG virtual-assistant [daily_cron] About to process work order 485f1414-f260-45ca-806c-a1c7843624bc
time2026-07-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:10.010Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC 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-27 00:07:10 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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=3208m < 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=3208m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:10.010Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:10 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:10 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641226",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:10.006Z",
  "transactionId": 12025303.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641225",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.999Z",
  "transactionId": 12025302.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641224",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.995Z",
  "transactionId": 12025302.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641223",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.988Z",
  "transactionId": 12025301.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641222",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.979Z",
  "transactionId": 12025300.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 88f04d6a-d740-47c4-bc29-a959b502598e
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.973Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 88f04d6a-d740-47c4-bc29-a959b502598e
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.973Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC 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-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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=3228m < 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=3228m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.973Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641221",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.969Z",
  "transactionId": 12025299.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641220",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.962Z",
  "transactionId": 12025298.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641219",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.959Z",
  "transactionId": 12025298.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641218",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.952Z",
  "transactionId": 12025297.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641217",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.944Z",
  "transactionId": 12025296.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 8b2449c7-0c34-47c4-b4b9-ae5867fb2d45
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.939Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 8b2449c7-0c34-47c4-b4b9-ae5867fb2d45
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.939Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC 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-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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 1080m'
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 1080m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.939Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641216",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.935Z",
  "transactionId": 12025295.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641215",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.927Z",
  "transactionId": 12025294.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641214",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.924Z",
  "transactionId": 12025294.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641213",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.917Z",
  "transactionId": 12025293.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641212",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.909Z",
  "transactionId": 12025292.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order c6b45988-3afb-4efc-843d-efe22819df8a
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.904Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order c6b45988-3afb-4efc-843d-efe22819df8a
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.904Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC 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-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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=3306m < 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=3306m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.904Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641211",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.900Z",
  "transactionId": 12025291.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": 1.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24641210",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.892Z",
  "transactionId": 12025290.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641209",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.888Z",
  "transactionId": 12025290.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641208",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.880Z",
  "transactionId": 12025289.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641207",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.872Z",
  "transactionId": 12025288.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order d74db13c-677a-4fd3-89f6-02349b34abfb
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.867Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order d74db13c-677a-4fd3-89f6-02349b34abfb
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.867Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC 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-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:200
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.867Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641206",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.863Z",
  "transactionId": 12025287.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641205",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.860Z",
  "transactionId": 12025287.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization) RETURN...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641204",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.852Z",
  "transactionId": 12025286.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641203",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.845Z",
  "transactionId": 12025285.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641202",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.841Z",
  "transactionId": 12025285.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641201",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.834Z",
  "transactionId": 12025284.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641200",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.825Z",
  "transactionId": 12025283.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 8c5c5785-bead-41a8-8002-3d05b949c13d
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.821Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 8c5c5785-bead-41a8-8002-3d05b949c13d
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.821Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC 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-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:200
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.820Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641199",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.817Z",
  "transactionId": 12025282.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641198",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.813Z",
  "transactionId": 12025282.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization) RETURN...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641197",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.804Z",
  "transactionId": 12025281.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641196",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.797Z",
  "transactionId": 12025280.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641195",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.793Z",
  "transactionId": 12025280.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641194",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.786Z",
  "transactionId": 12025279.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641193",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.777Z",
  "transactionId": 12025278.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 27504fe1-a00e-459f-af03-ba243eb31670
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.773Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 27504fe1-a00e-459f-af03-ba243eb31670
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.773Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC 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-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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=5337m < 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=5337m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.773Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641192",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.769Z",
  "transactionId": 12025277.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641191",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.761Z",
  "transactionId": 12025276.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641190",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.757Z",
  "transactionId": 12025276.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641189",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.749Z",
  "transactionId": 12025275.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641188",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.741Z",
  "transactionId": 12025274.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order f42328f2-c28d-44dd-9ba7-0b43ac19af6d
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.737Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order f42328f2-c28d-44dd-9ba7-0b43ac19af6d
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.736Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC 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-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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=5102m < 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=5102m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.736Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641187",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.732Z",
  "transactionId": 12025273.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641186",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.725Z",
  "transactionId": 12025272.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641185",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.722Z",
  "transactionId": 12025272.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641184",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.715Z",
  "transactionId": 12025271.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641183",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.707Z",
  "transactionId": 12025270.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order b26f2eda-ea91-4a98-b778-0a7db67a2b6a
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.703Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order b26f2eda-ea91-4a98-b778-0a7db67a2b6a
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.702Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC 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-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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=9469m < 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=9469m \u003c step=17280m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.702Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641182",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.698Z",
  "transactionId": 12025269.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641181",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.691Z",
  "transactionId": 12025268.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641180",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.688Z",
  "transactionId": 12025268.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641179",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.681Z",
  "transactionId": 12025267.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641178",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.672Z",
  "transactionId": 12025266.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order a90625ed-5354-473f-8665-840a4b8ff106
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.667Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order a90625ed-5354-473f-8665-840a4b8ff106
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.667Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC 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-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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=9502m < 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=9502m \u003c step=17280m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.666Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641177",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.663Z",
  "transactionId": 12025265.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641176",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.656Z",
  "transactionId": 12025264.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641175",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.652Z",
  "transactionId": 12025264.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641174",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.645Z",
  "transactionId": 12025263.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641173",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.638Z",
  "transactionId": 12025262.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order e358167a-298a-4e2e-bd17-401ab034115e
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.633Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order e358167a-298a-4e2e-bd17-401ab034115e
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.633Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC 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-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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 1002m'
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 1002m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.633Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641172",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.629Z",
  "transactionId": 12025261.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641171",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.622Z",
  "transactionId": 12025260.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641170",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.619Z",
  "transactionId": 12025260.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641169",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.612Z",
  "transactionId": 12025259.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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": "24641168",
  "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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.604Z",
  "transactionId": 12025258.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 513b7315-882c-48fb-a126-ffc4e06834ec
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.600Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 513b7315-882c-48fb-a126-ffc4e06834ec
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
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-27T00:07:09.599Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant 🏢 Processing organization 9f996610-f74a-4cd5-9052-cb5405d78c6f (12 work orders)
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:362
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
traceb7283b7cce1b41ae3fe9bc9191b13991
span51d5d57a60dd3fe2
podvirtual-assistant-65b975d66b-l8wpw
message
🏢 Processing organization 9f996610-f74a-4cd5-9052-cb5405d78c6f (12 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 (12 work orders)",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.599Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant ✅ Org 2d88eda5-bcfa-4565-af90-db111ea04aa3 summary: processed=1, reminders_sent=0, moved_to_need_attention=0
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:377
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
versionunknown
trace99ba360a8893d1fcd789d11f35936e01
span2b7f93492c031438
podvirtual-assistant-65b975d66b-l8wpw
message
✅ Org 2d88eda5-bcfa-4565-af90-db111ea04aa3 summary: processed=1, 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 2d88eda5-bcfa-4565-af90-db111ea04aa3 summary: processed=1, reminders_sent=0, moved_to_need_attention=0",
  "org_alias": "2d88eda5-bcfa-4565-af90-db111ea04aa3",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.599Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [reminder] wo=442a7419-9334-4479-aa7e-c607afaee462 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
versionunknown
trace99ba360a8893d1fcd789d11f35936e01
span2b7f93492c031438
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=442a7419-9334-4479-aa7e-c607afaee462 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=921m < step=1440m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=442a7419-9334-4479-aa7e-c607afaee462 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=921m \u003c step=1440m\u0027",
  "org_alias": "2d88eda5-bcfa-4565-af90-db111ea04aa3",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.599Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
trace99ba360a8893d1fcd789d11f35936e01
span2b7f93492c031438
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": "24641167",
  "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: \u0027442a7419-9334-4479-aa7e-c607afaee462\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.594Z",
  "transactionId": 12025257.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
trace99ba360a8893d1fcd789d11f35936e01
span2b7f93492c031438
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": "24641166",
  "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        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: \u0027442a7419-9334-4479-aa7e-c607afaee462\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.587Z",
  "transactionId": 12025256.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
trace99ba360a8893d1fcd789d11f35936e01
span2b7f93492c031438
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": "24641165",
  "pageFaults": 0.0,
  "pageHits": 11.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: \u0027442a7419-9334-4479-aa7e-c607afaee462\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.583Z",
  "transactionId": 12025256.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
trace99ba360a8893d1fcd789d11f35936e01
span2b7f93492c031438
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": "24641164",
  "pageFaults": 0.0,
  "pageHits": 13.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: \u0027442a7419-9334-4479-aa7e-c607afaee462\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.576Z",
  "transactionId": 12025255.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
trace99ba360a8893d1fcd789d11f35936e01
span2b7f93492c031438
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": "24641163",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027442a7419-9334-4479-aa7e-c607afaee462\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.569Z",
  "transactionId": 12025254.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 442a7419-9334-4479-aa7e-c607afaee462
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
versionunknown
trace99ba360a8893d1fcd789d11f35936e01
span2b7f93492c031438
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 442a7419-9334-4479-aa7e-c607afaee462
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 442a7419-9334-4479-aa7e-c607afaee462",
  "org_alias": "2d88eda5-bcfa-4565-af90-db111ea04aa3",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.565Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 442a7419-9334-4479-aa7e-c607afaee462
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
versionunknown
trace99ba360a8893d1fcd789d11f35936e01
span2b7f93492c031438
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 442a7419-9334-4479-aa7e-c607afaee462
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 442a7419-9334-4479-aa7e-c607afaee462",
  "org_alias": "2d88eda5-bcfa-4565-af90-db111ea04aa3",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.565Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant 🏢 Processing organization 2d88eda5-bcfa-4565-af90-db111ea04aa3 (1 work orders)
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:362
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
versionunknown
trace99ba360a8893d1fcd789d11f35936e01
span2b7f93492c031438
podvirtual-assistant-65b975d66b-l8wpw
message
🏢 Processing organization 2d88eda5-bcfa-4565-af90-db111ea04aa3 (1 work orders)
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:362",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\ud83c\udfe2 Processing organization 2d88eda5-bcfa-4565-af90-db111ea04aa3 (1 work orders)",
  "org_alias": "2d88eda5-bcfa-4565-af90-db111ea04aa3",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.565Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant ✅ Org 5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf summary: processed=11, reminders_sent=0, moved_to_need_attention=0
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:377
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
podvirtual-assistant-65b975d66b-l8wpw
message
✅ Org 5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf summary: processed=11, 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 5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf summary: processed=11, reminders_sent=0, moved_to_need_attention=0",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.564Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [reminder] wo=437c18c3-6691-461a-b3ce-742e84b88f69 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=437c18c3-6691-461a-b3ce-742e84b88f69 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=800m < step=1440m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=437c18c3-6691-461a-b3ce-742e84b88f69 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=800m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.564Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": 880.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24641162",
  "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: \u0027437c18c3-6691-461a-b3ce-742e84b88f69\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.560Z",
  "transactionId": 12025253.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641161",
  "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: \u0027437c18c3-6691-461a-b3ce-742e84b88f69\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.553Z",
  "transactionId": 12025252.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641160",
  "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: \u0027437c18c3-6691-461a-b3ce-742e84b88f69\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.550Z",
  "transactionId": 12025252.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641159",
  "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: \u0027437c18c3-6691-461a-b3ce-742e84b88f69\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.543Z",
  "transactionId": 12025251.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641158",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027437c18c3-6691-461a-b3ce-742e84b88f69\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.535Z",
  "transactionId": 12025250.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 437c18c3-6691-461a-b3ce-742e84b88f69
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 437c18c3-6691-461a-b3ce-742e84b88f69
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 437c18c3-6691-461a-b3ce-742e84b88f69",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.530Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 437c18c3-6691-461a-b3ce-742e84b88f69
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 437c18c3-6691-461a-b3ce-742e84b88f69
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 437c18c3-6691-461a-b3ce-742e84b88f69",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.530Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [reminder] wo=da057921-1a96-43f2-af14-37551103141e mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=da057921-1a96-43f2-af14-37551103141e mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=269m < step=1440m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=da057921-1a96-43f2-af14-37551103141e mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=269m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.530Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC INFO
filter by: severity≥INFO
time2026-07-27 00:07:09 UTC
severityINFO
clustermaster
podlitellm-f54655c99-cbmvt
4m ago2026-07-27 00:07:09 UTC INFO
filter by: severity≥INFO
time2026-07-27 00:07:09 UTC
severityINFO
clustermaster
podrag-agent-57879dd94f-l9nz7
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": 880.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24641157",
  "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: \u0027da057921-1a96-43f2-af14-37551103141e\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.526Z",
  "transactionId": 12025249.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641155",
  "pageFaults": 0.0,
  "pageHits": 11.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: \u0027da057921-1a96-43f2-af14-37551103141e\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.519Z",
  "transactionId": 12025247.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641154",
  "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        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027da057921-1a96-43f2-af14-37551103141e\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.516Z",
  "transactionId": 12025247.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641153",
  "pageFaults": 0.0,
  "pageHits": 14.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: \u0027da057921-1a96-43f2-af14-37551103141e\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.509Z",
  "transactionId": 12025246.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641152",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027da057921-1a96-43f2-af14-37551103141e\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.501Z",
  "transactionId": 12025245.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order da057921-1a96-43f2-af14-37551103141e
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order da057921-1a96-43f2-af14-37551103141e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order da057921-1a96-43f2-af14-37551103141e",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.496Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order da057921-1a96-43f2-af14-37551103141e
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order da057921-1a96-43f2-af14-37551103141e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order da057921-1a96-43f2-af14-37551103141e",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.496Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [reminder] wo=b75c9de7-83f0-485d-8fc0-195ffd82307a mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=b75c9de7-83f0-485d-8fc0-195ffd82307a mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=321m < step=1440m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=b75c9de7-83f0-485d-8fc0-195ffd82307a mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=321m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.496Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641151",
  "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: \u0027b75c9de7-83f0-485d-8fc0-195ffd82307a\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.492Z",
  "transactionId": 12025244.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641150",
  "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        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: \u0027b75c9de7-83f0-485d-8fc0-195ffd82307a\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.485Z",
  "transactionId": 12025243.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641149",
  "pageFaults": 0.0,
  "pageHits": 11.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: \u0027b75c9de7-83f0-485d-8fc0-195ffd82307a\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.482Z",
  "transactionId": 12025243.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641148",
  "pageFaults": 0.0,
  "pageHits": 13.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: \u0027b75c9de7-83f0-485d-8fc0-195ffd82307a\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.475Z",
  "transactionId": 12025242.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641147",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027b75c9de7-83f0-485d-8fc0-195ffd82307a\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.467Z",
  "transactionId": 12025241.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order b75c9de7-83f0-485d-8fc0-195ffd82307a
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order b75c9de7-83f0-485d-8fc0-195ffd82307a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order b75c9de7-83f0-485d-8fc0-195ffd82307a",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.463Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order b75c9de7-83f0-485d-8fc0-195ffd82307a
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order b75c9de7-83f0-485d-8fc0-195ffd82307a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order b75c9de7-83f0-485d-8fc0-195ffd82307a",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.462Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [reminder] wo=dd15f131-56f1-48f2-919c-a4c61bff494a mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=dd15f131-56f1-48f2-919c-a4c61bff494a mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=344m < step=1440m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=dd15f131-56f1-48f2-919c-a4c61bff494a mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=344m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.462Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": 880.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24641146",
  "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: \u0027dd15f131-56f1-48f2-919c-a4c61bff494a\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.458Z",
  "transactionId": 12025240.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": 1.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "24641145",
  "pageFaults": 0.0,
  "pageHits": 11.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: \u0027dd15f131-56f1-48f2-919c-a4c61bff494a\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.450Z",
  "transactionId": 12025239.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641144",
  "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        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027dd15f131-56f1-48f2-919c-a4c61bff494a\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.447Z",
  "transactionId": 12025239.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641143",
  "pageFaults": 0.0,
  "pageHits": 14.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: \u0027dd15f131-56f1-48f2-919c-a4c61bff494a\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.440Z",
  "transactionId": 12025238.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641142",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027dd15f131-56f1-48f2-919c-a4c61bff494a\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.431Z",
  "transactionId": 12025237.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order dd15f131-56f1-48f2-919c-a4c61bff494a
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order dd15f131-56f1-48f2-919c-a4c61bff494a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order dd15f131-56f1-48f2-919c-a4c61bff494a",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.426Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order dd15f131-56f1-48f2-919c-a4c61bff494a
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order dd15f131-56f1-48f2-919c-a4c61bff494a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order dd15f131-56f1-48f2-919c-a4c61bff494a",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.426Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [reminder] wo=541a6291-1a99-4640-b3d1-f7ab73bcc8a5 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=541a6291-1a99-4640-b3d1-f7ab73bcc8a5 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=352m < step=1440m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=541a6291-1a99-4640-b3d1-f7ab73bcc8a5 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=352m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:07:09.425Z",
  "version": "unknown"
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": 880.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24641141",
  "pageFaults": 0.0,
  "pageHits": 12.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: \u0027541a6291-1a99-4640-b3d1-f7ab73bcc8a5\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.421Z",
  "transactionId": 12025236.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641139",
  "pageFaults": 0.0,
  "pageHits": 30.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: \u0027541a6291-1a99-4640-b3d1-f7ab73bcc8a5\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.414Z",
  "transactionId": 12025235.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j 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-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641138",
  "pageFaults": 0.0,
  "pageHits": 31.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: \u0027541a6291-1a99-4640-b3d1-f7ab73bcc8a5\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.410Z",
  "transactionId": 12025235.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641137",
  "pageFaults": 0.0,
  "pageHits": 47.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: \u0027541a6291-1a99-4640-b3d1-f7ab73bcc8a5\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.403Z",
  "transactionId": 12025234.0,
  "waiting": 0.0
}
4m ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace13946241d6e6e4d310e613b2aff6f482
spana096e00ed07dbf87
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": "24641136",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027541a6291-1a99-4640-b3d1-f7ab73bcc8a5\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:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:07:09.395Z",
  "transactionId": 12025233.0,
  "waiting": 0.0
}

Paginated with Cloud Logging page cursors, so you can walk the whole 1h window — not just the newest page. Click any filter by value to scope the view (resets to page 1). Paste a trace id to see every log line across all services for that one request.