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

Logs

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

reset
4m ago2026-07-27 02:13:10 UTC DEBUG tusker task.Description has unresolved placeholders, task.Id: a643369e-a0fc-43a3-a1b7-b58eade6aab3
time2026-07-27 02:13:10 UTC
severityDEBUG
servicetusker
sourcejobs/task_template.go:219
clustermaster
versionunknown
podtusker-858b678c65-hsvqd
message
task.Description has unresolved placeholders, task.Id: a643369e-a0fc-43a3-a1b7-b58eade6aab3
raw payload (7 fields)
{
  "caller": "jobs/task_template.go:219",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "task.Description has unresolved placeholders, task.Id: a643369e-a0fc-43a3-a1b7-b58eade6aab3",
  "service": "tusker",
  "timestamp": "2026-07-27T02:13:10.605Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:10 UTC neo4j tusker MATCH (study:Study )-[:MANAGED_BY]-(:Inbox)-[:BELONGS_TO]-(t:Task) WHERE NOT EXISTS ((t)-[:BELONGS_TO]-(:Inbox{type:"User"})) CALL...
time2026-07-27 02:13:10 UTC
severityINFO
servicetusker
clustermaster
podserver-2-dev-0
query
MATCH (study:Study )-[:MANAGED_BY]-(:Inbox)-[:BELONGS_TO]-(t:Task)
		WHERE NOT EXISTS ((t)-[:BELONGS_TO]-(:Inbox{type:"User"}))
		CALL {
			WITH t
			MATCH (t)<-[:CREATED_FROM_SPEC]-(ptc:ParticipantTaskConfig)-[:PARTICIPANT_TASKCONFIG]-(:ParticipantTaskList)-[:PARTICIPANT_TASKLIST]-(:ParticipantControl)-[:PARTICIPANT_CONTROL]-(:ParticipantActivity)-[:PARTICIPANT_ACTIVITY]-(pw:ParticipantWorkflow)
			RETURN ptc, pw
			UNION ALL
			WITH t
			MATCH (t)<-[:CREATED_FROM_SPEC]-(ptc:ParticipantTaskConfig)-[:PARTICIPANT_TASKCONFIG]-(:ParticipantTaskList)-[:PARTICIPANT_TASKLIST]-(:ParticipantActivity)-[:PARTICIPANT_ACTIVITY]-(pw:ParticipantWorkflow)
			RETURN ptc, pw
		}
		WITH DISTINCT study, t, ptc, pw
		MATCH (t)-[:BELONGS_TO]-(:Inbox)-[:MANAGED_BY]-(o:Organization)
		MATCH (ptc)-[:BELONGS_TO_TASKCONFIG]-(tc:TaskConfig)
		OPTIONAL MATCH (t)-[:BELONGS_TO]-(taskInbox:Inbox{type:"User"})--(taskUser:User)
		OPTIONAL MATCH (pw)-[:PARTICIPANTWORKFLOW_TO_SCOPE]-(:StudySiteActor)-[:STUDYSITEACTOR_TO_ACTOR]-(:Actor{delpending:false})-[:FOR_USER]-(user:User)
		OPTIONAL MATCH (pw)-[:PARTICIPANTWORKFLOW_TO_SCOPE]-(:DslPlanDefinition)-[:PLAN_DEFINITION_TO_SITE]-(scopeSite:Site)-[:SITE_TO_SMO]-(:Smo)-[:IS_AN_ORG]-(o)
		CALL {
			WITH study
			OPTIONAL MATCH (study)-[:STUDY_TO_ACTOR]-(a:Actor{delpending:false})-[:FOR_USER]-(u:User),
				(a)-[:APPOINTED_AS]-(r:Role)
			WHERE r.name IN ["principal_investigator", "study_admin", "regulatory_analyst"]
			RETURN collect(DISTINCT CASE WHEN r.name = "principal_investigator" THEN u.tildaid END) AS piTildaid,
				collect(DISTINCT CASE WHEN r.name = "study_admin" THEN u.tildaid END) AS smoTildaid,
				collect(DISTINCT CASE WHEN r.name = "regulatory_analyst" THEN u.tildaid END) AS raTildaid
		}
		CALL {
			WITH o
			OPTIONAL MATCH (o)-[:ORGANIZATION_TO_ACTOR]-(a:Actor{delpending:false})-[:FOR_USER]-(u:User),
				(a)-[:APPOINTED_AS]-(:Role{name:"org_admin"})
			RETURN collect(DISTINCT u.tildaid) AS adminTildaid
		}
		CALL {
			WITH scopeSite
			OPTIONAL MATCH (scopeSite)-[:STAFF_TO_ACTOR]-(a:Actor{delpending:false})-[:FOR_USER]-(u:User),
				(a)-[:APPOINTED_AS]-(:Role{name:"site_admin"})
			RETURN collect(DISTINCT u.tildaid) AS siteAdminTildaid
		}
		RETURN DISTINCT t AS task, apoc.convert.toJson({userTildaid: user.tildaid, userName: user.name,
			PITildaid: piTildaid, studyOwnerTildaid: smoTildaid, regAnalystTildaid: raTildaid,
			orgAdminTildaid: adminTildaid, studyName: study.name, siteName: scopeSite.name,
			siteAdminTildaid: siteAdminTildaid}) AS details, tc.who AS dsnWho, o.alias AS orgAlias,
			taskInbox, taskUser.tildaid AS taskUserId
		SKIP 400 LIMIT 400
raw payload (15 fields)
{
  "allocatedBytes": 5829748.0,
  "cpu": 28101.0,
  "elapsedTimeMs": 28416.0,
  "executionPlanCacheKeyHash": "BC27D14D",
  "id": "25313538",
  "pageFaults": 0.0,
  "pageHits": 55539324.0,
  "planning": 0.0,
  "query": "\n\t\tMATCH (study:Study )-[:MANAGED_BY]-(:Inbox)-[:BELONGS_TO]-(t:Task)\n\t\tWHERE NOT EXISTS ((t)-[:BELONGS_TO]-(:Inbox{type:\"User\"}))\n\t\tCALL {\n\t\t\tWITH t\n\t\t\tMATCH (t)\u003c-[:CREATED_FROM_SPEC]-(ptc:ParticipantTaskConfig)-[:PARTICIPANT_TASKCONFIG]-(:ParticipantTaskList)-[:PARTICIPANT_TASKLIST]-(:ParticipantControl)-[:PARTICIPANT_CONTROL]-(:ParticipantActivity)-[:PARTICIPANT_ACTIVITY]-(pw:ParticipantWorkflow)\n\t\t\tRETURN ptc, pw\n\t\t\tUNION ALL\n\t\t\tWITH t\n\t\t\tMATCH (t)\u003c-[:CREATED_FROM_SPEC]-(ptc:ParticipantTaskConfig)-[:PARTICIPANT_TASKCONFIG]-(:ParticipantTaskList)-[:PARTICIPANT_TASKLIST]-(:ParticipantActivity)-[:PARTICIPANT_ACTIVITY]-(pw:ParticipantWorkflow)\n\t\t\tRETURN ptc, pw\n\t\t}\n\t\tWITH DISTINCT study, t, ptc, pw\n\t\tMATCH (t)-[:BELONGS_TO]-(:Inbox)-[:MANAGED_BY]-(o:Organization)\n\t\tMATCH (ptc)-[:BELONGS_TO_TASKCONFIG]-(tc:TaskConfig)\n\t\tOPTIONAL MATCH (t)-[:BELONGS_TO]-(taskInbox:Inbox{type:\"User\"})--(taskUser:User)\n\t\tOPTIONAL MATCH (pw)-[:PARTICIPANTWORKFLOW_TO_SCOPE]-(:StudySiteActor)-[:STUDYSITEACTOR_TO_ACTOR]-(:Actor{delpending:false})-[:FOR_USER]-(user:User)\n\t\tOPTIONAL MATCH (pw)-[:PARTICIPANTWORKFLOW_TO_SCOPE]-(:DslPlanDefinition)-[:PLAN_DEFINITION_TO_SITE]-(scopeSite:Site)-[:SITE_TO_SMO]-(:Smo)-[:IS_AN_ORG]-(o)\n\t\tCALL {\n\t\t\tWITH study\n\t\t\tOPTIONAL MATCH (study)-[:STUDY_TO_ACTOR]-(a:Actor{delpending:false})-[:FOR_USER]-(u:User),\n\t\t\t\t(a)-[:APPOINTED_AS]-(r:Role)\n\t\t\tWHERE r.name IN [\"principal_investigator\", \"study_admin\", \"regulatory_analyst\"]\n\t\t\tRETURN collect(DISTINCT CASE WHEN r.name = \"principal_investigator\" THEN u.tildaid END) AS piTildaid,\n\t\t\t\tcollect(DISTINCT CASE WHEN r.name = \"study_admin\" THEN u.tildaid END) AS smoTildaid,\n\t\t\t\tcollect(DISTINCT CASE WHEN r.name = \"regulatory_analyst\" THEN u.tildaid END) AS raTildaid\n\t\t}\n\t\tCALL {\n\t\t\tWITH o\n\t\t\tOPTIONAL MATCH (o)-[:ORGANIZATION_TO_ACTOR]-(a:Actor{delpending:false})-[:FOR_USER]-(u:User),\n\t\t\t\t(a)-[:APPOINTED_AS]-(:Role{name:\"org_admin\"})\n\t\t\tRETURN collect(DISTINCT u.tildaid) AS adminTildaid\n\t\t}\n\t\tCALL {\n\t\t\tWITH scopeSite\n\t\t\tOPTIONAL MATCH (scopeSite)-[:STAFF_TO_ACTOR]-(a:Actor{delpending:false})-[:FOR_USER]-(u:User),\n\t\t\t\t(a)-[:APPOINTED_AS]-(:Role{name:\"site_admin\"})\n\t\t\tRETURN collect(DISTINCT u.tildaid) AS siteAdminTildaid\n\t\t}\n\t\tRETURN DISTINCT t AS task, apoc.convert.toJson({userTildaid: user.tildaid, userName: user.name,\n\t\t\tPITildaid: piTildaid, studyOwnerTildaid: smoTildaid, regAnalystTildaid: raTildaid,\n\t\t\torgAdminTildaid: adminTildaid, studyName: study.name, siteName: scopeSite.name,\n\t\t\tsiteAdminTildaid: siteAdminTildaid}) AS details, tc.who AS dsnWho, o.alias AS orgAlias,\n\t\t\ttaskInbox, taskUser.tildaid AS taskUserId\n\t\tSKIP 400 LIMIT 400",
  "queryParameters": "{}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-java/5.28.13-24cd0fecc64de123fd5711190246e8b0f1e16fd0\t\tclient/10.173.2.71:49876\tserver/10.173.0.8:7688\u003e",
  "timestamp": "2026-07-27T02:13:10.602Z",
  "transactionId": 12238088.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:10 UTC INFO
filter by: severity≥INFO
time2026-07-27 02:13:10 UTC
severityINFO
clustermaster
podlitellm-f54655c99-cbmvt
4m ago2026-07-27 02:13:10 UTC INFO
filter by: severity≥INFO
time2026-07-27 02:13:10 UTC
severityINFO
clustermaster
podrag-agent-57879dd94f-l9nz7
4m ago2026-07-27 02:13:09 UTC INFO virtual-assistant 🏁 Daily check complete: orgs=6, work_orders=409, reminders_sent=0, moved_to_need_attention=0
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:393
clustermaster
versionunknown
podvirtual-assistant-65b975d66b-l8wpw
message
🏁 Daily check complete: orgs=6, work_orders=409, reminders_sent=0, moved_to_need_attention=0
raw payload (7 fields)
{
  "caller": "jobs/daily_work_order_cron.py:393",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\ud83c\udfc1 Daily check complete: orgs=6, work_orders=409, reminders_sent=0, moved_to_need_attention=0",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.954Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC INFO virtual-assistant No work order locks currently held
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
sourceshared/work_order_locks.py:147
clustermaster
versionunknown
podvirtual-assistant-65b975d66b-l8wpw
message
No work order locks currently held
raw payload (7 fields)
{
  "caller": "shared/work_order_locks.py:147",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "No work order locks currently held",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.954Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant 🔍 Final lock status after daily check:
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:385
clustermaster
versionunknown
podvirtual-assistant-65b975d66b-l8wpw
message
🔍 Final lock status after daily check:
raw payload (7 fields)
{
  "caller": "jobs/daily_work_order_cron.py:385",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\ud83d\udd0d Final lock status after daily check:",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.954Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant ✅ Org 4510cbf5-af86-40c7-ba81-1e7aa0df8c2e summary: processed=4, reminders_sent=0, moved_to_need_attention=0
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:377
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
podvirtual-assistant-65b975d66b-l8wpw
message
✅ Org 4510cbf5-af86-40c7-ba81-1e7aa0df8c2e summary: processed=4, 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 4510cbf5-af86-40c7-ba81-1e7aa0df8c2e summary: processed=4, reminders_sent=0, moved_to_need_attention=0",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.953Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=5fda6743-4617-464f-9598-5ffebf341fa6 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=5fda6743-4617-464f-9598-5ffebf341fa6 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=953m < step=1440m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=5fda6743-4617-464f-9598-5ffebf341fa6 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=953m \u003c step=1440m\u0027",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.953Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318627",
  "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: \u00275fda6743-4617-464f-9598-5ffebf341fa6\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.950Z",
  "transactionId": 12239761.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318625",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u00275fda6743-4617-464f-9598-5ffebf341fa6\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.944Z",
  "transactionId": 12239760.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318624",
  "pageFaults": 0.0,
  "pageHits": 13.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u00275fda6743-4617-464f-9598-5ffebf341fa6\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.940Z",
  "transactionId": 12239760.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318623",
  "pageFaults": 0.0,
  "pageHits": 15.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u00275fda6743-4617-464f-9598-5ffebf341fa6\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.933Z",
  "transactionId": 12239759.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318622",
  "pageFaults": 0.0,
  "pageHits": 8.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00275fda6743-4617-464f-9598-5ffebf341fa6\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.926Z",
  "transactionId": 12239758.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 5fda6743-4617-464f-9598-5ffebf341fa6
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 5fda6743-4617-464f-9598-5ffebf341fa6
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 5fda6743-4617-464f-9598-5ffebf341fa6",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.921Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 5fda6743-4617-464f-9598-5ffebf341fa6
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 5fda6743-4617-464f-9598-5ffebf341fa6
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 5fda6743-4617-464f-9598-5ffebf341fa6",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.921Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=322547e7-b0fd-4d98-963d-afb231950377 no reminder policy (NONE) — nothing to do
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=322547e7-b0fd-4d98-963d-afb231950377 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=322547e7-b0fd-4d98-963d-afb231950377 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.921Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318620",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027322547e7-b0fd-4d98-963d-afb231950377\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.918Z",
  "transactionId": 12239757.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318619",
  "pageFaults": 0.0,
  "pageHits": 8.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027322547e7-b0fd-4d98-963d-afb231950377\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.911Z",
  "transactionId": 12239756.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318618",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027322547e7-b0fd-4d98-963d-afb231950377\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.908Z",
  "transactionId": 12239756.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318616",
  "pageFaults": 0.0,
  "pageHits": 13.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027322547e7-b0fd-4d98-963d-afb231950377\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.902Z",
  "transactionId": 12239755.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318615",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027322547e7-b0fd-4d98-963d-afb231950377\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.894Z",
  "transactionId": 12239754.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 322547e7-b0fd-4d98-963d-afb231950377
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 322547e7-b0fd-4d98-963d-afb231950377
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 322547e7-b0fd-4d98-963d-afb231950377",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.890Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 322547e7-b0fd-4d98-963d-afb231950377
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 322547e7-b0fd-4d98-963d-afb231950377
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 322547e7-b0fd-4d98-963d-afb231950377",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.890Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=6ff3918b-05db-4310-bde3-9019341f582a no reminder policy (NONE) — nothing to do
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=6ff3918b-05db-4310-bde3-9019341f582a no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=6ff3918b-05db-4310-bde3-9019341f582a no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.889Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318613",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u00276ff3918b-05db-4310-bde3-9019341f582a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.886Z",
  "transactionId": 12239753.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318612",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u00276ff3918b-05db-4310-bde3-9019341f582a\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.880Z",
  "transactionId": 12239752.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318611",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u00276ff3918b-05db-4310-bde3-9019341f582a\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.877Z",
  "transactionId": 12239752.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318608",
  "pageFaults": 0.0,
  "pageHits": 16.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u00276ff3918b-05db-4310-bde3-9019341f582a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.871Z",
  "transactionId": 12239751.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318607",
  "pageFaults": 0.0,
  "pageHits": 8.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00276ff3918b-05db-4310-bde3-9019341f582a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.864Z",
  "transactionId": 12239750.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 6ff3918b-05db-4310-bde3-9019341f582a
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 6ff3918b-05db-4310-bde3-9019341f582a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 6ff3918b-05db-4310-bde3-9019341f582a",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.860Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 6ff3918b-05db-4310-bde3-9019341f582a
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 6ff3918b-05db-4310-bde3-9019341f582a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 6ff3918b-05db-4310-bde3-9019341f582a",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.860Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=c10303ac-4c50-40fa-9713-4e535108f3b7 no reminder policy (NONE) — nothing to do
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=c10303ac-4c50-40fa-9713-4e535108f3b7 no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=c10303ac-4c50-40fa-9713-4e535108f3b7 no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.860Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318606",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027c10303ac-4c50-40fa-9713-4e535108f3b7\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.857Z",
  "transactionId": 12239749.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318604",
  "pageFaults": 0.0,
  "pageHits": 17.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027c10303ac-4c50-40fa-9713-4e535108f3b7\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.850Z",
  "transactionId": 12239748.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318602",
  "pageFaults": 0.0,
  "pageHits": 18.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027c10303ac-4c50-40fa-9713-4e535108f3b7\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.847Z",
  "transactionId": 12239748.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318601",
  "pageFaults": 0.0,
  "pageHits": 26.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027c10303ac-4c50-40fa-9713-4e535108f3b7\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.841Z",
  "transactionId": 12239747.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
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": "25318599",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027c10303ac-4c50-40fa-9713-4e535108f3b7\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.834Z",
  "transactionId": 12239746.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order c10303ac-4c50-40fa-9713-4e535108f3b7
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order c10303ac-4c50-40fa-9713-4e535108f3b7
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order c10303ac-4c50-40fa-9713-4e535108f3b7",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.829Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order c10303ac-4c50-40fa-9713-4e535108f3b7
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order c10303ac-4c50-40fa-9713-4e535108f3b7
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order c10303ac-4c50-40fa-9713-4e535108f3b7",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.829Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant 🏢 Processing organization 4510cbf5-af86-40c7-ba81-1e7aa0df8c2e (4 work orders)
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:362
clustermaster
org4510cbf5-af86-40c7-ba81-1e7aa0df8c2e
versionunknown
tracec73db5e415684b01bb1d2838677b7970
spancd75f7cc267a72ab
podvirtual-assistant-65b975d66b-l8wpw
message
🏢 Processing organization 4510cbf5-af86-40c7-ba81-1e7aa0df8c2e (4 work orders)
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:362",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\ud83c\udfe2 Processing organization 4510cbf5-af86-40c7-ba81-1e7aa0df8c2e (4 work orders)",
  "org_alias": "4510cbf5-af86-40c7-ba81-1e7aa0df8c2e",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.829Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant ✅ Org 8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30 summary: processed=2, reminders_sent=0, moved_to_need_attention=0
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:377
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
podvirtual-assistant-65b975d66b-l8wpw
message
✅ Org 8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30 summary: processed=2, reminders_sent=0, moved_to_need_attention=0
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:377",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\u2705 Org 8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30 summary: processed=2, reminders_sent=0, moved_to_need_attention=0",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.829Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e no reminder policy (NONE) — nothing to do
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:220
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e no reminder policy (NONE) — nothing to do
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:220",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e no reminder policy (NONE) \u2014 nothing to do",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.828Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
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": "25318597",
  "pageFaults": 0.0,
  "pageHits": 5.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u002757c957cb-a23f-4f3a-8bf1-bb9e566a2b6e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.825Z",
  "transactionId": 12239745.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
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": "25318596",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u002757c957cb-a23f-4f3a-8bf1-bb9e566a2b6e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.818Z",
  "transactionId": 12239744.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
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": "25318595",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u002757c957cb-a23f-4f3a-8bf1-bb9e566a2b6e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.815Z",
  "transactionId": 12239744.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
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": "25318593",
  "pageFaults": 0.0,
  "pageHits": 14.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u002757c957cb-a23f-4f3a-8bf1-bb9e566a2b6e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.808Z",
  "transactionId": 12239743.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
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": "25318590",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u002757c957cb-a23f-4f3a-8bf1-bb9e566a2b6e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.800Z",
  "transactionId": 12239742.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.796Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 57c957cb-a23f-4f3a-8bf1-bb9e566a2b6e",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.796Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=d4a889a1-a6b0-4bdd-9ede-fae571005b67 draft already pending — skipping reminder (no send, no draft) to preserve user intent
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:200
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=d4a889a1-a6b0-4bdd-9ede-fae571005b67 draft already pending — skipping reminder (no send, no draft) to preserve user intent
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:200",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=d4a889a1-a6b0-4bdd-9ede-fae571005b67 draft already pending \u2014 skipping reminder (no send, no draft) to preserve user intent",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.795Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 7656.0,
  "cpu": 0.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "25318588",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 25, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027d4a889a1-a6b0-4bdd-9ede-fae571005b67\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.792Z",
  "transactionId": 12239741.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
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": "25318587",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027d4a889a1-a6b0-4bdd-9ede-fae571005b67\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.789Z",
  "transactionId": 12239741.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization) RETURN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization)
            RETURN COALESCE(o.reminderApprovalRequired, true) AS approval_required
raw payload (15 fields)
{
  "allocatedBytes": 328.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E5CF3BBC",
  "id": "25318584",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]-\u003e(o:Organization)\n            RETURN COALESCE(o.reminderApprovalRequired, true) AS approval_required\n            ",
  "queryParameters": "{wo: \u0027d4a889a1-a6b0-4bdd-9ede-fae571005b67\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.782Z",
  "transactionId": 12239740.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 7560.0,
  "cpu": 1.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "25318583",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027d4a889a1-a6b0-4bdd-9ede-fae571005b67\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.775Z",
  "transactionId": 12239739.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
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": "25318582",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027d4a889a1-a6b0-4bdd-9ede-fae571005b67\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.772Z",
  "transactionId": 12239739.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
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": "25318581",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027d4a889a1-a6b0-4bdd-9ede-fae571005b67\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.765Z",
  "transactionId": 12239738.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
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": "25318579",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027d4a889a1-a6b0-4bdd-9ede-fae571005b67\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.756Z",
  "transactionId": 12239737.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order d4a889a1-a6b0-4bdd-9ede-fae571005b67
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order d4a889a1-a6b0-4bdd-9ede-fae571005b67
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order d4a889a1-a6b0-4bdd-9ede-fae571005b67",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.752Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order d4a889a1-a6b0-4bdd-9ede-fae571005b67
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order d4a889a1-a6b0-4bdd-9ede-fae571005b67
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order d4a889a1-a6b0-4bdd-9ede-fae571005b67",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.752Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant 🏢 Processing organization 8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30 (2 work orders)
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:362
clustermaster
org8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30
versionunknown
tracefd3530bb367740d500245b286ffd9ff1
span957261e46f4c1ec6
podvirtual-assistant-65b975d66b-l8wpw
message
🏢 Processing organization 8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30 (2 work orders)
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:362",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\ud83c\udfe2 Processing organization 8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30 (2 work orders)",
  "org_alias": "8a8c3a76-7bd6-45d4-9ca3-c9330f4aba30",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.751Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant ✅ Org 9f996610-f74a-4cd5-9052-cb5405d78c6f summary: processed=12, reminders_sent=0, moved_to_need_attention=0
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:377
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
✅ Org 9f996610-f74a-4cd5-9052-cb5405d78c6f summary: processed=12, reminders_sent=0, moved_to_need_attention=0
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:377",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\u2705 Org 9f996610-f74a-4cd5-9052-cb5405d78c6f summary: processed=12, reminders_sent=0, moved_to_need_attention=0",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.751Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=485f1414-f260-45ca-806c-a1c7843624bc mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=485f1414-f260-45ca-806c-a1c7843624bc mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=2357m < step=2880m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=485f1414-f260-45ca-806c-a1c7843624bc mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=2357m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.751Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 776.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25318578",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027485f1414-f260-45ca-806c-a1c7843624bc\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.747Z",
  "transactionId": 12239736.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318577",
  "pageFaults": 0.0,
  "pageHits": 4.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027485f1414-f260-45ca-806c-a1c7843624bc\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.740Z",
  "transactionId": 12239735.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318576",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027485f1414-f260-45ca-806c-a1c7843624bc\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.736Z",
  "transactionId": 12239735.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318574",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027485f1414-f260-45ca-806c-a1c7843624bc\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.728Z",
  "transactionId": 12239734.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318573",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027485f1414-f260-45ca-806c-a1c7843624bc\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.721Z",
  "transactionId": 12239733.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 485f1414-f260-45ca-806c-a1c7843624bc
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 485f1414-f260-45ca-806c-a1c7843624bc
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 485f1414-f260-45ca-806c-a1c7843624bc",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.716Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 485f1414-f260-45ca-806c-a1c7843624bc
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 485f1414-f260-45ca-806c-a1c7843624bc
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 485f1414-f260-45ca-806c-a1c7843624bc",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.716Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=88f04d6a-d740-47c4-bc29-a959b502598e mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=88f04d6a-d740-47c4-bc29-a959b502598e mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=3334m < step=2880m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=88f04d6a-d740-47c4-bc29-a959b502598e mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=3334m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.716Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318572",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u002788f04d6a-d740-47c4-bc29-a959b502598e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.712Z",
  "transactionId": 12239732.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318571",
  "pageFaults": 0.0,
  "pageHits": 4.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u002788f04d6a-d740-47c4-bc29-a959b502598e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.705Z",
  "transactionId": 12239731.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318570",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u002788f04d6a-d740-47c4-bc29-a959b502598e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.702Z",
  "transactionId": 12239731.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318568",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u002788f04d6a-d740-47c4-bc29-a959b502598e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.695Z",
  "transactionId": 12239730.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318567",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u002788f04d6a-d740-47c4-bc29-a959b502598e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.688Z",
  "transactionId": 12239729.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 88f04d6a-d740-47c4-bc29-a959b502598e
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 88f04d6a-d740-47c4-bc29-a959b502598e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 88f04d6a-d740-47c4-bc29-a959b502598e",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.684Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 88f04d6a-d740-47c4-bc29-a959b502598e
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 88f04d6a-d740-47c4-bc29-a959b502598e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 88f04d6a-d740-47c4-bc29-a959b502598e",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.683Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=8b2449c7-0c34-47c4-b4b9-ae5867fb2d45 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=8b2449c7-0c34-47c4-b4b9-ae5867fb2d45 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=3354m < step=2880m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=8b2449c7-0c34-47c4-b4b9-ae5867fb2d45 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=3354m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.683Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 828.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25318565",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u00278b2449c7-0c34-47c4-b4b9-ae5867fb2d45\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.679Z",
  "transactionId": 12239728.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318564",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u00278b2449c7-0c34-47c4-b4b9-ae5867fb2d45\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.673Z",
  "transactionId": 12239727.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318563",
  "pageFaults": 0.0,
  "pageHits": 13.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u00278b2449c7-0c34-47c4-b4b9-ae5867fb2d45\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.670Z",
  "transactionId": 12239727.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318560",
  "pageFaults": 0.0,
  "pageHits": 17.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u00278b2449c7-0c34-47c4-b4b9-ae5867fb2d45\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.663Z",
  "transactionId": 12239726.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318559",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00278b2449c7-0c34-47c4-b4b9-ae5867fb2d45\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.655Z",
  "transactionId": 12239725.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 8b2449c7-0c34-47c4-b4b9-ae5867fb2d45
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 8b2449c7-0c34-47c4-b4b9-ae5867fb2d45
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 8b2449c7-0c34-47c4-b4b9-ae5867fb2d45",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.651Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 8b2449c7-0c34-47c4-b4b9-ae5867fb2d45
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 8b2449c7-0c34-47c4-b4b9-ae5867fb2d45
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 8b2449c7-0c34-47c4-b4b9-ae5867fb2d45",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.651Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=c6b45988-3afb-4efc-843d-efe22819df8a mode=RECURRING should_send=False escalate=False override=set reason='override pending: eligible in 954m'
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=c6b45988-3afb-4efc-843d-efe22819df8a mode=RECURRING should_send=False escalate=False override=set reason='override pending: eligible in 954m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=c6b45988-3afb-4efc-843d-efe22819df8a mode=RECURRING should_send=False escalate=False override=set reason=\u0027override pending: eligible in 954m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.650Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 828.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25318558",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027c6b45988-3afb-4efc-843d-efe22819df8a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.647Z",
  "transactionId": 12239724.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318556",
  "pageFaults": 0.0,
  "pageHits": 17.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027c6b45988-3afb-4efc-843d-efe22819df8a\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.640Z",
  "transactionId": 12239723.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318554",
  "pageFaults": 0.0,
  "pageHits": 18.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027c6b45988-3afb-4efc-843d-efe22819df8a\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.637Z",
  "transactionId": 12239723.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318552",
  "pageFaults": 0.0,
  "pageHits": 30.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027c6b45988-3afb-4efc-843d-efe22819df8a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.630Z",
  "transactionId": 12239722.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318551",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027c6b45988-3afb-4efc-843d-efe22819df8a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.623Z",
  "transactionId": 12239721.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order c6b45988-3afb-4efc-843d-efe22819df8a
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order c6b45988-3afb-4efc-843d-efe22819df8a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order c6b45988-3afb-4efc-843d-efe22819df8a",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.619Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order c6b45988-3afb-4efc-843d-efe22819df8a
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order c6b45988-3afb-4efc-843d-efe22819df8a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order c6b45988-3afb-4efc-843d-efe22819df8a",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.619Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=d74db13c-677a-4fd3-89f6-02349b34abfb mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=d74db13c-677a-4fd3-89f6-02349b34abfb mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=3432m < step=2880m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=d74db13c-677a-4fd3-89f6-02349b34abfb mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=3432m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.618Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 776.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25318550",
  "pageFaults": 0.0,
  "pageHits": 8.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027d74db13c-677a-4fd3-89f6-02349b34abfb\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.614Z",
  "transactionId": 12239720.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318548",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027d74db13c-677a-4fd3-89f6-02349b34abfb\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.608Z",
  "transactionId": 12239719.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318547",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027d74db13c-677a-4fd3-89f6-02349b34abfb\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.605Z",
  "transactionId": 12239719.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318544",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027d74db13c-677a-4fd3-89f6-02349b34abfb\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.598Z",
  "transactionId": 12239718.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318543",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027d74db13c-677a-4fd3-89f6-02349b34abfb\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.591Z",
  "transactionId": 12239717.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order d74db13c-677a-4fd3-89f6-02349b34abfb
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order d74db13c-677a-4fd3-89f6-02349b34abfb
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order d74db13c-677a-4fd3-89f6-02349b34abfb",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.587Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order d74db13c-677a-4fd3-89f6-02349b34abfb
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order d74db13c-677a-4fd3-89f6-02349b34abfb
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order d74db13c-677a-4fd3-89f6-02349b34abfb",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.586Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=8c5c5785-bead-41a8-8002-3d05b949c13d draft already pending — skipping reminder (no send, no draft) to preserve user intent
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:200
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=8c5c5785-bead-41a8-8002-3d05b949c13d draft already pending — skipping reminder (no send, no draft) to preserve user intent
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:200",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=8c5c5785-bead-41a8-8002-3d05b949c13d draft already pending \u2014 skipping reminder (no send, no draft) to preserve user intent",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.586Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 7656.0,
  "cpu": 0.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "25318541",
  "pageFaults": 0.0,
  "pageHits": 37.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 25, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u00278c5c5785-bead-41a8-8002-3d05b949c13d\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.583Z",
  "transactionId": 12239716.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318540",
  "pageFaults": 0.0,
  "pageHits": 20.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u00278c5c5785-bead-41a8-8002-3d05b949c13d\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.579Z",
  "transactionId": 12239716.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization) RETURN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization)
            RETURN COALESCE(o.reminderApprovalRequired, true) AS approval_required
raw payload (15 fields)
{
  "allocatedBytes": 328.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E5CF3BBC",
  "id": "25318538",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]-\u003e(o:Organization)\n            RETURN COALESCE(o.reminderApprovalRequired, true) AS approval_required\n            ",
  "queryParameters": "{wo: \u00278c5c5785-bead-41a8-8002-3d05b949c13d\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.573Z",
  "transactionId": 12239715.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 7560.0,
  "cpu": 0.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "25318535",
  "pageFaults": 0.0,
  "pageHits": 37.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u00278c5c5785-bead-41a8-8002-3d05b949c13d\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.565Z",
  "transactionId": 12239714.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318534",
  "pageFaults": 0.0,
  "pageHits": 20.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u00278c5c5785-bead-41a8-8002-3d05b949c13d\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.562Z",
  "transactionId": 12239714.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318532",
  "pageFaults": 0.0,
  "pageHits": 28.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u00278c5c5785-bead-41a8-8002-3d05b949c13d\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.555Z",
  "transactionId": 12239713.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318530",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u00278c5c5785-bead-41a8-8002-3d05b949c13d\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.548Z",
  "transactionId": 12239712.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 8c5c5785-bead-41a8-8002-3d05b949c13d
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 8c5c5785-bead-41a8-8002-3d05b949c13d
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 8c5c5785-bead-41a8-8002-3d05b949c13d",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.544Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 8c5c5785-bead-41a8-8002-3d05b949c13d
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 8c5c5785-bead-41a8-8002-3d05b949c13d
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 8c5c5785-bead-41a8-8002-3d05b949c13d",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.544Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=27504fe1-a00e-459f-af03-ba243eb31670 draft already pending — skipping reminder (no send, no draft) to preserve user intent
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:200
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=27504fe1-a00e-459f-af03-ba243eb31670 draft already pending — skipping reminder (no send, no draft) to preserve user intent
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:200",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=27504fe1-a00e-459f-af03-ba243eb31670 draft already pending \u2014 skipping reminder (no send, no draft) to preserve user intent",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.544Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 7656.0,
  "cpu": 1.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "25318527",
  "pageFaults": 0.0,
  "pageHits": 53.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 25, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u002727504fe1-a00e-459f-af03-ba243eb31670\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.540Z",
  "transactionId": 12239711.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318526",
  "pageFaults": 0.0,
  "pageHits": 28.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u002727504fe1-a00e-459f-af03-ba243eb31670\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.536Z",
  "transactionId": 12239711.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC INFO
filter by: severity≥INFO
time2026-07-27 02:13:09 UTC
severityINFO
clustermaster
podrag-agent-57879dd94f-l9nz7
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization) RETURN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]->(o:Organization)
            RETURN COALESCE(o.reminderApprovalRequired, true) AS approval_required
