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

Logs

Live Cloud Logging query (nothing stored) · master · trace 5bfea4a3d63cd349fd08 (2-day window) · newest first · page 1 (200/page) · 200 entries in 400 ms all app neo4j weaviate time relative absolute

reset
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant ✅ Org 02bcadc5-e03b-44d6-842c-db76b3734289 summary: processed=379, reminders_sent=0, moved_to_need_attention=0
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:377
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
✅ Org 02bcadc5-e03b-44d6-842c-db76b3734289 summary: processed=379, 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 02bcadc5-e03b-44d6-842c-db76b3734289 summary: processed=379, reminders_sent=0, moved_to_need_attention=0",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.311Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [reminder] wo=df0137d9-2ffd-437d-a537-47ce14709fe3 no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=df0137d9-2ffd-437d-a537-47ce14709fe3 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=df0137d9-2ffd-437d-a537-47ce14709fe3 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.311Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654773",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027df0137d9-2ffd-437d-a537-47ce14709fe3\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.308Z",
  "transactionId": 12032014.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654772",
  "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: \u0027df0137d9-2ffd-437d-a537-47ce14709fe3\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.301Z",
  "transactionId": 12032013.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654771",
  "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: \u0027df0137d9-2ffd-437d-a537-47ce14709fe3\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.298Z",
  "transactionId": 12032013.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654770",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027df0137d9-2ffd-437d-a537-47ce14709fe3\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.291Z",
  "transactionId": 12032012.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654769",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027df0137d9-2ffd-437d-a537-47ce14709fe3\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.283Z",
  "transactionId": 12032011.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order df0137d9-2ffd-437d-a537-47ce14709fe3
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order df0137d9-2ffd-437d-a537-47ce14709fe3
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order df0137d9-2ffd-437d-a537-47ce14709fe3",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.279Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order df0137d9-2ffd-437d-a537-47ce14709fe3
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order df0137d9-2ffd-437d-a537-47ce14709fe3
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order df0137d9-2ffd-437d-a537-47ce14709fe3",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.279Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [reminder] wo=b63e8daa-2602-4c2b-8546-76510531aa7b no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=b63e8daa-2602-4c2b-8546-76510531aa7b no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=b63e8daa-2602-4c2b-8546-76510531aa7b no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.278Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654768",
  "pageFaults": 0.0,
  "pageHits": 5.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027b63e8daa-2602-4c2b-8546-76510531aa7b\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.275Z",
  "transactionId": 12032010.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654767",
  "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: \u0027b63e8daa-2602-4c2b-8546-76510531aa7b\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.268Z",
  "transactionId": 12032009.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654766",
  "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: \u0027b63e8daa-2602-4c2b-8546-76510531aa7b\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.265Z",
  "transactionId": 12032009.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654765",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027b63e8daa-2602-4c2b-8546-76510531aa7b\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.257Z",
  "transactionId": 12032008.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654764",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027b63e8daa-2602-4c2b-8546-76510531aa7b\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.250Z",
  "transactionId": 12032007.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order b63e8daa-2602-4c2b-8546-76510531aa7b
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order b63e8daa-2602-4c2b-8546-76510531aa7b
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order b63e8daa-2602-4c2b-8546-76510531aa7b",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.245Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order b63e8daa-2602-4c2b-8546-76510531aa7b
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order b63e8daa-2602-4c2b-8546-76510531aa7b
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order b63e8daa-2602-4c2b-8546-76510531aa7b",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.245Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [reminder] wo=56540d66-ab1c-4e74-abc9-68cab4f32db2 no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=56540d66-ab1c-4e74-abc9-68cab4f32db2 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=56540d66-ab1c-4e74-abc9-68cab4f32db2 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.245Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654763",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u002756540d66-ab1c-4e74-abc9-68cab4f32db2\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.241Z",
  "transactionId": 12032006.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654762",
  "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: \u002756540d66-ab1c-4e74-abc9-68cab4f32db2\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.235Z",
  "transactionId": 12032005.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654761",
  "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: \u002756540d66-ab1c-4e74-abc9-68cab4f32db2\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.232Z",
  "transactionId": 12032005.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654760",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u002756540d66-ab1c-4e74-abc9-68cab4f32db2\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.225Z",
  "transactionId": 12032004.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654759",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u002756540d66-ab1c-4e74-abc9-68cab4f32db2\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.217Z",
  "transactionId": 12032003.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 56540d66-ab1c-4e74-abc9-68cab4f32db2
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 56540d66-ab1c-4e74-abc9-68cab4f32db2
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 56540d66-ab1c-4e74-abc9-68cab4f32db2",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.212Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 56540d66-ab1c-4e74-abc9-68cab4f32db2
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 56540d66-ab1c-4e74-abc9-68cab4f32db2
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 56540d66-ab1c-4e74-abc9-68cab4f32db2",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.212Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [reminder] wo=43c7d9d4-4ca8-4126-b6d5-df6f0c28e207 no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=43c7d9d4-4ca8-4126-b6d5-df6f0c28e207 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=43c7d9d4-4ca8-4126-b6d5-df6f0c28e207 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.212Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654758",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u002743c7d9d4-4ca8-4126-b6d5-df6f0c28e207\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.209Z",
  "transactionId": 12032002.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654757",
  "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: \u002743c7d9d4-4ca8-4126-b6d5-df6f0c28e207\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.201Z",
  "transactionId": 12032001.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654756",
  "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: \u002743c7d9d4-4ca8-4126-b6d5-df6f0c28e207\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.198Z",
  "transactionId": 12032001.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654755",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u002743c7d9d4-4ca8-4126-b6d5-df6f0c28e207\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.191Z",
  "transactionId": 12032000.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (n:WorkOrder {tildaid: $node_id}) 
