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

Logs

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

reset
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant ✅ Org 5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf summary: processed=11, reminders_sent=0, moved_to_need_attention=0
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:377
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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-27T02:25:08.954Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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=938m < 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=938m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.954Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414930",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.950Z",
  "transactionId": 12260650.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414928",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.944Z",
  "transactionId": 12260649.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414927",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.941Z",
  "transactionId": 12260649.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414925",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.933Z",
  "transactionId": 12260648.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414923",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.926Z",
  "transactionId": 12260647.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 437c18c3-6691-461a-b3ce-742e84b88f69
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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-27T02:25:08.922Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 437c18c3-6691-461a-b3ce-742e84b88f69
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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-27T02:25:08.921Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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=406m < 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=406m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.921Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414921",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.918Z",
  "transactionId": 12260646.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414919",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.911Z",
  "transactionId": 12260645.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414918",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.908Z",
  "transactionId": 12260645.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414916",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.902Z",
  "transactionId": 12260644.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414914",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.894Z",
  "transactionId": 12260643.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order da057921-1a96-43f2-af14-37551103141e
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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-27T02:25:08.889Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order da057921-1a96-43f2-af14-37551103141e
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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-27T02:25:08.889Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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=458m < 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=458m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.889Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414912",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.885Z",
  "transactionId": 12260642.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414911",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.878Z",
  "transactionId": 12260641.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414910",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.875Z",
  "transactionId": 12260641.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414908",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.868Z",
  "transactionId": 12260640.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414906",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.860Z",
  "transactionId": 12260639.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order b75c9de7-83f0-485d-8fc0-195ffd82307a
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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-27T02:25:08.856Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order b75c9de7-83f0-485d-8fc0-195ffd82307a
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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-27T02:25:08.856Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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=482m < 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=482m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.855Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414904",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.851Z",
  "transactionId": 12260638.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414900",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.844Z",
  "transactionId": 12260637.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414899",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.841Z",
  "transactionId": 12260637.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414896",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.834Z",
  "transactionId": 12260636.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414895",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.827Z",
  "transactionId": 12260635.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order dd15f131-56f1-48f2-919c-a4c61bff494a
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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-27T02:25:08.822Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order dd15f131-56f1-48f2-919c-a4c61bff494a
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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-27T02:25:08.822Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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=489m < 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=489m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.822Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414892",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.818Z",
  "transactionId": 12260634.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414888",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.812Z",
  "transactionId": 12260633.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414887",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.808Z",
  "transactionId": 12260633.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414885",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.802Z",
  "transactionId": 12260632.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414884",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.795Z",
  "transactionId": 12260631.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 541a6291-1a99-4640-b3d1-f7ab73bcc8a5
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 541a6291-1a99-4640-b3d1-f7ab73bcc8a5
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 541a6291-1a99-4640-b3d1-f7ab73bcc8a5",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.792Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 541a6291-1a99-4640-b3d1-f7ab73bcc8a5
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 541a6291-1a99-4640-b3d1-f7ab73bcc8a5
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 541a6291-1a99-4640-b3d1-f7ab73bcc8a5",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.791Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [reminder] wo=594ce58e-8192-4c80-9386-832b22bfe1f4 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=594ce58e-8192-4c80-9386-832b22bfe1f4 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=4888m < step=4320m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=594ce58e-8192-4c80-9386-832b22bfe1f4 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=4888m \u003c step=4320m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.791Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414883",
  "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: \u0027594ce58e-8192-4c80-9386-832b22bfe1f4\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.788Z",
  "transactionId": 12260630.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414882",
  "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: \u0027594ce58e-8192-4c80-9386-832b22bfe1f4\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.782Z",
  "transactionId": 12260629.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414881",
  "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: \u0027594ce58e-8192-4c80-9386-832b22bfe1f4\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.778Z",
  "transactionId": 12260629.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414878",
  "pageFaults": 0.0,
  "pageHits": 8.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: \u0027594ce58e-8192-4c80-9386-832b22bfe1f4\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.772Z",
  "transactionId": 12260628.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414877",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027594ce58e-8192-4c80-9386-832b22bfe1f4\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.764Z",
  "transactionId": 12260627.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 594ce58e-8192-4c80-9386-832b22bfe1f4
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 594ce58e-8192-4c80-9386-832b22bfe1f4
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 594ce58e-8192-4c80-9386-832b22bfe1f4",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.760Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 594ce58e-8192-4c80-9386-832b22bfe1f4
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 594ce58e-8192-4c80-9386-832b22bfe1f4
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 594ce58e-8192-4c80-9386-832b22bfe1f4",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.760Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [reminder] wo=0944a342-178a-4fea-a67d-5bdfed6d9928 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=0944a342-178a-4fea-a67d-5bdfed6d9928 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=4889m < step=4320m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=0944a342-178a-4fea-a67d-5bdfed6d9928 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=4889m \u003c step=4320m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.760Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414873",
  "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: \u00270944a342-178a-4fea-a67d-5bdfed6d9928\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.756Z",
  "transactionId": 12260626.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414870",
  "pageFaults": 0.0,
  "pageHits": 2.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: \u00270944a342-178a-4fea-a67d-5bdfed6d9928\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.750Z",
  "transactionId": 12260625.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414868",
  "pageFaults": 0.0,
  "pageHits": 5.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: \u00270944a342-178a-4fea-a67d-5bdfed6d9928\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.747Z",
  "transactionId": 12260625.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414866",
  "pageFaults": 0.0,
  "pageHits": 5.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: \u00270944a342-178a-4fea-a67d-5bdfed6d9928\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.740Z",
  "transactionId": 12260624.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414862",
  "pageFaults": 0.0,
  "pageHits": 8.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00270944a342-178a-4fea-a67d-5bdfed6d9928\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.733Z",
  "transactionId": 12260623.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 0944a342-178a-4fea-a67d-5bdfed6d9928
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 0944a342-178a-4fea-a67d-5bdfed6d9928
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 0944a342-178a-4fea-a67d-5bdfed6d9928",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.729Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 0944a342-178a-4fea-a67d-5bdfed6d9928
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 0944a342-178a-4fea-a67d-5bdfed6d9928
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 0944a342-178a-4fea-a67d-5bdfed6d9928",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.729Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [reminder] wo=63b88918-9684-476d-8a9b-71dd8b970613 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=63b88918-9684-476d-8a9b-71dd8b970613 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=576m < step=1440m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=63b88918-9684-476d-8a9b-71dd8b970613 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=576m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.728Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": 984.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25414857",
  "pageFaults": 0.0,
  "pageHits": 18.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: \u002763b88918-9684-476d-8a9b-71dd8b970613\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.724Z",
  "transactionId": 12260622.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414855",
  "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        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: \u002763b88918-9684-476d-8a9b-71dd8b970613\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.718Z",
  "transactionId": 12260621.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414853",
  "pageFaults": 0.0,
  "pageHits": 14.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: \u002763b88918-9684-476d-8a9b-71dd8b970613\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.715Z",
  "transactionId": 12260621.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414849",
  "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: \u002763b88918-9684-476d-8a9b-71dd8b970613\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.709Z",
  "transactionId": 12260620.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414842",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u002763b88918-9684-476d-8a9b-71dd8b970613\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.701Z",
  "transactionId": 12260619.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 63b88918-9684-476d-8a9b-71dd8b970613
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 63b88918-9684-476d-8a9b-71dd8b970613
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 63b88918-9684-476d-8a9b-71dd8b970613",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.696Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 63b88918-9684-476d-8a9b-71dd8b970613
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 63b88918-9684-476d-8a9b-71dd8b970613
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 63b88918-9684-476d-8a9b-71dd8b970613",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.696Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [reminder] wo=e0161a74-d5bc-4035-b55d-5dda8a1e4de7 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=e0161a74-d5bc-4035-b55d-5dda8a1e4de7 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=745m < step=2880m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=e0161a74-d5bc-4035-b55d-5dda8a1e4de7 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=745m \u003c step=2880m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.696Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414838",
  "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: \u0027e0161a74-d5bc-4035-b55d-5dda8a1e4de7\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.691Z",
  "transactionId": 12260618.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414835",
  "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: \u0027e0161a74-d5bc-4035-b55d-5dda8a1e4de7\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.684Z",
  "transactionId": 12260617.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414833",
  "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: \u0027e0161a74-d5bc-4035-b55d-5dda8a1e4de7\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.681Z",
  "transactionId": 12260617.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414832",
  "pageFaults": 0.0,
  "pageHits": 15.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: \u0027e0161a74-d5bc-4035-b55d-5dda8a1e4de7\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.674Z",
  "transactionId": 12260616.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414829",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027e0161a74-d5bc-4035-b55d-5dda8a1e4de7\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.666Z",
  "transactionId": 12260615.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order e0161a74-d5bc-4035-b55d-5dda8a1e4de7
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order e0161a74-d5bc-4035-b55d-5dda8a1e4de7
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order e0161a74-d5bc-4035-b55d-5dda8a1e4de7",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.662Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order e0161a74-d5bc-4035-b55d-5dda8a1e4de7
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order e0161a74-d5bc-4035-b55d-5dda8a1e4de7
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order e0161a74-d5bc-4035-b55d-5dda8a1e4de7",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.662Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [reminder] wo=5bb3b3a6-7412-459b-a159-42e2604c2a1e mode=RECURRING should_send=False escalate=False override=set reason='override pending: eligible...
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=5bb3b3a6-7412-459b-a159-42e2604c2a1e mode=RECURRING should_send=False escalate=False override=set reason='override pending: eligible in 10858m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=5bb3b3a6-7412-459b-a159-42e2604c2a1e mode=RECURRING should_send=False escalate=False override=set reason=\u0027override pending: eligible in 10858m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.661Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414825",
  "pageFaults": 0.0,
  "pageHits": 13.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: \u00275bb3b3a6-7412-459b-a159-42e2604c2a1e\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.658Z",
  "transactionId": 12260614.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414821",
  "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        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: \u00275bb3b3a6-7412-459b-a159-42e2604c2a1e\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.651Z",
  "transactionId": 12260613.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414819",
  "pageFaults": 0.0,
  "pageHits": 19.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: \u00275bb3b3a6-7412-459b-a159-42e2604c2a1e\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.648Z",
  "transactionId": 12260613.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414818",
  "pageFaults": 0.0,
  "pageHits": 21.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: \u00275bb3b3a6-7412-459b-a159-42e2604c2a1e\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.641Z",
  "transactionId": 12260612.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414816",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00275bb3b3a6-7412-459b-a159-42e2604c2a1e\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.633Z",
  "transactionId": 12260611.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 5bb3b3a6-7412-459b-a159-42e2604c2a1e
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 5bb3b3a6-7412-459b-a159-42e2604c2a1e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 5bb3b3a6-7412-459b-a159-42e2604c2a1e",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.628Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 5bb3b3a6-7412-459b-a159-42e2604c2a1e
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 5bb3b3a6-7412-459b-a159-42e2604c2a1e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 5bb3b3a6-7412-459b-a159-42e2604c2a1e",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.628Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [reminder] wo=c0121a80-20af-4a41-b6fd-8cf4fc1003c3 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=c0121a80-20af-4a41-b6fd-8cf4fc1003c3 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=894m < step=1440m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=c0121a80-20af-4a41-b6fd-8cf4fc1003c3 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=894m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.627Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": 932.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25414815",
  "pageFaults": 0.0,
  "pageHits": 19.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: \u0027c0121a80-20af-4a41-b6fd-8cf4fc1003c3\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.624Z",
  "transactionId": 12260610.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414814",
  "pageFaults": 0.0,
  "pageHits": 15.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: \u0027c0121a80-20af-4a41-b6fd-8cf4fc1003c3\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.616Z",
  "transactionId": 12260609.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 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 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414813",
  "pageFaults": 0.0,
  "pageHits": 16.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: \u0027c0121a80-20af-4a41-b6fd-8cf4fc1003c3\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.613Z",
  "transactionId": 12260609.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414812",
  "pageFaults": 0.0,
  "pageHits": 20.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: \u0027c0121a80-20af-4a41-b6fd-8cf4fc1003c3\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.605Z",
  "transactionId": 12260608.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:25:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
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": "25414811",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027c0121a80-20af-4a41-b6fd-8cf4fc1003c3\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:25:08.597Z",
  "transactionId": 12260607.0,
  "waiting": 0.0
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order c0121a80-20af-4a41-b6fd-8cf4fc1003c3
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order c0121a80-20af-4a41-b6fd-8cf4fc1003c3
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order c0121a80-20af-4a41-b6fd-8cf4fc1003c3",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.593Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order c0121a80-20af-4a41-b6fd-8cf4fc1003c3
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order c0121a80-20af-4a41-b6fd-8cf4fc1003c3
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order c0121a80-20af-4a41-b6fd-8cf4fc1003c3",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.592Z",
  "version": "unknown"
}
56s ago2026-07-27 02:25:08 UTC DEBUG virtual-assistant 🏢 Processing organization 5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf (11 work orders)
time2026-07-27 02:25:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:362
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
traceed51042631b5cf268fdf16f7ea704132
span909f26e92a9bd0b7
podvirtual-assistant-65b975d66b-l8wpw
message
🏢 Processing organization 5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf (11 work orders)
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:362",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\ud83c\udfe2 Processing organization 5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf (11 work orders)",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:25:08.592Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:377
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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-27T02:24:09.412Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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=937m < 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=937m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.411Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406451",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.408Z",
  "transactionId": 12258730.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406449",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.401Z",
  "transactionId": 12258729.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406448",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.398Z",
  "transactionId": 12258729.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406445",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.391Z",
  "transactionId": 12258728.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406444",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.383Z",
  "transactionId": 12258727.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 437c18c3-6691-461a-b3ce-742e84b88f69
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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-27T02:24:09.379Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 437c18c3-6691-461a-b3ce-742e84b88f69
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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-27T02:24:09.379Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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=406m < 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=406m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.379Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406443",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.376Z",
  "transactionId": 12258726.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406442",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.369Z",
  "transactionId": 12258725.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406441",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.367Z",
  "transactionId": 12258725.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406439",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.360Z",
  "transactionId": 12258724.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406438",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.353Z",
  "transactionId": 12258723.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order da057921-1a96-43f2-af14-37551103141e
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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-27T02:24:09.348Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order da057921-1a96-43f2-af14-37551103141e
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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-27T02:24:09.348Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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=458m < 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=458m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.348Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406437",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.344Z",
  "transactionId": 12258722.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406436",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.338Z",
  "transactionId": 12258721.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406435",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.335Z",
  "transactionId": 12258721.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406434",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.328Z",
  "transactionId": 12258720.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406433",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.320Z",
  "transactionId": 12258719.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order b75c9de7-83f0-485d-8fc0-195ffd82307a
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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-27T02:24:09.317Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order b75c9de7-83f0-485d-8fc0-195ffd82307a
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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-27T02:24:09.317Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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=481m < 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=481m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.316Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406432",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.313Z",
  "transactionId": 12258718.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406430",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.307Z",
  "transactionId": 12258717.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406429",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.304Z",
  "transactionId": 12258717.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406427",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.297Z",
  "transactionId": 12258716.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406423",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.290Z",
  "transactionId": 12258715.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order dd15f131-56f1-48f2-919c-a4c61bff494a
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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-27T02:24:09.287Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order dd15f131-56f1-48f2-919c-a4c61bff494a
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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-27T02:24:09.287Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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=489m < 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=489m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.286Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406418",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.283Z",
  "transactionId": 12258714.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406415",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.276Z",
  "transactionId": 12258713.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406413",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.273Z",
  "transactionId": 12258713.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406410",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.266Z",
  "transactionId": 12258712.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406407",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.259Z",
  "transactionId": 12258711.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 541a6291-1a99-4640-b3d1-f7ab73bcc8a5
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 541a6291-1a99-4640-b3d1-f7ab73bcc8a5
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 541a6291-1a99-4640-b3d1-f7ab73bcc8a5",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.255Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 541a6291-1a99-4640-b3d1-f7ab73bcc8a5
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 541a6291-1a99-4640-b3d1-f7ab73bcc8a5
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 541a6291-1a99-4640-b3d1-f7ab73bcc8a5",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.255Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [reminder] wo=594ce58e-8192-4c80-9386-832b22bfe1f4 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=594ce58e-8192-4c80-9386-832b22bfe1f4 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=4887m < step=4320m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=594ce58e-8192-4c80-9386-832b22bfe1f4 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=4887m \u003c step=4320m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.254Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406405",
  "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: \u0027594ce58e-8192-4c80-9386-832b22bfe1f4\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.251Z",
  "transactionId": 12258710.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406404",
  "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: \u0027594ce58e-8192-4c80-9386-832b22bfe1f4\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.244Z",
  "transactionId": 12258709.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406403",
  "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: \u0027594ce58e-8192-4c80-9386-832b22bfe1f4\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.240Z",
  "transactionId": 12258709.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406401",
  "pageFaults": 0.0,
  "pageHits": 8.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: \u0027594ce58e-8192-4c80-9386-832b22bfe1f4\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.232Z",
  "transactionId": 12258708.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406399",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027594ce58e-8192-4c80-9386-832b22bfe1f4\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.225Z",
  "transactionId": 12258707.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 594ce58e-8192-4c80-9386-832b22bfe1f4
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 594ce58e-8192-4c80-9386-832b22bfe1f4
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 594ce58e-8192-4c80-9386-832b22bfe1f4",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.221Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 594ce58e-8192-4c80-9386-832b22bfe1f4
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 594ce58e-8192-4c80-9386-832b22bfe1f4
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 594ce58e-8192-4c80-9386-832b22bfe1f4",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.220Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [reminder] wo=0944a342-178a-4fea-a67d-5bdfed6d9928 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=0944a342-178a-4fea-a67d-5bdfed6d9928 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=4888m < step=4320m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=0944a342-178a-4fea-a67d-5bdfed6d9928 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=4888m \u003c step=4320m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.220Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406397",
  "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: \u00270944a342-178a-4fea-a67d-5bdfed6d9928\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.217Z",
  "transactionId": 12258706.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406396",
  "pageFaults": 0.0,
  "pageHits": 2.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: \u00270944a342-178a-4fea-a67d-5bdfed6d9928\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.210Z",
  "transactionId": 12258705.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406395",
  "pageFaults": 0.0,
  "pageHits": 5.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: \u00270944a342-178a-4fea-a67d-5bdfed6d9928\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.206Z",
  "transactionId": 12258705.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406394",
  "pageFaults": 0.0,
  "pageHits": 5.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: \u00270944a342-178a-4fea-a67d-5bdfed6d9928\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.200Z",
  "transactionId": 12258704.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406393",
  "pageFaults": 0.0,
  "pageHits": 8.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00270944a342-178a-4fea-a67d-5bdfed6d9928\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.192Z",
  "transactionId": 12258703.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 0944a342-178a-4fea-a67d-5bdfed6d9928
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 0944a342-178a-4fea-a67d-5bdfed6d9928
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 0944a342-178a-4fea-a67d-5bdfed6d9928",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.187Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 0944a342-178a-4fea-a67d-5bdfed6d9928
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 0944a342-178a-4fea-a67d-5bdfed6d9928
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 0944a342-178a-4fea-a67d-5bdfed6d9928",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.187Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [reminder] wo=63b88918-9684-476d-8a9b-71dd8b970613 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=63b88918-9684-476d-8a9b-71dd8b970613 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=575m < step=1440m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=63b88918-9684-476d-8a9b-71dd8b970613 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=575m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.187Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": 984.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25406391",
  "pageFaults": 0.0,
  "pageHits": 18.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: \u002763b88918-9684-476d-8a9b-71dd8b970613\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.183Z",
  "transactionId": 12258702.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406390",
  "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        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: \u002763b88918-9684-476d-8a9b-71dd8b970613\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.176Z",
  "transactionId": 12258701.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406388",
  "pageFaults": 0.0,
  "pageHits": 14.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: \u002763b88918-9684-476d-8a9b-71dd8b970613\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.173Z",
  "transactionId": 12258701.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406387",
  "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: \u002763b88918-9684-476d-8a9b-71dd8b970613\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.166Z",
  "transactionId": 12258700.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406385",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u002763b88918-9684-476d-8a9b-71dd8b970613\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.159Z",
  "transactionId": 12258699.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 63b88918-9684-476d-8a9b-71dd8b970613
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 63b88918-9684-476d-8a9b-71dd8b970613
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 63b88918-9684-476d-8a9b-71dd8b970613",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.155Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 63b88918-9684-476d-8a9b-71dd8b970613
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 63b88918-9684-476d-8a9b-71dd8b970613
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 63b88918-9684-476d-8a9b-71dd8b970613",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.155Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [reminder] wo=e0161a74-d5bc-4035-b55d-5dda8a1e4de7 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=e0161a74-d5bc-4035-b55d-5dda8a1e4de7 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=744m < step=2880m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=e0161a74-d5bc-4035-b55d-5dda8a1e4de7 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=744m \u003c step=2880m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.154Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406383",
  "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: \u0027e0161a74-d5bc-4035-b55d-5dda8a1e4de7\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.151Z",
  "transactionId": 12258698.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406382",
  "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: \u0027e0161a74-d5bc-4035-b55d-5dda8a1e4de7\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.144Z",
  "transactionId": 12258697.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406381",
  "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: \u0027e0161a74-d5bc-4035-b55d-5dda8a1e4de7\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.141Z",
  "transactionId": 12258697.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406379",
  "pageFaults": 0.0,
  "pageHits": 15.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: \u0027e0161a74-d5bc-4035-b55d-5dda8a1e4de7\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.134Z",
  "transactionId": 12258696.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406376",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027e0161a74-d5bc-4035-b55d-5dda8a1e4de7\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.126Z",
  "transactionId": 12258695.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order e0161a74-d5bc-4035-b55d-5dda8a1e4de7
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order e0161a74-d5bc-4035-b55d-5dda8a1e4de7
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order e0161a74-d5bc-4035-b55d-5dda8a1e4de7",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.122Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order e0161a74-d5bc-4035-b55d-5dda8a1e4de7
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order e0161a74-d5bc-4035-b55d-5dda8a1e4de7
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order e0161a74-d5bc-4035-b55d-5dda8a1e4de7",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.122Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [reminder] wo=5bb3b3a6-7412-459b-a159-42e2604c2a1e mode=RECURRING should_send=False escalate=False override=set reason='override pending: eligible...
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=5bb3b3a6-7412-459b-a159-42e2604c2a1e mode=RECURRING should_send=False escalate=False override=set reason='override pending: eligible in 10859m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=5bb3b3a6-7412-459b-a159-42e2604c2a1e mode=RECURRING should_send=False escalate=False override=set reason=\u0027override pending: eligible in 10859m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.122Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406375",
  "pageFaults": 0.0,
  "pageHits": 13.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: \u00275bb3b3a6-7412-459b-a159-42e2604c2a1e\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.118Z",
  "transactionId": 12258694.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406373",
  "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        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: \u00275bb3b3a6-7412-459b-a159-42e2604c2a1e\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.111Z",
  "transactionId": 12258693.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406371",
  "pageFaults": 0.0,
  "pageHits": 19.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: \u00275bb3b3a6-7412-459b-a159-42e2604c2a1e\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.108Z",
  "transactionId": 12258693.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406370",
  "pageFaults": 0.0,
  "pageHits": 21.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: \u00275bb3b3a6-7412-459b-a159-42e2604c2a1e\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.101Z",
  "transactionId": 12258692.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406369",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00275bb3b3a6-7412-459b-a159-42e2604c2a1e\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.094Z",
  "transactionId": 12258691.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 5bb3b3a6-7412-459b-a159-42e2604c2a1e
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 5bb3b3a6-7412-459b-a159-42e2604c2a1e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 5bb3b3a6-7412-459b-a159-42e2604c2a1e",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.090Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 5bb3b3a6-7412-459b-a159-42e2604c2a1e
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 5bb3b3a6-7412-459b-a159-42e2604c2a1e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 5bb3b3a6-7412-459b-a159-42e2604c2a1e",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.090Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [reminder] wo=c0121a80-20af-4a41-b6fd-8cf4fc1003c3 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=c0121a80-20af-4a41-b6fd-8cf4fc1003c3 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=893m < step=1440m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=c0121a80-20af-4a41-b6fd-8cf4fc1003c3 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=893m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.090Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": 932.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25406367",
  "pageFaults": 0.0,
  "pageHits": 19.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: \u0027c0121a80-20af-4a41-b6fd-8cf4fc1003c3\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.086Z",
  "transactionId": 12258690.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406366",
  "pageFaults": 0.0,
  "pageHits": 15.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: \u0027c0121a80-20af-4a41-b6fd-8cf4fc1003c3\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.080Z",
  "transactionId": 12258689.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406364",
  "pageFaults": 0.0,
  "pageHits": 16.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: \u0027c0121a80-20af-4a41-b6fd-8cf4fc1003c3\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.076Z",
  "transactionId": 12258689.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24: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 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406363",
  "pageFaults": 0.0,
  "pageHits": 20.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: \u0027c0121a80-20af-4a41-b6fd-8cf4fc1003c3\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.070Z",
  "transactionId": 12258688.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:24:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
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": "25406362",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027c0121a80-20af-4a41-b6fd-8cf4fc1003c3\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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:24:09.062Z",
  "transactionId": 12258687.0,
  "waiting": 0.0
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order c0121a80-20af-4a41-b6fd-8cf4fc1003c3
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order c0121a80-20af-4a41-b6fd-8cf4fc1003c3
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order c0121a80-20af-4a41-b6fd-8cf4fc1003c3",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.058Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order c0121a80-20af-4a41-b6fd-8cf4fc1003c3
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order c0121a80-20af-4a41-b6fd-8cf4fc1003c3
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order c0121a80-20af-4a41-b6fd-8cf4fc1003c3",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.058Z",
  "version": "unknown"
}
1m ago2026-07-27 02:24:09 UTC DEBUG virtual-assistant 🏢 Processing organization 5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf (11 work orders)
time2026-07-27 02:24:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:362
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace203a5f4c554441e39c7be69bd5e7901f
spanf1975c370b7999e2
podvirtual-assistant-65b975d66b-l8wpw
message
🏢 Processing organization 5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf (11 work orders)
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:362",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\ud83c\udfe2 Processing organization 5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf (11 work orders)",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:24:09.058Z",
  "version": "unknown"
}
2m ago2026-07-27 02:23: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 02:23:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:377
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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-27T02:23:09.173Z",
  "version": "unknown"
}
2m ago2026-07-27 02:23: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 02:23:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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=936m < 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=936m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:23:09.173Z",
  "version": "unknown"
}
2m ago2026-07-27 02:23: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 02:23:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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": "25398468",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:23:09.169Z",
  "transactionId": 12256981.0,
  "waiting": 0.0
}
2m ago2026-07-27 02:23: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 02:23:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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": "25398467",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:23:09.162Z",
  "transactionId": 12256980.0,
  "waiting": 0.0
}
2m ago2026-07-27 02:23: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 02:23:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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": "25398465",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:23:09.159Z",
  "transactionId": 12256980.0,
  "waiting": 0.0
}
2m ago2026-07-27 02:23: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 02:23:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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": "25398463",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:23:09.153Z",
  "transactionId": 12256979.0,
  "waiting": 0.0
}
2m ago2026-07-27 02:23:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:23:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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": "25398460",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:23:09.145Z",
  "transactionId": 12256978.0,
  "waiting": 0.0
}
2m ago2026-07-27 02:23:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 437c18c3-6691-461a-b3ce-742e84b88f69
time2026-07-27 02:23:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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-27T02:23:09.141Z",
  "version": "unknown"
}
2m ago2026-07-27 02:23:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 437c18c3-6691-461a-b3ce-742e84b88f69
time2026-07-27 02:23:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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-27T02:23:09.141Z",
  "version": "unknown"
}
2m ago2026-07-27 02:23: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 02:23:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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=405m < 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=405m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:23:09.141Z",
  "version": "unknown"
}
2m ago2026-07-27 02:23: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 02:23:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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": 1.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25398456",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:23:09.136Z",
  "transactionId": 12256977.0,
  "waiting": 0.0
}
2m ago2026-07-27 02:23: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 02:23:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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": "25398455",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:23:09.129Z",
  "transactionId": 12256976.0,
  "waiting": 0.0
}
2m ago2026-07-27 02:23: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 02:23:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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": "25398453",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:23:09.126Z",
  "transactionId": 12256976.0,
  "waiting": 0.0
}
2m ago2026-07-27 02:23: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 02:23:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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": "25398452",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:23:09.120Z",
  "transactionId": 12256975.0,
  "waiting": 0.0
}
2m ago2026-07-27 02:23:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:23:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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": "25398451",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:23:09.112Z",
  "transactionId": 12256974.0,
  "waiting": 0.0
}
2m ago2026-07-27 02:23:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order da057921-1a96-43f2-af14-37551103141e
time2026-07-27 02:23:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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-27T02:23:09.108Z",
  "version": "unknown"
}
2m ago2026-07-27 02:23:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order da057921-1a96-43f2-af14-37551103141e
time2026-07-27 02:23:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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-27T02:23:09.108Z",
  "version": "unknown"
}
2m ago2026-07-27 02:23: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 02:23:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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=457m < 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=457m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:23:09.107Z",
  "version": "unknown"
}
2m ago2026-07-27 02:23: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 02:23:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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": "25398449",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:23:09.104Z",
  "transactionId": 12256972.0,
  "waiting": 0.0
}
2m ago2026-07-27 02:23: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 02:23:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
trace945dc05d5a899ac17fe838687a1445e2
span2ea5590ecd6d0f1b
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": "25398448",
  "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:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:23:09.097Z",
  "transactionId": 12256971.0,
  "waiting": 0.0
}

Paginated with Cloud Logging page cursors, so you can walk the whole 6h 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.