raw payload (15 fields)
{
  "allocatedBytes": 328.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "E5CF3BBC",
  "id": "25318525",
  "pageFaults": 0.0,
  "pageHits": 28.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $wo})-[:WORK_ORDER_TO_ORGANIZATION]-\u003e(o:Organization)\n            RETURN COALESCE(o.reminderApprovalRequired, true) AS approval_required\n            ",
  "queryParameters": "{wo: \u002727504fe1-a00e-459f-af03-ba243eb31670\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.530Z",
  "transactionId": 12239710.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC INFO
filter by: severity≥INFO
time2026-07-27 02:13:09 UTC
severityINFO
clustermaster
podlitellm-f54655c99-cbmvt
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity)
        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses 
        OPTIONAL MATCH (d:Document)
        WHERE d.tildaid IN COALESCE(a.docIds, [])
        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents
        // Compute latest AI_MSG draft id per work order for gating REGENERATE
        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]->(ai:WorkOrderActivity)
        WHERE ai.activity_type = 'AI_MSG'  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck
        WITH w, a, documents,
             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,
             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs
        WITH a, documents,
             CASE
               WHEN size(ai_msgs) = 0 THEN false
               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)
             END AS is_latest_draft
        RETURN a,
               CASE WHEN size(documents) > 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,
               is_latest_draft
        ORDER BY a.createdat DESC
        SKIP $skip
        LIMIT $limit