RETURN n
raw payload (15 fields)
{
  "allocatedBytes": 312.0,
  "cpu": 0.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "E0146DD7",
  "id": "24654754",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u002743c7d9d4-4ca8-4126-b6d5-df6f0c28e207\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.183Z",
  "transactionId": 12031999.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 43c7d9d4-4ca8-4126-b6d5-df6f0c28e207
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 43c7d9d4-4ca8-4126-b6d5-df6f0c28e207
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 43c7d9d4-4ca8-4126-b6d5-df6f0c28e207",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.178Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 43c7d9d4-4ca8-4126-b6d5-df6f0c28e207
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 43c7d9d4-4ca8-4126-b6d5-df6f0c28e207
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 43c7d9d4-4ca8-4126-b6d5-df6f0c28e207",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.178Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [reminder] wo=fad7527f-5831-405a-9758-dcaf2a065b3e no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=fad7527f-5831-405a-9758-dcaf2a065b3e no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=fad7527f-5831-405a-9758-dcaf2a065b3e no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.178Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654753",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027fad7527f-5831-405a-9758-dcaf2a065b3e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.175Z",
  "transactionId": 12031998.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654752",
  "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: \u0027fad7527f-5831-405a-9758-dcaf2a065b3e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.167Z",
  "transactionId": 12031997.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24654751",
  "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: \u0027fad7527f-5831-405a-9758-dcaf2a065b3e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.164Z",
  "transactionId": 12031997.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654750",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027fad7527f-5831-405a-9758-dcaf2a065b3e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.157Z",
  "transactionId": 12031996.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654749",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027fad7527f-5831-405a-9758-dcaf2a065b3e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.149Z",
  "transactionId": 12031995.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order fad7527f-5831-405a-9758-dcaf2a065b3e
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order fad7527f-5831-405a-9758-dcaf2a065b3e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order fad7527f-5831-405a-9758-dcaf2a065b3e",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.145Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order fad7527f-5831-405a-9758-dcaf2a065b3e
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order fad7527f-5831-405a-9758-dcaf2a065b3e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order fad7527f-5831-405a-9758-dcaf2a065b3e",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.144Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [reminder] wo=b169f9b1-8e4d-4e07-8c89-7a48c096b6d2 no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=b169f9b1-8e4d-4e07-8c89-7a48c096b6d2 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=b169f9b1-8e4d-4e07-8c89-7a48c096b6d2 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.144Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654748",
  "pageFaults": 0.0,
  "pageHits": 5.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027b169f9b1-8e4d-4e07-8c89-7a48c096b6d2\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.141Z",
  "transactionId": 12031994.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654747",
  "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: \u0027b169f9b1-8e4d-4e07-8c89-7a48c096b6d2\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.134Z",
  "transactionId": 12031993.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654746",
  "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: \u0027b169f9b1-8e4d-4e07-8c89-7a48c096b6d2\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.131Z",
  "transactionId": 12031993.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654745",
  "pageFaults": 0.0,
  "pageHits": 6.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: \u0027b169f9b1-8e4d-4e07-8c89-7a48c096b6d2\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.124Z",
  "transactionId": 12031992.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654744",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027b169f9b1-8e4d-4e07-8c89-7a48c096b6d2\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.116Z",
  "transactionId": 12031991.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order b169f9b1-8e4d-4e07-8c89-7a48c096b6d2
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order b169f9b1-8e4d-4e07-8c89-7a48c096b6d2
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order b169f9b1-8e4d-4e07-8c89-7a48c096b6d2",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.112Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order b169f9b1-8e4d-4e07-8c89-7a48c096b6d2
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order b169f9b1-8e4d-4e07-8c89-7a48c096b6d2
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order b169f9b1-8e4d-4e07-8c89-7a48c096b6d2",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.112Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [reminder] wo=b49e6cf0-5b83-425e-9973-7a3da0ccd80c no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=b49e6cf0-5b83-425e-9973-7a3da0ccd80c no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=b49e6cf0-5b83-425e-9973-7a3da0ccd80c no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.112Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654743",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027b49e6cf0-5b83-425e-9973-7a3da0ccd80c\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.109Z",
  "transactionId": 12031990.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654742",
  "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: \u0027b49e6cf0-5b83-425e-9973-7a3da0ccd80c\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.102Z",
  "transactionId": 12031989.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654741",
  "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: \u0027b49e6cf0-5b83-425e-9973-7a3da0ccd80c\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.099Z",
  "transactionId": 12031989.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654740",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027b49e6cf0-5b83-425e-9973-7a3da0ccd80c\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.092Z",
  "transactionId": 12031988.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654739",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027b49e6cf0-5b83-425e-9973-7a3da0ccd80c\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.084Z",
  "transactionId": 12031987.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order b49e6cf0-5b83-425e-9973-7a3da0ccd80c
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order b49e6cf0-5b83-425e-9973-7a3da0ccd80c
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order b49e6cf0-5b83-425e-9973-7a3da0ccd80c",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.079Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order b49e6cf0-5b83-425e-9973-7a3da0ccd80c
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order b49e6cf0-5b83-425e-9973-7a3da0ccd80c
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order b49e6cf0-5b83-425e-9973-7a3da0ccd80c",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.079Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [reminder] wo=103246e2-7256-476a-b402-3b6f8cc949ab no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=103246e2-7256-476a-b402-3b6f8cc949ab no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=103246e2-7256-476a-b402-3b6f8cc949ab no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.079Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654738",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027103246e2-7256-476a-b402-3b6f8cc949ab\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.076Z",
  "transactionId": 12031986.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654736",
  "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: \u0027103246e2-7256-476a-b402-3b6f8cc949ab\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.069Z",
  "transactionId": 12031985.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654735",
  "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: \u0027103246e2-7256-476a-b402-3b6f8cc949ab\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.066Z",
  "transactionId": 12031985.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654733",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027103246e2-7256-476a-b402-3b6f8cc949ab\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.059Z",
  "transactionId": 12031984.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654732",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027103246e2-7256-476a-b402-3b6f8cc949ab\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.052Z",
  "transactionId": 12031983.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 103246e2-7256-476a-b402-3b6f8cc949ab
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 103246e2-7256-476a-b402-3b6f8cc949ab
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 103246e2-7256-476a-b402-3b6f8cc949ab",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.048Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 103246e2-7256-476a-b402-3b6f8cc949ab
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 103246e2-7256-476a-b402-3b6f8cc949ab
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 103246e2-7256-476a-b402-3b6f8cc949ab",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.048Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [reminder] wo=1f1674f7-132c-45ef-a593-fb4a5c499162 no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=1f1674f7-132c-45ef-a593-fb4a5c499162 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=1f1674f7-132c-45ef-a593-fb4a5c499162 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.048Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654731",
  "pageFaults": 0.0,
  "pageHits": 5.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u00271f1674f7-132c-45ef-a593-fb4a5c499162\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.045Z",
  "transactionId": 12031982.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654730",
  "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: \u00271f1674f7-132c-45ef-a593-fb4a5c499162\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.037Z",
  "transactionId": 12031981.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654729",
  "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: \u00271f1674f7-132c-45ef-a593-fb4a5c499162\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.034Z",
  "transactionId": 12031981.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654728",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u00271f1674f7-132c-45ef-a593-fb4a5c499162\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.028Z",
  "transactionId": 12031980.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654727",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00271f1674f7-132c-45ef-a593-fb4a5c499162\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.020Z",
  "transactionId": 12031979.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 1f1674f7-132c-45ef-a593-fb4a5c499162
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 1f1674f7-132c-45ef-a593-fb4a5c499162
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 1f1674f7-132c-45ef-a593-fb4a5c499162",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.016Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 1f1674f7-132c-45ef-a593-fb4a5c499162
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 1f1674f7-132c-45ef-a593-fb4a5c499162
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 1f1674f7-132c-45ef-a593-fb4a5c499162",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.016Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC DEBUG virtual-assistant [reminder] wo=10068bd4-0e6c-4d52-b9cb-5831c2147e0e no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=10068bd4-0e6c-4d52-b9cb-5831c2147e0e no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=10068bd4-0e6c-4d52-b9cb-5831c2147e0e no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:09.016Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654726",
  "pageFaults": 0.0,
  "pageHits": 5.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u002710068bd4-0e6c-4d52-b9cb-5831c2147e0e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.013Z",
  "transactionId": 12031978.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654725",
  "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: \u002710068bd4-0e6c-4d52-b9cb-5831c2147e0e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.006Z",
  "transactionId": 12031977.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:11:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654724",
  "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: \u002710068bd4-0e6c-4d52-b9cb-5831c2147e0e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:09.003Z",
  "transactionId": 12031977.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654723",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u002710068bd4-0e6c-4d52-b9cb-5831c2147e0e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.996Z",
  "transactionId": 12031976.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654722",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u002710068bd4-0e6c-4d52-b9cb-5831c2147e0e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.988Z",
  "transactionId": 12031975.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 10068bd4-0e6c-4d52-b9cb-5831c2147e0e
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 10068bd4-0e6c-4d52-b9cb-5831c2147e0e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 10068bd4-0e6c-4d52-b9cb-5831c2147e0e",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.984Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 10068bd4-0e6c-4d52-b9cb-5831c2147e0e
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 10068bd4-0e6c-4d52-b9cb-5831c2147e0e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 10068bd4-0e6c-4d52-b9cb-5831c2147e0e",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.984Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [reminder] wo=4183bc39-6a2d-49d6-bee6-c88655b2b592 no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=4183bc39-6a2d-49d6-bee6-c88655b2b592 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=4183bc39-6a2d-49d6-bee6-c88655b2b592 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.984Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654721",
  "pageFaults": 0.0,
  "pageHits": 5.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u00274183bc39-6a2d-49d6-bee6-c88655b2b592\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.981Z",
  "transactionId": 12031974.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654720",
  "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: \u00274183bc39-6a2d-49d6-bee6-c88655b2b592\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.974Z",
  "transactionId": 12031973.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654719",
  "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: \u00274183bc39-6a2d-49d6-bee6-c88655b2b592\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.971Z",
  "transactionId": 12031973.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654718",
  "pageFaults": 0.0,
  "pageHits": 6.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: \u00274183bc39-6a2d-49d6-bee6-c88655b2b592\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.964Z",
  "transactionId": 12031972.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654717",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00274183bc39-6a2d-49d6-bee6-c88655b2b592\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.955Z",
  "transactionId": 12031971.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 4183bc39-6a2d-49d6-bee6-c88655b2b592
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 4183bc39-6a2d-49d6-bee6-c88655b2b592
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 4183bc39-6a2d-49d6-bee6-c88655b2b592",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.951Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 4183bc39-6a2d-49d6-bee6-c88655b2b592
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 4183bc39-6a2d-49d6-bee6-c88655b2b592
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 4183bc39-6a2d-49d6-bee6-c88655b2b592",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.951Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [reminder] wo=10247504-1081-45b5-961f-0b56e298f7fb no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=10247504-1081-45b5-961f-0b56e298f7fb no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=10247504-1081-45b5-961f-0b56e298f7fb no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.950Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654716",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u002710247504-1081-45b5-961f-0b56e298f7fb\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.947Z",
  "transactionId": 12031970.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654715",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u002710247504-1081-45b5-961f-0b56e298f7fb\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.940Z",
  "transactionId": 12031969.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654714",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u002710247504-1081-45b5-961f-0b56e298f7fb\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.936Z",
  "transactionId": 12031969.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654713",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u002710247504-1081-45b5-961f-0b56e298f7fb\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.929Z",
  "transactionId": 12031968.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654712",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u002710247504-1081-45b5-961f-0b56e298f7fb\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.921Z",
  "transactionId": 12031967.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 10247504-1081-45b5-961f-0b56e298f7fb
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 10247504-1081-45b5-961f-0b56e298f7fb
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 10247504-1081-45b5-961f-0b56e298f7fb",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.916Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 10247504-1081-45b5-961f-0b56e298f7fb
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 10247504-1081-45b5-961f-0b56e298f7fb
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 10247504-1081-45b5-961f-0b56e298f7fb",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.916Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [reminder] wo=22bd619a-474b-4709-a837-0f34587fe208 no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=22bd619a-474b-4709-a837-0f34587fe208 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=22bd619a-474b-4709-a837-0f34587fe208 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.915Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654711",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u002722bd619a-474b-4709-a837-0f34587fe208\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.912Z",
  "transactionId": 12031966.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654710",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u002722bd619a-474b-4709-a837-0f34587fe208\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.905Z",
  "transactionId": 12031965.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654709",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u002722bd619a-474b-4709-a837-0f34587fe208\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.902Z",
  "transactionId": 12031965.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654708",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u002722bd619a-474b-4709-a837-0f34587fe208\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.895Z",
  "transactionId": 12031964.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654707",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u002722bd619a-474b-4709-a837-0f34587fe208\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.887Z",
  "transactionId": 12031963.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 22bd619a-474b-4709-a837-0f34587fe208
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 22bd619a-474b-4709-a837-0f34587fe208
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 22bd619a-474b-4709-a837-0f34587fe208",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.882Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 22bd619a-474b-4709-a837-0f34587fe208
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 22bd619a-474b-4709-a837-0f34587fe208
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 22bd619a-474b-4709-a837-0f34587fe208",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.882Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [reminder] wo=98efc574-e1b1-4941-b2ba-33c960dedfb5 no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=98efc574-e1b1-4941-b2ba-33c960dedfb5 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=98efc574-e1b1-4941-b2ba-33c960dedfb5 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.882Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654706",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u002798efc574-e1b1-4941-b2ba-33c960dedfb5\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.879Z",
  "transactionId": 12031962.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654705",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u002798efc574-e1b1-4941-b2ba-33c960dedfb5\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.871Z",
  "transactionId": 12031961.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654704",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u002798efc574-e1b1-4941-b2ba-33c960dedfb5\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.868Z",
  "transactionId": 12031961.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654703",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u002798efc574-e1b1-4941-b2ba-33c960dedfb5\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.861Z",
  "transactionId": 12031960.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654702",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u002798efc574-e1b1-4941-b2ba-33c960dedfb5\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.853Z",
  "transactionId": 12031959.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 98efc574-e1b1-4941-b2ba-33c960dedfb5
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 98efc574-e1b1-4941-b2ba-33c960dedfb5
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 98efc574-e1b1-4941-b2ba-33c960dedfb5",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.848Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 98efc574-e1b1-4941-b2ba-33c960dedfb5
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 98efc574-e1b1-4941-b2ba-33c960dedfb5
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 98efc574-e1b1-4941-b2ba-33c960dedfb5",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.848Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [reminder] wo=8b202af2-13da-45a9-a049-9f45de28ac3d no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=8b202af2-13da-45a9-a049-9f45de28ac3d no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=8b202af2-13da-45a9-a049-9f45de28ac3d no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.848Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654701",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u00278b202af2-13da-45a9-a049-9f45de28ac3d\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.844Z",
  "transactionId": 12031958.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654700",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u00278b202af2-13da-45a9-a049-9f45de28ac3d\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.837Z",
  "transactionId": 12031957.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654699",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u00278b202af2-13da-45a9-a049-9f45de28ac3d\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.834Z",
  "transactionId": 12031957.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654698",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u00278b202af2-13da-45a9-a049-9f45de28ac3d\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.826Z",
  "transactionId": 12031956.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654697",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00278b202af2-13da-45a9-a049-9f45de28ac3d\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.818Z",
  "transactionId": 12031955.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 8b202af2-13da-45a9-a049-9f45de28ac3d
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 8b202af2-13da-45a9-a049-9f45de28ac3d
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 8b202af2-13da-45a9-a049-9f45de28ac3d",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.813Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 8b202af2-13da-45a9-a049-9f45de28ac3d
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 8b202af2-13da-45a9-a049-9f45de28ac3d
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 8b202af2-13da-45a9-a049-9f45de28ac3d",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.813Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [reminder] wo=c2311e68-8d95-484d-affb-e7e6ab004cbb no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=c2311e68-8d95-484d-affb-e7e6ab004cbb no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=c2311e68-8d95-484d-affb-e7e6ab004cbb no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.813Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654696",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027c2311e68-8d95-484d-affb-e7e6ab004cbb\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.810Z",
  "transactionId": 12031954.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654695",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027c2311e68-8d95-484d-affb-e7e6ab004cbb\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.803Z",
  "transactionId": 12031953.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24654694",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027c2311e68-8d95-484d-affb-e7e6ab004cbb\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.799Z",
  "transactionId": 12031953.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654693",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027c2311e68-8d95-484d-affb-e7e6ab004cbb\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.792Z",
  "transactionId": 12031952.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654692",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027c2311e68-8d95-484d-affb-e7e6ab004cbb\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.783Z",
  "transactionId": 12031951.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order c2311e68-8d95-484d-affb-e7e6ab004cbb
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order c2311e68-8d95-484d-affb-e7e6ab004cbb
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order c2311e68-8d95-484d-affb-e7e6ab004cbb",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.778Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order c2311e68-8d95-484d-affb-e7e6ab004cbb
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order c2311e68-8d95-484d-affb-e7e6ab004cbb
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order c2311e68-8d95-484d-affb-e7e6ab004cbb",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.778Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [reminder] wo=7184a0fa-90a6-4a1f-ae31-bf02cda5b893 no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=7184a0fa-90a6-4a1f-ae31-bf02cda5b893 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=7184a0fa-90a6-4a1f-ae31-bf02cda5b893 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.777Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654691",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u00277184a0fa-90a6-4a1f-ae31-bf02cda5b893\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.774Z",
  "transactionId": 12031950.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654689",
  "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: \u00277184a0fa-90a6-4a1f-ae31-bf02cda5b893\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.767Z",
  "transactionId": 12031948.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654688",
  "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: \u00277184a0fa-90a6-4a1f-ae31-bf02cda5b893\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.763Z",
  "transactionId": 12031948.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654687",
  "pageFaults": 0.0,
  "pageHits": 6.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: \u00277184a0fa-90a6-4a1f-ae31-bf02cda5b893\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.756Z",
  "transactionId": 12031947.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654686",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00277184a0fa-90a6-4a1f-ae31-bf02cda5b893\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.748Z",
  "transactionId": 12031946.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 7184a0fa-90a6-4a1f-ae31-bf02cda5b893
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 7184a0fa-90a6-4a1f-ae31-bf02cda5b893
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 7184a0fa-90a6-4a1f-ae31-bf02cda5b893",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.743Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 7184a0fa-90a6-4a1f-ae31-bf02cda5b893
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 7184a0fa-90a6-4a1f-ae31-bf02cda5b893
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 7184a0fa-90a6-4a1f-ae31-bf02cda5b893",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.742Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [reminder] wo=29a82864-0730-405c-b7df-228742859fdb no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=29a82864-0730-405c-b7df-228742859fdb no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=29a82864-0730-405c-b7df-228742859fdb no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.742Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654684",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u002729a82864-0730-405c-b7df-228742859fdb\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.739Z",
  "transactionId": 12031945.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654682",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u002729a82864-0730-405c-b7df-228742859fdb\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.731Z",
  "transactionId": 12031944.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654681",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u002729a82864-0730-405c-b7df-228742859fdb\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.728Z",
  "transactionId": 12031944.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654680",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u002729a82864-0730-405c-b7df-228742859fdb\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.720Z",
  "transactionId": 12031943.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654679",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u002729a82864-0730-405c-b7df-228742859fdb\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.712Z",
  "transactionId": 12031942.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 29a82864-0730-405c-b7df-228742859fdb
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 29a82864-0730-405c-b7df-228742859fdb
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 29a82864-0730-405c-b7df-228742859fdb",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.707Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 29a82864-0730-405c-b7df-228742859fdb
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 29a82864-0730-405c-b7df-228742859fdb
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 29a82864-0730-405c-b7df-228742859fdb",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.707Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [reminder] wo=edc07090-5d1c-4a28-b8b0-b4617e313fd5 no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=edc07090-5d1c-4a28-b8b0-b4617e313fd5 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=edc07090-5d1c-4a28-b8b0-b4617e313fd5 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.707Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654678",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027edc07090-5d1c-4a28-b8b0-b4617e313fd5\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.703Z",
  "transactionId": 12031941.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654676",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027edc07090-5d1c-4a28-b8b0-b4617e313fd5\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.695Z",
  "transactionId": 12031939.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654675",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027edc07090-5d1c-4a28-b8b0-b4617e313fd5\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.691Z",
  "transactionId": 12031939.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654674",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027edc07090-5d1c-4a28-b8b0-b4617e313fd5\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.684Z",
  "transactionId": 12031938.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654673",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027edc07090-5d1c-4a28-b8b0-b4617e313fd5\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.675Z",
  "transactionId": 12031937.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order edc07090-5d1c-4a28-b8b0-b4617e313fd5
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order edc07090-5d1c-4a28-b8b0-b4617e313fd5
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order edc07090-5d1c-4a28-b8b0-b4617e313fd5",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.671Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order edc07090-5d1c-4a28-b8b0-b4617e313fd5
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order edc07090-5d1c-4a28-b8b0-b4617e313fd5
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order edc07090-5d1c-4a28-b8b0-b4617e313fd5",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.670Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [reminder] wo=535aa4bc-ef00-4282-9e23-cb34f9880888 no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=535aa4bc-ef00-4282-9e23-cb34f9880888 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=535aa4bc-ef00-4282-9e23-cb34f9880888 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.670Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654672",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027535aa4bc-ef00-4282-9e23-cb34f9880888\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.667Z",
  "transactionId": 12031936.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654671",
  "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: \u0027535aa4bc-ef00-4282-9e23-cb34f9880888\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.659Z",
  "transactionId": 12031935.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24654670",
  "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: \u0027535aa4bc-ef00-4282-9e23-cb34f9880888\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.655Z",
  "transactionId": 12031935.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654669",
  "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: \u0027535aa4bc-ef00-4282-9e23-cb34f9880888\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.647Z",
  "transactionId": 12031934.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654668",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027535aa4bc-ef00-4282-9e23-cb34f9880888\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.639Z",
  "transactionId": 12031933.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 535aa4bc-ef00-4282-9e23-cb34f9880888
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 535aa4bc-ef00-4282-9e23-cb34f9880888
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 535aa4bc-ef00-4282-9e23-cb34f9880888",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.634Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 535aa4bc-ef00-4282-9e23-cb34f9880888
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 535aa4bc-ef00-4282-9e23-cb34f9880888
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 535aa4bc-ef00-4282-9e23-cb34f9880888",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.634Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [reminder] wo=064a16b7-0907-4d2f-a2ed-2487467e7452 no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=064a16b7-0907-4d2f-a2ed-2487467e7452 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=064a16b7-0907-4d2f-a2ed-2487467e7452 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.634Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654666",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027064a16b7-0907-4d2f-a2ed-2487467e7452\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.630Z",
  "transactionId": 12031932.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654663",
  "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: \u0027064a16b7-0907-4d2f-a2ed-2487467e7452\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.623Z",
  "transactionId": 12031931.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654662",
  "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: \u0027064a16b7-0907-4d2f-a2ed-2487467e7452\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.620Z",
  "transactionId": 12031931.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654660",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027064a16b7-0907-4d2f-a2ed-2487467e7452\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.613Z",
  "transactionId": 12031930.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654659",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027064a16b7-0907-4d2f-a2ed-2487467e7452\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.604Z",
  "transactionId": 12031929.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 064a16b7-0907-4d2f-a2ed-2487467e7452
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 064a16b7-0907-4d2f-a2ed-2487467e7452
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 064a16b7-0907-4d2f-a2ed-2487467e7452",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.599Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 064a16b7-0907-4d2f-a2ed-2487467e7452
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 064a16b7-0907-4d2f-a2ed-2487467e7452
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 064a16b7-0907-4d2f-a2ed-2487467e7452",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.599Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [reminder] wo=bf317152-62c8-45dc-b481-3619e5898904 no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=bf317152-62c8-45dc-b481-3619e5898904 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=bf317152-62c8-45dc-b481-3619e5898904 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.599Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654658",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027bf317152-62c8-45dc-b481-3619e5898904\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.595Z",
  "transactionId": 12031928.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654657",
  "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: \u0027bf317152-62c8-45dc-b481-3619e5898904\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.587Z",
  "transactionId": 12031927.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24654656",
  "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: \u0027bf317152-62c8-45dc-b481-3619e5898904\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.584Z",
  "transactionId": 12031927.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654655",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027bf317152-62c8-45dc-b481-3619e5898904\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.577Z",
  "transactionId": 12031926.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654654",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027bf317152-62c8-45dc-b481-3619e5898904\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.568Z",
  "transactionId": 12031925.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order bf317152-62c8-45dc-b481-3619e5898904
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order bf317152-62c8-45dc-b481-3619e5898904
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order bf317152-62c8-45dc-b481-3619e5898904",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.564Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order bf317152-62c8-45dc-b481-3619e5898904
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order bf317152-62c8-45dc-b481-3619e5898904
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order bf317152-62c8-45dc-b481-3619e5898904",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.564Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [reminder] wo=7f832fbf-bd0a-4eee-92ff-36b6e498b85e no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=7f832fbf-bd0a-4eee-92ff-36b6e498b85e no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=7f832fbf-bd0a-4eee-92ff-36b6e498b85e no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.563Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654652",
  "pageFaults": 0.0,
  "pageHits": 5.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u00277f832fbf-bd0a-4eee-92ff-36b6e498b85e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.560Z",
  "transactionId": 12031924.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654651",
  "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: \u00277f832fbf-bd0a-4eee-92ff-36b6e498b85e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.553Z",
  "transactionId": 12031923.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654650",
  "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: \u00277f832fbf-bd0a-4eee-92ff-36b6e498b85e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.549Z",
  "transactionId": 12031923.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654649",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u00277f832fbf-bd0a-4eee-92ff-36b6e498b85e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.541Z",
  "transactionId": 12031922.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654648",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00277f832fbf-bd0a-4eee-92ff-36b6e498b85e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.533Z",
  "transactionId": 12031921.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 7f832fbf-bd0a-4eee-92ff-36b6e498b85e
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 7f832fbf-bd0a-4eee-92ff-36b6e498b85e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 7f832fbf-bd0a-4eee-92ff-36b6e498b85e",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.528Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 7f832fbf-bd0a-4eee-92ff-36b6e498b85e
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 7f832fbf-bd0a-4eee-92ff-36b6e498b85e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 7f832fbf-bd0a-4eee-92ff-36b6e498b85e",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.528Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [reminder] wo=5548276f-8d66-49e2-9efb-4172843ba005 no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=5548276f-8d66-49e2-9efb-4172843ba005 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=5548276f-8d66-49e2-9efb-4172843ba005 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.527Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654647",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u00275548276f-8d66-49e2-9efb-4172843ba005\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.524Z",
  "transactionId": 12031920.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654646",
  "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: \u00275548276f-8d66-49e2-9efb-4172843ba005\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.516Z",
  "transactionId": 12031919.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654645",
  "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: \u00275548276f-8d66-49e2-9efb-4172843ba005\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.513Z",
  "transactionId": 12031919.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654644",
  "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: \u00275548276f-8d66-49e2-9efb-4172843ba005\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.505Z",
  "transactionId": 12031918.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654643",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00275548276f-8d66-49e2-9efb-4172843ba005\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.497Z",
  "transactionId": 12031917.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 5548276f-8d66-49e2-9efb-4172843ba005
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 5548276f-8d66-49e2-9efb-4172843ba005
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 5548276f-8d66-49e2-9efb-4172843ba005",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.493Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 5548276f-8d66-49e2-9efb-4172843ba005
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 5548276f-8d66-49e2-9efb-4172843ba005
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 5548276f-8d66-49e2-9efb-4172843ba005",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.492Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [reminder] wo=de5dbe22-d2de-4a5c-a5e0-9aea6144612c no reminder policy (NONE) — nothing to do
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=de5dbe22-d2de-4a5c-a5e0-9aea6144612c no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=de5dbe22-d2de-4a5c-a5e0-9aea6144612c no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.492Z",
  "version": "unknown"
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 724.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "24654642",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027de5dbe22-d2de-4a5c-a5e0-9aea6144612c\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.489Z",
  "transactionId": 12031916.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654641",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027de5dbe22-d2de-4a5c-a5e0-9aea6144612c\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.481Z",
  "transactionId": 12031915.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        RETURN count(a) as total
raw payload (15 fields)
{
  "allocatedBytes": 488.0,
  "cpu": 0.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "FA66F084",
  "id": "24654640",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027de5dbe22-d2de-4a5c-a5e0-9aea6144612c\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.478Z",
  "transactionId": 12031915.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11: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 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654639",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027de5dbe22-d2de-4a5c-a5e0-9aea6144612c\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.469Z",
  "transactionId": 12031914.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:11:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
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": "24654638",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027de5dbe22-d2de-4a5c-a5e0-9aea6144612c\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:38312\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T00:11:08.461Z",
  "transactionId": 12031913.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:11:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order de5dbe22-d2de-4a5c-a5e0-9aea6144612c
time2026-07-27 00:11:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace5bfea4a3d63cd349fd08a47c05bf0e2f
span7ee1597b904571d5
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order de5dbe22-d2de-4a5c-a5e0-9aea6144612c
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order de5dbe22-d2de-4a5c-a5e0-9aea6144612c",
  "org_alias": "02bcadc5-e03b-44d6-842c-db76b3734289",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T00:11:08.457Z",
  "version": "unknown"
}

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