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

Logs

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

reset
2h ago2026-07-27 00:07: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:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:377
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.179Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [reminder] wo=df0137d9-2ffd-437d-a537-47ce14709fe3 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.179Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641105",
  "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:07:09.176Z",
  "transactionId": 12025208.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641104",
  "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:07:09.168Z",
  "transactionId": 12025207.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641103",
  "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:07:09.165Z",
  "transactionId": 12025207.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641102",
  "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:07:09.158Z",
  "transactionId": 12025206.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641101",
  "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:07:09.151Z",
  "transactionId": 12025205.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order df0137d9-2ffd-437d-a537-47ce14709fe3
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.146Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order df0137d9-2ffd-437d-a537-47ce14709fe3
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.145Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [reminder] wo=b63e8daa-2602-4c2b-8546-76510531aa7b no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.145Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641100",
  "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:07:09.142Z",
  "transactionId": 12025204.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641099",
  "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:07:09.134Z",
  "transactionId": 12025203.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641098",
  "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:07:09.131Z",
  "transactionId": 12025203.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641097",
  "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:07:09.124Z",
  "transactionId": 12025202.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641096",
  "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:07:09.116Z",
  "transactionId": 12025201.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order b63e8daa-2602-4c2b-8546-76510531aa7b
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.112Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order b63e8daa-2602-4c2b-8546-76510531aa7b
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.112Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [reminder] wo=56540d66-ab1c-4e74-abc9-68cab4f32db2 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.111Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641095",
  "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:07:09.108Z",
  "transactionId": 12025200.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641094",
  "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:07:09.101Z",
  "transactionId": 12025199.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641093",
  "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:07:09.098Z",
  "transactionId": 12025199.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641092",
  "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:07:09.091Z",
  "transactionId": 12025198.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641091",
  "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:07:09.083Z",
  "transactionId": 12025197.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 56540d66-ab1c-4e74-abc9-68cab4f32db2
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.079Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 56540d66-ab1c-4e74-abc9-68cab4f32db2
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.078Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [reminder] wo=43c7d9d4-4ca8-4126-b6d5-df6f0c28e207 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.078Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641090",
  "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:07:09.075Z",
  "transactionId": 12025196.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641089",
  "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:07:09.068Z",
  "transactionId": 12025195.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641088",
  "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:07:09.065Z",
  "transactionId": 12025195.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641087",
  "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:07:09.058Z",
  "transactionId": 12025194.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641086",
  "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:07:09.050Z",
  "transactionId": 12025193.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 43c7d9d4-4ca8-4126-b6d5-df6f0c28e207
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.045Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 43c7d9d4-4ca8-4126-b6d5-df6f0c28e207
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.045Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [reminder] wo=fad7527f-5831-405a-9758-dcaf2a065b3e no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.044Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641085",
  "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:07:09.041Z",
  "transactionId": 12025192.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641084",
  "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:07:09.034Z",
  "transactionId": 12025191.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641083",
  "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:07:09.031Z",
  "transactionId": 12025191.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641082",
  "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:07:09.024Z",
  "transactionId": 12025190.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641081",
  "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:07:09.016Z",
  "transactionId": 12025189.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order fad7527f-5831-405a-9758-dcaf2a065b3e
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.012Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order fad7527f-5831-405a-9758-dcaf2a065b3e
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.012Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC DEBUG virtual-assistant [reminder] wo=b169f9b1-8e4d-4e07-8c89-7a48c096b6d2 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:09.012Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641080",
  "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:07:09.008Z",
  "transactionId": 12025188.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 00:07:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641079",
  "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:07:09.001Z",
  "transactionId": 12025187.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641078",
  "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:07:08.998Z",
  "transactionId": 12025187.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641077",
  "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:07:08.991Z",
  "transactionId": 12025186.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641076",
  "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:07:08.983Z",
  "transactionId": 12025185.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order b169f9b1-8e4d-4e07-8c89-7a48c096b6d2
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.979Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order b169f9b1-8e4d-4e07-8c89-7a48c096b6d2
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.979Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=b49e6cf0-5b83-425e-9973-7a3da0ccd80c no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.978Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641075",
  "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:07:08.975Z",
  "transactionId": 12025184.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641074",
  "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:07:08.969Z",
  "transactionId": 12025183.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641073",
  "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:07:08.966Z",
  "transactionId": 12025183.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641072",
  "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:07:08.958Z",
  "transactionId": 12025182.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641071",
  "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:07:08.951Z",
  "transactionId": 12025181.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order b49e6cf0-5b83-425e-9973-7a3da0ccd80c
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.946Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order b49e6cf0-5b83-425e-9973-7a3da0ccd80c
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.946Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=103246e2-7256-476a-b402-3b6f8cc949ab no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.946Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641070",
  "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:07:08.942Z",
  "transactionId": 12025180.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641069",
  "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:07:08.935Z",
  "transactionId": 12025179.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641068",
  "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:07:08.932Z",
  "transactionId": 12025179.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641067",
  "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:07:08.925Z",
  "transactionId": 12025178.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641066",
  "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:07:08.917Z",
  "transactionId": 12025177.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 103246e2-7256-476a-b402-3b6f8cc949ab
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.913Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 103246e2-7256-476a-b402-3b6f8cc949ab
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.912Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=1f1674f7-132c-45ef-a593-fb4a5c499162 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.912Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641065",
  "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:07:08.909Z",
  "transactionId": 12025176.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641064",
  "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:07:08.903Z",
  "transactionId": 12025175.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641063",
  "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:07:08.900Z",
  "transactionId": 12025175.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641062",
  "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:07:08.893Z",
  "transactionId": 12025174.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641061",
  "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:07:08.884Z",
  "transactionId": 12025173.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 1f1674f7-132c-45ef-a593-fb4a5c499162
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.879Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 1f1674f7-132c-45ef-a593-fb4a5c499162
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.879Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=10068bd4-0e6c-4d52-b9cb-5831c2147e0e no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.879Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641060",
  "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:07:08.876Z",
  "transactionId": 12025172.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641059",
  "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:07:08.869Z",
  "transactionId": 12025171.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641058",
  "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:07:08.866Z",
  "transactionId": 12025171.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641057",
  "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:07:08.859Z",
  "transactionId": 12025170.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641056",
  "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:07:08.851Z",
  "transactionId": 12025169.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 10068bd4-0e6c-4d52-b9cb-5831c2147e0e
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.847Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 10068bd4-0e6c-4d52-b9cb-5831c2147e0e
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.846Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=4183bc39-6a2d-49d6-bee6-c88655b2b592 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.846Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641055",
  "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:07:08.842Z",
  "transactionId": 12025168.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641054",
  "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:07:08.834Z",
  "transactionId": 12025167.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641053",
  "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:07:08.831Z",
  "transactionId": 12025167.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641052",
  "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:07:08.824Z",
  "transactionId": 12025166.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641051",
  "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:07:08.817Z",
  "transactionId": 12025165.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 4183bc39-6a2d-49d6-bee6-c88655b2b592
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.812Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 4183bc39-6a2d-49d6-bee6-c88655b2b592
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.812Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=10247504-1081-45b5-961f-0b56e298f7fb no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.812Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641050",
  "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:07:08.809Z",
  "transactionId": 12025164.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641049",
  "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:07:08.802Z",
  "transactionId": 12025163.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641048",
  "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:07:08.799Z",
  "transactionId": 12025163.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641047",
  "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:07:08.791Z",
  "transactionId": 12025162.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641046",
  "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:07:08.782Z",
  "transactionId": 12025161.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 10247504-1081-45b5-961f-0b56e298f7fb
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.778Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 10247504-1081-45b5-961f-0b56e298f7fb
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.778Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=22bd619a-474b-4709-a837-0f34587fe208 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.777Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641045",
  "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:07:08.774Z",
  "transactionId": 12025160.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641044",
  "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:07:08.767Z",
  "transactionId": 12025159.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641043",
  "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:07:08.764Z",
  "transactionId": 12025159.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641042",
  "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:07:08.757Z",
  "transactionId": 12025158.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641041",
  "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:07:08.749Z",
  "transactionId": 12025157.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 22bd619a-474b-4709-a837-0f34587fe208
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.745Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 22bd619a-474b-4709-a837-0f34587fe208
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.744Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=98efc574-e1b1-4941-b2ba-33c960dedfb5 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.744Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641040",
  "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:07:08.741Z",
  "transactionId": 12025156.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641039",
  "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:07:08.734Z",
  "transactionId": 12025155.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641038",
  "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:07:08.731Z",
  "transactionId": 12025155.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641037",
  "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:07:08.725Z",
  "transactionId": 12025154.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641036",
  "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:07:08.717Z",
  "transactionId": 12025153.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 98efc574-e1b1-4941-b2ba-33c960dedfb5
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.712Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 98efc574-e1b1-4941-b2ba-33c960dedfb5
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.712Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=8b202af2-13da-45a9-a049-9f45de28ac3d no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.712Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641035",
  "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:07:08.709Z",
  "transactionId": 12025152.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641034",
  "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:07:08.702Z",
  "transactionId": 12025151.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641033",
  "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:07:08.699Z",
  "transactionId": 12025151.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641032",
  "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:07:08.691Z",
  "transactionId": 12025150.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641031",
  "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:07:08.683Z",
  "transactionId": 12025149.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 8b202af2-13da-45a9-a049-9f45de28ac3d
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.678Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 8b202af2-13da-45a9-a049-9f45de28ac3d
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.678Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=c2311e68-8d95-484d-affb-e7e6ab004cbb no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.677Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641030",
  "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:07:08.674Z",
  "transactionId": 12025148.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641029",
  "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:07:08.666Z",
  "transactionId": 12025147.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641028",
  "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:07:08.663Z",
  "transactionId": 12025147.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641027",
  "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:07:08.656Z",
  "transactionId": 12025146.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641026",
  "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:07:08.648Z",
  "transactionId": 12025145.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order c2311e68-8d95-484d-affb-e7e6ab004cbb
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.643Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order c2311e68-8d95-484d-affb-e7e6ab004cbb
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.643Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=7184a0fa-90a6-4a1f-ae31-bf02cda5b893 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.643Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641025",
  "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:07:08.640Z",
  "transactionId": 12025144.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641024",
  "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:07:08.633Z",
  "transactionId": 12025143.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641023",
  "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:07:08.629Z",
  "transactionId": 12025143.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641022",
  "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:07:08.622Z",
  "transactionId": 12025142.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641021",
  "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:07:08.614Z",
  "transactionId": 12025141.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 7184a0fa-90a6-4a1f-ae31-bf02cda5b893
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.610Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 7184a0fa-90a6-4a1f-ae31-bf02cda5b893
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.610Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=29a82864-0730-405c-b7df-228742859fdb no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.609Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641020",
  "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:07:08.606Z",
  "transactionId": 12025140.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641019",
  "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:07:08.599Z",
  "transactionId": 12025139.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641018",
  "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:07:08.596Z",
  "transactionId": 12025139.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641017",
  "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:07:08.589Z",
  "transactionId": 12025138.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641016",
  "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:07:08.580Z",
  "transactionId": 12025137.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 29a82864-0730-405c-b7df-228742859fdb
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.575Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 29a82864-0730-405c-b7df-228742859fdb
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.575Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=edc07090-5d1c-4a28-b8b0-b4617e313fd5 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.575Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641015",
  "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:07:08.572Z",
  "transactionId": 12025136.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641014",
  "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:07:08.564Z",
  "transactionId": 12025135.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641013",
  "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:07:08.561Z",
  "transactionId": 12025135.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641012",
  "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:07:08.553Z",
  "transactionId": 12025134.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641011",
  "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:07:08.545Z",
  "transactionId": 12025133.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order edc07090-5d1c-4a28-b8b0-b4617e313fd5
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.541Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order edc07090-5d1c-4a28-b8b0-b4617e313fd5
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.540Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=535aa4bc-ef00-4282-9e23-cb34f9880888 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.540Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641010",
  "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:07:08.537Z",
  "transactionId": 12025132.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641009",
  "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:07:08.530Z",
  "transactionId": 12025131.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641008",
  "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:07:08.526Z",
  "transactionId": 12025131.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641007",
  "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:07:08.519Z",
  "transactionId": 12025130.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641006",
  "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:07:08.511Z",
  "transactionId": 12025129.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 535aa4bc-ef00-4282-9e23-cb34f9880888
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.507Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 535aa4bc-ef00-4282-9e23-cb34f9880888
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.507Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=064a16b7-0907-4d2f-a2ed-2487467e7452 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.506Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641005",
  "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:07:08.503Z",
  "transactionId": 12025128.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641004",
  "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:07:08.496Z",
  "transactionId": 12025127.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641003",
  "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:07:08.492Z",
  "transactionId": 12025127.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641002",
  "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:07:08.485Z",
  "transactionId": 12025126.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641001",
  "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:07:08.476Z",
  "transactionId": 12025125.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 064a16b7-0907-4d2f-a2ed-2487467e7452
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.472Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 064a16b7-0907-4d2f-a2ed-2487467e7452
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.472Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=bf317152-62c8-45dc-b481-3619e5898904 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.471Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24641000",
  "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:07:08.468Z",
  "transactionId": 12025124.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640999",
  "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:07:08.461Z",
  "transactionId": 12025123.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640998",
  "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:07:08.457Z",
  "transactionId": 12025123.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640997",
  "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:07:08.449Z",
  "transactionId": 12025122.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640996",
  "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:07:08.441Z",
  "transactionId": 12025121.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order bf317152-62c8-45dc-b481-3619e5898904
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.436Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order bf317152-62c8-45dc-b481-3619e5898904
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.436Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=7f832fbf-bd0a-4eee-92ff-36b6e498b85e no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.436Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640995",
  "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:07:08.432Z",
  "transactionId": 12025120.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640994",
  "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:07:08.425Z",
  "transactionId": 12025119.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640993",
  "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:07:08.422Z",
  "transactionId": 12025119.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640991",
  "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:07:08.415Z",
  "transactionId": 12025118.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640989",
  "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:07:08.406Z",
  "transactionId": 12025117.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 7f832fbf-bd0a-4eee-92ff-36b6e498b85e
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.402Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 7f832fbf-bd0a-4eee-92ff-36b6e498b85e
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.401Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=5548276f-8d66-49e2-9efb-4172843ba005 no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.401Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640988",
  "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:07:08.398Z",
  "transactionId": 12025116.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640987",
  "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:07:08.391Z",
  "transactionId": 12025115.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640986",
  "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:07:08.388Z",
  "transactionId": 12025115.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640985",
  "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:07:08.380Z",
  "transactionId": 12025114.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640984",
  "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:07:08.373Z",
  "transactionId": 12025113.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 5548276f-8d66-49e2-9efb-4172843ba005
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.368Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] About to process work order 5548276f-8d66-49e2-9efb-4172843ba005
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.367Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [reminder] wo=de5dbe22-d2de-4a5c-a5e0-9aea6144612c no reminder policy (NONE) — nothing to do
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.367Z",
  "version": "unknown"
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640983",
  "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:07:08.364Z",
  "transactionId": 12025112.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640982",
  "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:07:08.357Z",
  "transactionId": 12025111.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640981",
  "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:07:08.353Z",
  "transactionId": 12025111.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07: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:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640980",
  "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:07:08.346Z",
  "transactionId": 12025110.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 00:07:08 UTC
severityINFO
servicevirtual-assistant
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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": "24640979",
  "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:07:08.338Z",
  "transactionId": 12025109.0,
  "waiting": 0.0
}
2h ago2026-07-27 00:07:08 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order de5dbe22-d2de-4a5c-a5e0-9aea6144612c
time2026-07-27 00:07:08 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org02bcadc5-e03b-44d6-842c-db76b3734289
versionunknown
trace6d249c159a52f15d1a7028e269fc4c5d
span1de502596d44e52e
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:07:08.332Z",
  "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.