raw payload (15 fields)
{
  "allocatedBytes": 7560.0,
  "cpu": 0.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "2A13D7A9",
  "id": "25318521",
  "pageFaults": 0.0,
  "pageHits": 53.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u002727504fe1-a00e-459f-af03-ba243eb31670\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.522Z",
  "transactionId": 12239708.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318520",
  "pageFaults": 0.0,
  "pageHits": 28.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u002727504fe1-a00e-459f-af03-ba243eb31670\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.519Z",
  "transactionId": 12239708.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318519",
  "pageFaults": 0.0,
  "pageHits": 34.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u002727504fe1-a00e-459f-af03-ba243eb31670\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.513Z",
  "transactionId": 12239707.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318518",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u002727504fe1-a00e-459f-af03-ba243eb31670\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.505Z",
  "transactionId": 12239706.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 27504fe1-a00e-459f-af03-ba243eb31670
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 27504fe1-a00e-459f-af03-ba243eb31670
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 27504fe1-a00e-459f-af03-ba243eb31670",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.500Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 27504fe1-a00e-459f-af03-ba243eb31670
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 27504fe1-a00e-459f-af03-ba243eb31670
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 27504fe1-a00e-459f-af03-ba243eb31670",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.500Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=f42328f2-c28d-44dd-9ba7-0b43ac19af6d mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=f42328f2-c28d-44dd-9ba7-0b43ac19af6d mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=5463m < step=2880m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=f42328f2-c28d-44dd-9ba7-0b43ac19af6d mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=5463m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.500Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 828.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25318515",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027f42328f2-c28d-44dd-9ba7-0b43ac19af6d\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.496Z",
  "transactionId": 12239705.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318513",
  "pageFaults": 0.0,
  "pageHits": 23.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027f42328f2-c28d-44dd-9ba7-0b43ac19af6d\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.489Z",
  "transactionId": 12239704.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318512",
  "pageFaults": 0.0,
  "pageHits": 24.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027f42328f2-c28d-44dd-9ba7-0b43ac19af6d\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.486Z",
  "transactionId": 12239704.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318510",
  "pageFaults": 0.0,
  "pageHits": 44.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027f42328f2-c28d-44dd-9ba7-0b43ac19af6d\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.480Z",
  "transactionId": 12239703.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318509",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027f42328f2-c28d-44dd-9ba7-0b43ac19af6d\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.473Z",
  "transactionId": 12239702.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order f42328f2-c28d-44dd-9ba7-0b43ac19af6d
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order f42328f2-c28d-44dd-9ba7-0b43ac19af6d
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order f42328f2-c28d-44dd-9ba7-0b43ac19af6d",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.469Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order f42328f2-c28d-44dd-9ba7-0b43ac19af6d
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order f42328f2-c28d-44dd-9ba7-0b43ac19af6d
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order f42328f2-c28d-44dd-9ba7-0b43ac19af6d",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.468Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=b26f2eda-ea91-4a98-b778-0a7db67a2b6a mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=b26f2eda-ea91-4a98-b778-0a7db67a2b6a mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=5228m < step=2880m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=b26f2eda-ea91-4a98-b778-0a7db67a2b6a mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=5228m \u003c step=2880m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.468Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 776.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25318508",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027b26f2eda-ea91-4a98-b778-0a7db67a2b6a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.465Z",
  "transactionId": 12239701.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318507",
  "pageFaults": 0.0,
  "pageHits": 6.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027b26f2eda-ea91-4a98-b778-0a7db67a2b6a\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.458Z",
  "transactionId": 12239700.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318506",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027b26f2eda-ea91-4a98-b778-0a7db67a2b6a\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.455Z",
  "transactionId": 12239700.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318505",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027b26f2eda-ea91-4a98-b778-0a7db67a2b6a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.448Z",
  "transactionId": 12239699.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318503",
  "pageFaults": 0.0,
  "pageHits": 8.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027b26f2eda-ea91-4a98-b778-0a7db67a2b6a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.441Z",
  "transactionId": 12239698.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order b26f2eda-ea91-4a98-b778-0a7db67a2b6a
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order b26f2eda-ea91-4a98-b778-0a7db67a2b6a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order b26f2eda-ea91-4a98-b778-0a7db67a2b6a",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.437Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order b26f2eda-ea91-4a98-b778-0a7db67a2b6a
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order b26f2eda-ea91-4a98-b778-0a7db67a2b6a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order b26f2eda-ea91-4a98-b778-0a7db67a2b6a",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.437Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=a90625ed-5354-473f-8665-840a4b8ff106 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=a90625ed-5354-473f-8665-840a4b8ff106 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=9595m < step=17280m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=a90625ed-5354-473f-8665-840a4b8ff106 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=9595m \u003c step=17280m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.436Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 828.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25318502",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027a90625ed-5354-473f-8665-840a4b8ff106\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.433Z",
  "transactionId": 12239697.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318500",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027a90625ed-5354-473f-8665-840a4b8ff106\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.426Z",
  "transactionId": 12239696.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318499",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027a90625ed-5354-473f-8665-840a4b8ff106\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.423Z",
  "transactionId": 12239696.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318498",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027a90625ed-5354-473f-8665-840a4b8ff106\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.416Z",
  "transactionId": 12239695.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318495",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027a90625ed-5354-473f-8665-840a4b8ff106\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.409Z",
  "transactionId": 12239694.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order a90625ed-5354-473f-8665-840a4b8ff106
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order a90625ed-5354-473f-8665-840a4b8ff106
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order a90625ed-5354-473f-8665-840a4b8ff106",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.404Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order a90625ed-5354-473f-8665-840a4b8ff106
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order a90625ed-5354-473f-8665-840a4b8ff106
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order a90625ed-5354-473f-8665-840a4b8ff106",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.404Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=e358167a-298a-4e2e-bd17-401ab034115e mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=e358167a-298a-4e2e-bd17-401ab034115e mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=9628m < step=17280m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=e358167a-298a-4e2e-bd17-401ab034115e mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=9628m \u003c step=17280m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.404Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 828.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25318494",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027e358167a-298a-4e2e-bd17-401ab034115e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.401Z",
  "transactionId": 12239693.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318492",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027e358167a-298a-4e2e-bd17-401ab034115e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.394Z",
  "transactionId": 12239692.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318490",
  "pageFaults": 0.0,
  "pageHits": 8.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027e358167a-298a-4e2e-bd17-401ab034115e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.390Z",
  "transactionId": 12239692.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318488",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027e358167a-298a-4e2e-bd17-401ab034115e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.383Z",
  "transactionId": 12239691.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318485",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027e358167a-298a-4e2e-bd17-401ab034115e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.376Z",
  "transactionId": 12239690.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order e358167a-298a-4e2e-bd17-401ab034115e
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order e358167a-298a-4e2e-bd17-401ab034115e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order e358167a-298a-4e2e-bd17-401ab034115e",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.371Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order e358167a-298a-4e2e-bd17-401ab034115e
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order e358167a-298a-4e2e-bd17-401ab034115e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order e358167a-298a-4e2e-bd17-401ab034115e",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.371Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=513b7315-882c-48fb-a126-ffc4e06834ec mode=RECURRING should_send=False escalate=False override=set reason='override pending: eligible in 876m'
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=513b7315-882c-48fb-a126-ffc4e06834ec mode=RECURRING should_send=False escalate=False override=set reason='override pending: eligible in 876m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=513b7315-882c-48fb-a126-ffc4e06834ec mode=RECURRING should_send=False escalate=False override=set reason=\u0027override pending: eligible in 876m\u0027",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.371Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 776.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25318482",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027513b7315-882c-48fb-a126-ffc4e06834ec\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.367Z",
  "transactionId": 12239689.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318478",
  "pageFaults": 0.0,
  "pageHits": 25.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027513b7315-882c-48fb-a126-ffc4e06834ec\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.361Z",
  "transactionId": 12239688.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318476",
  "pageFaults": 0.0,
  "pageHits": 26.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027513b7315-882c-48fb-a126-ffc4e06834ec\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.357Z",
  "transactionId": 12239688.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
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": "25318473",
  "pageFaults": 0.0,
  "pageHits": 38.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027513b7315-882c-48fb-a126-ffc4e06834ec\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.350Z",
  "transactionId": 12239687.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podserver-2-dev-0
query
MATCH (n:WorkOrder {tildaid: $node_id}) 
RETURN n
raw payload (15 fields)
{
  "allocatedBytes": 312.0,
  "cpu": 0.0,
  "elapsedTimeMs": 1.0,
  "executionPlanCacheKeyHash": "E0146DD7",
  "id": "25318470",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027513b7315-882c-48fb-a126-ffc4e06834ec\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.341Z",
  "transactionId": 12239686.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 513b7315-882c-48fb-a126-ffc4e06834ec
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 513b7315-882c-48fb-a126-ffc4e06834ec
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 513b7315-882c-48fb-a126-ffc4e06834ec",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.336Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 513b7315-882c-48fb-a126-ffc4e06834ec
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 513b7315-882c-48fb-a126-ffc4e06834ec
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 513b7315-882c-48fb-a126-ffc4e06834ec",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.336Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant 🏢 Processing organization 9f996610-f74a-4cd5-9052-cb5405d78c6f (12 work orders)
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:362
clustermaster
org9f996610-f74a-4cd5-9052-cb5405d78c6f
versionunknown
trace536153990a583f7308609c82bda9e27b
span032998816c2fbe45
podvirtual-assistant-65b975d66b-l8wpw
message
🏢 Processing organization 9f996610-f74a-4cd5-9052-cb5405d78c6f (12 work orders)
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:362",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\ud83c\udfe2 Processing organization 9f996610-f74a-4cd5-9052-cb5405d78c6f (12 work orders)",
  "org_alias": "9f996610-f74a-4cd5-9052-cb5405d78c6f",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.336Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant ✅ Org 2d88eda5-bcfa-4565-af90-db111ea04aa3 summary: processed=1, reminders_sent=0, moved_to_need_attention=0
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:377
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
versionunknown
tracec1f27ab518127b1bc6f59542e81b0f16
span9d37ac6ea2ce5aad
podvirtual-assistant-65b975d66b-l8wpw
message
✅ Org 2d88eda5-bcfa-4565-af90-db111ea04aa3 summary: processed=1, reminders_sent=0, moved_to_need_attention=0
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:377",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\u2705 Org 2d88eda5-bcfa-4565-af90-db111ea04aa3 summary: processed=1, reminders_sent=0, moved_to_need_attention=0",
  "org_alias": "2d88eda5-bcfa-4565-af90-db111ea04aa3",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.335Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=442a7419-9334-4479-aa7e-c607afaee462 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
versionunknown
tracec1f27ab518127b1bc6f59542e81b0f16
span9d37ac6ea2ce5aad
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=442a7419-9334-4479-aa7e-c607afaee462 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=1047m < step=1440m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=442a7419-9334-4479-aa7e-c607afaee462 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=1047m \u003c step=1440m\u0027",
  "org_alias": "2d88eda5-bcfa-4565-af90-db111ea04aa3",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.335Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
tracec1f27ab518127b1bc6f59542e81b0f16
span9d37ac6ea2ce5aad
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 776.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25318469",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027442a7419-9334-4479-aa7e-c607afaee462\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.332Z",
  "transactionId": 12239685.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
tracec1f27ab518127b1bc6f59542e81b0f16
span9d37ac6ea2ce5aad
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": "25318467",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027442a7419-9334-4479-aa7e-c607afaee462\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.325Z",
  "transactionId": 12239684.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
tracec1f27ab518127b1bc6f59542e81b0f16
span9d37ac6ea2ce5aad
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": "25318466",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027442a7419-9334-4479-aa7e-c607afaee462\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.322Z",
  "transactionId": 12239684.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
tracec1f27ab518127b1bc6f59542e81b0f16
span9d37ac6ea2ce5aad
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": "25318464",
  "pageFaults": 0.0,
  "pageHits": 13.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027442a7419-9334-4479-aa7e-c607afaee462\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.315Z",
  "transactionId": 12239683.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
tracec1f27ab518127b1bc6f59542e81b0f16
span9d37ac6ea2ce5aad
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": "25318461",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027442a7419-9334-4479-aa7e-c607afaee462\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.308Z",
  "transactionId": 12239682.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 442a7419-9334-4479-aa7e-c607afaee462
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
versionunknown
tracec1f27ab518127b1bc6f59542e81b0f16
span9d37ac6ea2ce5aad
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 442a7419-9334-4479-aa7e-c607afaee462
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 442a7419-9334-4479-aa7e-c607afaee462",
  "org_alias": "2d88eda5-bcfa-4565-af90-db111ea04aa3",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.303Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 442a7419-9334-4479-aa7e-c607afaee462
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
versionunknown
tracec1f27ab518127b1bc6f59542e81b0f16
span9d37ac6ea2ce5aad
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 442a7419-9334-4479-aa7e-c607afaee462
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 442a7419-9334-4479-aa7e-c607afaee462",
  "org_alias": "2d88eda5-bcfa-4565-af90-db111ea04aa3",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.302Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant 🏢 Processing organization 2d88eda5-bcfa-4565-af90-db111ea04aa3 (1 work orders)
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:362
clustermaster
org2d88eda5-bcfa-4565-af90-db111ea04aa3
versionunknown
tracec1f27ab518127b1bc6f59542e81b0f16
span9d37ac6ea2ce5aad
podvirtual-assistant-65b975d66b-l8wpw
message
🏢 Processing organization 2d88eda5-bcfa-4565-af90-db111ea04aa3 (1 work orders)
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:362",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\ud83c\udfe2 Processing organization 2d88eda5-bcfa-4565-af90-db111ea04aa3 (1 work orders)",
  "org_alias": "2d88eda5-bcfa-4565-af90-db111ea04aa3",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.302Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant ✅ Org 5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf summary: processed=11, reminders_sent=0, moved_to_need_attention=0
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:377
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
podvirtual-assistant-65b975d66b-l8wpw
message
✅ Org 5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf summary: processed=11, reminders_sent=0, moved_to_need_attention=0
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:377",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "\u2705 Org 5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf summary: processed=11, reminders_sent=0, moved_to_need_attention=0",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.302Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=437c18c3-6691-461a-b3ce-742e84b88f69 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=437c18c3-6691-461a-b3ce-742e84b88f69 mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=926m < step=1440m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=437c18c3-6691-461a-b3ce-742e84b88f69 mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=926m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.302Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 880.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25318460",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027437c18c3-6691-461a-b3ce-742e84b88f69\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.298Z",
  "transactionId": 12239681.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
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": "25318457",
  "pageFaults": 0.0,
  "pageHits": 9.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027437c18c3-6691-461a-b3ce-742e84b88f69\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.291Z",
  "transactionId": 12239680.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
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": "25318456",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027437c18c3-6691-461a-b3ce-742e84b88f69\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.288Z",
  "transactionId": 12239680.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
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": "25318454",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027437c18c3-6691-461a-b3ce-742e84b88f69\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.282Z",
  "transactionId": 12239679.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
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": "25318453",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027437c18c3-6691-461a-b3ce-742e84b88f69\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.275Z",
  "transactionId": 12239678.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order 437c18c3-6691-461a-b3ce-742e84b88f69
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order 437c18c3-6691-461a-b3ce-742e84b88f69
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order 437c18c3-6691-461a-b3ce-742e84b88f69",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.271Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order 437c18c3-6691-461a-b3ce-742e84b88f69
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order 437c18c3-6691-461a-b3ce-742e84b88f69
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order 437c18c3-6691-461a-b3ce-742e84b88f69",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.271Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=da057921-1a96-43f2-af14-37551103141e mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=da057921-1a96-43f2-af14-37551103141e mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=395m < step=1440m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=da057921-1a96-43f2-af14-37551103141e mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=395m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.270Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 880.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25318451",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027da057921-1a96-43f2-af14-37551103141e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.267Z",
  "transactionId": 12239677.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
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": "25318449",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027da057921-1a96-43f2-af14-37551103141e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.260Z",
  "transactionId": 12239676.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
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": "25318448",
  "pageFaults": 0.0,
  "pageHits": 12.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027da057921-1a96-43f2-af14-37551103141e\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.257Z",
  "transactionId": 12239676.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
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": "25318447",
  "pageFaults": 0.0,
  "pageHits": 14.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027da057921-1a96-43f2-af14-37551103141e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.250Z",
  "transactionId": 12239675.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
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": "25318445",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027da057921-1a96-43f2-af14-37551103141e\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.243Z",
  "transactionId": 12239674.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order da057921-1a96-43f2-af14-37551103141e
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order da057921-1a96-43f2-af14-37551103141e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order da057921-1a96-43f2-af14-37551103141e",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.239Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order da057921-1a96-43f2-af14-37551103141e
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order da057921-1a96-43f2-af14-37551103141e
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order da057921-1a96-43f2-af14-37551103141e",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.239Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [reminder] wo=b75c9de7-83f0-485d-8fc0-195ffd82307a mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due:...
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:244
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
podvirtual-assistant-65b975d66b-l8wpw
message
[reminder] wo=b75c9de7-83f0-485d-8fc0-195ffd82307a mode=RECURRING should_send=False escalate=False override=none reason='RECURRING not due: now-base=447m < step=1440m'
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:244",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[reminder] wo=b75c9de7-83f0-485d-8fc0-195ffd82307a mode=RECURRING should_send=False escalate=False override=none reason=\u0027RECURRING not due: now-base=447m \u003c step=1440m\u0027",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.239Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact) WHERE f.delpending = false ...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
podserver-2-dev-0
query
MATCH (w:WorkOrder {tildaid: $work_order_id})<-[:FACT_TO_WORK_ORDER]-(f:Fact)
            WHERE f.delpending = false
            RETURN f
            ORDER BY f.createdat ASC
raw payload (15 fields)
{
  "allocatedBytes": 828.0,
  "cpu": 0.0,
  "elapsedTimeMs": 0.0,
  "executionPlanCacheKeyHash": "23A43F51",
  "id": "25318444",
  "pageFaults": 0.0,
  "pageHits": 7.0,
  "planning": 0.0,
  "query": "\n            MATCH (w:WorkOrder {tildaid: $work_order_id})\u003c-[:FACT_TO_WORK_ORDER]-(f:Fact)\n            WHERE f.delpending = false\n            RETURN f\n            ORDER BY f.createdat ASC\n            ",
  "queryParameters": "{work_order_id: \u0027b75c9de7-83f0-485d-8fc0-195ffd82307a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.235Z",
  "transactionId": 12239673.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
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": "25318442",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        OPTIONAL MATCH (d:Document)\n        WHERE d.tildaid IN COALESCE(a.docIds, [])\n        WITH w, a, COLLECT(DISTINCT {tildaid: d.tildaid, fileName: d.fileName, contentType: d.contentType}) as documents\n        // Compute latest AI_MSG draft id per work order for gating REGENERATE\n        OPTIONAL MATCH (w)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(ai:WorkOrderActivity)\n        WHERE ai.activity_type = \u0027AI_MSG\u0027  // any status: a newer SENT/QUEUED must supersede an older FindingsChanged draft, else REGENERATE stays stuck\n        WITH w, a, documents,\n             max(coalesce(ai.updatedat, ai.createdat)) AS latest_any_ts,\n             collect({id: ai.tildaid, ts: coalesce(ai.updatedat, ai.createdat), status: ai.status, ignoreType: ai.ignoreType}) AS ai_msgs\n        WITH a, documents,\n             CASE\n               WHEN size(ai_msgs) = 0 THEN false\n               ELSE any(x IN ai_msgs WHERE x.id = a.tildaid AND x.ts = latest_any_ts)\n             END AS is_latest_draft\n        RETURN a,\n               CASE WHEN size(documents) \u003e 0 AND documents[0].tildaid IS NOT NULL THEN documents ELSE [] END AS documents,\n               is_latest_draft\n        ORDER BY a.createdat DESC\n        SKIP $skip\n        LIMIT $limit\n        ",
  "queryParameters": "{limit: 1, statuses: [\u0027DRAFT\u0027], skip: 0, work_order_id: \u0027b75c9de7-83f0-485d-8fc0-195ffd82307a\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.229Z",
  "transactionId": 12239672.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity) WHERE 1=1 AND a.activity_type IN...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
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": "25318440",
  "pageFaults": 0.0,
  "pageHits": 11.0,
  "planning": 0.0,
  "query": "\n        MATCH (w:WorkOrder {tildaid: $work_order_id})-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity)\n        WHERE 1=1 AND a.activity_type IN $activity_types AND a.status IN $statuses \n        RETURN count(a) as total\n        ",
  "queryParameters": "{statuses: [\u0027DRAFT\u0027], work_order_id: \u0027b75c9de7-83f0-485d-8fc0-195ffd82307a\u0027, activity_types: [\u0027AI_MSG\u0027]}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.225Z",
  "transactionId": 12239672.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (wo:WorkOrder {tildaid: $wo_id}) OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]->(a:WorkOrderActivity {activity_type:...
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
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": "25318439",
  "pageFaults": 0.0,
  "pageHits": 13.0,
  "planning": 0.0,
  "query": "\n        MATCH (wo:WorkOrder {tildaid: $wo_id})\n        OPTIONAL MATCH (wo)-[:WORK_ORDER_TO_ACTIVITY]-\u003e(a:WorkOrderActivity {activity_type: \u0027U_REPLY\u0027})\n        RETURN wo.createdat AS created_at, max(a.timestamp) AS latest_reply_ts\n        ",
  "queryParameters": "{wo_id: \u0027b75c9de7-83f0-485d-8fc0-195ffd82307a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.219Z",
  "transactionId": 12239671.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC neo4j virtual-assistant MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n
time2026-07-27 02:13:09 UTC
severityINFO
servicevirtual-assistant
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
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": "25318438",
  "pageFaults": 0.0,
  "pageHits": 10.0,
  "planning": 0.0,
  "query": "MATCH (n:WorkOrder {tildaid: $node_id}) RETURN n",
  "queryParameters": "{node_id: \u0027b75c9de7-83f0-485d-8fc0-195ffd82307a\u0027}",
  "runtime": "pipelined",
  "source": "bolt-session\tbolt\tneo4j-python/5.28.0 Python/3.12.13-final-0 (linux)\t\tclient/10.129.4.156:51512\tserver/10.173.0.8:7687\u003e",
  "timestamp": "2026-07-27T02:13:09.212Z",
  "transactionId": 12239670.0,
  "waiting": 0.0
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] Starting processing for work order b75c9de7-83f0-485d-8fc0-195ffd82307a
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:135
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] Starting processing for work order b75c9de7-83f0-485d-8fc0-195ffd82307a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:135",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] Starting processing for work order b75c9de7-83f0-485d-8fc0-195ffd82307a",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.208Z",
  "version": "unknown"
}
4m ago2026-07-27 02:13:09 UTC DEBUG virtual-assistant [daily_cron] About to process work order b75c9de7-83f0-485d-8fc0-195ffd82307a
time2026-07-27 02:13:09 UTC
severityDEBUG
servicevirtual-assistant
sourcejobs/daily_work_order_cron.py:368
clustermaster
org5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf
versionunknown
tracef04f06d52af1a03ac5d789faf28d0344
span948e9b1464d90641
podvirtual-assistant-65b975d66b-l8wpw
message
[daily_cron] About to process work order b75c9de7-83f0-485d-8fc0-195ffd82307a
raw payload (8 fields)
{
  "caller": "jobs/daily_work_order_cron.py:368",
  "cluster": "master",
  "environment": "DEVELOPMENT",
  "message": "[daily_cron] About to process work order b75c9de7-83f0-485d-8fc0-195ffd82307a",
  "org_alias": "5026d3b4-4bc1-45e9-a366-b1d4fe1aabcf",
  "service": "virtual-assistant",
  "timestamp": "2026-07-27T02:13:09.208Z",
  "version": "unknown"
}

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