|
69588
|
1604
|
3
|
2026-04-22T08:29:00.434599+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776846540434_m1.jpg...
|
Firefox
|
Meet - CRM issues — Work
|
True
|
meet.google.com/pei-cvuh-fxt?authuser=lukas.kovali meet.google.com/pei-cvuh-fxt?authuser=lukas.kovalik%40jiminny.com...
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
CRM issues - Apr 22 - Chat
CRM issues - Apr 22 - Chat
[JY-20500] Batch initial sync for Salesforce - Jira
[JY-20500] Batch initial sync for Salesforce - Jira
Feed — jiminny — Sentry
Feed — jiminny — Sentry
Jiminny
Jiminny
Pipelines - /app
Pipelines - /app
Formalize
Formalize
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
Search results: calendar | Jiminny Help Center
Search results: calendar | Jiminny Help Center
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Edit - Engineering - Confluence
Edit - Engineering - Confluence
[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira
[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
CloudWatch | us-east-2
CloudWatch | us-east-2
Usage | Windsurf
Usage | Windsurf
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
Workers | Datadog
Workers | Datadog
Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app
Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
Meet - CRM issues
Mute tab
Meet - CRM issues
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Nikolay Nikolov (Presenting, annotating)
Nikolay Nikolov (Presenting, annotating)
People
6
Take notes with Gemini
Take notes with Gemini
Gemini
Gemini
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Unpin Nikolay Nikolov's presentation from your main screen
You can't unmute someone else's presentation
More options for Nikolay Nikolov
Zoom in
Open in new window
Enter Full Screen
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Pin Vasil Vasilev to your main screen
You can't unmute someone else
More options for Vasil Vasilev
Vasil Vasilev
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Pin Nikolay Nikolov to your main screen
Mute Nikolay Nikolov's microphone
More options for Nikolay Nikolov
Nikolay Nikolov
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Pin Stefka Stoyanova to your main screen
You can't unmute someone else
More options for Stefka Stoyanova
Stefka Stoyanova
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Pin Veselin Kulov to your main screen
Mute Veselin Kulov's microphone
More options for Veselin Kulov
Veselin Kulov
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
You’re continuously framed
Backgrounds and effects
More options for Lukas Kovalik
Lukas Kovalik
Others might see more of your background. Click to view your full video.
11:29
AM
CRM issues
CRM issues
Audio settings
Turn off microphone
Video settings
Turn off camera
Nikolay Nikolov is presenting
Send a reaction
Turn on captions
Raise hand (ctrl + ⌘ + h)
More options
Leave call
Meeting details
Chat with everyone
Meeting tools
Your microphone is on....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CRM issues - Apr 22 - Chat","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CRM issues - Apr 22 - Chat","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20500] Batch initial sync for Salesforce - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20500] Batch initial sync for Salesforce - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Feed — jiminny — Sentry","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Feed — jiminny — Sentry","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pipelines - /app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - /app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Formalize","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Formalize","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Search results: calendar | Jiminny Help Center","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Search results: calendar | Jiminny Help Center","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Edit - Engineering - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Edit - Engineering - Confluence","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Usage | Windsurf","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Usage | Windsurf","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Meet - CRM issues","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXButton","text":"Mute tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Meet - CRM issues","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.028819444,"top":0.0,"width":0.15486111,"height":0.035555556},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.028819444,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.051736113,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.075,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.09826389,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.121527776,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Nikolay Nikolov (Presenting, annotating)","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Nikolay Nikolov (Presenting, annotating)","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"People","depth":15,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"6","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Take notes with Gemini","depth":14,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Take notes with Gemini","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Gemini","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Gemini","depth":21,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Pop out this video More screens are more fun. Play this video while you do other things.","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pop out this video","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"More screens are more fun. Play this video while you do other things.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Unpin Nikolay Nikolov's presentation from your main screen","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"You can't unmute someone else's presentation","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"More options for Nikolay Nikolov","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Zoom in","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open in new window","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Enter Full Screen","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Pop out this video More screens are more fun. Play this video while you do other things.","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pop out this video","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"More screens are more fun. Play this video while you do other things.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Pin Vasil Vasilev to your main screen","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"You can't unmute someone else","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"More options for Vasil Vasilev","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Vasil Vasilev","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Pop out this video More screens are more fun. Play this video while you do other things.","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pop out this video","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"More screens are more fun. Play this video while you do other things.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Pin Nikolay Nikolov to your main screen","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Mute Nikolay Nikolov's microphone","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"More options for Nikolay Nikolov","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Pop out this video More screens are more fun. Play this video while you do other things.","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pop out this video","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"More screens are more fun. Play this video while you do other things.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Pin Stefka Stoyanova to your main screen","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"You can't unmute someone else","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"More options for Stefka Stoyanova","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Pop out this video More screens are more fun. Play this video while you do other things.","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pop out this video","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"More screens are more fun. Play this video while you do other things.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Pin Veselin Kulov to your main screen","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Mute Veselin Kulov's microphone","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"More options for Veselin Kulov","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Veselin Kulov","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Pop out this video More screens are more fun. Play this video while you do other things.","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pop out this video","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"More screens are more fun. Play this video while you do other things.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"You’re continuously framed","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Backgrounds and effects","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"More options for Lukas Kovalik","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Lukas Kovalik","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Others might see more of your background. Click to view your full video.","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"11:29","depth":12,"bounds":{"left":0.20590279,"top":0.0,"width":0.025347222,"height":0.022777777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"AM","depth":12,"bounds":{"left":0.23472223,"top":0.0,"width":0.017708333,"height":0.022777777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"CRM issues","depth":12,"bounds":{"left":0.26979166,"top":0.0,"width":0.059722222,"height":0.08888889},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"CRM issues","depth":15,"bounds":{"left":0.26979166,"top":0.0,"width":0.059722222,"height":0.022777777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Audio settings","depth":13,"bounds":{"left":0.6611111,"top":0.0,"width":0.06111111,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Turn off microphone","depth":13,"bounds":{"left":0.6888889,"top":0.0,"width":0.033333335,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":true,"is_selected":false},{"role":"AXButton","text":"Video settings","depth":13,"bounds":{"left":0.7277778,"top":0.0,"width":0.06111111,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Turn off camera","depth":13,"bounds":{"left":0.75555557,"top":0.0,"width":0.033333335,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Nikolay Nikolov is presenting","depth":12,"bounds":{"left":0.79444444,"top":0.0,"width":0.03888889,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Send a reaction","depth":12,"bounds":{"left":0.8388889,"top":0.0,"width":0.03888889,"height":0.053333335},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Turn on captions","depth":13,"bounds":{"left":0.8833333,"top":0.0,"width":0.03888889,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Raise hand (ctrl + ⌘ + h)","depth":12,"bounds":{"left":0.92777777,"top":0.0,"width":0.03888889,"height":0.053333335},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"More options","depth":12,"bounds":{"left":0.9722222,"top":0.0,"width":0.025,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Leave call","depth":12,"bounds":{"left":1.0,"top":0.0,"width":-0.0027778149,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Meeting details","depth":12,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Chat with everyone","depth":12,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Meeting tools","depth":12,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Your microphone is on.","depth":8,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-8833353004870319181
|
-7570290360134207216
|
click
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
CRM issues - Apr 22 - Chat
CRM issues - Apr 22 - Chat
[JY-20500] Batch initial sync for Salesforce - Jira
[JY-20500] Batch initial sync for Salesforce - Jira
Feed — jiminny — Sentry
Feed — jiminny — Sentry
Jiminny
Jiminny
Pipelines - /app
Pipelines - /app
Formalize
Formalize
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
Search results: calendar | Jiminny Help Center
Search results: calendar | Jiminny Help Center
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Edit - Engineering - Confluence
Edit - Engineering - Confluence
[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira
[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
CloudWatch | us-east-2
CloudWatch | us-east-2
Usage | Windsurf
Usage | Windsurf
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
Workers | Datadog
Workers | Datadog
Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app
Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
Meet - CRM issues
Mute tab
Meet - CRM issues
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Nikolay Nikolov (Presenting, annotating)
Nikolay Nikolov (Presenting, annotating)
People
6
Take notes with Gemini
Take notes with Gemini
Gemini
Gemini
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Unpin Nikolay Nikolov's presentation from your main screen
You can't unmute someone else's presentation
More options for Nikolay Nikolov
Zoom in
Open in new window
Enter Full Screen
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Pin Vasil Vasilev to your main screen
You can't unmute someone else
More options for Vasil Vasilev
Vasil Vasilev
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Pin Nikolay Nikolov to your main screen
Mute Nikolay Nikolov's microphone
More options for Nikolay Nikolov
Nikolay Nikolov
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Pin Stefka Stoyanova to your main screen
You can't unmute someone else
More options for Stefka Stoyanova
Stefka Stoyanova
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Pin Veselin Kulov to your main screen
Mute Veselin Kulov's microphone
More options for Veselin Kulov
Veselin Kulov
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
You’re continuously framed
Backgrounds and effects
More options for Lukas Kovalik
Lukas Kovalik
Others might see more of your background. Click to view your full video.
11:29
AM
CRM issues
CRM issues
Audio settings
Turn off microphone
Video settings
Turn off camera
Nikolay Nikolov is presenting
Send a reaction
Turn on captions
Raise hand (ctrl + ⌘ + h)
More options
Leave call
Meeting details
Chat with everyone
Meeting tools
Your microphone is on....
|
69586
|
|
15589
|
351
|
11
|
2026-04-14T14:54:30.243064+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776178470243_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
CaudeFileEditViewWindowHelpAbout ClaudeSettings... CaudeFileEditViewWindowHelpAbout ClaudeSettings...Restart to update to Claude 1.22/8.0servicesHide ClaudeHide OthersShow AllQuit hLd6 hl88 ArtifactsStarredBulgarian citizenship application..Dawarich location tracking projecthecentsClaude API 500 internal server e.Screenpipe query capabilities a...eGPU compatibility with Mac mi...Understanding OpenRouter API...Screenpipe 14-day retention exp...Reddit homepage feed overviewvocke conaner norvisiole lnc..DIA browser RAM configurationScreenpipe company backgroundDSK Bank Bulgaria secure invest.Building a comprehensive perso...Importing Google Timeline data t...Chromecast remote volume butt...Screenpipe free version guideSelf-hosted LLM alternatives to ...Screenpipe database query setupRunning screenpipe for freeMac Studio network switch setupClaude extension in Vivaldi brow...General information requestKed dors on neck causesChange approval, 40• Retro - Platform • 21 m leftA100% GTue 14 Apr 17:54:29ude AP 500 internal server errorChatLOWOrkCodeAppFramesOCR MBProblem(empty)620617 MBScreenpipe Dashboard mainlyBoosteroid35934 MBGaming noiseSlack/PhpStorm/Firefox-1000-3 МВActual useful dataSo the OCR text itself is only ~25 MB total — that's tiny. The 347 MB (ocr_text) table mustinclude other columns (file paths, embeddings, etc.) not just the text string.The real culprit is frames (358 MB) and elements (146 MB) - the accessibility tree data andframe metadata, not the OCR text content.Check what's actually in those rows:oasn# What columns does frames table have and sample sizesqlite3 ~/.screenpipe/db.sqlite "SELECT AVG(LENGTH (name) ), AVG(LENGTH(file_path) )FROM frames LIMIT 1;"bash# Elements table - what's big in theresqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(elements);"oasn# Elements per appsqlite3 ~/.screenpipe/db.sqlite "SELECT f.app_name, COUNT(*) as elem_count,SUM(LENGTH(e.text))/1024/1024 as text_mbFROM elements eJOIN frames f ON e.frame_id = f.idGROUP BY f.app_nameORDER BY elem_count DESCThe elements table at 146 MB is suspicious — that's the accessibility tree walker storingevery button, label and text field from every frame. With 6000+ dashboard frames eachcontaining hundreds of UI elements, that could explain a lot.Updated to 1.2278.0RelaunchLukas KovalikPro nianReply...sonnet 46 vClaudtro mrand can make mistakes. rlease double-cneck responses....
|
NULL
|
-8833125229940475560
|
NULL
|
visual_change
|
ocr
|
NULL
|
CaudeFileEditViewWindowHelpAbout ClaudeSettings... CaudeFileEditViewWindowHelpAbout ClaudeSettings...Restart to update to Claude 1.22/8.0servicesHide ClaudeHide OthersShow AllQuit hLd6 hl88 ArtifactsStarredBulgarian citizenship application..Dawarich location tracking projecthecentsClaude API 500 internal server e.Screenpipe query capabilities a...eGPU compatibility with Mac mi...Understanding OpenRouter API...Screenpipe 14-day retention exp...Reddit homepage feed overviewvocke conaner norvisiole lnc..DIA browser RAM configurationScreenpipe company backgroundDSK Bank Bulgaria secure invest.Building a comprehensive perso...Importing Google Timeline data t...Chromecast remote volume butt...Screenpipe free version guideSelf-hosted LLM alternatives to ...Screenpipe database query setupRunning screenpipe for freeMac Studio network switch setupClaude extension in Vivaldi brow...General information requestKed dors on neck causesChange approval, 40• Retro - Platform • 21 m leftA100% GTue 14 Apr 17:54:29ude AP 500 internal server errorChatLOWOrkCodeAppFramesOCR MBProblem(empty)620617 MBScreenpipe Dashboard mainlyBoosteroid35934 MBGaming noiseSlack/PhpStorm/Firefox-1000-3 МВActual useful dataSo the OCR text itself is only ~25 MB total — that's tiny. The 347 MB (ocr_text) table mustinclude other columns (file paths, embeddings, etc.) not just the text string.The real culprit is frames (358 MB) and elements (146 MB) - the accessibility tree data andframe metadata, not the OCR text content.Check what's actually in those rows:oasn# What columns does frames table have and sample sizesqlite3 ~/.screenpipe/db.sqlite "SELECT AVG(LENGTH (name) ), AVG(LENGTH(file_path) )FROM frames LIMIT 1;"bash# Elements table - what's big in theresqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(elements);"oasn# Elements per appsqlite3 ~/.screenpipe/db.sqlite "SELECT f.app_name, COUNT(*) as elem_count,SUM(LENGTH(e.text))/1024/1024 as text_mbFROM elements eJOIN frames f ON e.frame_id = f.idGROUP BY f.app_nameORDER BY elem_count DESCThe elements table at 146 MB is suspicious — that's the accessibility tree walker storingevery button, label and text field from every frame. With 6000+ dashboard frames eachcontaining hundreds of UI elements, that could explain a lot.Updated to 1.2278.0RelaunchLukas KovalikPro nianReply...sonnet 46 vClaudtro mrand can make mistakes. rlease double-cneck responses....
|
15587
|
|
25077
|
539
|
1
|
2026-04-15T12:41:26.239867+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776256886239_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
33212524/30Castle AgeLouis VI advanced to the Feud 33212524/30Castle AgeLouis VI advanced to the Feudal Age.Laszló I advanced to the Feudal Age.Rajyapala advanced to the Feudal Age.Magnus Olafsson advanced to theFeudal Age.Click a villager to gather wood from this tree.Lumber Camp7P 1/8koval lik mkas (Britons800/8003 Huascár: 919/9192 Rajyapala: 876/876 094 Louis VI: 853/8535 Magnus Olafsson: 836/8361 kovaliklukas: 813/8138 Almish Yiltawar: 808/8086 László I: 797/797NV7 Maximilian of Habsburg: 740/740II...
|
NULL
|
-8832822150948084936
|
NULL
|
visual_change
|
ocr
|
NULL
|
33212524/30Castle AgeLouis VI advanced to the Feud 33212524/30Castle AgeLouis VI advanced to the Feudal Age.Laszló I advanced to the Feudal Age.Rajyapala advanced to the Feudal Age.Magnus Olafsson advanced to theFeudal Age.Click a villager to gather wood from this tree.Lumber Camp7P 1/8koval lik mkas (Britons800/8003 Huascár: 919/9192 Rajyapala: 876/876 094 Louis VI: 853/8535 Magnus Olafsson: 836/8361 kovaliklukas: 813/8138 Almish Yiltawar: 808/8086 László I: 797/797NV7 Maximilian of Habsburg: 740/740II...
|
25076
|
|
16216
|
360
|
49
|
2026-04-14T15:10:49.800047+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776179449800_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
175401002006/10Dark Age--Goat Found---Villager Cre 175401002006/10Dark Age--Goat Found---Villager Created--6 Prithviraj Chauhan: 211/2114 Wen Tianxiang: 208/2085 Danylo Kobiakovych: 194/1941 kovaliklukas: 192/1923 Mari Djata I: 186/186 €8 Ellac the Hun: 185/1857 Vikramaditya I: 185/1852 Yekuno Amlak: 185/185Town Centerkovalfklukas (Britons)7 3/5Creating 46%Villager2400/2400...
|
NULL
|
-8832731961227882698
|
NULL
|
visual_change
|
ocr
|
NULL
|
175401002006/10Dark Age--Goat Found---Villager Cre 175401002006/10Dark Age--Goat Found---Villager Created--6 Prithviraj Chauhan: 211/2114 Wen Tianxiang: 208/2085 Danylo Kobiakovych: 194/1941 kovaliklukas: 192/1923 Mari Djata I: 186/186 €8 Ellac the Hun: 185/1857 Vikramaditya I: 185/1852 Yekuno Amlak: 185/185Town Centerkovalfklukas (Britons)7 3/5Creating 46%Villager2400/2400...
|
NULL
|
|
61942
|
1334
|
7
|
2026-04-21T07:17:54.595453+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776755874595_m1.jpg...
|
Firefox
|
JY-20701 | Reschedule HubSpot Sync Objects by yalo JY-20701 | Reschedule HubSpot Sync Objects by yalokin-jiminny · Pull Request #11989 · jiminny/app — Work...
|
True
|
github.com/jiminny/app/pull/11989/changes#diff-b8b github.com/jiminny/app/pull/11989/changes#diff-b8b6dffeffd9f880149efbe08aa7165b161a69611ee9fc88406f7ca73903b1a2...
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
[JY-20676] Notify the user if a Panorama prompts is deleted but is used in AJ Report - Jira
[JY-20676] Notify the user if a Panorama prompts is deleted but is used in AJ Report - Jira
Jiminny Mail
Jiminny Mail
[JY-20500] Batch initial sync for Salesforce - Jira
[JY-20500] Batch initial sync for Salesforce - Jira
Feed — jiminny — Sentry
Feed — jiminny — Sentry
Jiminny
Jiminny
JY-20701 | Reschedule HubSpot Sync Objects by yalokin-jiminny · Pull Request #11989 · jiminny/app
JY-20701 | Reschedule HubSpot Sync Objects by yalokin-jiminny · Pull Request #11989 · jiminny/app
Close tab
Pipelines - jiminny/app
Pipelines - jiminny/app
New Tab
New Tab
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues(g then i)
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (31)
Pull requests
(
31
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality (21)
Security and quality
(
21
)
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20701 | Reschedule HubSpot Sync Objects #11989 Edit title
JY-20701 | Reschedule HubSpot Sync Objects
#
11989
Edit title
Preview
Preview
Awaiting approval
Awaiting approval
Code
Code
Open
yalokin-jiminny
yalokin-jiminny
wants to merge 22 commits into
master
master
from
JY-20701-reschedule-HubSpot-processing
JY-20701-reschedule-HubSpot-processing
Copy head branch name to clipboard
Lines changed: 949 additions & 97 deletions
Conversation (5)
Conversation
(
5
)
Commits (22)
Commits
(
22
)
Checks (3)
Checks
(
3
)
Files changed (11)
Files changed
(
11
)
Pull Request Toolbar
Pull Request Toolbar
Collapse file tree
All commits
All commits
3
/
11
viewed
Submit review
Submit
review
Open diff view settings
Open overview panel
Open comments panel
(
0
)
Filter files…
Filter options
File tree
File tree
app
Console
Commands/Crm
Traits
SyncObjectsCommandTrait.php
SyncObjectsCommandTrait.php
SyncHubspotObjects.php
SyncHubspotObjects.php
SyncObjects.php
SyncObjects.php
Kernel.php
Kernel.php
Http/Controllers/Webhook/Hubspot
ProcessesWebhooksTrait.php
ProcessesWebhooksTrait.php
Jobs/Crm
SyncHubspotObjects.php
SyncHubspotObjects.php
SyncObjects.php
SyncObjects.php
Services/Crm/Hubspot/ServiceTraits
OpportunitySyncTrait.php
OpportunitySyncTrait.php
tests/Unit
Expand file
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php
Copy file name to clipboard
Lines changed: 81 additions & 0 deletions
Viewed
Viewed
Comment on this file
More options
Collapse file
app/Console/Commands/Crm/SyncHubspotObjects.php
app/Console/Commands/Crm/SyncHubspotObjects.php
app/Console/Commands/Crm/SyncHubspotObjects.php
Copy file name to clipboard
Lines changed: 79 additions & 0 deletions
Not Viewed
Viewed
Comment on this file
More options
Original file line number
Original file line
Diff line number
Diff line change
@@ -0,0 +1,79 @@
1
+
<?php
2
+
3
+
declare
(strict_types=
1
);
4
+
5
+
namespace
Jiminny
\
Console
\
Commands
\
Crm
;
6
+
7
+
use
Jiminny
\
Console
\
Commands
\
Command
;
8
+
use
Jiminny
\
Console
\
Commands
\
Crm
\
Traits
\
SyncObjectsCommandTrait
;
9
+
use
Jiminny
\
Jobs
\
Crm
\
SyncHubspotObjects
as
SyncHubspotObjectsJob
;
10
+
use
Jiminny
\
Jobs
\
Job
;
11
+
use
Jiminny
\
Models
\
Crm
\
Configuration
;
12
+
use
Jiminny
\
Models
\
Team
;
13
+
14
+
class
SyncHubspotObjects
extends
Command
15
+
{
16
+
use
SyncObjectsCommandTrait;
17
+
18
+
protected
$
signature
=
'
crm:sync-hubspot-objects {team?}
'
;
19
+
20
+
protected
$
description
=
'
Sync HubSpot CRM objects (runs more frequently than general sync).
'
;
21
+
22
+
public
function
handle
():
void
23
+
{
24
+
$
teamId
=
$
this
->
argument
(
'
team
'
);
25
+
$
teams
= [];
26
+
27
+
if
(
$
teamId
) {
28
+
$
team
= Team::
idOrUuId
(
$
teamId
);
29
+
30
+
if
(
$
team
===
null
) {
31
+
$
this
->
error
(
sprintf
(
'
Team "%s" not found
'
,
$
teamId
));
32
+
33
+
return
;
34
+
}
35
+
36
+
if
(
$
team
->
crm
?->provider !== Configuration::
PROVIDER_HUBSPOT
) {
37
+
$
this
->
error
(
sprintf
(
38
+
'
Team "%s" is not a HubSpot team (provider: %s)
'
,
39
+
$
teamId
,
40
+
$
team
->
crm
?->provider ??
'
none
'
41
+
));
42
+
43
+
return
;
44
+
}
45
+
46
+
$
teams
[] =
$
team
;
47
+
}
else
{
48
+
$
teams
= Team::
where
(
'
status
'
, Team::
STATUS_ACTIVE
)
49
+
->
whereHas
(
'
crm
'
,
fn...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6787] Issue with reconnecting Zoho - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6787] Issue with reconnecting Zoho - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20676] Notify the user if a Panorama prompts is deleted but is used in AJ Report - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20676] Notify the user if a Panorama prompts is deleted but is used in AJ Report - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny Mail","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny Mail","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20500] Batch initial sync for Salesforce - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20500] Batch initial sync for Salesforce - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Feed — jiminny — Sentry","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Feed — jiminny — Sentry","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20701 | Reschedule HubSpot Sync Objects by yalokin-jiminny · Pull Request #11989 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"JY-20701 | Reschedule HubSpot Sync Objects by yalokin-jiminny · Pull Request #11989 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"New Tab","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"New Tab","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Service-Desk - Queues - Platform team - Service space - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Service-Desk - Queues - Platform team - Service space - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"jiminny","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"jiminny","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"app","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues(g then i)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (31)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"31","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Wiki","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Wiki","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality (21)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"21","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Settings","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Settings","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"JY-20701 | Reschedule HubSpot Sync Objects #11989 Edit title","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-20701 | Reschedule HubSpot Sync Objects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"11989","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit title","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Preview","depth":13,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Preview","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Awaiting approval","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Awaiting approval","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":13,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Open","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"yalokin-jiminny","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"yalokin-jiminny","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"wants to merge 22 commits into","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"master","depth":15,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"master","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"from","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JY-20701-reschedule-HubSpot-processing","depth":16,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20701-reschedule-HubSpot-processing","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy head branch name to clipboard","depth":16,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Lines changed: 949 additions & 97 deletions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Conversation (5)","depth":16,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Conversation","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"5","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Commits (22)","depth":16,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"22","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Checks (3)","depth":16,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Checks","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Files changed (11)","depth":16,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Files changed","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"11","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Pull Request Toolbar","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Pull Request Toolbar","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Collapse file tree","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"All commits","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"All commits","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"11","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"viewed","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Submit review","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Submit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"review","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Open diff view settings","depth":14,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open overview panel","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open comments panel","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"(","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Filter files…","depth":16,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Filter options","depth":16,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"File tree","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"File tree","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Console","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands/Crm","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Traits","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SyncObjectsCommandTrait.php","depth":27,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SyncObjectsCommandTrait.php","depth":28,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SyncHubspotObjects.php","depth":25,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":26,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SyncObjects.php","depth":25,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SyncObjects.php","depth":26,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Kernel.php","depth":23,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Kernel.php","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Http/Controllers/Webhook/Hubspot","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"ProcessesWebhooksTrait.php","depth":23,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"ProcessesWebhooksTrait.php","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jobs/Crm","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SyncHubspotObjects.php","depth":23,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SyncObjects.php","depth":23,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SyncObjects.php","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Services/Crm/Hubspot/ServiceTraits","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"OpportunitySyncTrait.php","depth":23,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"OpportunitySyncTrait.php","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"tests/Unit","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Expand file","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy file name to clipboard","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Lines changed: 81 additions & 0 deletions","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Viewed","depth":14,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":true,"is_selected":false},{"role":"AXStaticText","text":"Viewed","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Comment on this file","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"More options","depth":14,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse file","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"app/Console/Commands/Crm/SyncHubspotObjects.php","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"app/Console/Commands/Crm/SyncHubspotObjects.php","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app/Console/Commands/Crm/SyncHubspotObjects.php","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy file name to clipboard","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Lines changed: 79 additions & 0 deletions","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Not Viewed","depth":14,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Viewed","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Comment on this file","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"More options","depth":14,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Original file line number","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Original file line","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Diff line number","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Diff line change","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"@@ -0,0 +1,79 @@","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"<?php","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"declare","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(strict_types=","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":");","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"5","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"namespace","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Console","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"6","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"7","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"use","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Console","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Command","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"use","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Console","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Traits","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SyncObjectsCommandTrait","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"9","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"use","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jobs","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SyncHubspotObjects","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"as","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SyncHubspotObjectsJob","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"10","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"use","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jobs","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Job","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"11","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"use","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Models","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Configuration","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"12","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"use","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Models","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Team","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"13","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"14","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"class","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SyncHubspotObjects","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"extends","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Command","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"15","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"16","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"use","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SyncObjectsCommandTrait;","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"17","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"18","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"protected","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"signature","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"=","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crm:sync-hubspot-objects {team?}","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"19","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"20","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"protected","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"description","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"=","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Sync HubSpot CRM objects (runs more frequently than general sync).","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"21","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"22","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"public","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"function","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"handle","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"():","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"void","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"23","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"24","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teamId","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"=","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"argument","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"team","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":");","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"25","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teams","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"= [];","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"26","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"27","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"if","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teamId","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":") {","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"28","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"team","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"= Team::","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"idOrUuId","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teamId","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":");","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"29","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"30","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"if","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"team","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"===","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"null","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":") {","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"31","depth":16,"bounds":{"left":0.6805556,"top":0.0,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.0,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"bounds":{"left":0.79618055,"top":0.0,"width":0.0052083335,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"bounds":{"left":0.80138886,"top":0.0,"width":0.02013889,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"bounds":{"left":0.8215278,"top":0.0,"width":0.009722223,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"error","depth":18,"bounds":{"left":0.83125,"top":0.0,"width":0.025347222,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"bounds":{"left":0.85659724,"top":0.0,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sprintf","depth":18,"bounds":{"left":0.86145836,"top":0.0,"width":0.035069443,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"bounds":{"left":0.89652777,"top":0.0,"width":0.0052083335,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"bounds":{"left":0.90173614,"top":0.0,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Team \"%s\" not found","depth":18,"bounds":{"left":0.9065972,"top":0.0,"width":0.0934028,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"bounds":{"left":1.0,"top":0.0,"width":-0.0017361641,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"bounds":{"left":1.0,"top":0.0,"width":-0.006944418,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"bounds":{"left":1.0,"top":0.0,"width":-0.017013907,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teamId","depth":18,"bounds":{"left":1.0,"top":0.0,"width":-0.021875024,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"));","depth":18,"bounds":{"left":1.0,"top":0.0,"width":-0.052083373,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"32","depth":16,"bounds":{"left":0.6805556,"top":0.0,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.0,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"33","depth":16,"bounds":{"left":0.6805556,"top":0.0,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.0,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"return","depth":18,"bounds":{"left":0.79618055,"top":0.0,"width":0.030208332,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":18,"bounds":{"left":0.8263889,"top":0.0,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"34","depth":16,"bounds":{"left":0.6805556,"top":0.0,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.0,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":18,"bounds":{"left":0.71631944,"top":0.0,"width":0.06493056,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"35","depth":16,"bounds":{"left":0.6805556,"top":0.011666667,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.011666667,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"36","depth":16,"bounds":{"left":0.6805556,"top":0.038333334,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.038333334,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"if","depth":18,"bounds":{"left":0.7763889,"top":0.038333334,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"bounds":{"left":0.7864583,"top":0.038333334,"width":0.009722223,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"bounds":{"left":0.79618055,"top":0.038333334,"width":0.0052083335,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"team","depth":18,"bounds":{"left":0.80138886,"top":0.038333334,"width":0.02013889,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"bounds":{"left":0.8215278,"top":0.038333334,"width":0.009722223,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crm","depth":18,"bounds":{"left":0.83125,"top":0.038333334,"width":0.015277778,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"?->provider !== Configuration::","depth":18,"bounds":{"left":0.84652776,"top":0.038333334,"width":0.15347224,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"PROVIDER_HUBSPOT","depth":18,"bounds":{"left":1.0,"top":0.038333334,"width":-0.0017361641,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":") {","depth":18,"bounds":{"left":1.0,"top":0.038333334,"width":-0.081944466,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"37","depth":16,"bounds":{"left":0.6805556,"top":0.065,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.065,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"bounds":{"left":0.79618055,"top":0.065,"width":0.0052083335,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"bounds":{"left":0.80138886,"top":0.065,"width":0.02013889,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"bounds":{"left":0.8215278,"top":0.065,"width":0.009722223,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"error","depth":18,"bounds":{"left":0.83125,"top":0.065,"width":0.025347222,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"bounds":{"left":0.85659724,"top":0.065,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sprintf","depth":18,"bounds":{"left":0.86145836,"top":0.065,"width":0.035069443,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"bounds":{"left":0.89652777,"top":0.065,"width":0.0052083335,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"38","depth":16,"bounds":{"left":0.6805556,"top":0.09166667,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.09166667,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"bounds":{"left":0.81631947,"top":0.09166667,"width":0.0052083335,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Team \"%s\" is not a HubSpot team (provider: %s)","depth":18,"bounds":{"left":0.8215278,"top":0.09166667,"width":0.17847222,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"bounds":{"left":1.0,"top":0.09166667,"width":-0.052083373,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"bounds":{"left":1.0,"top":0.09166667,"width":-0.05694449,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"39","depth":16,"bounds":{"left":0.6805556,"top":0.11833333,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.11833333,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"bounds":{"left":0.81631947,"top":0.11833333,"width":0.0052083335,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teamId","depth":18,"bounds":{"left":0.8215278,"top":0.11833333,"width":0.029861111,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"bounds":{"left":0.8513889,"top":0.11833333,"width":0.0052083335,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"40","depth":16,"bounds":{"left":0.6805556,"top":0.145,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.145,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"bounds":{"left":0.81631947,"top":0.145,"width":0.0052083335,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"team","depth":18,"bounds":{"left":0.8215278,"top":0.145,"width":0.019791666,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"bounds":{"left":0.84131944,"top":0.145,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crm","depth":18,"bounds":{"left":0.8513889,"top":0.145,"width":0.015277778,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"?->provider ??","depth":18,"bounds":{"left":0.8666667,"top":0.145,"width":0.075,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"bounds":{"left":0.94166666,"top":0.145,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"none","depth":18,"bounds":{"left":0.9465278,"top":0.145,"width":0.02013889,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"bounds":{"left":0.96666664,"top":0.145,"width":0.0052083335,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"41","depth":16,"bounds":{"left":0.6805556,"top":0.17166667,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.17166667,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"));","depth":18,"bounds":{"left":0.71631944,"top":0.17166667,"width":0.09513889,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"42","depth":16,"bounds":{"left":0.6805556,"top":0.19833334,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.19833334,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"43","depth":16,"bounds":{"left":0.6805556,"top":0.225,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.225,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"return","depth":18,"bounds":{"left":0.79618055,"top":0.225,"width":0.030208332,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":18,"bounds":{"left":0.8263889,"top":0.225,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"44","depth":16,"bounds":{"left":0.6805556,"top":0.25166667,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.25166667,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":18,"bounds":{"left":0.71631944,"top":0.25166667,"width":0.06493056,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"45","depth":16,"bounds":{"left":0.6805556,"top":0.27833334,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.27833334,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"46","depth":16,"bounds":{"left":0.6805556,"top":0.305,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.305,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"bounds":{"left":0.7763889,"top":0.305,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teams","depth":18,"bounds":{"left":0.78125,"top":0.305,"width":0.025,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"[] =","depth":18,"bounds":{"left":0.80625,"top":0.305,"width":0.025,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"bounds":{"left":0.83125,"top":0.305,"width":0.0052083335,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"team","depth":18,"bounds":{"left":0.8364583,"top":0.305,"width":0.02013889,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":18,"bounds":{"left":0.85659724,"top":0.305,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"47","depth":16,"bounds":{"left":0.6805556,"top":0.33166668,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.33166668,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":18,"bounds":{"left":0.71631944,"top":0.33166668,"width":0.05,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"else","depth":18,"bounds":{"left":0.76631945,"top":0.33166668,"width":0.02013889,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":18,"bounds":{"left":0.7864583,"top":0.33166668,"width":0.009722223,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"48","depth":16,"bounds":{"left":0.6805556,"top":0.35833332,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.35833332,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"bounds":{"left":0.7763889,"top":0.35833332,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teams","depth":18,"bounds":{"left":0.78125,"top":0.35833332,"width":0.025,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"= Team::","depth":18,"bounds":{"left":0.80625,"top":0.35833332,"width":0.045138888,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"where","depth":18,"bounds":{"left":0.8513889,"top":0.35833332,"width":0.025,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"bounds":{"left":0.8763889,"top":0.35833332,"width":0.0052083335,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"bounds":{"left":0.8815972,"top":0.35833332,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"status","depth":18,"bounds":{"left":0.88645834,"top":0.35833332,"width":0.030208332,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"bounds":{"left":0.9166667,"top":0.35833332,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", Team::","depth":18,"bounds":{"left":0.9215278,"top":0.35833332,"width":0.04027778,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"STATUS_ACTIVE","depth":18,"bounds":{"left":0.9618056,"top":0.35833332,"width":0.038194418,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"bounds":{"left":1.0,"top":0.35833332,"width":-0.02673614,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"49","depth":16,"bounds":{"left":0.6805556,"top":0.385,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"bounds":{"left":0.70520836,"top":0.385,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"bounds":{"left":0.71631944,"top":0.385,"width":0.08993056,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"whereHas","depth":18,"bounds":{"left":0.80625,"top":0.385,"width":0.04027778,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"bounds":{"left":0.84652776,"top":0.385,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"bounds":{"left":0.8513889,"top":0.385,"width":0.0052083335,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crm","depth":18,"bounds":{"left":0.85659724,"top":0.385,"width":0.014930556,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"bounds":{"left":0.8715278,"top":0.385,"width":0.0048611113,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"bounds":{"left":0.8763889,"top":0.385,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"fn","depth":18,"bounds":{"left":0.88645834,"top":0.385,"width":0.010069445,"height":0.016111111},"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-8832154485270046342
|
3560517268124298688
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
[JY-20676] Notify the user if a Panorama prompts is deleted but is used in AJ Report - Jira
[JY-20676] Notify the user if a Panorama prompts is deleted but is used in AJ Report - Jira
Jiminny Mail
Jiminny Mail
[JY-20500] Batch initial sync for Salesforce - Jira
[JY-20500] Batch initial sync for Salesforce - Jira
Feed — jiminny — Sentry
Feed — jiminny — Sentry
Jiminny
Jiminny
JY-20701 | Reschedule HubSpot Sync Objects by yalokin-jiminny · Pull Request #11989 · jiminny/app
JY-20701 | Reschedule HubSpot Sync Objects by yalokin-jiminny · Pull Request #11989 · jiminny/app
Close tab
Pipelines - jiminny/app
Pipelines - jiminny/app
New Tab
New Tab
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues(g then i)
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (31)
Pull requests
(
31
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality (21)
Security and quality
(
21
)
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20701 | Reschedule HubSpot Sync Objects #11989 Edit title
JY-20701 | Reschedule HubSpot Sync Objects
#
11989
Edit title
Preview
Preview
Awaiting approval
Awaiting approval
Code
Code
Open
yalokin-jiminny
yalokin-jiminny
wants to merge 22 commits into
master
master
from
JY-20701-reschedule-HubSpot-processing
JY-20701-reschedule-HubSpot-processing
Copy head branch name to clipboard
Lines changed: 949 additions & 97 deletions
Conversation (5)
Conversation
(
5
)
Commits (22)
Commits
(
22
)
Checks (3)
Checks
(
3
)
Files changed (11)
Files changed
(
11
)
Pull Request Toolbar
Pull Request Toolbar
Collapse file tree
All commits
All commits
3
/
11
viewed
Submit review
Submit
review
Open diff view settings
Open overview panel
Open comments panel
(
0
)
Filter files…
Filter options
File tree
File tree
app
Console
Commands/Crm
Traits
SyncObjectsCommandTrait.php
SyncObjectsCommandTrait.php
SyncHubspotObjects.php
SyncHubspotObjects.php
SyncObjects.php
SyncObjects.php
Kernel.php
Kernel.php
Http/Controllers/Webhook/Hubspot
ProcessesWebhooksTrait.php
ProcessesWebhooksTrait.php
Jobs/Crm
SyncHubspotObjects.php
SyncHubspotObjects.php
SyncObjects.php
SyncObjects.php
Services/Crm/Hubspot/ServiceTraits
OpportunitySyncTrait.php
OpportunitySyncTrait.php
tests/Unit
Expand file
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php
Copy file name to clipboard
Lines changed: 81 additions & 0 deletions
Viewed
Viewed
Comment on this file
More options
Collapse file
app/Console/Commands/Crm/SyncHubspotObjects.php
app/Console/Commands/Crm/SyncHubspotObjects.php
app/Console/Commands/Crm/SyncHubspotObjects.php
Copy file name to clipboard
Lines changed: 79 additions & 0 deletions
Not Viewed
Viewed
Comment on this file
More options
Original file line number
Original file line
Diff line number
Diff line change
@@ -0,0 +1,79 @@
1
+
<?php
2
+
3
+
declare
(strict_types=
1
);
4
+
5
+
namespace
Jiminny
\
Console
\
Commands
\
Crm
;
6
+
7
+
use
Jiminny
\
Console
\
Commands
\
Command
;
8
+
use
Jiminny
\
Console
\
Commands
\
Crm
\
Traits
\
SyncObjectsCommandTrait
;
9
+
use
Jiminny
\
Jobs
\
Crm
\
SyncHubspotObjects
as
SyncHubspotObjectsJob
;
10
+
use
Jiminny
\
Jobs
\
Job
;
11
+
use
Jiminny
\
Models
\
Crm
\
Configuration
;
12
+
use
Jiminny
\
Models
\
Team
;
13
+
14
+
class
SyncHubspotObjects
extends
Command
15
+
{
16
+
use
SyncObjectsCommandTrait;
17
+
18
+
protected
$
signature
=
'
crm:sync-hubspot-objects {team?}
'
;
19
+
20
+
protected
$
description
=
'
Sync HubSpot CRM objects (runs more frequently than general sync).
'
;
21
+
22
+
public
function
handle
():
void
23
+
{
24
+
$
teamId
=
$
this
->
argument
(
'
team
'
);
25
+
$
teams
= [];
26
+
27
+
if
(
$
teamId
) {
28
+
$
team
= Team::
idOrUuId
(
$
teamId
);
29
+
30
+
if
(
$
team
===
null
) {
31
+
$
this
->
error
(
sprintf
(
'
Team "%s" not found
'
,
$
teamId
));
32
+
33
+
return
;
34
+
}
35
+
36
+
if
(
$
team
->
crm
?->provider !== Configuration::
PROVIDER_HUBSPOT
) {
37
+
$
this
->
error
(
sprintf
(
38
+
'
Team "%s" is not a HubSpot team (provider: %s)
'
,
39
+
$
teamId
,
40
+
$
team
->
crm
?->provider ??
'
none
'
41
+
));
42
+
43
+
return
;
44
+
}
45
+
46
+
$
teams
[] =
$
team
;
47
+
}
else
{
48
+
$
teams
= Team::
where
(
'
status
'
, Team::
STATUS_ACTIVE
)
49
+
->
whereHas
(
'
crm
'
,
fn...
|
NULL
|
|
72701
|
1773
|
35
|
2026-04-22T16:04:31.122952+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776873871122_m2.jpg...
|
Finder
|
Test
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Favourites
jiminny
AirDrop
Recents
Applications
Do Favourites
jiminny
AirDrop
Recents
Applications
Documents
Downloads
lukas
iCloud
iCloud Drive
Sync folder
Locations
DXP4800PLUS-B5F
Eject
Network
Tags
CRM
Orange
Red
Yellow
Green
Blue
Purple
All Tags…
Jazyky
16 Mar 2026 at 10:32
82,19 GB
Folder
#recycle
11 Apr 2026 at 15:53
76,82 GB
Folder
SyncData
20 Apr 2026 at 21:09
36,64 GB
Folder
screenpipe
Today at 18:28
12,39 GB
Folder
data...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Favourites","depth":6,"bounds":{"left":0.5046542,"top":0.061452515,"width":0.06216755,"height":0.015163607},"automation_id":"xSidebarHeader","role_description":"text"},{"role":"AXStaticText","text":"jiminny","depth":6,"bounds":{"left":0.51263297,"top":0.08140463,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"AirDrop","depth":6,"bounds":{"left":0.51263297,"top":0.103751,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Recents","depth":6,"bounds":{"left":0.51263297,"top":0.12609737,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Applications","depth":6,"bounds":{"left":0.51263297,"top":0.14844373,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Documents","depth":6,"bounds":{"left":0.51263297,"top":0.1707901,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Downloads","depth":6,"bounds":{"left":0.51263297,"top":0.19313647,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"lukas","depth":6,"bounds":{"left":0.51263297,"top":0.21548285,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"iCloud","depth":6,"bounds":{"left":0.5046542,"top":0.2434158,"width":0.06216755,"height":0.015163607},"automation_id":"xSidebarHeader","role_description":"text"},{"role":"AXStaticText","text":"iCloud Drive","depth":6,"bounds":{"left":0.51263297,"top":0.26336792,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Sync folder","depth":6,"bounds":{"left":0.51263297,"top":0.2857143,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Locations","depth":6,"bounds":{"left":0.5046542,"top":0.31364724,"width":0.06216755,"height":0.015163607},"automation_id":"xSidebarHeader","role_description":"text"},{"role":"AXStaticText","text":"DXP4800PLUS-B5F","depth":6,"bounds":{"left":0.51263297,"top":0.33359936,"width":0.043218084,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Eject","depth":6,"bounds":{"left":0.55651593,"top":0.33519554,"width":0.0043218085,"height":0.009577015},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXStaticText","text":"Network","depth":6,"bounds":{"left":0.51263297,"top":0.35594574,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Tags","depth":6,"bounds":{"left":0.5046542,"top":0.38387868,"width":0.06216755,"height":0.015163607},"automation_id":"xSidebarHeader","role_description":"text"},{"role":"AXStaticText","text":"CRM","depth":6,"bounds":{"left":0.51263297,"top":0.4038308,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Orange","depth":6,"bounds":{"left":0.51263297,"top":0.42617717,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Red","depth":6,"bounds":{"left":0.51263297,"top":0.44852355,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Yellow","depth":6,"bounds":{"left":0.51263297,"top":0.4708699,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Green","depth":6,"bounds":{"left":0.51263297,"top":0.49321628,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Blue","depth":6,"bounds":{"left":0.51263297,"top":0.51556265,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Purple","depth":6,"bounds":{"left":0.51263297,"top":0.53790903,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"All Tags…","depth":6,"bounds":{"left":0.51263297,"top":0.5602554,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXTextField","text":"Jazyky","depth":7,"bounds":{"left":0.5827792,"top":0.0,"width":0.01662234,"height":0.012769354},"value":"Jazyky","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"16 Mar 2026 at 10:32","depth":7,"bounds":{"left":0.8656915,"top":0.0,"width":0.056848403,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"82,19 GB","depth":7,"bounds":{"left":0.93417555,"top":0.0,"width":0.020611702,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":7,"bounds":{"left":0.9581117,"top":0.0,"width":0.014295213,"height":0.012769354},"role_description":"text"},{"role":"AXTextField","text":"#recycle","depth":7,"bounds":{"left":0.5827792,"top":0.0,"width":0.01662234,"height":0.012769354},"value":"#recycle","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"11 Apr 2026 at 15:53","depth":7,"bounds":{"left":0.8656915,"top":0.0,"width":0.056848403,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"76,82 GB","depth":7,"bounds":{"left":0.93417555,"top":0.0,"width":0.020611702,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":7,"bounds":{"left":0.9581117,"top":0.0,"width":0.014295213,"height":0.012769354},"role_description":"text"},{"role":"AXTextField","text":"SyncData","depth":7,"bounds":{"left":0.5827792,"top":0.0,"width":0.019946808,"height":0.012769354},"value":"SyncData","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"20 Apr 2026 at 21:09","depth":7,"bounds":{"left":0.8656915,"top":0.0,"width":0.056848403,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"36,64 GB","depth":7,"bounds":{"left":0.93417555,"top":0.0,"width":0.020611702,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":7,"bounds":{"left":0.9581117,"top":0.0,"width":0.014295213,"height":0.012769354},"role_description":"text"},{"role":"AXTextField","text":"screenpipe","depth":7,"bounds":{"left":0.5827792,"top":0.0,"width":0.025265958,"height":0.012769354},"value":"screenpipe","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Today at 18:28","depth":7,"bounds":{"left":0.8656915,"top":0.0,"width":0.056848403,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"12,39 GB","depth":7,"bounds":{"left":0.93417555,"top":0.0,"width":0.020611702,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":7,"bounds":{"left":0.9581117,"top":0.0,"width":0.014295213,"height":0.012769354},"role_description":"text"},{"role":"AXTextField","text":"data","depth":7,"bounds":{"left":0.58776593,"top":0.0,"width":0.011635638,"height":0.012769354},"value":"data","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
-8832007478108621920
|
-1786217808653619233
|
click
|
accessibility
|
NULL
|
Favourites
jiminny
AirDrop
Recents
Applications
Do Favourites
jiminny
AirDrop
Recents
Applications
Documents
Downloads
lukas
iCloud
iCloud Drive
Sync folder
Locations
DXP4800PLUS-B5F
Eject
Network
Tags
CRM
Orange
Red
Yellow
Green
Blue
Purple
All Tags…
Jazyky
16 Mar 2026 at 10:32
82,19 GB
Folder
#recycle
11 Apr 2026 at 15:53
76,82 GB
Folder
SyncData
20 Apr 2026 at 21:09
36,64 GB
Folder
screenpipe
Today at 18:28
12,39 GB
Folder
data...
|
72700
|
|
72703
|
1773
|
37
|
2026-04-22T16:04:34.204073+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776873874204_m2.jpg...
|
Finder
|
Test
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Favourites
jiminny
AirDrop
Recents
Applications
Do Favourites
jiminny
AirDrop
Recents
Applications
Documents
Downloads
lukas
iCloud
iCloud Drive
Sync folder
Locations
DXP4800PLUS-B5F
Eject
Network
Tags
CRM
Orange
Red
Yellow
Green
Blue
Purple
All Tags…
Jazyky
16 Mar 2026 at 10:32
82,19 GB
Folder
#recycle
11 Apr 2026 at 15:53
76,82 GB
Folder
SyncData
20 Apr 2026 at 21:09
36,64 GB
Folder
screenpipe
Today at 18:28
12,39 GB
Folder
data...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Favourites","depth":6,"bounds":{"left":0.5046542,"top":0.061452515,"width":0.06216755,"height":0.015163607},"automation_id":"xSidebarHeader","role_description":"text"},{"role":"AXStaticText","text":"jiminny","depth":6,"bounds":{"left":0.51263297,"top":0.08140463,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"AirDrop","depth":6,"bounds":{"left":0.51263297,"top":0.103751,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Recents","depth":6,"bounds":{"left":0.51263297,"top":0.12609737,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Applications","depth":6,"bounds":{"left":0.51263297,"top":0.14844373,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Documents","depth":6,"bounds":{"left":0.51263297,"top":0.1707901,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Downloads","depth":6,"bounds":{"left":0.51263297,"top":0.19313647,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"lukas","depth":6,"bounds":{"left":0.51263297,"top":0.21548285,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"iCloud","depth":6,"bounds":{"left":0.5046542,"top":0.2434158,"width":0.06216755,"height":0.015163607},"automation_id":"xSidebarHeader","role_description":"text"},{"role":"AXStaticText","text":"iCloud Drive","depth":6,"bounds":{"left":0.51263297,"top":0.26336792,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Sync folder","depth":6,"bounds":{"left":0.51263297,"top":0.2857143,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Locations","depth":6,"bounds":{"left":0.5046542,"top":0.31364724,"width":0.06216755,"height":0.015163607},"automation_id":"xSidebarHeader","role_description":"text"},{"role":"AXStaticText","text":"DXP4800PLUS-B5F","depth":6,"bounds":{"left":0.51263297,"top":0.33359936,"width":0.043218084,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Eject","depth":6,"bounds":{"left":0.55651593,"top":0.33519554,"width":0.0043218085,"height":0.009577015},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXStaticText","text":"Network","depth":6,"bounds":{"left":0.51263297,"top":0.35594574,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Tags","depth":6,"bounds":{"left":0.5046542,"top":0.38387868,"width":0.06216755,"height":0.015163607},"automation_id":"xSidebarHeader","role_description":"text"},{"role":"AXStaticText","text":"CRM","depth":6,"bounds":{"left":0.51263297,"top":0.4038308,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Orange","depth":6,"bounds":{"left":0.51263297,"top":0.42617717,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Red","depth":6,"bounds":{"left":0.51263297,"top":0.44852355,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Yellow","depth":6,"bounds":{"left":0.51263297,"top":0.4708699,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Green","depth":6,"bounds":{"left":0.51263297,"top":0.49321628,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Blue","depth":6,"bounds":{"left":0.51263297,"top":0.51556265,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Purple","depth":6,"bounds":{"left":0.51263297,"top":0.53790903,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"All Tags…","depth":6,"bounds":{"left":0.51263297,"top":0.5602554,"width":0.049534574,"height":0.012769354},"role_description":"text"},{"role":"AXTextField","text":"Jazyky","depth":7,"bounds":{"left":0.5827792,"top":0.0,"width":0.01662234,"height":0.012769354},"value":"Jazyky","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"16 Mar 2026 at 10:32","depth":7,"bounds":{"left":0.8656915,"top":0.0,"width":0.056848403,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"82,19 GB","depth":7,"bounds":{"left":0.93417555,"top":0.0,"width":0.020611702,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":7,"bounds":{"left":0.9581117,"top":0.0,"width":0.014295213,"height":0.012769354},"role_description":"text"},{"role":"AXTextField","text":"#recycle","depth":7,"bounds":{"left":0.5827792,"top":0.0,"width":0.019946808,"height":0.012769354},"value":"#recycle","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"11 Apr 2026 at 15:53","depth":7,"bounds":{"left":0.8656915,"top":0.0,"width":0.056848403,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"76,82 GB","depth":7,"bounds":{"left":0.93417555,"top":0.0,"width":0.020611702,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":7,"bounds":{"left":0.9581117,"top":0.0,"width":0.014295213,"height":0.012769354},"role_description":"text"},{"role":"AXTextField","text":"SyncData","depth":7,"bounds":{"left":0.5827792,"top":0.0,"width":0.019946808,"height":0.012769354},"value":"SyncData","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"20 Apr 2026 at 21:09","depth":7,"bounds":{"left":0.8656915,"top":0.0,"width":0.056848403,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"36,64 GB","depth":7,"bounds":{"left":0.93417555,"top":0.0,"width":0.020611702,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":7,"bounds":{"left":0.9581117,"top":0.0,"width":0.014295213,"height":0.012769354},"role_description":"text"},{"role":"AXTextField","text":"screenpipe","depth":7,"bounds":{"left":0.5827792,"top":0.0,"width":0.025265958,"height":0.012769354},"value":"screenpipe","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Today at 18:28","depth":7,"bounds":{"left":0.8656915,"top":0.0,"width":0.056848403,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"12,39 GB","depth":7,"bounds":{"left":0.93417555,"top":0.0,"width":0.020611702,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":7,"bounds":{"left":0.9581117,"top":0.0,"width":0.014295213,"height":0.012769354},"role_description":"text"},{"role":"AXTextField","text":"data","depth":7,"bounds":{"left":0.58776593,"top":0.0,"width":0.025265958,"height":0.012769354},"value":"data","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
-8832007478108621920
|
-1786217808653619233
|
click
|
accessibility
|
NULL
|
Favourites
jiminny
AirDrop
Recents
Applications
Do Favourites
jiminny
AirDrop
Recents
Applications
Documents
Downloads
lukas
iCloud
iCloud Drive
Sync folder
Locations
DXP4800PLUS-B5F
Eject
Network
Tags
CRM
Orange
Red
Yellow
Green
Blue
Purple
All Tags…
Jazyky
16 Mar 2026 at 10:32
82,19 GB
Folder
#recycle
11 Apr 2026 at 15:53
76,82 GB
Folder
SyncData
20 Apr 2026 at 21:09
36,64 GB
Folder
screenpipe
Today at 18:28
12,39 GB
Folder
data...
|
72702
|
|
28973
|
595
|
88
|
2026-04-15T14:27:36.561838+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776263256561_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
9150106011493203585/185Imperial Age15Game Paused ( 9150106011493203585/185Imperial Age15Game Paused (P)Click a villager to gather wood from this tree.Castlekovalfklukas (Britons))You need to build more houses.0408//029T 8+2/11+211+4 (4)Q 8+35 Magnus Olafsson: 36391/36391NV1 kovaliklukas: 33952/339528 Almish Yiltawar: 26789/26789IVĐNRajyapala: 23665/23665-6 L4sz16 I: 12344/12344€7 Maximilian of Habsburg: 6531/6521 W IV4 Louis VI: 6184/6104J3 Huagcán: 5966/5966IV...
|
NULL
|
-8831930533831798177
|
NULL
|
click
|
ocr
|
NULL
|
9150106011493203585/185Imperial Age15Game Paused ( 9150106011493203585/185Imperial Age15Game Paused (P)Click a villager to gather wood from this tree.Castlekovalfklukas (Britons))You need to build more houses.0408//029T 8+2/11+211+4 (4)Q 8+35 Magnus Olafsson: 36391/36391NV1 kovaliklukas: 33952/339528 Almish Yiltawar: 26789/26789IVĐNRajyapala: 23665/23665-6 L4sz16 I: 12344/12344€7 Maximilian of Habsburg: 6531/6521 W IV4 Louis VI: 6184/6104J3 Huagcán: 5966/5966IV...
|
28971
|
|
4846
|
92
|
15
|
2026-04-13T12:40:04.324453+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-13/1776 /Users/lukas/.screenpipe/data/data/2026-04-13/1776084004324_m1.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelp* Unable to access screenpipe activity dataDOCKERO $1- Used Claude, LikelyDEV (-zsh)relatedtoO 882APP (-zsh)• *3-zsh• *4screenpipework (querying the screenpipe search API)-zsh• 25lahl91% C2Mon 13 Apr 15:40:04181-zsh86-zsh®O 87* Unable to access s...TL;DR: Mostly a dev day focused on building something with screenpipe data (a reporting UI), some light work task-checking on Jira/email, and evening reading on Slovak news.what did I do today so farThe screenpipe MCP server has disconnected, so I can't query your activity right now. You'd need to reconnect it to get today's summary.You can try restarting the screenpipe MCP server and then ask again.give mesummary for last 48 hoursThe screenpipe MCPserver is still disconnected - I don't have access to those tools. You'll need to reconnect it first.If screenpipe is running locally, you can try restarting the MCPserver or check its status with ! screenpipe or however you normally manage it.it is healhty and running, chekc againThe tools aren't showing up in my session even though screenpipe is running. This likely means the MCP connection needs to be re-established on the Claude Code side.Try running ! claude mep list to check the MCP serverstatus, or restart Claude Code to reconnect the screenpipe MCP server.claude mep listBash(Claude mcp list)L Checking MCP server health...claude.ai Reminders: https://todo.lakylak.xyz/mcp - ! Needs authentication. +5 lines (ctrl+o to expand)Screenpipe shows asconnected. The tools may just need to be re-registered in this session. Let me try calling it directly:The screenpipe MCP is connected, but the tools got deregistered from this session when it disconnected earlier and can't be re-loaded mid-conversation.Start a new Claude Code session - the tools will be fully available again and I can pull the 48-hour summary right away.? for shortcuts...
|
NULL
|
-8831781370804029011
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelp* Unable to access screenpipe activity dataDOCKERO $1- Used Claude, LikelyDEV (-zsh)relatedtoO 882APP (-zsh)• *3-zsh• *4screenpipework (querying the screenpipe search API)-zsh• 25lahl91% C2Mon 13 Apr 15:40:04181-zsh86-zsh®O 87* Unable to access s...TL;DR: Mostly a dev day focused on building something with screenpipe data (a reporting UI), some light work task-checking on Jira/email, and evening reading on Slovak news.what did I do today so farThe screenpipe MCP server has disconnected, so I can't query your activity right now. You'd need to reconnect it to get today's summary.You can try restarting the screenpipe MCP server and then ask again.give mesummary for last 48 hoursThe screenpipe MCPserver is still disconnected - I don't have access to those tools. You'll need to reconnect it first.If screenpipe is running locally, you can try restarting the MCPserver or check its status with ! screenpipe or however you normally manage it.it is healhty and running, chekc againThe tools aren't showing up in my session even though screenpipe is running. This likely means the MCP connection needs to be re-established on the Claude Code side.Try running ! claude mep list to check the MCP serverstatus, or restart Claude Code to reconnect the screenpipe MCP server.claude mep listBash(Claude mcp list)L Checking MCP server health...claude.ai Reminders: https://todo.lakylak.xyz/mcp - ! Needs authentication. +5 lines (ctrl+o to expand)Screenpipe shows asconnected. The tools may just need to be re-registered in this session. Let me try calling it directly:The screenpipe MCP is connected, but the tools got deregistered from this session when it disconnected earlier and can't be re-loaded mid-conversation.Start a new Claude Code session - the tools will be fully available again and I can pull the 48-hour summary right away.? for shortcuts...
|
NULL
|
|
57354
|
1234
|
64
|
2026-04-20T11:49:35.182033+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776685775182_m2.jpg...
|
PhpStorm
|
PhpStorm
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormcaltVIeWINavigarecodeLaravelKeractorFV faV PhostormcaltVIeWINavigarecodeLaravelKeractorFV faVsco.js?9 master vProledeyphp artisan* comnoser ison# composer.lock# dependency-checker.jsonJ dev.jsonE ids.txtEinfection.json.distMLINSTAlI mdM+ INTERNAL_WEBHOOK_SETUP.mdEjiminny storageM+licenses.mom Makerileраскаqе-lock. sonE phostan.neon.dist= phostan-baseline.neor<› phounit.xmliTe raw sal querv.saM+ README.mdLo sonar-proiect propertiesE test.ov<> Untited Diadram.xmlus vetur.config.jsMI WEBHOOK FILTERING IMPLEMENTATION.mo› ib External Librariesv = Scratches and Consolesv M Database ConsolesA console (EU]A DEAL RISKS (EU]A DI (EU]A EU (EU]v A jiminny@localhostA console (jiminny@localhost]A DI jiminny@localhost]A HS local fiiminny@localhostl&sr TiminnyolocalnostlA zoho dev (iiminny@localhostlV APROD& console PRODII& console 1 PRODIL DI PRODII› A QAi> A OAIPRODSTAGINGA console [STAGiNGIA console 1 STAGiNG)# uranus STAGINGI>• Extensions) M ScratchesWindow"C) ActivitvController.ohoC) AutomatedReportsRepository.pnpAutomatedReportsCommand.php© Updaterlasticsearch.php xC) AutomatedReportkesult.pngclass Updatezlasticsearch extends IterateActivitles37 €39LL 6I51 6i53 € >58 0 >7e 6 >s--activitvided?"--FromActivitvideds'--toActivitvidearS--userTd=d?"S--teamTd=0}'S--fromTime=A},S--toTime=0}"• ≤--fromlindateTime=,'ce-tolindatoTimo=t1 Scconden=ASC}:{--chunk-size=}';* Include sort-delered entries. We need those to make sure theu are not found in elastzcsearch.* avar boolprotected nool swithirashed = true:* Render a progress bar, so we know what the current progress is.* avar boolorotected SwithProaressBar = true.* The console command descrintion.* Ovar stringprotected $description = 'Update activities in ES':protected function with: array{...;protected function onActivities(Collection Sactivities): void{...}protected function onActivity(Activity Sactivity): void{...}UpaatencuviyclasticsearenDocumentcommana.onp=custom.log . )199)=laravel.logSF [jiminny@localhost] x 4 HS_local [jiminny@localhost]& console [PROD]« console (EU]« console [STAGING]PlaygroundSELECT * FROM automated_reports where id = 69;UPDATE automated_reports set ask_anything_prompt.id = NULL where id = 69;SELECT * FROM automated_report_results where id = 275;SELECT * FROM automated_reports order by id desc;SELECT * FROM automated_report_results order by id desc;select * from activity_searches where user_id = 143;select * from askiprompts;SELECT * FROM groups WHERE id = 1439;SELECT * FROM users WHERE group_id = 1439;select * from permissions; # 158colert + fnom nolec.select * from permission roleselect * from teams where id = 1select * from groups g JOIN playbooks p 1..n<->1: on q.playbook id = p.id where g.team id = 1:select * trom qroups where 10 = 20select * from playbooks where team id = 1:select * trom plavbooks where 10 =17select * from plavbook categories where id = 1391:• where user 10 = 143:where crm confiquration id = 39 and tvpe = 'conferenceand crm_provider_id IS NOT NULLselect * fromwhere id = 422003: # 00U04000000B6foMA0SELECT ar.id, ar.uuid, ar.media type, ar.status, a.typeFROM automated renort results arJOIN automated_reports a ON a.id = ar.reportidWHERE a.type ='ask_jiminnyLTMTT 10:select * from teams where id = 3143;select * from crm_configurations where id = 500:select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable id = 1695:select * from activities where crm_configuration id = 39and recording state = 'recorded' and duration > 60and status = 'completed' and actual start time >= '2025-12-01'SELECT * FROM activities WHERE uuid to_ bin('458cf915-b914-4000-b083-568763262956') = uuid:100% S2Mon 20 Apr 14:49:34So jiminnym 011 A14 V2 X4 A VW Windsurf Teams102.06LITC.QAensod...
|
NULL
|
-8831765392481995251
|
NULL
|
visual_change
|
ocr
|
NULL
|
PhostormcaltVIeWINavigarecodeLaravelKeractorFV faV PhostormcaltVIeWINavigarecodeLaravelKeractorFV faVsco.js?9 master vProledeyphp artisan* comnoser ison# composer.lock# dependency-checker.jsonJ dev.jsonE ids.txtEinfection.json.distMLINSTAlI mdM+ INTERNAL_WEBHOOK_SETUP.mdEjiminny storageM+licenses.mom Makerileраскаqе-lock. sonE phostan.neon.dist= phostan-baseline.neor<› phounit.xmliTe raw sal querv.saM+ README.mdLo sonar-proiect propertiesE test.ov<> Untited Diadram.xmlus vetur.config.jsMI WEBHOOK FILTERING IMPLEMENTATION.mo› ib External Librariesv = Scratches and Consolesv M Database ConsolesA console (EU]A DEAL RISKS (EU]A DI (EU]A EU (EU]v A jiminny@localhostA console (jiminny@localhost]A DI jiminny@localhost]A HS local fiiminny@localhostl&sr TiminnyolocalnostlA zoho dev (iiminny@localhostlV APROD& console PRODII& console 1 PRODIL DI PRODII› A QAi> A OAIPRODSTAGINGA console [STAGiNGIA console 1 STAGiNG)# uranus STAGINGI>• Extensions) M ScratchesWindow"C) ActivitvController.ohoC) AutomatedReportsRepository.pnpAutomatedReportsCommand.php© Updaterlasticsearch.php xC) AutomatedReportkesult.pngclass Updatezlasticsearch extends IterateActivitles37 €39LL 6I51 6i53 € >58 0 >7e 6 >s--activitvided?"--FromActivitvideds'--toActivitvidearS--userTd=d?"S--teamTd=0}'S--fromTime=A},S--toTime=0}"• ≤--fromlindateTime=,'ce-tolindatoTimo=t1 Scconden=ASC}:{--chunk-size=}';* Include sort-delered entries. We need those to make sure theu are not found in elastzcsearch.* avar boolprotected nool swithirashed = true:* Render a progress bar, so we know what the current progress is.* avar boolorotected SwithProaressBar = true.* The console command descrintion.* Ovar stringprotected $description = 'Update activities in ES':protected function with: array{...;protected function onActivities(Collection Sactivities): void{...}protected function onActivity(Activity Sactivity): void{...}UpaatencuviyclasticsearenDocumentcommana.onp=custom.log . )199)=laravel.logSF [jiminny@localhost] x 4 HS_local [jiminny@localhost]& console [PROD]« console (EU]« console [STAGING]PlaygroundSELECT * FROM automated_reports where id = 69;UPDATE automated_reports set ask_anything_prompt.id = NULL where id = 69;SELECT * FROM automated_report_results where id = 275;SELECT * FROM automated_reports order by id desc;SELECT * FROM automated_report_results order by id desc;select * from activity_searches where user_id = 143;select * from askiprompts;SELECT * FROM groups WHERE id = 1439;SELECT * FROM users WHERE group_id = 1439;select * from permissions; # 158colert + fnom nolec.select * from permission roleselect * from teams where id = 1select * from groups g JOIN playbooks p 1..n<->1: on q.playbook id = p.id where g.team id = 1:select * trom qroups where 10 = 20select * from playbooks where team id = 1:select * trom plavbooks where 10 =17select * from plavbook categories where id = 1391:• where user 10 = 143:where crm confiquration id = 39 and tvpe = 'conferenceand crm_provider_id IS NOT NULLselect * fromwhere id = 422003: # 00U04000000B6foMA0SELECT ar.id, ar.uuid, ar.media type, ar.status, a.typeFROM automated renort results arJOIN automated_reports a ON a.id = ar.reportidWHERE a.type ='ask_jiminnyLTMTT 10:select * from teams where id = 3143;select * from crm_configurations where id = 500:select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable id = 1695:select * from activities where crm_configuration id = 39and recording state = 'recorded' and duration > 60and status = 'completed' and actual start time >= '2025-12-01'SELECT * FROM activities WHERE uuid to_ bin('458cf915-b914-4000-b083-568763262956') = uuid:100% S2Mon 20 Apr 14:49:34So jiminnym 011 A14 V2 X4 A VW Windsurf Teams102.06LITC.QAensod...
|
57351
|
|
16683
|
367
|
12
|
2026-04-14T15:25:27.385916+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776180327385_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
[CREDIT_CARD]/40IICastle AgeGame Paused (P)1 koval [CREDIT_CARD]/40IICastle AgeGame Paused (P)1 kovaliklukas: 1177/11775 Danylo Kobiakovych: 1122/11224 Wen Tianxiang: 1118/11187 Vikramaditya I: 1116/11163 Mari Djata I: 1109/11096 Prithviraj Chauhan: 1069/10692 Yekuno Amlak: 1068/10688 Ellac the Hun: 1061/1061II...
|
NULL
|
-8831688121367157568
|
NULL
|
click
|
ocr
|
NULL
|
[CREDIT_CARD]/40IICastle AgeGame Paused (P)1 koval [CREDIT_CARD]/40IICastle AgeGame Paused (P)1 kovaliklukas: 1177/11775 Danylo Kobiakovych: 1122/11224 Wen Tianxiang: 1118/11187 Vikramaditya I: 1116/11163 Mari Djata I: 1109/11096 Prithviraj Chauhan: 1069/10692 Yekuno Amlak: 1068/10688 Ellac the Hun: 1061/1061II...
|
16681
|
|
21011
|
463
|
44
|
2026-04-15T09:45:33.617953+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776246333617_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
BoosteroidHomeDMs++→Jiminny ... ~# curiosity_laD# BoosteroidHomeDMs++→Jiminny ... ~# curiosity_laD# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the people_of jimi...• Direct messages. Galya DimitrovaAneliya Angelova, ...€. Vasil VasilevSteliyan GeorgievAdelina Petrova, Ili...P. Adelina Petrova0. Nikolay Nikolov O2Galya Dimitrova, Ni...2 Galya Dimitrova, Ni...::: AppsJira CloudToastSearch Jiminny IncToastHomeMessagesapprovalAboutYesterday ~Today ~Toast APP 10:00 AMReviewprophet#469 JY-20574: Log default domain18 hours old • 2 files changed -@Steliyan GeorgievResolve Conflictsapp#11443 Test hublets latency4 months old • 20 files changed#11327 JY-19501 webhook basedopportunity sync5 months old - 13 files changedShow moreReview Toast APP12:37 PMPR review requested by @SteliyanGeorgiev#472JY-18909: Print company logodebugging information by @SteliyanGeorgiev| 1 commit • 1 file changedjiminny/prophet| Added by Toast for GitHubMessage Toast+...NelSupport Daily - in 2h 15 mRActivity MonitorAll ProcessesProcess NameBoosteroidWindowServerFirefoxCP Isolated Web ContentFirefoxFirefoxFirefoxCP Isolated Web ContentCursorUlViewService (Not Responding)VTDecoderXPCServiceFirefox GPU HelperSlack Helper (Renderer)FirefoxCP Isolated Web ContentFirefox GPU HelperFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentNotion Calendar Helper (Renderer)Notion Helper (Renderer)claudeFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentiTerm2Claude Helper (Renderer)FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentClaudeMem...2,10 GB1,09 GB947,8 MB846,5 MB841,9 MB769,0 MB746,9 MB732,1 MB634,9 MB582,3 MB469,3 MB444,4 MB434,7 MB424,2 MB423,4 MB398,9 MB376,0 MB370,0 MB337,6 MB331,2 MB325,9 MB301,8 MB279,5 MB269,3 MB234,6 MB228,2 MB194,2 MB188,0 MBMEMORY PRESSUREPhysical Memory:Memory Used:Cached Files:Swap Used:100% C78Wed 15 Apr 12:45:33CPUMemoryDiskThreads3621268874251026152529242425262523152113282315272459EnergyPorts59418 563125121172612418 908166250186127242120122122123124120174327721261181 789207124119718PID73364407429741466480144203084273372146734186336713801935480352763583143652430164817326548114850910358333689848786051956138728316049116,00 GB14,14 GB -1,85 GB4,65 GBApp Memory:Wired Memory:Compressed:NetworkUserlukas_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas7,92 GB2,98 GB2,66 GB...
|
NULL
|
-8831479241749656180
|
NULL
|
visual_change
|
ocr
|
NULL
|
BoosteroidHomeDMs++→Jiminny ... ~# curiosity_laD# BoosteroidHomeDMs++→Jiminny ... ~# curiosity_laD# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the people_of jimi...• Direct messages. Galya DimitrovaAneliya Angelova, ...€. Vasil VasilevSteliyan GeorgievAdelina Petrova, Ili...P. Adelina Petrova0. Nikolay Nikolov O2Galya Dimitrova, Ni...2 Galya Dimitrova, Ni...::: AppsJira CloudToastSearch Jiminny IncToastHomeMessagesapprovalAboutYesterday ~Today ~Toast APP 10:00 AMReviewprophet#469 JY-20574: Log default domain18 hours old • 2 files changed -@Steliyan GeorgievResolve Conflictsapp#11443 Test hublets latency4 months old • 20 files changed#11327 JY-19501 webhook basedopportunity sync5 months old - 13 files changedShow moreReview Toast APP12:37 PMPR review requested by @SteliyanGeorgiev#472JY-18909: Print company logodebugging information by @SteliyanGeorgiev| 1 commit • 1 file changedjiminny/prophet| Added by Toast for GitHubMessage Toast+...NelSupport Daily - in 2h 15 mRActivity MonitorAll ProcessesProcess NameBoosteroidWindowServerFirefoxCP Isolated Web ContentFirefoxFirefoxFirefoxCP Isolated Web ContentCursorUlViewService (Not Responding)VTDecoderXPCServiceFirefox GPU HelperSlack Helper (Renderer)FirefoxCP Isolated Web ContentFirefox GPU HelperFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentNotion Calendar Helper (Renderer)Notion Helper (Renderer)claudeFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentiTerm2Claude Helper (Renderer)FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentClaudeMem...2,10 GB1,09 GB947,8 MB846,5 MB841,9 MB769,0 MB746,9 MB732,1 MB634,9 MB582,3 MB469,3 MB444,4 MB434,7 MB424,2 MB423,4 MB398,9 MB376,0 MB370,0 MB337,6 MB331,2 MB325,9 MB301,8 MB279,5 MB269,3 MB234,6 MB228,2 MB194,2 MB188,0 MBMEMORY PRESSUREPhysical Memory:Memory Used:Cached Files:Swap Used:100% C78Wed 15 Apr 12:45:33CPUMemoryDiskThreads3621268874251026152529242425262523152113282315272459EnergyPorts59418 563125121172612418 908166250186127242120122122123124120174327721261181 789207124119718PID73364407429741466480144203084273372146734186336713801935480352763583143652430164817326548114850910358333689848786051956138728316049116,00 GB14,14 GB -1,85 GB4,65 GBApp Memory:Wired Memory:Compressed:NetworkUserlukas_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas7,92 GB2,98 GB2,66 GB...
|
NULL
|
|
20432
|
444
|
21
|
2026-04-15T08:56:17.828254+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776243377828_m2.jpg...
|
Firefox
|
Platform Team - Backlog - Jira — Work
|
True
|
jiminny.atlassian.net/jira/software/c/projects/JY/ jiminny.atlassian.net/jira/software/c/projects/JY/boards/37/backlog...
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Team - Backlog - Jira
Service-Desk - Queu Platform Team - Backlog - Jira
Service-Desk - Queues - Platform team - Service space - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Pipelines - jiminny/app
Feed — jiminny — Sentry
Inbox (1,551) - [EMAIL] - Jiminny Mail
For you - Confluence
For you - Confluence
Lukas Kovalik - Time Off
Lukas Kovalik - Time Off
Product Growth Platform | Userpilot
Product Growth Platform | Userpilot
Userpilot
Userpilot
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
Jiminny
Jiminny
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to:
Top Bar
Top Bar
Sidebar
Sidebar
Main Content
Main Content
Space navigation
Space navigation
Collapse sidebar [
Collapse sidebar [
Switch sites or apps
Switch sites or apps
Go to your Jira homepage
Search, press enter to navigate to advanced search with your text query
Create
Create
Rovo Ask Rovo
Ask Rovo
Notifications
Notifications
Help
Help
Settings
Settings
[EMAIL]
For you
For you
Recent
Recent
Starred
Starred
Apps
Apps
More actions for Apps
More actions for Apps
Spaces
Spaces
Create space
Create space
More actions for spaces
More actions for spaces
Recent
Service-Desk
Service-Desk
More actions for Service-Desk
More actions for Service-Desk
Jiminny (New)
Jiminny (New)
Jiminny (New)
Create board
Create board
More actions for Jiminny (New)
More actions for Jiminny (New)
Platform Team
Platform Team
Board actions
Board actions
SE Kanban
SE Kanban
Board actions
Board actions
Capture Team
Capture Team
Board actions
Board actions
Enterprise Stability Issues 🤕
Enterprise Stability Issues 🤕
Board actions
Board actions
Processing Team
Processing Team
Board actions
Board actions
More spaces
More spaces
Filters
Filters
More actions for Filters
More actions for Filters
Dashboards
Dashboards
Create dashboard
Create dashboard
More actions for Dashboards
More actions for Dashboards
Operations
Operations
More actions for Operations
More actions for Operations
Confluence , (opens new window)
Confluence
, (opens new window)
Teams , (opens new window)
Teams
, (opens new window)
open menu
open menu
Customise sidebar
Customise sidebar
Resize side navigation panel
Spaces
Spaces
/
Jiminny (New)
Jiminny (New)
Platform Team
Platform Team
Link contributing teams
Board actions
Board actions
Share
Automation
Give feedback
Give feedback
Enter full screen
Enter full screen
Summary
Summary
Timeline
Timeline
Backlog
Backlog
Active sprints
Active sprints
Calendar
Calendar
Reports
Reports
Testing Board
Testing Board
List
List
Forms
Forms
Components
Components
Development
Development
Code
Code
Security
Security
Releases
Releases
Deployments
Deployments
Archived work items
Archived work items
4 more tabs
More
4
Add to navigation
Results will be filtered below as you type to search or apply filters.
Search on current page
Filter by assignee
Filter assignees by Lukas Kovalik
Filter assignees by Ahmet Katranci
Filter assignees by Aneliya Angelova
Filter assignees by Galya Dimitrova
Filter assignees by George Tulev
Filter assignees by James Graham
+8
+8
Version
Version
Epic
Epic
Type
Type
Label
Label
Quick filters
Quick filters
Backlog insights
Backlog insights
View settings
View settings
More actions
More actions
Select all work items in sprint Platform Sprint 2 Q2
Platform Sprint 2 Q2 15 Apr – 28 Apr (15 work items)
Platform Sprint 2 Q2
Platform Sprint 2 Q2
15 Apr – 28 Apr
(15 work items)
Platform Sprint 2 Q2
15 work items
Not started (leftmost column): 31.5 of 38.5 (days)
In progress: 7 of 38.5 (days)
Completed (rightmost column): 0 of 38.5 (days)
Complete sprint
Complete sprint
Platform Sprint 2 Q2 actions
Platform Sprint 2 Q2 actions
Launch AJ Panorama Reports for Jiminny users Optimise nudges - lower the resources they need for execution
More actions Open workload by assignee summary modal...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Team - Backlog - Jira","depth":4,"bounds":{"left":0.00234375,"top":0.045138888,"width":0.017578125,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXRadioButton","text":"Service-Desk - Queues - Platform team - Service space - Jira","depth":4,"bounds":{"left":0.019921875,"top":0.045138888,"width":0.01796875,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app","depth":4,"bounds":{"left":0.037890624,"top":0.045138888,"width":0.01796875,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.055859376,"top":0.045138888,"width":0.017578125,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Feed — jiminny — Sentry","depth":4,"bounds":{"left":0.0734375,"top":0.045138888,"width":0.01796875,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Inbox (1,551) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.00234375,"top":0.07361111,"width":0.017578125,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"For you - Confluence","depth":4,"bounds":{"left":0.0,"top":0.11111111,"width":0.09375,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"For you - Confluence","depth":5,"bounds":{"left":0.015625,"top":0.12083333,"width":0.04296875,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Lukas Kovalik - Time Off","depth":4,"bounds":{"left":0.0,"top":0.13958333,"width":0.09375,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Lukas Kovalik - Time Off","depth":5,"bounds":{"left":0.015625,"top":0.14930555,"width":0.049609374,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Product Growth Platform | Userpilot","depth":4,"bounds":{"left":0.0,"top":0.16805555,"width":0.09375,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Product Growth Platform | Userpilot","depth":5,"bounds":{"left":0.015625,"top":0.17777778,"width":0.07304688,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Userpilot","depth":4,"bounds":{"left":0.0,"top":0.19652778,"width":0.09375,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Userpilot","depth":5,"bounds":{"left":0.015625,"top":0.20625,"width":0.01875,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.225,"width":0.09375,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app","depth":5,"bounds":{"left":0.015625,"top":0.23472223,"width":0.24101563,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.2534722,"width":0.09375,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.015625,"top":0.26319444,"width":0.015625,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.003125,"top":0.28333333,"width":0.08710937,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.003125,"top":0.97430557,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.01640625,"top":0.97430557,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.029296875,"top":0.97430557,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.0421875,"top":0.97430557,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.05546875,"top":0.97430557,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to:","depth":9,"bounds":{"left":0.10625,"top":0.068055555,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Top Bar","depth":10,"bounds":{"left":0.10625,"top":0.08472222,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Top Bar","depth":11,"bounds":{"left":0.10625,"top":0.08472222,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Sidebar","depth":10,"bounds":{"left":0.10625,"top":0.10138889,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sidebar","depth":11,"bounds":{"left":0.10625,"top":0.10138889,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Main Content","depth":10,"bounds":{"left":0.10625,"top":0.11805555,"width":0.034375,"height":0.0125},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Main Content","depth":11,"bounds":{"left":0.10625,"top":0.11805555,"width":0.034375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Space navigation","depth":10,"bounds":{"left":0.10625,"top":0.13472222,"width":0.04453125,"height":0.0125},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Space navigation","depth":11,"bounds":{"left":0.10625,"top":0.13472222,"width":0.04453125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Collapse sidebar [","depth":9,"bounds":{"left":0.0984375,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Collapse sidebar [","depth":11,"bounds":{"left":0.1046875,"top":0.05486111,"width":0.046484374,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Switch sites or apps","depth":10,"bounds":{"left":0.1125,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Switch sites or apps","depth":12,"bounds":{"left":0.11875,"top":0.05486111,"width":0.051953126,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Go to your Jira homepage","depth":9,"bounds":{"left":0.128125,"top":0.050694443,"width":0.034765624,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXComboBox","text":"Search, press enter to navigate to advanced search with your text query","depth":10,"bounds":{"left":0.38828126,"top":0.05486111,"width":0.28515625,"height":0.013888889},"help_text":"","placeholder":"Search","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Create","depth":10,"bounds":{"left":0.6832031,"top":0.050694443,"width":0.035546876,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create","depth":12,"bounds":{"left":0.6964844,"top":0.055555556,"width":0.017578125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Rovo Ask Rovo","depth":12,"bounds":{"left":0.89570314,"top":0.050694443,"width":0.0421875,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Ask Rovo","depth":14,"bounds":{"left":0.90898436,"top":0.055555556,"width":0.02421875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Notifications","depth":12,"bounds":{"left":0.9394531,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Notifications","depth":14,"bounds":{"left":0.94570315,"top":0.05486111,"width":0.032421876,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Help","depth":12,"bounds":{"left":0.95351565,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Help","depth":14,"bounds":{"left":0.9597656,"top":0.05486111,"width":0.01171875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Settings","depth":12,"bounds":{"left":0.9675781,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Settings","depth":14,"bounds":{"left":0.97382814,"top":0.05486111,"width":0.020703126,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"lukas.kovalik@jiminny.com","depth":12,"bounds":{"left":0.9824219,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"For you","depth":12,"bounds":{"left":0.0984375,"top":0.08680555,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"For you","depth":15,"bounds":{"left":0.1109375,"top":0.09166667,"width":0.01953125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Recent","depth":12,"bounds":{"left":0.0984375,"top":0.10902778,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Recent","depth":15,"bounds":{"left":0.1109375,"top":0.11388889,"width":0.018359374,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Starred","depth":12,"bounds":{"left":0.0984375,"top":0.13125,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Starred","depth":15,"bounds":{"left":0.1109375,"top":0.13611111,"width":0.019140625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Apps","depth":12,"bounds":{"left":0.0984375,"top":0.15347221,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Apps","depth":15,"bounds":{"left":0.1109375,"top":0.15833333,"width":0.013671875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Apps","depth":13,"bounds":{"left":0.18007812,"top":0.15625,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Apps","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Spaces","depth":12,"bounds":{"left":0.0984375,"top":0.17569445,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"Spaces","depth":15,"bounds":{"left":0.1109375,"top":0.18055555,"width":0.01953125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create space","depth":13,"bounds":{"left":0.16054687,"top":0.17847222,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create space","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for spaces","depth":13,"bounds":{"left":0.17148438,"top":0.17847222,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for spaces","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Recent","depth":16,"bounds":{"left":0.10546875,"top":0.20416667,"width":0.016015625,"height":0.010416667},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Service-Desk","depth":17,"bounds":{"left":0.103125,"top":0.22013889,"width":0.07929687,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Service-Desk","depth":20,"bounds":{"left":0.115625,"top":0.225,"width":0.035546876,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Service-Desk","depth":18,"bounds":{"left":0.18164062,"top":0.22291666,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Service-Desk","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Jiminny (New)","depth":17,"bounds":{"left":0.103125,"top":0.24236111,"width":0.07929687,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny (New)","depth":20,"bounds":{"left":0.115625,"top":0.24722221,"width":0.0375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Jiminny (New)","depth":18,"bounds":{"left":0.1046875,"top":0.24513888,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXMenuButton","text":"Create board","depth":18,"bounds":{"left":0.16054687,"top":0.24513888,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Create board","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Jiminny (New)","depth":18,"bounds":{"left":0.17148438,"top":0.24513888,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Jiminny (New)","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Platform Team","depth":19,"bounds":{"left":0.1078125,"top":0.26458332,"width":0.07460938,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Team","depth":22,"bounds":{"left":0.1203125,"top":0.26944444,"width":0.037890624,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.18007812,"top":0.2673611,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SE Kanban","depth":19,"bounds":{"left":0.1078125,"top":0.28680557,"width":0.07460938,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SE Kanban","depth":22,"bounds":{"left":0.1203125,"top":0.29166666,"width":0.028125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.18007812,"top":0.28958333,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Capture Team","depth":19,"bounds":{"left":0.1078125,"top":0.3090278,"width":0.07460938,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Capture Team","depth":22,"bounds":{"left":0.1203125,"top":0.31388888,"width":0.03671875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.18007812,"top":0.31180555,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Enterprise Stability Issues 🤕","depth":19,"bounds":{"left":0.1078125,"top":0.33125,"width":0.07460938,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Enterprise Stability Issues 🤕","depth":22,"bounds":{"left":0.1203125,"top":0.3361111,"width":0.059375,"height":0.027083334},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.18007812,"top":0.33402777,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Processing Team","depth":19,"bounds":{"left":0.1078125,"top":0.35347223,"width":0.07460938,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Processing Team","depth":22,"bounds":{"left":0.1203125,"top":0.35833332,"width":0.044921875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.18007812,"top":0.35625,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More spaces","depth":17,"bounds":{"left":0.103125,"top":0.37569445,"width":0.07929687,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More spaces","depth":20,"bounds":{"left":0.115625,"top":0.38055557,"width":0.03359375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Filters","depth":12,"bounds":{"left":0.0984375,"top":0.39791667,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Filters","depth":15,"bounds":{"left":0.1109375,"top":0.4027778,"width":0.016015625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Filters","depth":13,"bounds":{"left":0.18007812,"top":0.40069443,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Filters","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dashboards","depth":12,"bounds":{"left":0.0984375,"top":0.4201389,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Dashboards","depth":15,"bounds":{"left":0.1109375,"top":0.425,"width":0.031640626,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create dashboard","depth":13,"bounds":{"left":0.18242188,"top":0.42291668,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create dashboard","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Dashboards","depth":13,"bounds":{"left":0.19101563,"top":0.42291668,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Dashboards","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Operations","depth":12,"bounds":{"left":0.0984375,"top":0.44236112,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Operations","depth":15,"bounds":{"left":0.1109375,"top":0.44722223,"width":0.02890625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Operations","depth":13,"bounds":{"left":0.18007812,"top":0.4451389,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Operations","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Confluence , (opens new window)","depth":13,"bounds":{"left":0.0984375,"top":0.47291666,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Confluence","depth":17,"bounds":{"left":0.1109375,"top":0.47777778,"width":0.030078124,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", (opens new window)","depth":15,"bounds":{"left":0.0984375,"top":0.48472223,"width":0.05703125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Teams , (opens new window)","depth":13,"bounds":{"left":0.0984375,"top":0.49513888,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Teams","depth":17,"bounds":{"left":0.1109375,"top":0.5,"width":0.0171875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", (opens new window)","depth":15,"bounds":{"left":0.0984375,"top":0.5069444,"width":0.05703125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"open menu","depth":14,"bounds":{"left":0.16914062,"top":0.49791667,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"open menu","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Customise sidebar","depth":12,"bounds":{"left":0.0984375,"top":0.52569443,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Customise sidebar","depth":15,"bounds":{"left":0.1109375,"top":0.53055555,"width":0.048828125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Resize side navigation panel","depth":13,"bounds":{"left":0.24804688,"top":0.08541667,"width":0.07304688,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Spaces","depth":13,"bounds":{"left":0.196875,"top":0.08680555,"width":0.019140625,"height":0.016666668},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Spaces","depth":15,"bounds":{"left":0.196875,"top":0.08888889,"width":0.019140625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":13,"bounds":{"left":0.21992187,"top":0.08888889,"width":0.001953125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Jiminny (New)","depth":13,"bounds":{"left":0.22539063,"top":0.08680555,"width":0.037109375,"height":0.016666668},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny (New)","depth":15,"bounds":{"left":0.22539063,"top":0.08888889,"width":0.037109375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Platform Team","depth":10,"bounds":{"left":0.196875,"top":0.10625,"width":0.05390625,"height":0.016666668},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Platform Team","depth":11,"bounds":{"left":0.196875,"top":0.10625,"width":0.05390625,"height":0.017361112},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Link contributing teams","depth":10,"bounds":{"left":0.253125,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Board actions","depth":10,"bounds":{"left":0.26796874,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Share","depth":10,"bounds":{"left":0.9316406,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Automation","depth":10,"bounds":{"left":0.9472656,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give feedback","depth":10,"bounds":{"left":0.9628906,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Give feedback","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Enter full screen","depth":10,"bounds":{"left":0.9785156,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Enter full screen","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Summary","depth":13,"bounds":{"left":0.19375,"top":0.12847222,"width":0.0421875,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Summary","depth":15,"bounds":{"left":0.20703125,"top":0.13333334,"width":0.025,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Timeline","depth":13,"bounds":{"left":0.2375,"top":0.12847222,"width":0.039453126,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Timeline","depth":15,"bounds":{"left":0.25078124,"top":0.13333334,"width":0.022265624,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Backlog","depth":13,"bounds":{"left":0.27851564,"top":0.12847222,"width":0.03828125,"height":0.022222223},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Backlog","depth":15,"bounds":{"left":0.29179686,"top":0.13333334,"width":0.02109375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Active sprints","depth":13,"bounds":{"left":0.31835938,"top":0.12847222,"width":0.052734375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Active sprints","depth":15,"bounds":{"left":0.33164063,"top":0.13333334,"width":0.035546876,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Calendar","depth":13,"bounds":{"left":0.37265626,"top":0.12847222,"width":0.041015625,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Calendar","depth":15,"bounds":{"left":0.3859375,"top":0.13333334,"width":0.023828125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Reports","depth":13,"bounds":{"left":0.4152344,"top":0.12847222,"width":0.0375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Reports","depth":15,"bounds":{"left":0.4285156,"top":0.13333334,"width":0.0203125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Testing Board","depth":13,"bounds":{"left":0.4542969,"top":0.12847222,"width":0.0546875,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Testing Board","depth":15,"bounds":{"left":0.4675781,"top":0.13333334,"width":0.0359375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"List","depth":13,"bounds":{"left":0.51054686,"top":0.12847222,"width":0.0265625,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"List","depth":15,"bounds":{"left":0.52382815,"top":0.13333334,"width":0.009375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Forms","depth":13,"bounds":{"left":0.53867185,"top":0.12847222,"width":0.03359375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Forms","depth":15,"bounds":{"left":0.55195314,"top":0.13333334,"width":0.01640625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Components","depth":13,"bounds":{"left":0.5738281,"top":0.12847222,"width":0.050390624,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Components","depth":15,"bounds":{"left":0.5871094,"top":0.13333334,"width":0.033203125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Development","depth":13,"bounds":{"left":0.62578124,"top":0.12847222,"width":0.051953126,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Development","depth":15,"bounds":{"left":0.6390625,"top":0.13333334,"width":0.034765624,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":13,"bounds":{"left":0.67929685,"top":0.12847222,"width":0.030859375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":15,"bounds":{"left":0.69257814,"top":0.13333334,"width":0.013671875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security","depth":13,"bounds":{"left":0.71171874,"top":0.12847222,"width":0.0390625,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security","depth":15,"bounds":{"left":0.725,"top":0.13333334,"width":0.021875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Releases","depth":13,"bounds":{"left":0.7523438,"top":0.12847222,"width":0.041015625,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Releases","depth":15,"bounds":{"left":0.765625,"top":0.13333334,"width":0.023828125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Deployments","depth":13,"bounds":{"left":0.7949219,"top":0.12847222,"width":0.0515625,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Deployments","depth":15,"bounds":{"left":0.8082031,"top":0.13333334,"width":0.034375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Archived work items","depth":13,"bounds":{"left":0.8480469,"top":0.12847222,"width":0.0703125,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Archived work items","depth":15,"bounds":{"left":0.8613281,"top":0.13333334,"width":0.053125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"4 more tabs","depth":11,"bounds":{"left":0.9199219,"top":0.12847222,"width":0.030859375,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":12,"bounds":{"left":0.9238281,"top":0.13333334,"width":0.013671875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":13,"bounds":{"left":0.9421875,"top":0.13472222,"width":0.003125,"height":0.010416667},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add to navigation","depth":11,"bounds":{"left":0.95234376,"top":0.13125,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Results will be filtered below as you type to search or apply filters.","depth":13,"bounds":{"left":0.196875,"top":0.17638889,"width":0.17109375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Search on current page","depth":13,"bounds":{"left":0.20664063,"top":0.16388889,"width":0.059375,"height":0.023611112},"placeholder":"Search backlog","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Filter by assignee","depth":14,"bounds":{"left":0.271875,"top":0.16527778,"width":0.0453125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Filter assignees by Lukas Kovalik","depth":13,"bounds":{"left":0.2734375,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Filter assignees by Ahmet Katranci","depth":14,"bounds":{"left":0.2828125,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Filter assignees by Aneliya Angelova","depth":13,"bounds":{"left":0.2921875,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Filter assignees by Galya Dimitrova","depth":13,"bounds":{"left":0.3015625,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Filter assignees by George Tulev","depth":13,"bounds":{"left":0.3109375,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Filter assignees by James Graham","depth":13,"bounds":{"left":0.3203125,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"+8","depth":13,"bounds":{"left":0.328125,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"+8","depth":15,"bounds":{"left":0.33125,"top":0.17083333,"width":0.00625,"height":0.010416667},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Version","depth":15,"bounds":{"left":0.34375,"top":0.16458334,"width":0.036328126,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Version","depth":18,"bounds":{"left":0.3484375,"top":0.16944444,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Epic","depth":15,"bounds":{"left":0.38320312,"top":0.16458334,"width":0.02734375,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Epic","depth":18,"bounds":{"left":0.38789064,"top":0.16944444,"width":0.0109375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Type","depth":15,"bounds":{"left":0.41367188,"top":0.16458334,"width":0.0296875,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Type","depth":18,"bounds":{"left":0.41835937,"top":0.16944444,"width":0.01328125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Label","depth":15,"bounds":{"left":0.4464844,"top":0.16458334,"width":0.03046875,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Label","depth":18,"bounds":{"left":0.45117188,"top":0.16944444,"width":0.0140625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Quick filters","depth":15,"bounds":{"left":0.48007813,"top":0.16458334,"width":0.048046876,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Quick filters","depth":18,"bounds":{"left":0.48476562,"top":0.16944444,"width":0.031640626,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Backlog insights","depth":12,"bounds":{"left":0.9472656,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Backlog insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"View settings","depth":12,"bounds":{"left":0.9628906,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"View settings","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions","depth":12,"bounds":{"left":0.9785156,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Select all work items in sprint Platform Sprint 2 Q2","depth":19,"bounds":{"left":0.20351562,"top":0.1701389,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Platform Sprint 2 Q2 15 Apr – 28 Apr (15 work items)","depth":19,"bounds":{"left":0.21289062,"top":0.1701389,"width":0.14960937,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXHeading","text":"Platform Sprint 2 Q2","depth":20,"bounds":{"left":0.22382812,"top":0.17152777,"width":0.053515624,"height":0.013888889},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Platform Sprint 2 Q2","depth":21,"bounds":{"left":0.22382812,"top":0.17222223,"width":0.053515624,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"15 Apr – 28 Apr","depth":21,"bounds":{"left":0.28046876,"top":0.17222223,"width":0.039453126,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(15 work items)","depth":21,"bounds":{"left":0.3214844,"top":0.17222223,"width":0.039453126,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Platform Sprint 2 Q2","depth":21,"bounds":{"left":0.3625,"top":0.17916666,"width":0.05234375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"15 work items","depth":21,"bounds":{"left":0.41640624,"top":0.17916666,"width":0.03515625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Not started (leftmost column): 31.5 of 38.5 (days)","depth":19,"bounds":{"left":0.8882812,"top":0.17222223,"width":0.111718774,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"In progress: 7 of 38.5 (days)","depth":19,"bounds":{"left":0.89921874,"top":0.17222223,"width":0.07382812,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Completed (rightmost column): 0 of 38.5 (days)","depth":19,"bounds":{"left":0.91015625,"top":0.17222223,"width":0.08984375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Complete sprint","depth":18,"bounds":{"left":0.91484374,"top":0.1701389,"width":0.051171876,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Complete sprint","depth":20,"bounds":{"left":0.9195312,"top":0.17222223,"width":0.041796874,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Platform Sprint 2 Q2 actions","depth":18,"bounds":{"left":0.96914065,"top":0.1701389,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Platform Sprint 2 Q2 actions","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Launch AJ Panorama Reports for Jiminny users Optimise nudges - lower the resources they need for execution","depth":19,"bounds":{"left":0.20625,"top":0.19166666,"width":0.24609375,"height":0.010416667},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"More actions Open workload by assignee summary modal","depth":19,"bounds":{"left":0.26796874,"top":0.20763889,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
-8831397612307218968
|
1878404729068836074
|
idle
|
accessibility
|
NULL
|
Platform Team - Backlog - Jira
Service-Desk - Queu Platform Team - Backlog - Jira
Service-Desk - Queues - Platform team - Service space - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Pipelines - jiminny/app
Feed — jiminny — Sentry
Inbox (1,551) - [EMAIL] - Jiminny Mail
For you - Confluence
For you - Confluence
Lukas Kovalik - Time Off
Lukas Kovalik - Time Off
Product Growth Platform | Userpilot
Product Growth Platform | Userpilot
Userpilot
Userpilot
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
Jiminny
Jiminny
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to:
Top Bar
Top Bar
Sidebar
Sidebar
Main Content
Main Content
Space navigation
Space navigation
Collapse sidebar [
Collapse sidebar [
Switch sites or apps
Switch sites or apps
Go to your Jira homepage
Search, press enter to navigate to advanced search with your text query
Create
Create
Rovo Ask Rovo
Ask Rovo
Notifications
Notifications
Help
Help
Settings
Settings
[EMAIL]
For you
For you
Recent
Recent
Starred
Starred
Apps
Apps
More actions for Apps
More actions for Apps
Spaces
Spaces
Create space
Create space
More actions for spaces
More actions for spaces
Recent
Service-Desk
Service-Desk
More actions for Service-Desk
More actions for Service-Desk
Jiminny (New)
Jiminny (New)
Jiminny (New)
Create board
Create board
More actions for Jiminny (New)
More actions for Jiminny (New)
Platform Team
Platform Team
Board actions
Board actions
SE Kanban
SE Kanban
Board actions
Board actions
Capture Team
Capture Team
Board actions
Board actions
Enterprise Stability Issues 🤕
Enterprise Stability Issues 🤕
Board actions
Board actions
Processing Team
Processing Team
Board actions
Board actions
More spaces
More spaces
Filters
Filters
More actions for Filters
More actions for Filters
Dashboards
Dashboards
Create dashboard
Create dashboard
More actions for Dashboards
More actions for Dashboards
Operations
Operations
More actions for Operations
More actions for Operations
Confluence , (opens new window)
Confluence
, (opens new window)
Teams , (opens new window)
Teams
, (opens new window)
open menu
open menu
Customise sidebar
Customise sidebar
Resize side navigation panel
Spaces
Spaces
/
Jiminny (New)
Jiminny (New)
Platform Team
Platform Team
Link contributing teams
Board actions
Board actions
Share
Automation
Give feedback
Give feedback
Enter full screen
Enter full screen
Summary
Summary
Timeline
Timeline
Backlog
Backlog
Active sprints
Active sprints
Calendar
Calendar
Reports
Reports
Testing Board
Testing Board
List
List
Forms
Forms
Components
Components
Development
Development
Code
Code
Security
Security
Releases
Releases
Deployments
Deployments
Archived work items
Archived work items
4 more tabs
More
4
Add to navigation
Results will be filtered below as you type to search or apply filters.
Search on current page
Filter by assignee
Filter assignees by Lukas Kovalik
Filter assignees by Ahmet Katranci
Filter assignees by Aneliya Angelova
Filter assignees by Galya Dimitrova
Filter assignees by George Tulev
Filter assignees by James Graham
+8
+8
Version
Version
Epic
Epic
Type
Type
Label
Label
Quick filters
Quick filters
Backlog insights
Backlog insights
View settings
View settings
More actions
More actions
Select all work items in sprint Platform Sprint 2 Q2
Platform Sprint 2 Q2 15 Apr – 28 Apr (15 work items)
Platform Sprint 2 Q2
Platform Sprint 2 Q2
15 Apr – 28 Apr
(15 work items)
Platform Sprint 2 Q2
15 work items
Not started (leftmost column): 31.5 of 38.5 (days)
In progress: 7 of 38.5 (days)
Completed (rightmost column): 0 of 38.5 (days)
Complete sprint
Complete sprint
Platform Sprint 2 Q2 actions
Platform Sprint 2 Q2 actions
Launch AJ Panorama Reports for Jiminny users Optimise nudges - lower the resources they need for execution
More actions Open workload by assignee summary modal...
|
NULL
|
|
8056
|
154
|
4
|
2026-04-14T06:26:29.523352+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776147989523_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp100% C-zshDOCKERLanguages• 881DEV (-zsh)all languagesO 82APP (-zsh)• *3-zsh• x4|-zsh• 285-zsh86-zsh₴7* Unable to acce...Tue 14 Apr 9:26:29181O x8monitorsid: 1id: 2audio devicesdisabledyou are using local processing. all your data stays on your computer.warning: telemetry isenabled.onlyerror-level data willbe sent.to disable, usethe --disable-telemetry flag.checklatestchanges here:https://github.com/screenpipe/screenpipe/releases2026-04-14T09:23:19.025225ZINFO screenpipe: starting UI event capture2026-04-14T09:23:19.024042ZINFOscreenpipe_core::pipes:pipe scheduler started (generation 2)2026-04-14T09:23:19.034460Z2026-04-14T09:23:19.035048ZWARNscreenpipe: pi agent install failed: bun not found - install from https://bun.shINFOscreenpipe_engine::power::manager: initial powerprofile: Performance Con_ac=true, battery=Some(100))2026-04-14T09:23:19.041739ZINFOscreenpipe_engine::ui_recorder: Starting Ul event capture2026-04-14T09:23:19.057947ZINFO2026-04-14T09:23:19.058064Zscreenpipe_engine::ui_recorder: UI recording session started: c7672ba6-54dd-483e-9512-949b51a2bd49INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)2026-04-14T09:23:19.058114ZINFOscreenpipe_engine::hot_frame_cache: hot_frame_cache: warmingfrom DB (2026-04-13 06:23:19.058103 UTC to 2026-04-1406:23:19.058103 UTC)2026-04-14T09:23:19.062532ZINFOscreenpipe_engine::meeting_detector: meeting v2: detection loop started(base_interval=5s, profiles=12)2026-04-14T09:23:19.066551ZINFOscreenpipe_engine::server: Server listening on [IP_ADDRESS]:30302026-04-14T09:23:19.080775ZINFO2026-04-14T09:23:19.697314Zscreenpipe_connect: :mdns: mdns: advertising screenpipe on port 3030INFOscreenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 3756 frameentries, coverage from 2026-04-13 06:23:19.058103 UTC2026-04-14T09:23:19.985445ZINFOscreenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)2026-04-14T09:23:19.985474ZINFOscreenpipe_engine::vision_manager::manager: Startingevent-driven capture formonitor 1 (device: monitor_1)2026-04-14T09:23:19.985515ZINFOscreenpipe_engine::event_driven_capture:event-driven capture started for monitor1 (device: monitor_1)2026-04-14T09:23:20.492622ZINFOscreenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (2560x1440)2026-04-14T09:23:20.492664ZINFOscreenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)2026-04-14T09:23:20.492694ZINFOscreenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (polling every 5 seconds)2026-04-14T09:23:20.492726ZINFOscreenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)2026-04-14T09:23:21.313246ZINFO2026-04-14T09:23:22.387611Zsck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900,2fps, 0 excluded)INFO2026-04-14T09:23:22.954948Zsck_rs::stream_manager: persistent SCK stream started for display 2 (2560x1440, 2fps, 0 excluded)INFOscreenpipe_engine::event_driven_capture: startup capture for monitor 1:frame_id=8037, dur=1082ms2026-04-14T09:23:23.488645ZINFOscreenpipe_engine::event_driven_capture: startup capture for monitor 2:frame_id=8038, dur=1012ms2026-04-14T09:23:24.063719ZINFOscreenpipe_engine::retention: retention: initialized with 14d retention2026-04-14T09:23:24.063951ZINFOscreenpipe: local retention auto-enabled (14 days)2026-04-14T09:24:19.745739ZINFO2026-04-14T09:24:23.350916ZINFOscreenpipe_engine::snapshot_compaction: snapshotcompaction: found 108eligible framesscreenpipe_engine::snapshot_compaction: snapshotcompaction: 51 frames, 6.7MB → 2.6MB (2.6x), 51 JPEGs deleted2026-04-14T09:24:26.531119ZINFOscreenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames,10.6MB → 3.9MB (2.7x), 55 JPEGs deleted...
|
NULL
|
-8831154632928919260
|
NULL
|
idle
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp100% C-zshDOCKERLanguages• 881DEV (-zsh)all languagesO 82APP (-zsh)• *3-zsh• x4|-zsh• 285-zsh86-zsh₴7* Unable to acce...Tue 14 Apr 9:26:29181O x8monitorsid: 1id: 2audio devicesdisabledyou are using local processing. all your data stays on your computer.warning: telemetry isenabled.onlyerror-level data willbe sent.to disable, usethe --disable-telemetry flag.checklatestchanges here:https://github.com/screenpipe/screenpipe/releases2026-04-14T09:23:19.025225ZINFO screenpipe: starting UI event capture2026-04-14T09:23:19.024042ZINFOscreenpipe_core::pipes:pipe scheduler started (generation 2)2026-04-14T09:23:19.034460Z2026-04-14T09:23:19.035048ZWARNscreenpipe: pi agent install failed: bun not found - install from https://bun.shINFOscreenpipe_engine::power::manager: initial powerprofile: Performance Con_ac=true, battery=Some(100))2026-04-14T09:23:19.041739ZINFOscreenpipe_engine::ui_recorder: Starting Ul event capture2026-04-14T09:23:19.057947ZINFO2026-04-14T09:23:19.058064Zscreenpipe_engine::ui_recorder: UI recording session started: c7672ba6-54dd-483e-9512-949b51a2bd49INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)2026-04-14T09:23:19.058114ZINFOscreenpipe_engine::hot_frame_cache: hot_frame_cache: warmingfrom DB (2026-04-13 06:23:19.058103 UTC to 2026-04-1406:23:19.058103 UTC)2026-04-14T09:23:19.062532ZINFOscreenpipe_engine::meeting_detector: meeting v2: detection loop started(base_interval=5s, profiles=12)2026-04-14T09:23:19.066551ZINFOscreenpipe_engine::server: Server listening on [IP_ADDRESS]:30302026-04-14T09:23:19.080775ZINFO2026-04-14T09:23:19.697314Zscreenpipe_connect: :mdns: mdns: advertising screenpipe on port 3030INFOscreenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 3756 frameentries, coverage from 2026-04-13 06:23:19.058103 UTC2026-04-14T09:23:19.985445ZINFOscreenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)2026-04-14T09:23:19.985474ZINFOscreenpipe_engine::vision_manager::manager: Startingevent-driven capture formonitor 1 (device: monitor_1)2026-04-14T09:23:19.985515ZINFOscreenpipe_engine::event_driven_capture:event-driven capture started for monitor1 (device: monitor_1)2026-04-14T09:23:20.492622ZINFOscreenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (2560x1440)2026-04-14T09:23:20.492664ZINFOscreenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)2026-04-14T09:23:20.492694ZINFOscreenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (polling every 5 seconds)2026-04-14T09:23:20.492726ZINFOscreenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)2026-04-14T09:23:21.313246ZINFO2026-04-14T09:23:22.387611Zsck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900,2fps, 0 excluded)INFO2026-04-14T09:23:22.954948Zsck_rs::stream_manager: persistent SCK stream started for display 2 (2560x1440, 2fps, 0 excluded)INFOscreenpipe_engine::event_driven_capture: startup capture for monitor 1:frame_id=8037, dur=1082ms2026-04-14T09:23:23.488645ZINFOscreenpipe_engine::event_driven_capture: startup capture for monitor 2:frame_id=8038, dur=1012ms2026-04-14T09:23:24.063719ZINFOscreenpipe_engine::retention: retention: initialized with 14d retention2026-04-14T09:23:24.063951ZINFOscreenpipe: local retention auto-enabled (14 days)2026-04-14T09:24:19.745739ZINFO2026-04-14T09:24:23.350916ZINFOscreenpipe_engine::snapshot_compaction: snapshotcompaction: found 108eligible framesscreenpipe_engine::snapshot_compaction: snapshotcompaction: 51 frames, 6.7MB → 2.6MB (2.6x), 51 JPEGs deleted2026-04-14T09:24:26.531119ZINFOscreenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames,10.6MB → 3.9MB (2.7x), 55 JPEGs deleted...
|
NULL
|
|
27922
|
580
|
90
|
2026-04-15T14:02:10.081052+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776261730081_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
85741140766711955104/185Imperial Age5 Magnus Olafs 85741140766711955104/185Imperial Age5 Magnus Olafsson: 28716/28716Right-click to garrison inside this ram....
|
NULL
|
-8830863039439881194
|
NULL
|
click
|
ocr
|
NULL
|
85741140766711955104/185Imperial Age5 Magnus Olafs 85741140766711955104/185Imperial Age5 Magnus Olafsson: 28716/28716Right-click to garrison inside this ram....
|
NULL
|
|
75266
|
1876
|
22
|
2026-04-23T10:53:03.024174+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-23/1776 /Users/lukas/.screenpipe/data/data/2026-04-23/1776941583024_m2.jpg...
|
PhpStorm
|
faVsco.js – AutomatedReportsRepository.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20157-AJ-report-not-se Project: faVsco.js, menu
JY-20157-AJ-report-not-send-notification, menu
Start Listening for PHP Debug Connections
AutomatedReportsCommandTest
Run 'AutomatedReportsCommandTest'
Debug 'AutomatedReportsCommandTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
16
7
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Carbon\CarbonImmutable;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\DB;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSort;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSortDirection;
class AutomatedReportsRepository
{
/**
* Create a new automated report
*
* @param array $data
*
* @return AutomatedReport
*/
public function create(array $data): AutomatedReport
{
return AutomatedReport::create($data);
}
/**
* Find an automated report by UUID
*
* @param string $uuid
*
* @return AutomatedReport|null
*/
public function findByUuid(string $uuid): ?AutomatedReport
{
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($uuid))->first();
}
public function findByIdOrUuid(string $idOrUuid): ?AutomatedReport
{
if (is_numeric($idOrUuid)) {
return AutomatedReport::find((int) $idOrUuid);
}
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($idOrUuid))->first();
}
/**
* Retrieve all standard (non-Ask Jiminny) automated reports.
*
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAllStandardReports(
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->whereNot('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->get();
}
/**
* Retrieve all Ask Jiminny reports created by the given user.
*
* @param User $user The user whose reports to retrieve.
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAskJiminnyReportsByUser(
User $user,
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->where('created_by', $user->getId())
->get();
}
private function buildSortedQuery(string $sortColumn, string $sortDirection): \Illuminate\Database\Eloquent\Builder
{
$allowedColumns = ['created_by', 'created_at'];
if (! in_array($sortColumn, $allowedColumns)) {
$sortColumn = 'created_at';
}
$sortDirection = strtolower($sortDirection) === 'asc' ? 'asc' : 'desc';
$query = AutomatedReport::query()->with(['creator', 'team']);
if ($sortColumn === 'created_by') {
$query->leftJoin('users', 'users.id', '=', 'automated_reports.created_by')
->orderByRaw("users.name COLLATE utf8mb4_unicode_ci {$sortDirection}")
->select('automated_reports.*');
} else {
$query->orderBy($sortColumn, $sortDirection);
}
return $query;
}
/**
* Get all active Ask Jiminny reports whose expiry date has passed.
*
* @return Collection<AutomatedReport>
*/
public function getExpiredActiveAskJiminnyReports(): Collection
{
return AutomatedReport::where('status', true)
->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->whereNotNull('expires_at')
->where('expires_at', '<', now()->toDateString())
->get();
}
/**
* Get all active and enabled reports with active teams for the specified frequency.
*
* @param string $frequency
*
* @return Collection<AutomatedReport>
*/
public function getActiveReportsByFrequency(string $frequency): Collection
{
return AutomatedReport::where('automated_reports.status', true)
->where('automated_reports.frequency', $frequency)
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->where('teams.status', Team::STATUS_ACTIVE)
->where(function ($query) {
$query->whereNull('automated_reports.expires_at')
->orWhere('automated_reports.expires_at', '>=', now()->toDateString());
})
->select('automated_reports.*')
->get();
}
/**
* Update an automated report
*
* @param AutomatedReport $report
* @param array $data
*
* @return AutomatedReport
*/
public function update(AutomatedReport $report, array $data): AutomatedReport
{
$report->update($data);
return $report;
}
/**
* Create a new automated report result.
*
* @param array $data The data to create the automated report result with.
*
* @return AutomatedReportResult The newly created automated report result.
*/
public function createResult(array $data): AutomatedReportResult
{
return AutomatedReportResult::create($data);
}
/**
* Find an automated report result by UUID.
*
* @param string $uuid The UUID to find the automated report result with.
*
* @return AutomatedReportResult|null The automated report result if found, otherwise null.
*/
public function findResultByUuid(string $uuid): ?AutomatedReportResult
{
return AutomatedReportResult::where('uuid', AutomatedReportResult::toOptimized($uuid))->first();
}
public function findResultByUuidForUser(string $uuid, User $user): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('uuid', AutomatedReportResult::toOptimized($uuid))
->whereHas('report', static function ($query) use ($user): void {
$query->where('team_id', $user->getTeamId())
->where('created_by', $user->getId());
})
->first();
}
public function findChildResult(AutomatedReportResult $result, string $type): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('parent_id', $result->getId())
->where('media_type', $type)
->first();
}
public function findLatestDefaultOrFailedResult(AutomatedReport $report): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('report_id', $report->getId())
->whereIn('status', [AutomatedReportResult::STATUS_DEFAULT, AutomatedReportResult::STATUS_FAILED])
->latest()
->first();
}
public function getGeneratedNotSentResults(): Collection
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNull('sent_at')
->where('status', AutomatedReportResult::STATUS_GENERATED)
->whereHas('report')
->with('report')
->get();
}
public function getPaginatedUserReports(
User $user,
ReportSort $sort,
ReportSortDirection $sortDirection,
int $resultsPerPage,
int $page,
?Carbon $fromDate,
?Carbon $toDate,
array $teamIds,
array $reportTypes,
?string $name,
): LengthAwarePaginator {
$query = AutomatedReportResult::query()
->whereNotNull('automated_report_results.generated_at')
->join('automated_reports', 'automated_report_results.report_id', '=', 'automated_reports.id')
->where(fn (Builder $q) => $this->applyUserAccessScope($q, $user))
->orderByRaw("$sort->value COLLATE utf8mb4_unicode_ci {$sortDirection->value}")
->select('automated_report_results.*')
->with('report.team');
if ($fromDate !== null && $toDate !== null) {
$query->whereBetween('generated_at', [$fromDate, $toDate]);
}
if (! empty($teamIds)) {
$query->where(function ($q) use ($teamIds) {
foreach ($teamIds as $id) {
$q->orWhereJsonContains('automated_reports.groups', $id);
}
});
}
if (! empty($reportTypes)) {
$query->whereIn('automated_reports.type', $reportTypes);
}
if (! empty($name)) {
$query->whereLike('name', "%$name%");
}
return $query->paginate($resultsPerPage, ['*'], 'page', $page);
}
public function countUserReports(User $user): int
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
// ->whereNotNull('sent_at')
->whereHas('report', function ($q) use ($user) {
$q->where('team_id', $user->getTeamId())
->whereJsonContains('recipients->users', $user->getId());
})
->count();
}
public function countAllUserReports(User $user): int
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
// ->whereNotNull('sent_at')
->whereHas('report', fn (Builder $q) => $this->applyUserAccessScope($q, $user))
->count();
}
/**
* Restrict a query on the automated_reports table to reports the given user is allowed to see.
*
* Matches the customer-facing audience:
* - explicit user recipients (recipients.users)
* - members of any of the report's groups (Ask Jiminny reports)
*/
private function applyUserAccessScope(Builder $query, User $user): void
{
$userId = $user->getId();
$groupId = $user->getGroupId();
$query
->where('automated_reports.team_id', $user->getTeamId())
->where(function (Builder $q) use ($userId, $groupId): void {
$q->whereJsonContains('automated_reports.recipients->users', $userId);
if ($groupId !== null) {
$q->orWhere(function (Builder $sub) use ($groupId): void {
$sub->where('automated_reports.type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->whereJsonContains('automated_reports.groups', $groupId);
});
}
});
}
/**
* Get report IDs for a specific team
*
* @param Team $team
*
* @return \Illuminate\Support\Collection
*/
public function getReportIdsByTeam(Team $team): \Illuminate\Support\Collection
{
return AutomatedReport::where('team_id', $team->getId())->pluck('id');
}
/**
* Get all reports for a specific team
*
* @param Team $team
*
* @return Collection
*/
public function getReportsByTeam(Team $team): Collection
{
return AutomatedReport::where('team_id', $team->getId())->get();
}
/**
* Get all report results for a specific report
*
* @param AutomatedReport $report
*
* @return Collection
*/
public function getResultsByReport(AutomatedReport $report): Collection
{
return $this->getResultsByReportQuery($report)->get();
}
public function getResultsByReportQuery(AutomatedReport $report): Builder
{
return AutomatedReportResult::where('report_id', $report->getId());
}
public function getReportResultsQueryForRetention(Team $team, CarbonImmutable $retentionDate): Builder
{
$reportIds = $this->getReportIdsByTeam($team);
return AutomatedReportResult::query()->whereIn('report_id', $reportIds)
->whereRaw('IFNULL(generated_at, created_at) <= ?', [$retentionDate]);
}
/**
* @param int|null $teamId Optional team ID to filter results
*
* @return \Illuminate\Support\Collection<int, int> Collection of team IDs
*/
public function getTeamIdsWithReportsResults(?int $teamId = null): \Illuminate\Support\Collection
{
$query = DB::table('automated_reports')
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->select('teams.id')
->distinct();
if ($teamId !== null) {
$query->where('teams.id', $teamId);
}
return $query->pluck('teams.id');
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.25731382,"top":0.019952115,"width":0.03856383,"height":0.025538707},"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20157-AJ-report-not-send-notification, menu","depth":5,"bounds":{"left":0.29587767,"top":0.019952115,"width":0.10139628,"height":0.025538707},"help_text":"Git Branch: JY-20157-AJ-report-not-send-notification","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8171542,"top":0.019952115,"width":0.011303191,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AutomatedReportsCommandTest","depth":6,"bounds":{"left":0.8324468,"top":0.019952115,"width":0.0831117,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AutomatedReportsCommandTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AutomatedReportsCommandTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"16","depth":4,"bounds":{"left":0.7290558,"top":0.17478053,"width":0.009640957,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.7406915,"top":0.17478053,"width":0.0076462766,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.7503325,"top":0.17478053,"width":0.00731383,"height":0.015163607},"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7593085,"top":0.17318435,"width":0.00731383,"height":0.018355945},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.76662236,"top":0.17318435,"width":0.006981383,"height":0.018355945},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Repositories;\n\nuse Carbon\\CarbonImmutable;\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Database\\Eloquent\\Collection;\nuse Illuminate\\Pagination\\LengthAwarePaginator;\nuse Illuminate\\Support\\Facades\\DB;\nuse Jiminny\\Models\\AutomatedReport;\nuse Jiminny\\Models\\AutomatedReportResult;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\ReportSort;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\ReportSortDirection;\n\nclass AutomatedReportsRepository\n{\n /**\n * Create a new automated report\n *\n * @param array $data\n *\n * @return AutomatedReport\n */\n public function create(array $data): AutomatedReport\n {\n return AutomatedReport::create($data);\n }\n\n /**\n * Find an automated report by UUID\n *\n * @param string $uuid\n *\n * @return AutomatedReport|null\n */\n public function findByUuid(string $uuid): ?AutomatedReport\n {\n return AutomatedReport::where('uuid', AutomatedReport::toOptimized($uuid))->first();\n }\n\n public function findByIdOrUuid(string $idOrUuid): ?AutomatedReport\n {\n if (is_numeric($idOrUuid)) {\n return AutomatedReport::find((int) $idOrUuid);\n }\n\n return AutomatedReport::where('uuid', AutomatedReport::toOptimized($idOrUuid))->first();\n }\n\n /**\n * Retrieve all standard (non-Ask Jiminny) automated reports.\n *\n * @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.\n * @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.\n *\n * @return Collection<AutomatedReport>\n */\n public function getAllStandardReports(\n string $sortColumn = 'created_at',\n string $sortDirection = 'desc'\n ): Collection {\n return $this->buildSortedQuery($sortColumn, $sortDirection)\n ->whereNot('type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->get();\n }\n\n /**\n * Retrieve all Ask Jiminny reports created by the given user.\n *\n * @param User $user The user whose reports to retrieve.\n * @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.\n * @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.\n *\n * @return Collection<AutomatedReport>\n */\n public function getAskJiminnyReportsByUser(\n User $user,\n string $sortColumn = 'created_at',\n string $sortDirection = 'desc'\n ): Collection {\n return $this->buildSortedQuery($sortColumn, $sortDirection)\n ->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->where('created_by', $user->getId())\n ->get();\n }\n\n private function buildSortedQuery(string $sortColumn, string $sortDirection): \\Illuminate\\Database\\Eloquent\\Builder\n {\n $allowedColumns = ['created_by', 'created_at'];\n if (! in_array($sortColumn, $allowedColumns)) {\n $sortColumn = 'created_at';\n }\n\n $sortDirection = strtolower($sortDirection) === 'asc' ? 'asc' : 'desc';\n\n $query = AutomatedReport::query()->with(['creator', 'team']);\n\n if ($sortColumn === 'created_by') {\n $query->leftJoin('users', 'users.id', '=', 'automated_reports.created_by')\n ->orderByRaw(\"users.name COLLATE utf8mb4_unicode_ci {$sortDirection}\")\n ->select('automated_reports.*');\n } else {\n $query->orderBy($sortColumn, $sortDirection);\n }\n\n return $query;\n }\n\n /**\n * Get all active Ask Jiminny reports whose expiry date has passed.\n *\n * @return Collection<AutomatedReport>\n */\n public function getExpiredActiveAskJiminnyReports(): Collection\n {\n return AutomatedReport::where('status', true)\n ->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->whereNotNull('expires_at')\n ->where('expires_at', '<', now()->toDateString())\n ->get();\n }\n\n /**\n * Get all active and enabled reports with active teams for the specified frequency.\n *\n * @param string $frequency\n *\n * @return Collection<AutomatedReport>\n */\n public function getActiveReportsByFrequency(string $frequency): Collection\n {\n return AutomatedReport::where('automated_reports.status', true)\n ->where('automated_reports.frequency', $frequency)\n ->join('teams', 'automated_reports.team_id', '=', 'teams.id')\n ->where('teams.status', Team::STATUS_ACTIVE)\n ->where(function ($query) {\n $query->whereNull('automated_reports.expires_at')\n ->orWhere('automated_reports.expires_at', '>=', now()->toDateString());\n })\n ->select('automated_reports.*')\n ->get();\n }\n\n /**\n * Update an automated report\n *\n * @param AutomatedReport $report\n * @param array $data\n *\n * @return AutomatedReport\n */\n public function update(AutomatedReport $report, array $data): AutomatedReport\n {\n $report->update($data);\n\n return $report;\n }\n\n /**\n * Create a new automated report result.\n *\n * @param array $data The data to create the automated report result with.\n *\n * @return AutomatedReportResult The newly created automated report result.\n */\n public function createResult(array $data): AutomatedReportResult\n {\n return AutomatedReportResult::create($data);\n }\n\n /**\n * Find an automated report result by UUID.\n *\n * @param string $uuid The UUID to find the automated report result with.\n *\n * @return AutomatedReportResult|null The automated report result if found, otherwise null.\n */\n public function findResultByUuid(string $uuid): ?AutomatedReportResult\n {\n return AutomatedReportResult::where('uuid', AutomatedReportResult::toOptimized($uuid))->first();\n }\n\n public function findResultByUuidForUser(string $uuid, User $user): ?AutomatedReportResult\n {\n return AutomatedReportResult::query()\n ->where('uuid', AutomatedReportResult::toOptimized($uuid))\n ->whereHas('report', static function ($query) use ($user): void {\n $query->where('team_id', $user->getTeamId())\n ->where('created_by', $user->getId());\n })\n ->first();\n }\n\n public function findChildResult(AutomatedReportResult $result, string $type): ?AutomatedReportResult\n {\n return AutomatedReportResult::query()\n ->where('parent_id', $result->getId())\n ->where('media_type', $type)\n ->first();\n }\n\n public function findLatestDefaultOrFailedResult(AutomatedReport $report): ?AutomatedReportResult\n {\n return AutomatedReportResult::query()\n ->where('report_id', $report->getId())\n ->whereIn('status', [AutomatedReportResult::STATUS_DEFAULT, AutomatedReportResult::STATUS_FAILED])\n ->latest()\n ->first();\n }\n\n public function getGeneratedNotSentResults(): Collection\n {\n return AutomatedReportResult::query()\n ->whereNotNull('generated_at')\n ->whereNull('sent_at')\n ->where('status', AutomatedReportResult::STATUS_GENERATED)\n ->whereHas('report')\n ->with('report')\n ->get();\n }\n\n public function getPaginatedUserReports(\n User $user,\n ReportSort $sort,\n ReportSortDirection $sortDirection,\n int $resultsPerPage,\n int $page,\n ?Carbon $fromDate,\n ?Carbon $toDate,\n array $teamIds,\n array $reportTypes,\n ?string $name,\n ): LengthAwarePaginator {\n $query = AutomatedReportResult::query()\n ->whereNotNull('automated_report_results.generated_at')\n ->join('automated_reports', 'automated_report_results.report_id', '=', 'automated_reports.id')\n ->where(fn (Builder $q) => $this->applyUserAccessScope($q, $user))\n ->orderByRaw(\"$sort->value COLLATE utf8mb4_unicode_ci {$sortDirection->value}\")\n ->select('automated_report_results.*')\n ->with('report.team');\n\n if ($fromDate !== null && $toDate !== null) {\n $query->whereBetween('generated_at', [$fromDate, $toDate]);\n }\n\n if (! empty($teamIds)) {\n $query->where(function ($q) use ($teamIds) {\n foreach ($teamIds as $id) {\n $q->orWhereJsonContains('automated_reports.groups', $id);\n }\n });\n }\n\n if (! empty($reportTypes)) {\n $query->whereIn('automated_reports.type', $reportTypes);\n }\n\n if (! empty($name)) {\n $query->whereLike('name', \"%$name%\");\n }\n\n return $query->paginate($resultsPerPage, ['*'], 'page', $page);\n }\n\n public function countUserReports(User $user): int\n {\n return AutomatedReportResult::query()\n ->whereNotNull('generated_at')\n// ->whereNotNull('sent_at')\n ->whereHas('report', function ($q) use ($user) {\n $q->where('team_id', $user->getTeamId())\n ->whereJsonContains('recipients->users', $user->getId());\n })\n ->count();\n }\n\n public function countAllUserReports(User $user): int\n {\n return AutomatedReportResult::query()\n ->whereNotNull('generated_at')\n// ->whereNotNull('sent_at')\n ->whereHas('report', fn (Builder $q) => $this->applyUserAccessScope($q, $user))\n ->count();\n }\n\n /**\n * Restrict a query on the automated_reports table to reports the given user is allowed to see.\n *\n * Matches the customer-facing audience:\n * - explicit user recipients (recipients.users)\n * - members of any of the report's groups (Ask Jiminny reports)\n */\n private function applyUserAccessScope(Builder $query, User $user): void\n {\n $userId = $user->getId();\n $groupId = $user->getGroupId();\n\n $query\n ->where('automated_reports.team_id', $user->getTeamId())\n ->where(function (Builder $q) use ($userId, $groupId): void {\n $q->whereJsonContains('automated_reports.recipients->users', $userId);\n\n if ($groupId !== null) {\n $q->orWhere(function (Builder $sub) use ($groupId): void {\n $sub->where('automated_reports.type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->whereJsonContains('automated_reports.groups', $groupId);\n });\n }\n });\n }\n\n /**\n * Get report IDs for a specific team\n *\n * @param Team $team\n *\n * @return \\Illuminate\\Support\\Collection\n */\n public function getReportIdsByTeam(Team $team): \\Illuminate\\Support\\Collection\n {\n return AutomatedReport::where('team_id', $team->getId())->pluck('id');\n }\n\n /**\n * Get all reports for a specific team\n *\n * @param Team $team\n *\n * @return Collection\n */\n public function getReportsByTeam(Team $team): Collection\n {\n return AutomatedReport::where('team_id', $team->getId())->get();\n }\n\n /**\n * Get all report results for a specific report\n *\n * @param AutomatedReport $report\n *\n * @return Collection\n */\n public function getResultsByReport(AutomatedReport $report): Collection\n {\n return $this->getResultsByReportQuery($report)->get();\n }\n\n public function getResultsByReportQuery(AutomatedReport $report): Builder\n {\n return AutomatedReportResult::where('report_id', $report->getId());\n }\n\n public function getReportResultsQueryForRetention(Team $team, CarbonImmutable $retentionDate): Builder\n {\n $reportIds = $this->getReportIdsByTeam($team);\n\n return AutomatedReportResult::query()->whereIn('report_id', $reportIds)\n ->whereRaw('IFNULL(generated_at, created_at) <= ?', [$retentionDate]);\n }\n\n /**\n * @param int|null $teamId Optional team ID to filter results\n *\n * @return \\Illuminate\\Support\\Collection<int, int> Collection of team IDs\n */\n public function getTeamIdsWithReportsResults(?int $teamId = null): \\Illuminate\\Support\\Collection\n {\n $query = DB::table('automated_reports')\n ->join('teams', 'automated_reports.team_id', '=', 'teams.id')\n ->select('teams.id')\n ->distinct();\n\n if ($teamId !== null) {\n $query->where('teams.id', $teamId);\n }\n\n return $query->pluck('teams.id');\n }\n}","depth":4,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Repositories;\n\nuse Carbon\\CarbonImmutable;\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Database\\Eloquent\\Collection;\nuse Illuminate\\Pagination\\LengthAwarePaginator;\nuse Illuminate\\Support\\Facades\\DB;\nuse Jiminny\\Models\\AutomatedReport;\nuse Jiminny\\Models\\AutomatedReportResult;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\ReportSort;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\ReportSortDirection;\n\nclass AutomatedReportsRepository\n{\n /**\n * Create a new automated report\n *\n * @param array $data\n *\n * @return AutomatedReport\n */\n public function create(array $data): AutomatedReport\n {\n return AutomatedReport::create($data);\n }\n\n /**\n * Find an automated report by UUID\n *\n * @param string $uuid\n *\n * @return AutomatedReport|null\n */\n public function findByUuid(string $uuid): ?AutomatedReport\n {\n return AutomatedReport::where('uuid', AutomatedReport::toOptimized($uuid))->first();\n }\n\n public function findByIdOrUuid(string $idOrUuid): ?AutomatedReport\n {\n if (is_numeric($idOrUuid)) {\n return AutomatedReport::find((int) $idOrUuid);\n }\n\n return AutomatedReport::where('uuid', AutomatedReport::toOptimized($idOrUuid))->first();\n }\n\n /**\n * Retrieve all standard (non-Ask Jiminny) automated reports.\n *\n * @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.\n * @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.\n *\n * @return Collection<AutomatedReport>\n */\n public function getAllStandardReports(\n string $sortColumn = 'created_at',\n string $sortDirection = 'desc'\n ): Collection {\n return $this->buildSortedQuery($sortColumn, $sortDirection)\n ->whereNot('type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->get();\n }\n\n /**\n * Retrieve all Ask Jiminny reports created by the given user.\n *\n * @param User $user The user whose reports to retrieve.\n * @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.\n * @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.\n *\n * @return Collection<AutomatedReport>\n */\n public function getAskJiminnyReportsByUser(\n User $user,\n string $sortColumn = 'created_at',\n string $sortDirection = 'desc'\n ): Collection {\n return $this->buildSortedQuery($sortColumn, $sortDirection)\n ->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->where('created_by', $user->getId())\n ->get();\n }\n\n private function buildSortedQuery(string $sortColumn, string $sortDirection): \\Illuminate\\Database\\Eloquent\\Builder\n {\n $allowedColumns = ['created_by', 'created_at'];\n if (! in_array($sortColumn, $allowedColumns)) {\n $sortColumn = 'created_at';\n }\n\n $sortDirection = strtolower($sortDirection) === 'asc' ? 'asc' : 'desc';\n\n $query = AutomatedReport::query()->with(['creator', 'team']);\n\n if ($sortColumn === 'created_by') {\n $query->leftJoin('users', 'users.id', '=', 'automated_reports.created_by')\n ->orderByRaw(\"users.name COLLATE utf8mb4_unicode_ci {$sortDirection}\")\n ->select('automated_reports.*');\n } else {\n $query->orderBy($sortColumn, $sortDirection);\n }\n\n return $query;\n }\n\n /**\n * Get all active Ask Jiminny reports whose expiry date has passed.\n *\n * @return Collection<AutomatedReport>\n */\n public function getExpiredActiveAskJiminnyReports(): Collection\n {\n return AutomatedReport::where('status', true)\n ->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->whereNotNull('expires_at')\n ->where('expires_at', '<', now()->toDateString())\n ->get();\n }\n\n /**\n * Get all active and enabled reports with active teams for the specified frequency.\n *\n * @param string $frequency\n *\n * @return Collection<AutomatedReport>\n */\n public function getActiveReportsByFrequency(string $frequency): Collection\n {\n return AutomatedReport::where('automated_reports.status', true)\n ->where('automated_reports.frequency', $frequency)\n ->join('teams', 'automated_reports.team_id', '=', 'teams.id')\n ->where('teams.status', Team::STATUS_ACTIVE)\n ->where(function ($query) {\n $query->whereNull('automated_reports.expires_at')\n ->orWhere('automated_reports.expires_at', '>=', now()->toDateString());\n })\n ->select('automated_reports.*')\n ->get();\n }\n\n /**\n * Update an automated report\n *\n * @param AutomatedReport $report\n * @param array $data\n *\n * @return AutomatedReport\n */\n public function update(AutomatedReport $report, array $data): AutomatedReport\n {\n $report->update($data);\n\n return $report;\n }\n\n /**\n * Create a new automated report result.\n *\n * @param array $data The data to create the automated report result with.\n *\n * @return AutomatedReportResult The newly created automated report result.\n */\n public function createResult(array $data): AutomatedReportResult\n {\n return AutomatedReportResult::create($data);\n }\n\n /**\n * Find an automated report result by UUID.\n *\n * @param string $uuid The UUID to find the automated report result with.\n *\n * @return AutomatedReportResult|null The automated report result if found, otherwise null.\n */\n public function findResultByUuid(string $uuid): ?AutomatedReportResult\n {\n return AutomatedReportResult::where('uuid', AutomatedReportResult::toOptimized($uuid))->first();\n }\n\n public function findResultByUuidForUser(string $uuid, User $user): ?AutomatedReportResult\n {\n return AutomatedReportResult::query()\n ->where('uuid', AutomatedReportResult::toOptimized($uuid))\n ->whereHas('report', static function ($query) use ($user): void {\n $query->where('team_id', $user->getTeamId())\n ->where('created_by', $user->getId());\n })\n ->first();\n }\n\n public function findChildResult(AutomatedReportResult $result, string $type): ?AutomatedReportResult\n {\n return AutomatedReportResult::query()\n ->where('parent_id', $result->getId())\n ->where('media_type', $type)\n ->first();\n }\n\n public function findLatestDefaultOrFailedResult(AutomatedReport $report): ?AutomatedReportResult\n {\n return AutomatedReportResult::query()\n ->where('report_id', $report->getId())\n ->whereIn('status', [AutomatedReportResult::STATUS_DEFAULT, AutomatedReportResult::STATUS_FAILED])\n ->latest()\n ->first();\n }\n\n public function getGeneratedNotSentResults(): Collection\n {\n return AutomatedReportResult::query()\n ->whereNotNull('generated_at')\n ->whereNull('sent_at')\n ->where('status', AutomatedReportResult::STATUS_GENERATED)\n ->whereHas('report')\n ->with('report')\n ->get();\n }\n\n public function getPaginatedUserReports(\n User $user,\n ReportSort $sort,\n ReportSortDirection $sortDirection,\n int $resultsPerPage,\n int $page,\n ?Carbon $fromDate,\n ?Carbon $toDate,\n array $teamIds,\n array $reportTypes,\n ?string $name,\n ): LengthAwarePaginator {\n $query = AutomatedReportResult::query()\n ->whereNotNull('automated_report_results.generated_at')\n ->join('automated_reports', 'automated_report_results.report_id', '=', 'automated_reports.id')\n ->where(fn (Builder $q) => $this->applyUserAccessScope($q, $user))\n ->orderByRaw(\"$sort->value COLLATE utf8mb4_unicode_ci {$sortDirection->value}\")\n ->select('automated_report_results.*')\n ->with('report.team');\n\n if ($fromDate !== null && $toDate !== null) {\n $query->whereBetween('generated_at', [$fromDate, $toDate]);\n }\n\n if (! empty($teamIds)) {\n $query->where(function ($q) use ($teamIds) {\n foreach ($teamIds as $id) {\n $q->orWhereJsonContains('automated_reports.groups', $id);\n }\n });\n }\n\n if (! empty($reportTypes)) {\n $query->whereIn('automated_reports.type', $reportTypes);\n }\n\n if (! empty($name)) {\n $query->whereLike('name', \"%$name%\");\n }\n\n return $query->paginate($resultsPerPage, ['*'], 'page', $page);\n }\n\n public function countUserReports(User $user): int\n {\n return AutomatedReportResult::query()\n ->whereNotNull('generated_at')\n// ->whereNotNull('sent_at')\n ->whereHas('report', function ($q) use ($user) {\n $q->where('team_id', $user->getTeamId())\n ->whereJsonContains('recipients->users', $user->getId());\n })\n ->count();\n }\n\n public function countAllUserReports(User $user): int\n {\n return AutomatedReportResult::query()\n ->whereNotNull('generated_at')\n// ->whereNotNull('sent_at')\n ->whereHas('report', fn (Builder $q) => $this->applyUserAccessScope($q, $user))\n ->count();\n }\n\n /**\n * Restrict a query on the automated_reports table to reports the given user is allowed to see.\n *\n * Matches the customer-facing audience:\n * - explicit user recipients (recipients.users)\n * - members of any of the report's groups (Ask Jiminny reports)\n */\n private function applyUserAccessScope(Builder $query, User $user): void\n {\n $userId = $user->getId();\n $groupId = $user->getGroupId();\n\n $query\n ->where('automated_reports.team_id', $user->getTeamId())\n ->where(function (Builder $q) use ($userId, $groupId): void {\n $q->whereJsonContains('automated_reports.recipients->users', $userId);\n\n if ($groupId !== null) {\n $q->orWhere(function (Builder $sub) use ($groupId): void {\n $sub->where('automated_reports.type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->whereJsonContains('automated_reports.groups', $groupId);\n });\n }\n });\n }\n\n /**\n * Get report IDs for a specific team\n *\n * @param Team $team\n *\n * @return \\Illuminate\\Support\\Collection\n */\n public function getReportIdsByTeam(Team $team): \\Illuminate\\Support\\Collection\n {\n return AutomatedReport::where('team_id', $team->getId())->pluck('id');\n }\n\n /**\n * Get all reports for a specific team\n *\n * @param Team $team\n *\n * @return Collection\n */\n public function getReportsByTeam(Team $team): Collection\n {\n return AutomatedReport::where('team_id', $team->getId())->get();\n }\n\n /**\n * Get all report results for a specific report\n *\n * @param AutomatedReport $report\n *\n * @return Collection\n */\n public function getResultsByReport(AutomatedReport $report): Collection\n {\n return $this->getResultsByReportQuery($report)->get();\n }\n\n public function getResultsByReportQuery(AutomatedReport $report): Builder\n {\n return AutomatedReportResult::where('report_id', $report->getId());\n }\n\n public function getReportResultsQueryForRetention(Team $team, CarbonImmutable $retentionDate): Builder\n {\n $reportIds = $this->getReportIdsByTeam($team);\n\n return AutomatedReportResult::query()->whereIn('report_id', $reportIds)\n ->whereRaw('IFNULL(generated_at, created_at) <= ?', [$retentionDate]);\n }\n\n /**\n * @param int|null $teamId Optional team ID to filter results\n *\n * @return \\Illuminate\\Support\\Collection<int, int> Collection of team IDs\n */\n public function getTeamIdsWithReportsResults(?int $teamId = null): \\Illuminate\\Support\\Collection\n {\n $query = DB::table('automated_reports')\n ->join('teams', 'automated_reports.team_id', '=', 'teams.id')\n ->select('teams.id')\n ->distinct();\n\n if ($teamId !== null) {\n $query->where('teams.id', $teamId);\n }\n\n return $query->pluck('teams.id');\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Execute","depth":4,"bounds":{"left":0.77526593,"top":0.123703115,"width":0.008643617,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Explain Plan","depth":4,"bounds":{"left":0.78390956,"top":0.123703115,"width":0.008643617,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Browse Query History","depth":4,"bounds":{"left":0.79488033,"top":0.123703115,"width":0.008643617,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View Parameters","depth":4,"bounds":{"left":0.80352396,"top":0.123703115,"width":0.008643617,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open Query Execution Settings…","depth":4,"bounds":{"left":0.8121675,"top":0.123703115,"width":0.008643617,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"In-Editor Results","depth":4,"bounds":{"left":0.8231383,"top":0.123703115,"width":0.008643617,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Tx: Auto","depth":4,"bounds":{"left":0.83410907,"top":0.123703115,"width":0.024268618,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8829952740821726425
|
-8777745093091250576
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20157-AJ-report-not-se Project: faVsco.js, menu
JY-20157-AJ-report-not-send-notification, menu
Start Listening for PHP Debug Connections
AutomatedReportsCommandTest
Run 'AutomatedReportsCommandTest'
Debug 'AutomatedReportsCommandTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
16
7
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Carbon\CarbonImmutable;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\DB;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSort;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSortDirection;
class AutomatedReportsRepository
{
/**
* Create a new automated report
*
* @param array $data
*
* @return AutomatedReport
*/
public function create(array $data): AutomatedReport
{
return AutomatedReport::create($data);
}
/**
* Find an automated report by UUID
*
* @param string $uuid
*
* @return AutomatedReport|null
*/
public function findByUuid(string $uuid): ?AutomatedReport
{
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($uuid))->first();
}
public function findByIdOrUuid(string $idOrUuid): ?AutomatedReport
{
if (is_numeric($idOrUuid)) {
return AutomatedReport::find((int) $idOrUuid);
}
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($idOrUuid))->first();
}
/**
* Retrieve all standard (non-Ask Jiminny) automated reports.
*
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAllStandardReports(
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->whereNot('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->get();
}
/**
* Retrieve all Ask Jiminny reports created by the given user.
*
* @param User $user The user whose reports to retrieve.
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAskJiminnyReportsByUser(
User $user,
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->where('created_by', $user->getId())
->get();
}
private function buildSortedQuery(string $sortColumn, string $sortDirection): \Illuminate\Database\Eloquent\Builder
{
$allowedColumns = ['created_by', 'created_at'];
if (! in_array($sortColumn, $allowedColumns)) {
$sortColumn = 'created_at';
}
$sortDirection = strtolower($sortDirection) === 'asc' ? 'asc' : 'desc';
$query = AutomatedReport::query()->with(['creator', 'team']);
if ($sortColumn === 'created_by') {
$query->leftJoin('users', 'users.id', '=', 'automated_reports.created_by')
->orderByRaw("users.name COLLATE utf8mb4_unicode_ci {$sortDirection}")
->select('automated_reports.*');
} else {
$query->orderBy($sortColumn, $sortDirection);
}
return $query;
}
/**
* Get all active Ask Jiminny reports whose expiry date has passed.
*
* @return Collection<AutomatedReport>
*/
public function getExpiredActiveAskJiminnyReports(): Collection
{
return AutomatedReport::where('status', true)
->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->whereNotNull('expires_at')
->where('expires_at', '<', now()->toDateString())
->get();
}
/**
* Get all active and enabled reports with active teams for the specified frequency.
*
* @param string $frequency
*
* @return Collection<AutomatedReport>
*/
public function getActiveReportsByFrequency(string $frequency): Collection
{
return AutomatedReport::where('automated_reports.status', true)
->where('automated_reports.frequency', $frequency)
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->where('teams.status', Team::STATUS_ACTIVE)
->where(function ($query) {
$query->whereNull('automated_reports.expires_at')
->orWhere('automated_reports.expires_at', '>=', now()->toDateString());
})
->select('automated_reports.*')
->get();
}
/**
* Update an automated report
*
* @param AutomatedReport $report
* @param array $data
*
* @return AutomatedReport
*/
public function update(AutomatedReport $report, array $data): AutomatedReport
{
$report->update($data);
return $report;
}
/**
* Create a new automated report result.
*
* @param array $data The data to create the automated report result with.
*
* @return AutomatedReportResult The newly created automated report result.
*/
public function createResult(array $data): AutomatedReportResult
{
return AutomatedReportResult::create($data);
}
/**
* Find an automated report result by UUID.
*
* @param string $uuid The UUID to find the automated report result with.
*
* @return AutomatedReportResult|null The automated report result if found, otherwise null.
*/
public function findResultByUuid(string $uuid): ?AutomatedReportResult
{
return AutomatedReportResult::where('uuid', AutomatedReportResult::toOptimized($uuid))->first();
}
public function findResultByUuidForUser(string $uuid, User $user): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('uuid', AutomatedReportResult::toOptimized($uuid))
->whereHas('report', static function ($query) use ($user): void {
$query->where('team_id', $user->getTeamId())
->where('created_by', $user->getId());
})
->first();
}
public function findChildResult(AutomatedReportResult $result, string $type): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('parent_id', $result->getId())
->where('media_type', $type)
->first();
}
public function findLatestDefaultOrFailedResult(AutomatedReport $report): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('report_id', $report->getId())
->whereIn('status', [AutomatedReportResult::STATUS_DEFAULT, AutomatedReportResult::STATUS_FAILED])
->latest()
->first();
}
public function getGeneratedNotSentResults(): Collection
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNull('sent_at')
->where('status', AutomatedReportResult::STATUS_GENERATED)
->whereHas('report')
->with('report')
->get();
}
public function getPaginatedUserReports(
User $user,
ReportSort $sort,
ReportSortDirection $sortDirection,
int $resultsPerPage,
int $page,
?Carbon $fromDate,
?Carbon $toDate,
array $teamIds,
array $reportTypes,
?string $name,
): LengthAwarePaginator {
$query = AutomatedReportResult::query()
->whereNotNull('automated_report_results.generated_at')
->join('automated_reports', 'automated_report_results.report_id', '=', 'automated_reports.id')
->where(fn (Builder $q) => $this->applyUserAccessScope($q, $user))
->orderByRaw("$sort->value COLLATE utf8mb4_unicode_ci {$sortDirection->value}")
->select('automated_report_results.*')
->with('report.team');
if ($fromDate !== null && $toDate !== null) {
$query->whereBetween('generated_at', [$fromDate, $toDate]);
}
if (! empty($teamIds)) {
$query->where(function ($q) use ($teamIds) {
foreach ($teamIds as $id) {
$q->orWhereJsonContains('automated_reports.groups', $id);
}
});
}
if (! empty($reportTypes)) {
$query->whereIn('automated_reports.type', $reportTypes);
}
if (! empty($name)) {
$query->whereLike('name', "%$name%");
}
return $query->paginate($resultsPerPage, ['*'], 'page', $page);
}
public function countUserReports(User $user): int
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
// ->whereNotNull('sent_at')
->whereHas('report', function ($q) use ($user) {
$q->where('team_id', $user->getTeamId())
->whereJsonContains('recipients->users', $user->getId());
})
->count();
}
public function countAllUserReports(User $user): int
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
// ->whereNotNull('sent_at')
->whereHas('report', fn (Builder $q) => $this->applyUserAccessScope($q, $user))
->count();
}
/**
* Restrict a query on the automated_reports table to reports the given user is allowed to see.
*
* Matches the customer-facing audience:
* - explicit user recipients (recipients.users)
* - members of any of the report's groups (Ask Jiminny reports)
*/
private function applyUserAccessScope(Builder $query, User $user): void
{
$userId = $user->getId();
$groupId = $user->getGroupId();
$query
->where('automated_reports.team_id', $user->getTeamId())
->where(function (Builder $q) use ($userId, $groupId): void {
$q->whereJsonContains('automated_reports.recipients->users', $userId);
if ($groupId !== null) {
$q->orWhere(function (Builder $sub) use ($groupId): void {
$sub->where('automated_reports.type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->whereJsonContains('automated_reports.groups', $groupId);
});
}
});
}
/**
* Get report IDs for a specific team
*
* @param Team $team
*
* @return \Illuminate\Support\Collection
*/
public function getReportIdsByTeam(Team $team): \Illuminate\Support\Collection
{
return AutomatedReport::where('team_id', $team->getId())->pluck('id');
}
/**
* Get all reports for a specific team
*
* @param Team $team
*
* @return Collection
*/
public function getReportsByTeam(Team $team): Collection
{
return AutomatedReport::where('team_id', $team->getId())->get();
}
/**
* Get all report results for a specific report
*
* @param AutomatedReport $report
*
* @return Collection
*/
public function getResultsByReport(AutomatedReport $report): Collection
{
return $this->getResultsByReportQuery($report)->get();
}
public function getResultsByReportQuery(AutomatedReport $report): Builder
{
return AutomatedReportResult::where('report_id', $report->getId());
}
public function getReportResultsQueryForRetention(Team $team, CarbonImmutable $retentionDate): Builder
{
$reportIds = $this->getReportIdsByTeam($team);
return AutomatedReportResult::query()->whereIn('report_id', $reportIds)
->whereRaw('IFNULL(generated_at, created_at) <= ?', [$retentionDate]);
}
/**
* @param int|null $teamId Optional team ID to filter results
*
* @return \Illuminate\Support\Collection<int, int> Collection of team IDs
*/
public function getTeamIdsWithReportsResults(?int $teamId = null): \Illuminate\Support\Collection
{
$query = DB::table('automated_reports')
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->select('teams.id')
->distinct();
if ($teamId !== null) {
$query->where('teams.id', $teamId);
}
return $query->pluck('teams.id');
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto...
|
75263
|
|
66464
|
1494
|
50
|
2026-04-21T14:43:23.944779+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776782603944_m2.jpg...
|
Firefox
|
Jiminny — Work
|
True
|
app.staging.jiminny.com/ai-reports
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
Project Phoenix – Figma
Project Phoenix – Figma
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Project Phoenix – Figma
Project Phoenix – Figma
Project Phoenix – Figma
Project Phoenix – Figma
Project Phoenix – Figma
Project Phoenix – Figma
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny Mail
Jiminny Mail
[JY-20500] Batch initial sync for Salesforce - Jira
[JY-20500] Batch initial sync for Salesforce - Jira
Feed — jiminny — Sentry
Feed — jiminny — Sentry
Jiminny
Jiminny
Pipelines - jiminny/app
Pipelines - jiminny/app
Formalize
Formalize
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
Search results: calendar | Jiminny Help Center
Search results: calendar | Jiminny Help Center
Jiminny
Jiminny
Jiminny
Jiminny
Close tab
Edit - Calendar - Engineering - Confluence
Edit - Calendar - Engineering - Confluence
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
JY-18909-automated-reports-ask-jiminny ■ 874522
75
75
AI Reports
AI Reports
Ask Jiminny reports
Ask Jiminny reports
Report name
Period
Report Type Report Type
Report Type
Report Type
Clear all
NAME
FREQUENCY
SHARED
DATE
ACTIONS
Health - 9 - 15 Apr 2026
Weekly
Kamren Schulist
+1
16/04/2026
Tuesday Report - 15 Apr 2026
Daily
16/04/2026
Ask Jiminny Test Report - 15 Apr 2026
Daily
Kamren Schulist
16/04/2026
Eastern Summary - 7 - 13 Apr 2026
Weekly
14/04/2026
Tuesday Report - 13 Apr 2026
Daily
14/04/2026
Ask Jiminny Test Report - 13 Apr 2026
Daily
Kamren Schulist
14/04/2026
Ask Jiminny Test Report - 13 Apr 2026
Daily
Kamren Schulist
14/04/2026
Open Intercom Messenger
Settings
Settings
Kiosk
Kiosk
Organization
Organization
Profile
Profile
Logout
Logout
Search HTML
Create New Node
Grab a color from the page (Cmd+Shift+Y)
Filter Styles
:hov
.cls
Add new rule
Toggle light color scheme simulation for the page
Toggle dark color scheme simulation for the page
Toggle print media simulation for the page
No element selected.
Toggle off the 3-pane inspector...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0018284575,"top":0.0518755,"width":0.07596409,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Project Phoenix – Figma","depth":4,"bounds":{"left":0.0,"top":0.09497207,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Project Phoenix – Figma","depth":5,"bounds":{"left":0.013297873,"top":0.10614525,"width":0.041888297,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"bounds":{"left":0.0,"top":0.12769353,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.13886672,"width":0.11319814,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Project Phoenix – Figma","depth":4,"bounds":{"left":0.0,"top":0.16041501,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Project Phoenix – Figma","depth":5,"bounds":{"left":0.013297873,"top":0.17158818,"width":0.041888297,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Project Phoenix – Figma","depth":4,"bounds":{"left":0.0,"top":0.19313647,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Project Phoenix – Figma","depth":5,"bounds":{"left":0.013297873,"top":0.20430966,"width":0.041888297,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Project Phoenix – Figma","depth":4,"bounds":{"left":0.0,"top":0.22585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Project Phoenix – Figma","depth":5,"bounds":{"left":0.013297873,"top":0.23703113,"width":0.041888297,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.0,"top":0.2585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.013297873,"top":0.2697526,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny Mail","depth":4,"bounds":{"left":0.0,"top":0.29130086,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny Mail","depth":5,"bounds":{"left":0.013297873,"top":0.30247405,"width":0.02144282,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20500] Batch initial sync for Salesforce - Jira","depth":4,"bounds":{"left":0.0,"top":0.32402235,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20500] Batch initial sync for Salesforce - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.33519554,"width":0.08610372,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Feed — jiminny — Sentry","depth":4,"bounds":{"left":0.0,"top":0.3567438,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Feed — jiminny — Sentry","depth":5,"bounds":{"left":0.013297873,"top":0.367917,"width":0.042719416,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.38946527,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.013297873,"top":0.40063846,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.42218676,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.43335995,"width":0.039228722,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Formalize","depth":4,"bounds":{"left":0.0,"top":0.45490822,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Formalize","depth":5,"bounds":{"left":0.013297873,"top":0.4660814,"width":0.016788565,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":4,"bounds":{"left":0.0,"top":0.48762968,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.49880287,"width":0.09524601,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Search results: calendar | Jiminny Help Center","depth":4,"bounds":{"left":0.0,"top":0.5203512,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Search results: calendar | Jiminny Help Center","depth":5,"bounds":{"left":0.013297873,"top":0.53152436,"width":0.080119684,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.55307263,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.013297873,"top":0.5642458,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.5857941,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.013297873,"top":0.5969673,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.06732048,"top":0.59297687,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Edit - Calendar - Engineering - Confluence","depth":4,"bounds":{"left":0.0,"top":0.61851555,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Edit - Calendar - Engineering - Confluence","depth":5,"bounds":{"left":0.013297873,"top":0.62968874,"width":0.07413564,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.0028257978,"top":0.6528332,"width":0.07413564,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.0028257978,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.013796543,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.024933511,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.036070477,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.04720745,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-18909-automated-reports-ask-jiminny ■ 874522","depth":9,"bounds":{"left":0.08028591,"top":0.9860335,"width":0.10056516,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"75","depth":12,"bounds":{"left":0.08228058,"top":0.91380686,"width":0.015957447,"height":0.035115723},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"75","depth":14,"bounds":{"left":0.09059176,"top":0.9173983,"width":0.004654255,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"AI Reports","depth":13,"bounds":{"left":0.10887633,"top":0.06943336,"width":0.031416222,"height":0.019553073},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"AI Reports","depth":14,"bounds":{"left":0.10887633,"top":0.06943336,"width":0.031416222,"height":0.019553073},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Ask Jiminny reports","depth":13,"bounds":{"left":0.62682843,"top":0.06464485,"width":0.059341755,"height":0.028731046},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Ask Jiminny reports","depth":14,"bounds":{"left":0.64045876,"top":0.07222666,"width":0.04105718,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Report name","depth":17,"bounds":{"left":0.12167553,"top":0.10933759,"width":0.058011968,"height":0.019952115},"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Period","depth":20,"bounds":{"left":0.19963431,"top":0.114924185,"width":0.012799202,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Report Type Report Type","depth":16,"bounds":{"left":0.26944813,"top":0.10933759,"width":0.06615692,"height":0.019952115},"value":"Report Type Report Type","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Report Type","depth":18,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Report Type","depth":19,"bounds":{"left":0.26944813,"top":0.11292897,"width":0.023603724,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Clear all","depth":13,"bounds":{"left":0.34192154,"top":0.112529926,"width":0.028424202,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"NAME","depth":16,"bounds":{"left":0.10854388,"top":0.1660016,"width":0.012965426,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"FREQUENCY","depth":16,"bounds":{"left":0.35854387,"top":0.1660016,"width":0.026263298,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SHARED","depth":16,"bounds":{"left":0.4418218,"top":0.1660016,"width":0.017453458,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"DATE","depth":16,"bounds":{"left":0.52509975,"top":0.1660016,"width":0.011136968,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ACTIONS","depth":16,"bounds":{"left":0.6085439,"top":0.1660016,"width":0.019115692,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Health - 9 - 15 Apr 2026","depth":17,"bounds":{"left":0.12184176,"top":0.21268955,"width":0.05069814,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Weekly","depth":17,"bounds":{"left":0.35854387,"top":0.21268955,"width":0.014960106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Kamren Schulist","depth":18,"bounds":{"left":0.4566157,"top":0.20590582,"width":0.016456118,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+1","depth":17,"bounds":{"left":0.46958113,"top":0.21348763,"width":0.004654255,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"16/04/2026","depth":17,"bounds":{"left":0.52509975,"top":0.21268955,"width":0.024268618,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tuesday Report - 15 Apr 2026","depth":17,"bounds":{"left":0.12184176,"top":0.25977653,"width":0.06299867,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Daily","depth":17,"bounds":{"left":0.35854387,"top":0.25977653,"width":0.010139627,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"16/04/2026","depth":17,"bounds":{"left":0.52509975,"top":0.25977653,"width":0.024268618,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ask Jiminny Test Report - 15 Apr 2026","depth":17,"bounds":{"left":0.12184176,"top":0.30686352,"width":0.080784574,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Daily","depth":17,"bounds":{"left":0.35854387,"top":0.30686352,"width":0.010139627,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Kamren Schulist","depth":18,"bounds":{"left":0.4566157,"top":0.30007982,"width":0.016456118,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"16/04/2026","depth":17,"bounds":{"left":0.52509975,"top":0.30686352,"width":0.024268618,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Eastern Summary - 7 - 13 Apr 2026","depth":17,"bounds":{"left":0.12184176,"top":0.35395053,"width":0.07363697,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Weekly","depth":17,"bounds":{"left":0.35854387,"top":0.35395053,"width":0.014960106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"14/04/2026","depth":17,"bounds":{"left":0.52509975,"top":0.35395053,"width":0.024268618,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tuesday Report - 13 Apr 2026","depth":17,"bounds":{"left":0.12184176,"top":0.4010375,"width":0.06299867,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Daily","depth":17,"bounds":{"left":0.35854387,"top":0.4010375,"width":0.010139627,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"14/04/2026","depth":17,"bounds":{"left":0.52509975,"top":0.4010375,"width":0.024268618,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ask Jiminny Test Report - 13 Apr 2026","depth":17,"bounds":{"left":0.12184176,"top":0.4481245,"width":0.080784574,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Daily","depth":17,"bounds":{"left":0.35854387,"top":0.4481245,"width":0.010139627,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Kamren Schulist","depth":18,"bounds":{"left":0.4566157,"top":0.44134077,"width":0.016456118,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"14/04/2026","depth":17,"bounds":{"left":0.52509975,"top":0.4481245,"width":0.024268618,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ask Jiminny Test Report - 13 Apr 2026","depth":17,"bounds":{"left":0.12184176,"top":0.49521148,"width":0.080784574,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Daily","depth":17,"bounds":{"left":0.35854387,"top":0.49521148,"width":0.010139627,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Kamren Schulist","depth":18,"bounds":{"left":0.4566157,"top":0.4884278,"width":0.016456118,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"14/04/2026","depth":17,"bounds":{"left":0.52509975,"top":0.49521148,"width":0.024268618,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open Intercom Messenger","depth":7,"bounds":{"left":0.6715425,"top":0.94573027,"width":0.015957447,"height":0.03830806},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Settings","depth":10,"bounds":{"left":0.1015625,"top":0.80686355,"width":0.050531916,"height":0.028731046},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Settings","depth":11,"bounds":{"left":0.10488697,"top":0.8136473,"width":0.019115692,"height":0.01556265},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Kiosk","depth":11,"bounds":{"left":0.1015625,"top":0.839585,"width":0.050531916,"height":0.035115723},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":true,"is_selected":false},{"role":"AXStaticText","text":"Kiosk","depth":12,"bounds":{"left":0.119847074,"top":0.85035914,"width":0.011635638,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Organization","depth":11,"bounds":{"left":0.1015625,"top":0.8747007,"width":0.050531916,"height":0.035115723},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Organization","depth":12,"bounds":{"left":0.119847074,"top":0.88547486,"width":0.027260639,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Profile","depth":11,"bounds":{"left":0.1015625,"top":0.90981644,"width":0.050531916,"height":0.035115723},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Profile","depth":12,"bounds":{"left":0.119847074,"top":0.9205906,"width":0.013962766,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Logout","depth":11,"bounds":{"left":0.1015625,"top":0.94493216,"width":0.050531916,"height":0.035115723},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Logout","depth":12,"bounds":{"left":0.119847074,"top":0.9557063,"width":0.014461436,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Search HTML","depth":16,"bounds":{"left":0.6944814,"top":0.07581804,"width":0.28324467,"height":0.017557861},"help_text":"","role_description":"search text field","subrole":"AXSearchField","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Create New Node","depth":15,"bounds":{"left":0.9807181,"top":0.07581804,"width":0.008643617,"height":0.017557861},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Grab a color from the page (Cmd+Shift+Y)","depth":15,"bounds":{"left":0.9900266,"top":0.07581804,"width":0.008643617,"height":0.017557861},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXTextField","text":"Filter Styles","depth":20,"bounds":{"left":0.6944814,"top":0.72146845,"width":0.16289894,"height":0.017557861},"help_text":"","role_description":"search text field","subrole":"AXSearchField","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":":hov","depth":21,"bounds":{"left":0.86037236,"top":0.72146845,"width":0.008643617,"height":0.017557861},"help_text":"Toggle pseudo-classes","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":".cls","depth":21,"bounds":{"left":0.8696808,"top":0.72146845,"width":0.008643617,"height":0.017557861},"help_text":"Toggle classes","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Add new rule","depth":21,"bounds":{"left":0.87898934,"top":0.72146845,"width":0.008643617,"height":0.017557861},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Toggle light color scheme simulation for the page","depth":21,"bounds":{"left":0.88829786,"top":0.72146845,"width":0.008643617,"height":0.017557861},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Toggle dark color scheme simulation for the page","depth":21,"bounds":{"left":0.8976064,"top":0.72146845,"width":0.008643617,"height":0.017557861},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Toggle print media simulation for the page","depth":21,"bounds":{"left":0.9069149,"top":0.72146845,"width":0.008643617,"height":0.017557861},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"No element selected.","depth":21,"bounds":{"left":0.70079786,"top":0.74581003,"width":0.039727394,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Toggle off the 3-pane inspector","depth":16,"bounds":{"left":0.9172208,"top":0.72146845,"width":0.008643617,"height":0.017557861},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
-8829793996427789366
|
-5325521796468265983
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
Project Phoenix – Figma
Project Phoenix – Figma
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Project Phoenix – Figma
Project Phoenix – Figma
Project Phoenix – Figma
Project Phoenix – Figma
Project Phoenix – Figma
Project Phoenix – Figma
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny Mail
Jiminny Mail
[JY-20500] Batch initial sync for Salesforce - Jira
[JY-20500] Batch initial sync for Salesforce - Jira
Feed — jiminny — Sentry
Feed — jiminny — Sentry
Jiminny
Jiminny
Pipelines - jiminny/app
Pipelines - jiminny/app
Formalize
Formalize
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
Search results: calendar | Jiminny Help Center
Search results: calendar | Jiminny Help Center
Jiminny
Jiminny
Jiminny
Jiminny
Close tab
Edit - Calendar - Engineering - Confluence
Edit - Calendar - Engineering - Confluence
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
JY-18909-automated-reports-ask-jiminny ■ 874522
75
75
AI Reports
AI Reports
Ask Jiminny reports
Ask Jiminny reports
Report name
Period
Report Type Report Type
Report Type
Report Type
Clear all
NAME
FREQUENCY
SHARED
DATE
ACTIONS
Health - 9 - 15 Apr 2026
Weekly
Kamren Schulist
+1
16/04/2026
Tuesday Report - 15 Apr 2026
Daily
16/04/2026
Ask Jiminny Test Report - 15 Apr 2026
Daily
Kamren Schulist
16/04/2026
Eastern Summary - 7 - 13 Apr 2026
Weekly
14/04/2026
Tuesday Report - 13 Apr 2026
Daily
14/04/2026
Ask Jiminny Test Report - 13 Apr 2026
Daily
Kamren Schulist
14/04/2026
Ask Jiminny Test Report - 13 Apr 2026
Daily
Kamren Schulist
14/04/2026
Open Intercom Messenger
Settings
Settings
Kiosk
Kiosk
Organization
Organization
Profile
Profile
Logout
Logout
Search HTML
Create New Node
Grab a color from the page (Cmd+Shift+Y)
Filter Styles
:hov
.cls
Add new rule
Toggle light color scheme simulation for the page
Toggle dark color scheme simulation for the page
Toggle print media simulation for the page
No element selected.
Toggle off the 3-pane inspector...
|
66462
|
|
51297
|
NULL
|
0
|
2026-04-18T11:00:46.571834+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-18/1776 /Users/lukas/.screenpipe/data/data/2026-04-18/1776510046571_m1.jpg...
|
Claude
|
Claude
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Skip to content
Skip to content
Click to collapse
Skip to content
Skip to content
Click to collapse
⌘B
Drag to resize
Open sidebar
Chat
Cowork
Code
New chat ⌘N
New chat
⌘N
Projects
Customize
Artifacts
Pinned
Bulgarian citizenship application process for EU residents
More options for Bulgarian citizenship application process for EU residents
Dawarich location tracking project
More options for Dawarich location tracking project
Recents
View all
Reviewing recent conversation highlights
More options for Reviewing recent conversation highlights
Screenpipe WAL processing when stopped
More options for Screenpipe WAL processing when stopped
Mac aliases not recognized
More options for Mac aliases not recognized
Boosteroid still recording despite ignored windows setting
More options for Boosteroid still recording despite ignored windows setting
Missing JavaScript promise in authorization response
More options for Missing JavaScript promise in authorization response
Linux SQLite UI for NAS
More options for Linux SQLite UI for NAS
Claude API 500 internal server error
More options for Claude API 500 internal server error
Screenpipe query capabilities and usage
More options for Screenpipe query capabilities and usage
eGPU compatibility with Mac mini and Studio
More options for eGPU compatibility with Mac mini and Studio
Understanding OpenRouter API gateway
More options for Understanding OpenRouter API gateway
Screenpipe 14-day retention explained
More options for Screenpipe 14-day retention explained
Reddit homepage feed overview
More options for Reddit homepage feed overview
Docker container not visible in console
More options for Docker container not visible in console
DIA browser RAM configuration
More options for DIA browser RAM configuration
Screenpipe company background
More options for Screenpipe company background
DSK Bank Bulgaria secure investing explained
More options for DSK Bank Bulgaria secure investing explained
Building a comprehensive personal homelab system
More options for Building a comprehensive personal homelab system
Importing Google Timeline data to Owntracks
More options for Importing Google Timeline data to Owntracks
Chromecast remote volume buttons not working
More options for Chromecast remote volume buttons not working
Screenpipe free version guide
More options for Screenpipe free version guide
Updated to 1.3109.0
Relaunch to apply
Relaunch
Lukas Kovalik
Lukas Kovalik
Get apps and extensions
Screenpipe WAL processing when stopped
Screenpipe WAL processing when stopped
More options for Screenpipe WAL processing when stopped
Open sidebar
Share chat
how to make the screenpipe wal being processed. It seems it is not working when the screenpipe is stopped
17 Apr
Retry
Edit
Copy
WAL (Write-Ahead Log) in SQLite needs to be checkpointed to merge pending data into the main database file. When Screenpipe stops, the WAL may not be fully checkpointed.
The issue
The issue
SQLite WAL mode keeps a separate
.sqlite-wal
file. Data there is "pending" until a checkpoint runs. Screenpipe normally handles this while running, but if it stops abruptly or you query while it's stopped, the WAL data may appear missing to external readers.
Solutions
Solutions
Option 1: Force a checkpoint manually (safest)
Copy to clipboard
bash
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
This flushes all WAL data into the main DB file and truncates the WAL. Run this after Screenpipe stops.
Option 2: Make your queries WAL-aware
When querying with
sqlite3
directly, open in WAL mode explicitly so it reads both the DB and WAL together:
Copy to clipboard
bash
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA journal_mode=WAL; SELECT ..."
Actually,
sqlite3
already reads WAL automatically — but only if the WAL file is present and not corrupted. The real fix is ensuring the connection sees both files.
Option 3: Add to your
spq
alias
Update the alias to always checkpoint first:
Copy to clipboard
bash
alias
spq
=
'sqlite3 -json ~/.screenpipe/db.sqlite'
alias
spqcheckpoint
=
'sqlite3 ~/.screenpipe/db.sqlite "PRAGMA wal_checkpoint(TRUNCATE);" && echo "WAL checkpointed"'
Option 4: Checkpoint on Screenpipe shutdown (via a wrapper script)
If you start Screenpipe via a script, wrap it:
Copy to clipboard
bash
#!/bin/bash
screenpipe
"
$@
"
# On exit (Ctrl+C or normal stop), checkpoint WAL
echo
"Screenpipe stopped. Checkpointing WAL..."
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
echo
"Done."
Quick diagnosis
Quick diagnosis
Check if a WAL file exists and its size:
Copy to clipboard
bash
ls
-lh ~/.screenpipe/db.sqlite*
If
db.sqlite-wal
is large (MBs), that's unprocessed data. After checkpointing it should shrink to near 0.
Recommended approach:
Use Option 1 whenever you want to query after stopping Screenpipe, and optionally wrap it in your
screenpipe-day.sh
report script at the top.
Copy
Give positive feedback
Give negative feedback
Retry
what about jpg to mp4 conversion
17 Apr
Retry
Edit
Copy
That's unrelated to Screenpipe — are you asking about a general tool/command for converting a sequence of JPG images into an MP4 video?
If so,
FFmpeg
is the standard tool:
Image sequence (e.g. frame001.jpg, frame002.jpg...):
Copy to clipboard
bash
ffmpeg -framerate
24
-i frame%03d.jpg -c:v libx264 -pix_fmt yuv420p output.mp4
Single JPG as a still video (e.g. 5 seconds):
Copy to clipboard
bash
ffmpeg -loop
1
-i input.jpg -t
5
-c:v libx264 -pix_fmt yuv420p output.mp4
All JPGs in a folder (sorted by name):
Copy to clipboard
bash
ffmpeg -framerate
24
-pattern_type glob -i
'*.jpg'
-c:v libx264 -pix_fmt yuv420p output.mp4
Install on Mac:
Copy to clipboard
bash
brew
install
ffmpeg
Let me know the actual use case (slideshow, timelapse, Screenpipe frames, something else?) and I can tailor the command.
Copy
Give positive feedback
Give negative feedback
Retry
but this seems to also happen automatically when the screenpipe is running
17 Apr
Retry
Edit
Copy
Yes, exactly — SQLite automatically checkpoints the WAL when:
The WAL reaches
1000 pages
(default threshold)
A connection closes cleanly
You explicitly call
PRAGMA wal_checkpoint
So when Screenpipe is
running
, the WAL gets checkpointed automatically in the background and you never notice it. The problem only surfaces when Screenpipe is
stopped abruptly
(Ctrl+C, crash, system sleep) and the WAL hasn't been flushed yet at that moment.
The real-world impact
The real-world impact
If you run your
screenpipe-day.sh
or
spq
queries
while Screenpipe is stopped
, you may be missing the last chunk of data that was buffered in the WAL but never checkpointed.
Practical fix
Practical fix
Just prepend the checkpoint to your query script:
Copy to clipboard
bash
# In screenpipe-day.sh or before any spq usage after stopping screenpipe
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
2
>
/dev/null
Or as a shell function in your
.zshrc
:
Copy to clipboard
bash
spqready
(
)
{
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
>
/dev/null
2
>
&1
echo
"WAL checkpointed, DB ready."
}
Then just run
spqready
once after stopping Screenpipe before querying.
Copy
Give positive feedback
Give negative feedback
Retry
how to stop screenpipe but make sure that jpg to mp4 is converted
17 Apr
Retry
Edit
Copy
These two things aren't connected — where does JPG to MP4 come into your Screenpipe setup? Are you thinking of:
Screenpipe's frame captures
(it stores screenshots as JPGs) that you want converted into a timelapse MP4 when stopping?
Something else entirely?
Copy
Give positive feedback
Give negative feedback
Retry
No I mean there are /data/data/{date} with jpgs that are converted to mp4. It seems that if stopped via sp-stop='pkill -f screenpipe && echo '\''screenpipe stopped'\' then these are not converted unless I staert it again
17 Apr
Retry
Edit
Copy
Ah, got it — Screenpipe has an internal process that converts the captured JPG frames into MP4 chunks. When you
pkill -f screenpipe
hard, that conversion pipeline gets killed mid-flight, leaving unconverted JPGs behind.
The fix
The fix
You need to let Screenpipe finish its current conversion before killing it. The cleanest approach is to
send SIGTERM first, then wait
, instead of SIGKILL-equivalent
pkill
:
Copy to clipboard
bash
# Graceful stop — sends SIGTERM and waits
alias
sp-stop
=
'pkill -SIGTERM -f screenpipe && while pgrep -f screenpipe > /dev/null; do sleep 1; done && echo "screenpipe stopped"'
This gives Screenpipe time to finish in-flight conversions before actually dying.
If that's not enough — convert remaining JPGs manually
If that's not enough — convert remaining JPGs manually
After stopping, find any unconverted JPG sequences and process them:
Copy to clipboard
bash
find
~/.screenpipe/data -type d
|
while
read
dir
;
do
jpgs
=
$(
ls
"
$dir
"
/*.jpg
2
>
/dev/null
|
wc
-l
)
mp4
=
$(
ls
"
$dir
"
/*.mp4
2
>
/dev/null
|
wc
-l
)
if
[
"
$jpgs
"
-gt
0
]
&&
[
"
$mp4
"
-eq
0
]
;
then
echo
"Converting
$dir
..."
ffmpeg -framerate
10
-pattern_type glob -i
"
$dir
/*.jpg"
\
-c:v libx264 -pix_fmt yuv420p
"
$dir
/output.mp4"
-loglevel error
fi
done
Adjust
~/.screenpipe/data
to your actual path and
framerate
to whatever Screenpipe uses.
Combined stop alias
Combined stop alias
Copy to clipboard
bash
alias
sp-stop
=
'
pkill -SIGTERM -f screenpipe && \
while pgrep -f screenpipe > /dev/null; do sleep 1; done && \
echo "screenpipe stopped, converting remaining frames..." && \
find ~/.screenpipe/data -type d | while read dir; do
jpgs=$(ls "$dir"/*.jpg 2>/dev/null | wc -l)
mp4=$(ls "$dir"/*.mp4 2>/dev/null | wc -l)
if [ "$jpgs" -gt 0 ] && [ "$mp4" -eq 0 ]; then
ffmpeg -framerate 10 -pattern_type glob -i "$dir/*.jpg" \
-c:v libx264 -pix_fmt yuv420p "$dir/output.mp4" -loglevel error && \
echo "Converted $dir"
fi
done && \
echo "all done"
'
Do you know the actual framerate Screenpipe uses for its captures?
Copy
Give positive feedback
Give negative feedback
Retry
Pasted Text, pasted, 255 lines
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-17 $ ll total 1388520 drwxr-xr-x 252 lukas staff 8064 17 Apr 21:06 . drwxr-xr-x 11 lukas staff 352 17 Apr 08:56 .. -rw-r--r-- 1 lukas staff 199318 17 Apr 21:04 1776449072292_m1.jpg -rw-r--r-- 1 lukas
PASTED
17 Apr
Retry
Edit
Copy
Now the picture is clear. Looking at your directory:
JPGs are named like
1776449072292_m1.jpg
(timestamp + monitor)
MP4s are named like
compact_monitor_1_1776406033543.mp4
(monitor + timestamp)
MP4s are produced in ~5 minute chunks per monitor
The loose JPGs at the bottom (21
:04
–21
:06
) have
no corresponding MP4
yet — that's the unconverted tail
So Screenpipe batches JPGs into 5-minute MP4 chunks. When killed, the current batch is abandoned.
Script to convert remaining JPGs
Script to convert remaining JPGs
The key insight from the filenames: JPGs are
{timestamp}_m{N}.jpg
— group them by monitor number (
m1
,
m2
...) and convert each group.
Copy to clipboard
bash
#!/bin/bash
# sp-convert-remaining.sh
# Converts any unconverted JPGs in ~/.screenpipe/data/data/<date>/
DATE
=
"
${1
:-
$(date +
%
Y-
%
m-
%
d)}
"
DIR
=
"
$HOME
/.screenpipe/data/data/
$DATE
"
echo
"Scanning
$DIR
for unconverted JPGs..."
for
monitor
in
1
2
;
do
jpgs
=
(
"
$DIR
"
/*_m
${monitor}
.jpg
)
[
[
!
-e
"
${jpgs
[
0
]
}
"
]
]
&&
continue
echo
"Monitor
$monitor
: found
${
#
jpgs
[
@
]
}
JPGs"
# Sort by timestamp (they're already timestamp-prefixed, so glob order is fine)
# Use the first frame's timestamp for the output filename
first_ts
=
$(
basename
"
${jpgs
[
0
]
}
"
|
cut
-d_ -f1
)
outfile
=
"
$DIR
/compact_monitor_
${monitor}
_
${first_ts}
.mp4"
if
[
[
-f
"
$outfile
"
]
]
;
then
echo
" Already converted:
$outfile
— skipping"
continue
fi...
|
[{"role":"AXLink","text":& [{"role":"AXLink","text":"Skip to content","depth":14,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Skip to content","depth":15,"role_description":"text"},{"role":"AXStaticText","text":"Click to collapse","depth":16,"role_description":"text"},{"role":"AXStaticText","text":"⌘B","depth":16,"role_description":"text"},{"role":"AXStaticText","text":"Drag to resize","depth":16,"role_description":"text"},{"role":"AXButton","text":"Open sidebar","depth":14,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Chat","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cowork","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New chat ⌘N","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"New chat","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"⌘N","depth":18,"role_description":"text"},{"role":"AXButton","text":"Projects","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Customize","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Artifacts","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Pinned","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Bulgarian citizenship application process for EU residents","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Bulgarian citizenship application process for EU residents","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Dawarich location tracking project","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Dawarich location tracking project","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Recents","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"View all","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reviewing recent conversation highlights","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Reviewing recent conversation highlights","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe WAL processing when stopped","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe WAL processing when stopped","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Mac aliases not recognized","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Mac aliases not recognized","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Boosteroid still recording despite ignored windows setting","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Boosteroid still recording despite ignored windows setting","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Missing JavaScript promise in authorization response","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Missing JavaScript promise in authorization response","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Linux SQLite UI for NAS","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Linux SQLite UI for NAS","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Claude API 500 internal server error","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Claude API 500 internal server error","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe query capabilities and usage","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe query capabilities and usage","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"eGPU compatibility with Mac mini and Studio","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for eGPU compatibility with Mac mini and Studio","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Understanding OpenRouter API gateway","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Understanding OpenRouter API gateway","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe 14-day retention explained","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe 14-day retention explained","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reddit homepage feed overview","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Reddit homepage feed overview","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Docker container not visible in console","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Docker container not visible in console","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"DIA browser RAM configuration","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for DIA browser RAM configuration","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe company background","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe company background","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"DSK Bank Bulgaria secure investing explained","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for DSK Bank Bulgaria secure investing explained","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Building a comprehensive personal homelab system","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Building a comprehensive personal homelab system","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Importing Google Timeline data to Owntracks","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Importing Google Timeline data to Owntracks","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Chromecast remote volume buttons not working","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Chromecast remote volume buttons not working","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe free version guide","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe free version guide","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Updated to 1.3109.0","depth":16,"role_description":"text"},{"role":"AXStaticText","text":"Relaunch to apply","depth":16,"role_description":"text"},{"role":"AXButton","text":"Relaunch","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Lukas Kovalik","depth":16,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Lukas Kovalik","depth":17,"role_description":"text"},{"role":"AXButton","text":"Get apps and extensions","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe WAL processing when stopped","depth":19,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Screenpipe WAL processing when stopped","depth":21,"role_description":"text"},{"role":"AXPopUpButton","text":"More options for Screenpipe WAL processing when stopped","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open sidebar","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share chat","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"how to make the screenpipe wal being processed. It seems it is not working when the screenpipe is stopped","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"17 Apr","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"WAL (Write-Ahead Log) in SQLite needs to be checkpointed to merge pending data into the main database file. When Screenpipe stops, the WAL may not be fully checkpointed.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"The issue","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"The issue","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"SQLite WAL mode keeps a separate","depth":23,"role_description":"text"},{"role":"AXStaticText","text":".sqlite-wal","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"file. Data there is \"pending\" until a checkpoint runs. Screenpipe normally handles this while running, but if it stops abruptly or you query while it's stopped, the WAL data may appear missing to external readers.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"Solutions","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"Solutions","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Option 1: Force a checkpoint manually (safest)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 ~/.screenpipe/db.sqlite","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"PRAGMA wal_checkpoint(TRUNCATE);\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"This flushes all WAL data into the main DB file and truncates the WAL. Run this after Screenpipe stops.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Option 2: Make your queries WAL-aware","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"When querying with","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"directly, open in WAL mode explicitly so it reads both the DB and WAL together:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 ~/.screenpipe/db.sqlite","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"PRAGMA journal_mode=WAL; SELECT ...\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Actually,","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"already reads WAL automatically — but only if the WAL file is present and not corrupted. The real fix is ensuring the connection sees both files.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Option 3: Add to your","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"spq","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"alias","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Update the alias to always checkpoint first:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"alias","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"spq","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"'sqlite3 -json ~/.screenpipe/db.sqlite'","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"alias","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"spqcheckpoint","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"'sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA wal_checkpoint(TRUNCATE);\" && echo \"WAL checkpointed\"'","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Option 4: Checkpoint on Screenpipe shutdown (via a wrapper script)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"If you start Screenpipe via a script, wrap it:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"#!/bin/bash","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"screenpipe","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$@","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# On exit (Ctrl+C or normal stop), checkpoint WAL","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"Screenpipe stopped. Checkpointing WAL...\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 ~/.screenpipe/db.sqlite","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"PRAGMA wal_checkpoint(TRUNCATE);\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"Done.\"","depth":25,"role_description":"text"},{"role":"AXHeading","text":"Quick diagnosis","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"Quick diagnosis","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Check if a WAL file exists and its size:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"ls","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-lh ~/.screenpipe/db.sqlite*","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"If","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"db.sqlite-wal","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"is large (MBs), that's unprocessed data. After checkpointing it should shrink to near 0.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Recommended approach:","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Use Option 1 whenever you want to query after stopping Screenpipe, and optionally wrap it in your","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"screenpipe-day.sh","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"report script at the top.","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give positive feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give negative feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"what about jpg to mp4 conversion","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"17 Apr","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"That's unrelated to Screenpipe — are you asking about a general tool/command for converting a sequence of JPG images into an MP4 video?","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"If so,","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"FFmpeg","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"is the standard tool:","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Image sequence (e.g. frame001.jpg, frame002.jpg...):","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"ffmpeg -framerate","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"24","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-i frame%03d.jpg -c:v libx264 -pix_fmt yuv420p output.mp4","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Single JPG as a still video (e.g. 5 seconds):","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"ffmpeg -loop","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-i input.jpg -t","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"5","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-c:v libx264 -pix_fmt yuv420p output.mp4","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"All JPGs in a folder (sorted by name):","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"ffmpeg -framerate","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"24","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"-pattern_type glob -i","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"'*.jpg'","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"-c:v libx264 -pix_fmt yuv420p output.mp4","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Install on Mac:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"brew","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"install","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ffmpeg","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Let me know the actual use case (slideshow, timelapse, Screenpipe frames, something else?) and I can tailor the command.","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give positive feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give negative feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"but this seems to also happen automatically when the screenpipe is running","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"17 Apr","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Yes, exactly — SQLite automatically checkpoints the WAL when:","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"The WAL reaches","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"1000 pages","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(default threshold)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"A connection closes cleanly","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"You explicitly call","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"PRAGMA wal_checkpoint","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"So when Screenpipe is","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"running","depth":24,"role_description":"text"},{"role":"AXStaticText","text":", the WAL gets checkpointed automatically in the background and you never notice it. The problem only surfaces when Screenpipe is","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"stopped abruptly","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"(Ctrl+C, crash, system sleep) and the WAL hasn't been flushed yet at that moment.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"The real-world impact","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"The real-world impact","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"If you run your","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"screenpipe-day.sh","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"or","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"spq","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"queries","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"while Screenpipe is stopped","depth":24,"role_description":"text"},{"role":"AXStaticText","text":", you may be missing the last chunk of data that was buffered in the WAL but never checkpointed.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"Practical fix","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"Practical fix","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Just prepend the checkpoint to your query script:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"# In screenpipe-day.sh or before any spq usage after stopping screenpipe","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 ~/.screenpipe/db.sqlite","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"PRAGMA wal_checkpoint(TRUNCATE);\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":25,"role_description":"text"},{"role":"AXStaticText","text":">","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/dev/null","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Or as a shell function in your","depth":23,"role_description":"text"},{"role":"AXStaticText","text":".zshrc","depth":24,"role_description":"text"},{"role":"AXStaticText","text":":","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"spqready","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(","depth":25,"role_description":"text"},{"role":"AXStaticText","text":")","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"{","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 ~/.screenpipe/db.sqlite","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"PRAGMA wal_checkpoint(TRUNCATE);\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":">","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/dev/null","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":25,"role_description":"text"},{"role":"AXStaticText","text":">","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"&1","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"WAL checkpointed, DB ready.\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Then just run","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"spqready","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"once after stopping Screenpipe before querying.","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give positive feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give negative feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"how to stop screenpipe but make sure that jpg to mp4 is converted","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"17 Apr","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"These two things aren't connected — where does JPG to MP4 come into your Screenpipe setup? Are you thinking of:","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Screenpipe's frame captures","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(it stores screenshots as JPGs) that you want converted into a timelapse MP4 when stopping?","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Something else entirely?","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give positive feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give negative feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"No I mean there are /data/data/{date} with jpgs that are converted to mp4. It seems that if stopped via sp-stop='pkill -f screenpipe && echo '\\''screenpipe stopped'\\' then these are not converted unless I staert it again","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"17 Apr","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Ah, got it — Screenpipe has an internal process that converts the captured JPG frames into MP4 chunks. When you","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"pkill -f screenpipe","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"hard, that conversion pipeline gets killed mid-flight, leaving unconverted JPGs behind.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"The fix","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"The fix","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"You need to let Screenpipe finish its current conversion before killing it. The cleanest approach is to","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"send SIGTERM first, then wait","depth":24,"role_description":"text"},{"role":"AXStaticText","text":", instead of SIGKILL-equivalent","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"pkill","depth":24,"role_description":"text"},{"role":"AXStaticText","text":":","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"# Graceful stop — sends SIGTERM and waits","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"alias","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"sp-stop","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"'pkill -SIGTERM -f screenpipe && while pgrep -f screenpipe > /dev/null; do sleep 1; done && echo \"screenpipe stopped\"'","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"This gives Screenpipe time to finish in-flight conversions before actually dying.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"If that's not enough — convert remaining JPGs manually","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"If that's not enough — convert remaining JPGs manually","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"After stopping, find any unconverted JPG sequences and process them:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"find","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"~/.screenpipe/data -type d","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"|","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"while","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"read","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"dir","depth":25,"role_description":"text"},{"role":"AXStaticText","text":";","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"do","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"jpgs","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$(","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ls","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$dir","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/*.jpg","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":25,"role_description":"text"},{"role":"AXStaticText","text":">","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/dev/null","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"|","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"wc","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-l","depth":25,"role_description":"text"},{"role":"AXStaticText","text":")","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"mp4","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$(","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ls","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$dir","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/*.mp4","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":25,"role_description":"text"},{"role":"AXStaticText","text":">","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/dev/null","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"|","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"wc","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-l","depth":25,"role_description":"text"},{"role":"AXStaticText","text":")","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"if","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$jpgs","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-gt","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"&&","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$mp4","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-eq","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":";","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"then","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"Converting","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$dir","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"...\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ffmpeg -framerate","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"10","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-pattern_type glob -i","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$dir","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/*.jpg\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\\","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-c:v libx264 -pix_fmt yuv420p","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$dir","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/output.mp4\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-loglevel error","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"fi","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"done","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Adjust","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"~/.screenpipe/data","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"to your actual path and","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"framerate","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"to whatever Screenpipe uses.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"Combined stop alias","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"Combined stop alias","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"alias","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"sp-stop","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"'","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"pkill -SIGTERM -f screenpipe && \\","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"while pgrep -f screenpipe > /dev/null; do sleep 1; done && \\","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo \"screenpipe stopped, converting remaining frames...\" && \\","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"find ~/.screenpipe/data -type d | while read dir; do","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"jpgs=$(ls \"$dir\"/*.jpg 2>/dev/null | wc -l)","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"mp4=$(ls \"$dir\"/*.mp4 2>/dev/null | wc -l)","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"if [ \"$jpgs\" -gt 0 ] && [ \"$mp4\" -eq 0 ]; then","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ffmpeg -framerate 10 -pattern_type glob -i \"$dir/*.jpg\" \\","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-c:v libx264 -pix_fmt yuv420p \"$dir/output.mp4\" -loglevel error && \\","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo \"Converted $dir\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"fi","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"done && \\","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo \"all done\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"'","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Do you know the actual framerate Screenpipe uses for its captures?","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give positive feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give negative feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Pasted Text, pasted, 255 lines","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-17 $ ll total 1388520 drwxr-xr-x 252 lukas staff 8064 17 Apr 21:06 . drwxr-xr-x 11 lukas staff 352 17 Apr 08:56 .. -rw-r--r-- 1 lukas staff 199318 17 Apr 21:04 1776449072292_m1.jpg -rw-r--r-- 1 lukas","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"PASTED","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"17 Apr","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Now the picture is clear. Looking at your directory:","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"JPGs are named like","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"1776449072292_m1.jpg","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(timestamp + monitor)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"MP4s are named like","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"compact_monitor_1_1776406033543.mp4","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(monitor + timestamp)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"MP4s are produced in ~5 minute chunks per monitor","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"The loose JPGs at the bottom (21","depth":24,"role_description":"text"},{"role":"AXStaticText","text":":04","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"–21","depth":24,"role_description":"text"},{"role":"AXStaticText","text":":06","depth":24,"role_description":"text"},{"role":"AXStaticText","text":") have","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"no corresponding MP4","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"yet — that's the unconverted tail","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"So Screenpipe batches JPGs into 5-minute MP4 chunks. When killed, the current batch is abandoned.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"Script to convert remaining JPGs","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"Script to convert remaining JPGs","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"The key insight from the filenames: JPGs are","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"{timestamp}_m{N}.jpg","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"— group them by monitor number (","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"m1","depth":24,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"m2","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"...) and convert each group.","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"#!/bin/bash","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# sp-convert-remaining.sh","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# Converts any unconverted JPGs in ~/.screenpipe/data/data/<date>/","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"DATE","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"${1","depth":25,"role_description":"text"},{"role":"AXStaticText","text":":-","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$(date +","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"%","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Y-","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"%","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"m-","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"%","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"d)}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"DIR","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$HOME","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/.screenpipe/data/data/","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$DATE","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"Scanning","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$DIR","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"for unconverted JPGs...\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"for","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"monitor","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"in","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":25,"role_description":"text"},{"role":"AXStaticText","text":";","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"do","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"jpgs","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$DIR","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/*_m","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"${monitor}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":".jpg","depth":25,"role_description":"text"},{"role":"AXStaticText","text":")","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"!","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-e","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"${jpgs","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"&&","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"continue","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"Monitor","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$monitor","depth":25,"role_description":"text"},{"role":"AXStaticText","text":": found","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"${","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"#","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"jpgs","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"@","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"JPGs\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# Sort by timestamp (they're already timestamp-prefixed, so glob order is fine)","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# Use the first frame's timestamp for the output filename","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"first_ts","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$(","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"basename","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"${jpgs","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"|","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"cut","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-d_ -f1","depth":25,"role_description":"text"},{"role":"AXStaticText","text":")","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"outfile","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$DIR","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/compact_monitor_","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"${monitor}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"_","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"${first_ts}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":".mp4\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"if","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-f","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$outfile","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":";","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"then","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\" Already converted:","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$outfile","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"— skipping\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"continue","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"fi","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"}]...
|
-8829320239150380439
|
-3521997020485265254
|
idle
|
accessibility
|
NULL
|
Skip to content
Skip to content
Click to collapse
Skip to content
Skip to content
Click to collapse
⌘B
Drag to resize
Open sidebar
Chat
Cowork
Code
New chat ⌘N
New chat
⌘N
Projects
Customize
Artifacts
Pinned
Bulgarian citizenship application process for EU residents
More options for Bulgarian citizenship application process for EU residents
Dawarich location tracking project
More options for Dawarich location tracking project
Recents
View all
Reviewing recent conversation highlights
More options for Reviewing recent conversation highlights
Screenpipe WAL processing when stopped
More options for Screenpipe WAL processing when stopped
Mac aliases not recognized
More options for Mac aliases not recognized
Boosteroid still recording despite ignored windows setting
More options for Boosteroid still recording despite ignored windows setting
Missing JavaScript promise in authorization response
More options for Missing JavaScript promise in authorization response
Linux SQLite UI for NAS
More options for Linux SQLite UI for NAS
Claude API 500 internal server error
More options for Claude API 500 internal server error
Screenpipe query capabilities and usage
More options for Screenpipe query capabilities and usage
eGPU compatibility with Mac mini and Studio
More options for eGPU compatibility with Mac mini and Studio
Understanding OpenRouter API gateway
More options for Understanding OpenRouter API gateway
Screenpipe 14-day retention explained
More options for Screenpipe 14-day retention explained
Reddit homepage feed overview
More options for Reddit homepage feed overview
Docker container not visible in console
More options for Docker container not visible in console
DIA browser RAM configuration
More options for DIA browser RAM configuration
Screenpipe company background
More options for Screenpipe company background
DSK Bank Bulgaria secure investing explained
More options for DSK Bank Bulgaria secure investing explained
Building a comprehensive personal homelab system
More options for Building a comprehensive personal homelab system
Importing Google Timeline data to Owntracks
More options for Importing Google Timeline data to Owntracks
Chromecast remote volume buttons not working
More options for Chromecast remote volume buttons not working
Screenpipe free version guide
More options for Screenpipe free version guide
Updated to 1.3109.0
Relaunch to apply
Relaunch
Lukas Kovalik
Lukas Kovalik
Get apps and extensions
Screenpipe WAL processing when stopped
Screenpipe WAL processing when stopped
More options for Screenpipe WAL processing when stopped
Open sidebar
Share chat
how to make the screenpipe wal being processed. It seems it is not working when the screenpipe is stopped
17 Apr
Retry
Edit
Copy
WAL (Write-Ahead Log) in SQLite needs to be checkpointed to merge pending data into the main database file. When Screenpipe stops, the WAL may not be fully checkpointed.
The issue
The issue
SQLite WAL mode keeps a separate
.sqlite-wal
file. Data there is "pending" until a checkpoint runs. Screenpipe normally handles this while running, but if it stops abruptly or you query while it's stopped, the WAL data may appear missing to external readers.
Solutions
Solutions
Option 1: Force a checkpoint manually (safest)
Copy to clipboard
bash
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
This flushes all WAL data into the main DB file and truncates the WAL. Run this after Screenpipe stops.
Option 2: Make your queries WAL-aware
When querying with
sqlite3
directly, open in WAL mode explicitly so it reads both the DB and WAL together:
Copy to clipboard
bash
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA journal_mode=WAL; SELECT ..."
Actually,
sqlite3
already reads WAL automatically — but only if the WAL file is present and not corrupted. The real fix is ensuring the connection sees both files.
Option 3: Add to your
spq
alias
Update the alias to always checkpoint first:
Copy to clipboard
bash
alias
spq
=
'sqlite3 -json ~/.screenpipe/db.sqlite'
alias
spqcheckpoint
=
'sqlite3 ~/.screenpipe/db.sqlite "PRAGMA wal_checkpoint(TRUNCATE);" && echo "WAL checkpointed"'
Option 4: Checkpoint on Screenpipe shutdown (via a wrapper script)
If you start Screenpipe via a script, wrap it:
Copy to clipboard
bash
#!/bin/bash
screenpipe
"
$@
"
# On exit (Ctrl+C or normal stop), checkpoint WAL
echo
"Screenpipe stopped. Checkpointing WAL..."
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
echo
"Done."
Quick diagnosis
Quick diagnosis
Check if a WAL file exists and its size:
Copy to clipboard
bash
ls
-lh ~/.screenpipe/db.sqlite*
If
db.sqlite-wal
is large (MBs), that's unprocessed data. After checkpointing it should shrink to near 0.
Recommended approach:
Use Option 1 whenever you want to query after stopping Screenpipe, and optionally wrap it in your
screenpipe-day.sh
report script at the top.
Copy
Give positive feedback
Give negative feedback
Retry
what about jpg to mp4 conversion
17 Apr
Retry
Edit
Copy
That's unrelated to Screenpipe — are you asking about a general tool/command for converting a sequence of JPG images into an MP4 video?
If so,
FFmpeg
is the standard tool:
Image sequence (e.g. frame001.jpg, frame002.jpg...):
Copy to clipboard
bash
ffmpeg -framerate
24
-i frame%03d.jpg -c:v libx264 -pix_fmt yuv420p output.mp4
Single JPG as a still video (e.g. 5 seconds):
Copy to clipboard
bash
ffmpeg -loop
1
-i input.jpg -t
5
-c:v libx264 -pix_fmt yuv420p output.mp4
All JPGs in a folder (sorted by name):
Copy to clipboard
bash
ffmpeg -framerate
24
-pattern_type glob -i
'*.jpg'
-c:v libx264 -pix_fmt yuv420p output.mp4
Install on Mac:
Copy to clipboard
bash
brew
install
ffmpeg
Let me know the actual use case (slideshow, timelapse, Screenpipe frames, something else?) and I can tailor the command.
Copy
Give positive feedback
Give negative feedback
Retry
but this seems to also happen automatically when the screenpipe is running
17 Apr
Retry
Edit
Copy
Yes, exactly — SQLite automatically checkpoints the WAL when:
The WAL reaches
1000 pages
(default threshold)
A connection closes cleanly
You explicitly call
PRAGMA wal_checkpoint
So when Screenpipe is
running
, the WAL gets checkpointed automatically in the background and you never notice it. The problem only surfaces when Screenpipe is
stopped abruptly
(Ctrl+C, crash, system sleep) and the WAL hasn't been flushed yet at that moment.
The real-world impact
The real-world impact
If you run your
screenpipe-day.sh
or
spq
queries
while Screenpipe is stopped
, you may be missing the last chunk of data that was buffered in the WAL but never checkpointed.
Practical fix
Practical fix
Just prepend the checkpoint to your query script:
Copy to clipboard
bash
# In screenpipe-day.sh or before any spq usage after stopping screenpipe
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
2
>
/dev/null
Or as a shell function in your
.zshrc
:
Copy to clipboard
bash
spqready
(
)
{
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
>
/dev/null
2
>
&1
echo
"WAL checkpointed, DB ready."
}
Then just run
spqready
once after stopping Screenpipe before querying.
Copy
Give positive feedback
Give negative feedback
Retry
how to stop screenpipe but make sure that jpg to mp4 is converted
17 Apr
Retry
Edit
Copy
These two things aren't connected — where does JPG to MP4 come into your Screenpipe setup? Are you thinking of:
Screenpipe's frame captures
(it stores screenshots as JPGs) that you want converted into a timelapse MP4 when stopping?
Something else entirely?
Copy
Give positive feedback
Give negative feedback
Retry
No I mean there are /data/data/{date} with jpgs that are converted to mp4. It seems that if stopped via sp-stop='pkill -f screenpipe && echo '\''screenpipe stopped'\' then these are not converted unless I staert it again
17 Apr
Retry
Edit
Copy
Ah, got it — Screenpipe has an internal process that converts the captured JPG frames into MP4 chunks. When you
pkill -f screenpipe
hard, that conversion pipeline gets killed mid-flight, leaving unconverted JPGs behind.
The fix
The fix
You need to let Screenpipe finish its current conversion before killing it. The cleanest approach is to
send SIGTERM first, then wait
, instead of SIGKILL-equivalent
pkill
:
Copy to clipboard
bash
# Graceful stop — sends SIGTERM and waits
alias
sp-stop
=
'pkill -SIGTERM -f screenpipe && while pgrep -f screenpipe > /dev/null; do sleep 1; done && echo "screenpipe stopped"'
This gives Screenpipe time to finish in-flight conversions before actually dying.
If that's not enough — convert remaining JPGs manually
If that's not enough — convert remaining JPGs manually
After stopping, find any unconverted JPG sequences and process them:
Copy to clipboard
bash
find
~/.screenpipe/data -type d
|
while
read
dir
;
do
jpgs
=
$(
ls
"
$dir
"
/*.jpg
2
>
/dev/null
|
wc
-l
)
mp4
=
$(
ls
"
$dir
"
/*.mp4
2
>
/dev/null
|
wc
-l
)
if
[
"
$jpgs
"
-gt
0
]
&&
[
"
$mp4
"
-eq
0
]
;
then
echo
"Converting
$dir
..."
ffmpeg -framerate
10
-pattern_type glob -i
"
$dir
/*.jpg"
\
-c:v libx264 -pix_fmt yuv420p
"
$dir
/output.mp4"
-loglevel error
fi
done
Adjust
~/.screenpipe/data
to your actual path and
framerate
to whatever Screenpipe uses.
Combined stop alias
Combined stop alias
Copy to clipboard
bash
alias
sp-stop
=
'
pkill -SIGTERM -f screenpipe && \
while pgrep -f screenpipe > /dev/null; do sleep 1; done && \
echo "screenpipe stopped, converting remaining frames..." && \
find ~/.screenpipe/data -type d | while read dir; do
jpgs=$(ls "$dir"/*.jpg 2>/dev/null | wc -l)
mp4=$(ls "$dir"/*.mp4 2>/dev/null | wc -l)
if [ "$jpgs" -gt 0 ] && [ "$mp4" -eq 0 ]; then
ffmpeg -framerate 10 -pattern_type glob -i "$dir/*.jpg" \
-c:v libx264 -pix_fmt yuv420p "$dir/output.mp4" -loglevel error && \
echo "Converted $dir"
fi
done && \
echo "all done"
'
Do you know the actual framerate Screenpipe uses for its captures?
Copy
Give positive feedback
Give negative feedback
Retry
Pasted Text, pasted, 255 lines
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-17 $ ll total 1388520 drwxr-xr-x 252 lukas staff 8064 17 Apr 21:06 . drwxr-xr-x 11 lukas staff 352 17 Apr 08:56 .. -rw-r--r-- 1 lukas staff 199318 17 Apr 21:04 1776449072292_m1.jpg -rw-r--r-- 1 lukas
PASTED
17 Apr
Retry
Edit
Copy
Now the picture is clear. Looking at your directory:
JPGs are named like
1776449072292_m1.jpg
(timestamp + monitor)
MP4s are named like
compact_monitor_1_1776406033543.mp4
(monitor + timestamp)
MP4s are produced in ~5 minute chunks per monitor
The loose JPGs at the bottom (21
:04
–21
:06
) have
no corresponding MP4
yet — that's the unconverted tail
So Screenpipe batches JPGs into 5-minute MP4 chunks. When killed, the current batch is abandoned.
Script to convert remaining JPGs
Script to convert remaining JPGs
The key insight from the filenames: JPGs are
{timestamp}_m{N}.jpg
— group them by monitor number (
m1
,
m2
...) and convert each group.
Copy to clipboard
bash
#!/bin/bash
# sp-convert-remaining.sh
# Converts any unconverted JPGs in ~/.screenpipe/data/data/<date>/
DATE
=
"
${1
:-
$(date +
%
Y-
%
m-
%
d)}
"
DIR
=
"
$HOME
/.screenpipe/data/data/
$DATE
"
echo
"Scanning
$DIR
for unconverted JPGs..."
for
monitor
in
1
2
;
do
jpgs
=
(
"
$DIR
"
/*_m
${monitor}
.jpg
)
[
[
!
-e
"
${jpgs
[
0
]
}
"
]
]
&&
continue
echo
"Monitor
$monitor
: found
${
#
jpgs
[
@
]
}
JPGs"
# Sort by timestamp (they're already timestamp-prefixed, so glob order is fine)
# Use the first frame's timestamp for the output filename
first_ts
=
$(
basename
"
${jpgs
[
0
]
}
"
|
cut
-d_ -f1
)
outfile
=
"
$DIR
/compact_monitor_
${monitor}
_
${first_ts}
.mp4"
if
[
[
-f
"
$outfile
"
]
]
;
then
echo
" Already converted:
$outfile
— skipping"
continue
fi...
|
NULL
|
|
51493
|
1111
|
76
|
2026-04-18T11:45:02.300191+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-18/1776 /Users/lukas/.screenpipe/data/data/2026-04-18/1776512702300_m1.jpg...
|
Claude
|
Claude
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Skip to content
Skip to content
Click to collapse
Skip to content
Skip to content
Click to collapse
⌘B
Drag to resize
Open sidebar
Chat
Cowork
Code
New chat ⌘N
New chat
⌘N
Projects
Customize
Artifacts
Pinned
Bulgarian citizenship application process for EU residents
More options for Bulgarian citizenship application process for EU residents
Dawarich location tracking project
More options for Dawarich location tracking project
Recents
View all
Reviewing recent conversation highlights
More options for Reviewing recent conversation highlights
Screenpipe WAL processing when stopped
More options for Screenpipe WAL processing when stopped
Mac aliases not recognized
More options for Mac aliases not recognized
Boosteroid still recording despite ignored windows setting
More options for Boosteroid still recording despite ignored windows setting
Missing JavaScript promise in authorization response
More options for Missing JavaScript promise in authorization response
Linux SQLite UI for NAS
More options for Linux SQLite UI for NAS
Claude API 500 internal server error
More options for Claude API 500 internal server error
Screenpipe query capabilities and usage
More options for Screenpipe query capabilities and usage
eGPU compatibility with Mac mini and Studio
More options for eGPU compatibility with Mac mini and Studio
Understanding OpenRouter API gateway
More options for Understanding OpenRouter API gateway
Screenpipe 14-day retention explained
More options for Screenpipe 14-day retention explained
Reddit homepage feed overview
More options for Reddit homepage feed overview
Docker container not visible in console
More options for Docker container not visible in console
DIA browser RAM configuration
More options for DIA browser RAM configuration
Screenpipe company background
More options for Screenpipe company background
DSK Bank Bulgaria secure investing explained
More options for DSK Bank Bulgaria secure investing explained
Building a comprehensive personal homelab system
More options for Building a comprehensive personal homelab system
Importing Google Timeline data to Owntracks
More options for Importing Google Timeline data to Owntracks
Chromecast remote volume buttons not working
More options for Chromecast remote volume buttons not working
Screenpipe free version guide
More options for Screenpipe free version guide
Updated to 1.3109.0
Relaunch to apply
Relaunch
Lukas Kovalik
Lukas Kovalik
Get apps and extensions
Screenpipe WAL processing when stopped
Screenpipe WAL processing when stopped
More options for Screenpipe WAL processing when stopped
Open sidebar
Share chat
how to make the screenpipe wal being processed. It seems it is not working when the screenpipe is stopped
17 Apr
Retry
Edit
Copy
WAL (Write-Ahead Log) in SQLite needs to be checkpointed to merge pending data into the main database file. When Screenpipe stops, the WAL may not be fully checkpointed.
The issue
The issue
SQLite WAL mode keeps a separate
.sqlite-wal
file. Data there is "pending" until a checkpoint runs. Screenpipe normally handles this while running, but if it stops abruptly or you query while it's stopped, the WAL data may appear missing to external readers.
Solutions
Solutions
Option 1: Force a checkpoint manually (safest)
Copy to clipboard
bash
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
This flushes all WAL data into the main DB file and truncates the WAL. Run this after Screenpipe stops.
Option 2: Make your queries WAL-aware
When querying with
sqlite3
directly, open in WAL mode explicitly so it reads both the DB and WAL together:
Copy to clipboard
bash
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA journal_mode=WAL; SELECT ..."
Actually,
sqlite3
already reads WAL automatically — but only if the WAL file is present and not corrupted. The real fix is ensuring the connection sees both files.
Option 3: Add to your
spq
alias
Update the alias to always checkpoint first:
Copy to clipboard
bash
alias
spq
=
'sqlite3 -json ~/.screenpipe/db.sqlite'
alias
spqcheckpoint
=
'sqlite3 ~/.screenpipe/db.sqlite "PRAGMA wal_checkpoint(TRUNCATE);" && echo "WAL checkpointed"'
Option 4: Checkpoint on Screenpipe shutdown (via a wrapper script)
If you start Screenpipe via a script, wrap it:
Copy to clipboard
bash
#!/bin/bash
screenpipe
"
$@
"
# On exit (Ctrl+C or normal stop), checkpoint WAL
echo
"Screenpipe stopped. Checkpointing WAL..."
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
echo
"Done."
Quick diagnosis
Quick diagnosis
Check if a WAL file exists and its size:
Copy to clipboard
bash
ls
-lh ~/.screenpipe/db.sqlite*
If
db.sqlite-wal
is large (MBs), that's unprocessed data. After checkpointing it should shrink to near 0.
Recommended approach:
Use Option 1 whenever you want to query after stopping Screenpipe, and optionally wrap it in your
screenpipe-day.sh
report script at the top.
Copy
Give positive feedback
Give negative feedback
Retry
what about jpg to mp4 conversion
17 Apr
Retry
Edit
Copy
That's unrelated to Screenpipe — are you asking about a general tool/command for converting a sequence of JPG images into an MP4 video?
If so,
FFmpeg
is the standard tool:
Image sequence (e.g. frame001.jpg, frame002.jpg...):
Copy to clipboard
bash
ffmpeg -framerate
24
-i frame%03d.jpg -c:v libx264 -pix_fmt yuv420p output.mp4
Single JPG as a still video (e.g. 5 seconds):
Copy to clipboard
bash
ffmpeg -loop
1
-i input.jpg -t
5
-c:v libx264 -pix_fmt yuv420p output.mp4
All JPGs in a folder (sorted by name):
Copy to clipboard
bash
ffmpeg -framerate
24
-pattern_type glob -i
'*.jpg'
-c:v libx264 -pix_fmt yuv420p output.mp4
Install on Mac:
Copy to clipboard
bash
brew
install
ffmpeg
Let me know the actual use case (slideshow, timelapse, Screenpipe frames, something else?) and I can tailor the command.
Copy
Give positive feedback
Give negative feedback
Retry
but this seems to also happen automatically when the screenpipe is running
17 Apr
Retry
Edit
Copy
Yes, exactly — SQLite automatically checkpoints the WAL when:
The WAL reaches
1000 pages
(default threshold)
A connection closes cleanly
You explicitly call
PRAGMA wal_checkpoint
So when Screenpipe is
running
, the WAL gets checkpointed automatically in the background and you never notice it. The problem only surfaces when Screenpipe is
stopped abruptly
(Ctrl+C, crash, system sleep) and the WAL hasn't been flushed yet at that moment.
The real-world impact
The real-world impact
If you run your
screenpipe-day.sh
or
spq
queries
while Screenpipe is stopped
, you may be missing the last chunk of data that was buffered in the WAL but never checkpointed.
Practical fix
Practical fix
Just prepend the checkpoint to your query script:
Copy to clipboard
bash
# In screenpipe-day.sh or before any spq usage after stopping screenpipe
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
2
>
/dev/null
Or as a shell function in your
.zshrc
:
Copy to clipboard
bash
spqready
(
)
{
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
>
/dev/null
2
>
&1
echo
"WAL checkpointed, DB ready."
}
Then just run
spqready
once after stopping Screenpipe before querying.
Copy
Give positive feedback
Give negative feedback
Retry
how to stop screenpipe but make sure that jpg to mp4 is converted
17 Apr
Retry
Edit
Copy
These two things aren't connected — where does JPG to MP4 come into your Screenpipe setup? Are you thinking of:
Screenpipe's frame captures
(it stores screenshots as JPGs) that you want converted into a timelapse MP4 when stopping?
Something else entirely?
Copy
Give positive feedback
Give negative feedback
Retry
No I mean there are /data/data/{date} with jpgs that are converted to mp4. It seems that if stopped via sp-stop='pkill -f screenpipe && echo '\''screenpipe stopped'\' then these are not converted unless I staert it again
17 Apr
Retry
Edit
Copy
Ah, got it — Screenpipe has an internal process that converts the captured JPG frames into MP4 chunks. When you
pkill -f screenpipe
hard, that conversion pipeline gets killed mid-flight, leaving unconverted JPGs behind.
The fix
The fix
You need to let Screenpipe finish its current conversion before killing it. The cleanest approach is to
send SIGTERM first, then wait
, instead of SIGKILL-equivalent
pkill
:
Copy to clipboard
bash
# Graceful stop — sends SIGTERM and waits
alias
sp-stop
=
'pkill -SIGTERM -f screenpipe && while pgrep -f screenpipe > /dev/null; do sleep 1; done && echo "screenpipe stopped"'
This gives Screenpipe time to finish in-flight conversions before actually dying.
If that's not enough — convert remaining JPGs manually
If that's not enough — convert remaining JPGs manually
After stopping, find any unconverted JPG sequences and process them:
Copy to clipboard
bash
find
~/.screenpipe/data -type d
|
while
read
dir
;
do
jpgs
=
$(
ls
"
$dir
"
/*.jpg
2
>
/dev/null
|
wc
-l
)
mp4
=
$(
ls
"
$dir
"
/*.mp4
2
>
/dev/null
|
wc
-l
)
if
[
"
$jpgs
"
-gt
0
]
&&
[
"
$mp4
"
-eq
0
]
;
then
echo
"Converting
$dir
..."
ffmpeg -framerate
10
-pattern_type glob -i
"
$dir
/*.jpg"
\
-c:v libx264 -pix_fmt yuv420p
"
$dir
/output.mp4"
-loglevel error
fi
done
Adjust
~/.screenpipe/data
to your actual path and
framerate
to whatever Screenpipe uses.
Combined stop alias
Combined stop alias
Copy to clipboard
bash
alias
sp-stop
=
'
pkill -SIGTERM -f screenpipe && \
while pgrep -f screenpipe > /dev/null; do sleep 1; done && \
echo "screenpipe stopped, converting remaining frames..." && \
find ~/.screenpipe/data -type d | while read dir; do
jpgs=$(ls "$dir"/*.jpg 2>/dev/null | wc -l)
mp4=$(ls "$dir"/*.mp4 2>/dev/null | wc -l)
if [ "$jpgs" -gt 0 ] && [ "$mp4" -eq 0 ]; then
ffmpeg -framerate 10 -pattern_type glob -i "$dir/*.jpg" \
-c:v libx264 -pix_fmt yuv420p "$dir/output.mp4" -loglevel error && \
echo "Converted $dir"
fi
done && \
echo "all done"
'
Do you know the actual framerate Screenpipe uses for its captures?
Copy
Give positive feedback
Give negative feedback
Retry
Pasted Text, pasted, 255 lines
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-17 $ ll total 1388520 drwxr-xr-x 252 lukas staff 8064 17 Apr 21:06 . drwxr-xr-x 11 lukas staff 352 17 Apr 08:56 .. -rw-r--r-- 1 lukas staff 199318 17 Apr 21:04 1776449072292_m1.jpg -rw-r--r-- 1 lukas
PASTED
17 Apr
Retry
Edit
Copy
Now the picture is clear. Looking at your directory:
JPGs are named like
1776449072292_m1.jpg
(timestamp + monitor)
MP4s are named like
compact_monitor_1_1776406033543.mp4
(monitor + timestamp)
MP4s are produced in ~5 minute chunks per monitor
The loose JPGs at the bottom (21
:04
–21
:06
) have
no corresponding MP4
yet — that's the unconverted tail
So Screenpipe batches JPGs into 5-minute MP4 chunks. When killed, the current batch is abandoned.
Script to convert remaining JPGs
Script to convert remaining JPGs
The key insight from the filenames: JPGs are
{timestamp}_m{N}.jpg
— group them by monitor number (
m1
,
m2
...) and convert each group.
Copy to clipboard
bash
#!/bin/bash
# sp-convert-remaining.sh
# Converts any unconverted JPGs in ~/.screenpipe/data/data/<date>/
DATE
=
"
${1
:-
$(date +
%
Y-
%
m-
%
d)}
"
DIR
=
"
$HOME
/.screenpipe/data/data/
$DATE
"
echo
"Scanning
$DIR
for unconverted JPGs..."
for
monitor
in
1
2
;
do
jpgs
=
(
"
$DIR
"
/*_m
${monitor}
.jpg
)
[
[
!
-e
"
${jpgs
[
0
]
}
"
]
]
&&
continue
echo
"Monitor
$monitor
: found
${
#
jpgs
[
@
]
}
JPGs"
# Sort by timestamp (they're already timestamp-prefixed, so glob order is fine)
# Use the first frame's timestamp for the output filename
first_ts
=
$(
basename
"
${jpgs
[
0
]
}
"
|
cut
-d_ -f1
)
outfile
=
"
$DIR
/compact_monitor_
${monitor}
_
${first_ts}
.mp4"
if
[
[
-f
"
$outfile
"
]
]
;
then
echo
" Already converted:
$outfile
— skipping"
continue
fi...
|
[{"role":"AXLink","text":& [{"role":"AXLink","text":"Skip to content","depth":14,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Skip to content","depth":15,"role_description":"text"},{"role":"AXStaticText","text":"Click to collapse","depth":16,"role_description":"text"},{"role":"AXStaticText","text":"⌘B","depth":16,"role_description":"text"},{"role":"AXStaticText","text":"Drag to resize","depth":16,"role_description":"text"},{"role":"AXButton","text":"Open sidebar","depth":14,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Chat","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cowork","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New chat ⌘N","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"New chat","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"⌘N","depth":18,"role_description":"text"},{"role":"AXButton","text":"Projects","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Customize","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Artifacts","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Pinned","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Bulgarian citizenship application process for EU residents","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Bulgarian citizenship application process for EU residents","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Dawarich location tracking project","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Dawarich location tracking project","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Recents","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"View all","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reviewing recent conversation highlights","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Reviewing recent conversation highlights","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe WAL processing when stopped","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe WAL processing when stopped","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Mac aliases not recognized","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Mac aliases not recognized","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Boosteroid still recording despite ignored windows setting","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Boosteroid still recording despite ignored windows setting","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Missing JavaScript promise in authorization response","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Missing JavaScript promise in authorization response","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Linux SQLite UI for NAS","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Linux SQLite UI for NAS","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Claude API 500 internal server error","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Claude API 500 internal server error","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe query capabilities and usage","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe query capabilities and usage","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"eGPU compatibility with Mac mini and Studio","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for eGPU compatibility with Mac mini and Studio","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Understanding OpenRouter API gateway","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Understanding OpenRouter API gateway","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe 14-day retention explained","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe 14-day retention explained","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reddit homepage feed overview","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Reddit homepage feed overview","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Docker container not visible in console","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Docker container not visible in console","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"DIA browser RAM configuration","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for DIA browser RAM configuration","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe company background","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe company background","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"DSK Bank Bulgaria secure investing explained","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for DSK Bank Bulgaria secure investing explained","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Building a comprehensive personal homelab system","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Building a comprehensive personal homelab system","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Importing Google Timeline data to Owntracks","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Importing Google Timeline data to Owntracks","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Chromecast remote volume buttons not working","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Chromecast remote volume buttons not working","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe free version guide","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe free version guide","depth":18,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Updated to 1.3109.0","depth":16,"role_description":"text"},{"role":"AXStaticText","text":"Relaunch to apply","depth":16,"role_description":"text"},{"role":"AXButton","text":"Relaunch","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Lukas Kovalik","depth":16,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Lukas Kovalik","depth":17,"role_description":"text"},{"role":"AXButton","text":"Get apps and extensions","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe WAL processing when stopped","depth":19,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Screenpipe WAL processing when stopped","depth":21,"role_description":"text"},{"role":"AXPopUpButton","text":"More options for Screenpipe WAL processing when stopped","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open sidebar","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share chat","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"how to make the screenpipe wal being processed. It seems it is not working when the screenpipe is stopped","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"17 Apr","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"WAL (Write-Ahead Log) in SQLite needs to be checkpointed to merge pending data into the main database file. When Screenpipe stops, the WAL may not be fully checkpointed.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"The issue","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"The issue","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"SQLite WAL mode keeps a separate","depth":23,"role_description":"text"},{"role":"AXStaticText","text":".sqlite-wal","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"file. Data there is \"pending\" until a checkpoint runs. Screenpipe normally handles this while running, but if it stops abruptly or you query while it's stopped, the WAL data may appear missing to external readers.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"Solutions","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"Solutions","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Option 1: Force a checkpoint manually (safest)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 ~/.screenpipe/db.sqlite","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"PRAGMA wal_checkpoint(TRUNCATE);\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"This flushes all WAL data into the main DB file and truncates the WAL. Run this after Screenpipe stops.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Option 2: Make your queries WAL-aware","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"When querying with","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"directly, open in WAL mode explicitly so it reads both the DB and WAL together:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 ~/.screenpipe/db.sqlite","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"PRAGMA journal_mode=WAL; SELECT ...\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Actually,","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"already reads WAL automatically — but only if the WAL file is present and not corrupted. The real fix is ensuring the connection sees both files.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Option 3: Add to your","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"spq","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"alias","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Update the alias to always checkpoint first:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"alias","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"spq","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"'sqlite3 -json ~/.screenpipe/db.sqlite'","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"alias","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"spqcheckpoint","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"'sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA wal_checkpoint(TRUNCATE);\" && echo \"WAL checkpointed\"'","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Option 4: Checkpoint on Screenpipe shutdown (via a wrapper script)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"If you start Screenpipe via a script, wrap it:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"#!/bin/bash","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"screenpipe","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$@","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# On exit (Ctrl+C or normal stop), checkpoint WAL","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"Screenpipe stopped. Checkpointing WAL...\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 ~/.screenpipe/db.sqlite","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"PRAGMA wal_checkpoint(TRUNCATE);\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"Done.\"","depth":25,"role_description":"text"},{"role":"AXHeading","text":"Quick diagnosis","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"Quick diagnosis","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Check if a WAL file exists and its size:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"ls","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-lh ~/.screenpipe/db.sqlite*","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"If","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"db.sqlite-wal","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"is large (MBs), that's unprocessed data. After checkpointing it should shrink to near 0.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Recommended approach:","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Use Option 1 whenever you want to query after stopping Screenpipe, and optionally wrap it in your","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"screenpipe-day.sh","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"report script at the top.","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give positive feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give negative feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"what about jpg to mp4 conversion","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"17 Apr","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"That's unrelated to Screenpipe — are you asking about a general tool/command for converting a sequence of JPG images into an MP4 video?","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"If so,","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"FFmpeg","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"is the standard tool:","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Image sequence (e.g. frame001.jpg, frame002.jpg...):","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"ffmpeg -framerate","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"24","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-i frame%03d.jpg -c:v libx264 -pix_fmt yuv420p output.mp4","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Single JPG as a still video (e.g. 5 seconds):","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"ffmpeg -loop","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-i input.jpg -t","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"5","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-c:v libx264 -pix_fmt yuv420p output.mp4","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"All JPGs in a folder (sorted by name):","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"ffmpeg -framerate","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"24","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"-pattern_type glob -i","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"'*.jpg'","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"-c:v libx264 -pix_fmt yuv420p output.mp4","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Install on Mac:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"brew","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"install","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ffmpeg","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Let me know the actual use case (slideshow, timelapse, Screenpipe frames, something else?) and I can tailor the command.","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give positive feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give negative feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"but this seems to also happen automatically when the screenpipe is running","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"17 Apr","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Yes, exactly — SQLite automatically checkpoints the WAL when:","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"The WAL reaches","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"1000 pages","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(default threshold)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"A connection closes cleanly","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"You explicitly call","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"PRAGMA wal_checkpoint","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"So when Screenpipe is","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"running","depth":24,"role_description":"text"},{"role":"AXStaticText","text":", the WAL gets checkpointed automatically in the background and you never notice it. The problem only surfaces when Screenpipe is","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"stopped abruptly","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"(Ctrl+C, crash, system sleep) and the WAL hasn't been flushed yet at that moment.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"The real-world impact","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"The real-world impact","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"If you run your","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"screenpipe-day.sh","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"or","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"spq","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"queries","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"while Screenpipe is stopped","depth":24,"role_description":"text"},{"role":"AXStaticText","text":", you may be missing the last chunk of data that was buffered in the WAL but never checkpointed.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"Practical fix","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"Practical fix","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Just prepend the checkpoint to your query script:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"# In screenpipe-day.sh or before any spq usage after stopping screenpipe","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 ~/.screenpipe/db.sqlite","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"PRAGMA wal_checkpoint(TRUNCATE);\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":25,"role_description":"text"},{"role":"AXStaticText","text":">","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/dev/null","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Or as a shell function in your","depth":23,"role_description":"text"},{"role":"AXStaticText","text":".zshrc","depth":24,"role_description":"text"},{"role":"AXStaticText","text":":","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"spqready","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(","depth":25,"role_description":"text"},{"role":"AXStaticText","text":")","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"{","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 ~/.screenpipe/db.sqlite","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"PRAGMA wal_checkpoint(TRUNCATE);\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":">","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/dev/null","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":25,"role_description":"text"},{"role":"AXStaticText","text":">","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"&1","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"WAL checkpointed, DB ready.\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Then just run","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"spqready","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"once after stopping Screenpipe before querying.","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give positive feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give negative feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"how to stop screenpipe but make sure that jpg to mp4 is converted","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"17 Apr","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"These two things aren't connected — where does JPG to MP4 come into your Screenpipe setup? Are you thinking of:","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Screenpipe's frame captures","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(it stores screenshots as JPGs) that you want converted into a timelapse MP4 when stopping?","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Something else entirely?","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give positive feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give negative feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"No I mean there are /data/data/{date} with jpgs that are converted to mp4. It seems that if stopped via sp-stop='pkill -f screenpipe && echo '\\''screenpipe stopped'\\' then these are not converted unless I staert it again","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"17 Apr","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Ah, got it — Screenpipe has an internal process that converts the captured JPG frames into MP4 chunks. When you","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"pkill -f screenpipe","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"hard, that conversion pipeline gets killed mid-flight, leaving unconverted JPGs behind.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"The fix","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"The fix","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"You need to let Screenpipe finish its current conversion before killing it. The cleanest approach is to","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"send SIGTERM first, then wait","depth":24,"role_description":"text"},{"role":"AXStaticText","text":", instead of SIGKILL-equivalent","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"pkill","depth":24,"role_description":"text"},{"role":"AXStaticText","text":":","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"# Graceful stop — sends SIGTERM and waits","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"alias","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"sp-stop","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"'pkill -SIGTERM -f screenpipe && while pgrep -f screenpipe > /dev/null; do sleep 1; done && echo \"screenpipe stopped\"'","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"This gives Screenpipe time to finish in-flight conversions before actually dying.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"If that's not enough — convert remaining JPGs manually","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"If that's not enough — convert remaining JPGs manually","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"After stopping, find any unconverted JPG sequences and process them:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"find","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"~/.screenpipe/data -type d","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"|","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"while","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"read","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"dir","depth":25,"role_description":"text"},{"role":"AXStaticText","text":";","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"do","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"jpgs","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$(","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ls","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$dir","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/*.jpg","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":25,"role_description":"text"},{"role":"AXStaticText","text":">","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/dev/null","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"|","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"wc","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-l","depth":25,"role_description":"text"},{"role":"AXStaticText","text":")","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"mp4","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$(","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ls","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$dir","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/*.mp4","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":25,"role_description":"text"},{"role":"AXStaticText","text":">","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/dev/null","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"|","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"wc","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-l","depth":25,"role_description":"text"},{"role":"AXStaticText","text":")","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"if","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$jpgs","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-gt","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"&&","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$mp4","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-eq","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":";","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"then","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"Converting","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$dir","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"...\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ffmpeg -framerate","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"10","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-pattern_type glob -i","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$dir","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/*.jpg\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\\","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-c:v libx264 -pix_fmt yuv420p","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$dir","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/output.mp4\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-loglevel error","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"fi","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"done","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Adjust","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"~/.screenpipe/data","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"to your actual path and","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"framerate","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"to whatever Screenpipe uses.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"Combined stop alias","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"Combined stop alias","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"alias","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"sp-stop","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"'","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"pkill -SIGTERM -f screenpipe && \\","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"while pgrep -f screenpipe > /dev/null; do sleep 1; done && \\","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo \"screenpipe stopped, converting remaining frames...\" && \\","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"find ~/.screenpipe/data -type d | while read dir; do","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"jpgs=$(ls \"$dir\"/*.jpg 2>/dev/null | wc -l)","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"mp4=$(ls \"$dir\"/*.mp4 2>/dev/null | wc -l)","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"if [ \"$jpgs\" -gt 0 ] && [ \"$mp4\" -eq 0 ]; then","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ffmpeg -framerate 10 -pattern_type glob -i \"$dir/*.jpg\" \\","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-c:v libx264 -pix_fmt yuv420p \"$dir/output.mp4\" -loglevel error && \\","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo \"Converted $dir\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"fi","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"done && \\","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo \"all done\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"'","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Do you know the actual framerate Screenpipe uses for its captures?","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give positive feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give negative feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Pasted Text, pasted, 255 lines","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-17 $ ll total 1388520 drwxr-xr-x 252 lukas staff 8064 17 Apr 21:06 . drwxr-xr-x 11 lukas staff 352 17 Apr 08:56 .. -rw-r--r-- 1 lukas staff 199318 17 Apr 21:04 1776449072292_m1.jpg -rw-r--r-- 1 lukas","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"PASTED","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"17 Apr","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Now the picture is clear. Looking at your directory:","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"JPGs are named like","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"1776449072292_m1.jpg","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(timestamp + monitor)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"MP4s are named like","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"compact_monitor_1_1776406033543.mp4","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(monitor + timestamp)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"MP4s are produced in ~5 minute chunks per monitor","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"The loose JPGs at the bottom (21","depth":24,"role_description":"text"},{"role":"AXStaticText","text":":04","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"–21","depth":24,"role_description":"text"},{"role":"AXStaticText","text":":06","depth":24,"role_description":"text"},{"role":"AXStaticText","text":") have","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"no corresponding MP4","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"yet — that's the unconverted tail","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"So Screenpipe batches JPGs into 5-minute MP4 chunks. When killed, the current batch is abandoned.","depth":23,"role_description":"text"},{"role":"AXHeading","text":"Script to convert remaining JPGs","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"Script to convert remaining JPGs","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"The key insight from the filenames: JPGs are","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"{timestamp}_m{N}.jpg","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"— group them by monitor number (","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"m1","depth":24,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"m2","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"...) and convert each group.","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"#!/bin/bash","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# sp-convert-remaining.sh","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# Converts any unconverted JPGs in ~/.screenpipe/data/data/<date>/","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"DATE","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"${1","depth":25,"role_description":"text"},{"role":"AXStaticText","text":":-","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$(date +","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"%","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Y-","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"%","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"m-","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"%","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"d)}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"DIR","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$HOME","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/.screenpipe/data/data/","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$DATE","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"Scanning","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$DIR","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"for unconverted JPGs...\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"for","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"monitor","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"in","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":25,"role_description":"text"},{"role":"AXStaticText","text":";","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"do","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"jpgs","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$DIR","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/*_m","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"${monitor}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":".jpg","depth":25,"role_description":"text"},{"role":"AXStaticText","text":")","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"!","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-e","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"${jpgs","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"&&","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"continue","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"Monitor","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$monitor","depth":25,"role_description":"text"},{"role":"AXStaticText","text":": found","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"${","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"#","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"jpgs","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"@","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"JPGs\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# Sort by timestamp (they're already timestamp-prefixed, so glob order is fine)","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# Use the first frame's timestamp for the output filename","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"first_ts","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$(","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"basename","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"${jpgs","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"|","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"cut","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-d_ -f1","depth":25,"role_description":"text"},{"role":"AXStaticText","text":")","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"outfile","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$DIR","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/compact_monitor_","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"${monitor}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"_","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"${first_ts}","depth":25,"role_description":"text"},{"role":"AXStaticText","text":".mp4\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"if","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-f","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$outfile","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":";","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"then","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\" Already converted:","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$outfile","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"— skipping\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"continue","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"fi","depth":25,"role_description":"text"}]...
|
-8829320239150380439
|
-3521997020485265254
|
visual_change
|
accessibility
|
NULL
|
Skip to content
Skip to content
Click to collapse
Skip to content
Skip to content
Click to collapse
⌘B
Drag to resize
Open sidebar
Chat
Cowork
Code
New chat ⌘N
New chat
⌘N
Projects
Customize
Artifacts
Pinned
Bulgarian citizenship application process for EU residents
More options for Bulgarian citizenship application process for EU residents
Dawarich location tracking project
More options for Dawarich location tracking project
Recents
View all
Reviewing recent conversation highlights
More options for Reviewing recent conversation highlights
Screenpipe WAL processing when stopped
More options for Screenpipe WAL processing when stopped
Mac aliases not recognized
More options for Mac aliases not recognized
Boosteroid still recording despite ignored windows setting
More options for Boosteroid still recording despite ignored windows setting
Missing JavaScript promise in authorization response
More options for Missing JavaScript promise in authorization response
Linux SQLite UI for NAS
More options for Linux SQLite UI for NAS
Claude API 500 internal server error
More options for Claude API 500 internal server error
Screenpipe query capabilities and usage
More options for Screenpipe query capabilities and usage
eGPU compatibility with Mac mini and Studio
More options for eGPU compatibility with Mac mini and Studio
Understanding OpenRouter API gateway
More options for Understanding OpenRouter API gateway
Screenpipe 14-day retention explained
More options for Screenpipe 14-day retention explained
Reddit homepage feed overview
More options for Reddit homepage feed overview
Docker container not visible in console
More options for Docker container not visible in console
DIA browser RAM configuration
More options for DIA browser RAM configuration
Screenpipe company background
More options for Screenpipe company background
DSK Bank Bulgaria secure investing explained
More options for DSK Bank Bulgaria secure investing explained
Building a comprehensive personal homelab system
More options for Building a comprehensive personal homelab system
Importing Google Timeline data to Owntracks
More options for Importing Google Timeline data to Owntracks
Chromecast remote volume buttons not working
More options for Chromecast remote volume buttons not working
Screenpipe free version guide
More options for Screenpipe free version guide
Updated to 1.3109.0
Relaunch to apply
Relaunch
Lukas Kovalik
Lukas Kovalik
Get apps and extensions
Screenpipe WAL processing when stopped
Screenpipe WAL processing when stopped
More options for Screenpipe WAL processing when stopped
Open sidebar
Share chat
how to make the screenpipe wal being processed. It seems it is not working when the screenpipe is stopped
17 Apr
Retry
Edit
Copy
WAL (Write-Ahead Log) in SQLite needs to be checkpointed to merge pending data into the main database file. When Screenpipe stops, the WAL may not be fully checkpointed.
The issue
The issue
SQLite WAL mode keeps a separate
.sqlite-wal
file. Data there is "pending" until a checkpoint runs. Screenpipe normally handles this while running, but if it stops abruptly or you query while it's stopped, the WAL data may appear missing to external readers.
Solutions
Solutions
Option 1: Force a checkpoint manually (safest)
Copy to clipboard
bash
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
This flushes all WAL data into the main DB file and truncates the WAL. Run this after Screenpipe stops.
Option 2: Make your queries WAL-aware
When querying with
sqlite3
directly, open in WAL mode explicitly so it reads both the DB and WAL together:
Copy to clipboard
bash
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA journal_mode=WAL; SELECT ..."
Actually,
sqlite3
already reads WAL automatically — but only if the WAL file is present and not corrupted. The real fix is ensuring the connection sees both files.
Option 3: Add to your
spq
alias
Update the alias to always checkpoint first:
Copy to clipboard
bash
alias
spq
=
'sqlite3 -json ~/.screenpipe/db.sqlite'
alias
spqcheckpoint
=
'sqlite3 ~/.screenpipe/db.sqlite "PRAGMA wal_checkpoint(TRUNCATE);" && echo "WAL checkpointed"'
Option 4: Checkpoint on Screenpipe shutdown (via a wrapper script)
If you start Screenpipe via a script, wrap it:
Copy to clipboard
bash
#!/bin/bash
screenpipe
"
$@
"
# On exit (Ctrl+C or normal stop), checkpoint WAL
echo
"Screenpipe stopped. Checkpointing WAL..."
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
echo
"Done."
Quick diagnosis
Quick diagnosis
Check if a WAL file exists and its size:
Copy to clipboard
bash
ls
-lh ~/.screenpipe/db.sqlite*
If
db.sqlite-wal
is large (MBs), that's unprocessed data. After checkpointing it should shrink to near 0.
Recommended approach:
Use Option 1 whenever you want to query after stopping Screenpipe, and optionally wrap it in your
screenpipe-day.sh
report script at the top.
Copy
Give positive feedback
Give negative feedback
Retry
what about jpg to mp4 conversion
17 Apr
Retry
Edit
Copy
That's unrelated to Screenpipe — are you asking about a general tool/command for converting a sequence of JPG images into an MP4 video?
If so,
FFmpeg
is the standard tool:
Image sequence (e.g. frame001.jpg, frame002.jpg...):
Copy to clipboard
bash
ffmpeg -framerate
24
-i frame%03d.jpg -c:v libx264 -pix_fmt yuv420p output.mp4
Single JPG as a still video (e.g. 5 seconds):
Copy to clipboard
bash
ffmpeg -loop
1
-i input.jpg -t
5
-c:v libx264 -pix_fmt yuv420p output.mp4
All JPGs in a folder (sorted by name):
Copy to clipboard
bash
ffmpeg -framerate
24
-pattern_type glob -i
'*.jpg'
-c:v libx264 -pix_fmt yuv420p output.mp4
Install on Mac:
Copy to clipboard
bash
brew
install
ffmpeg
Let me know the actual use case (slideshow, timelapse, Screenpipe frames, something else?) and I can tailor the command.
Copy
Give positive feedback
Give negative feedback
Retry
but this seems to also happen automatically when the screenpipe is running
17 Apr
Retry
Edit
Copy
Yes, exactly — SQLite automatically checkpoints the WAL when:
The WAL reaches
1000 pages
(default threshold)
A connection closes cleanly
You explicitly call
PRAGMA wal_checkpoint
So when Screenpipe is
running
, the WAL gets checkpointed automatically in the background and you never notice it. The problem only surfaces when Screenpipe is
stopped abruptly
(Ctrl+C, crash, system sleep) and the WAL hasn't been flushed yet at that moment.
The real-world impact
The real-world impact
If you run your
screenpipe-day.sh
or
spq
queries
while Screenpipe is stopped
, you may be missing the last chunk of data that was buffered in the WAL but never checkpointed.
Practical fix
Practical fix
Just prepend the checkpoint to your query script:
Copy to clipboard
bash
# In screenpipe-day.sh or before any spq usage after stopping screenpipe
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
2
>
/dev/null
Or as a shell function in your
.zshrc
:
Copy to clipboard
bash
spqready
(
)
{
sqlite3 ~/.screenpipe/db.sqlite
"PRAGMA wal_checkpoint(TRUNCATE);"
>
/dev/null
2
>
&1
echo
"WAL checkpointed, DB ready."
}
Then just run
spqready
once after stopping Screenpipe before querying.
Copy
Give positive feedback
Give negative feedback
Retry
how to stop screenpipe but make sure that jpg to mp4 is converted
17 Apr
Retry
Edit
Copy
These two things aren't connected — where does JPG to MP4 come into your Screenpipe setup? Are you thinking of:
Screenpipe's frame captures
(it stores screenshots as JPGs) that you want converted into a timelapse MP4 when stopping?
Something else entirely?
Copy
Give positive feedback
Give negative feedback
Retry
No I mean there are /data/data/{date} with jpgs that are converted to mp4. It seems that if stopped via sp-stop='pkill -f screenpipe && echo '\''screenpipe stopped'\' then these are not converted unless I staert it again
17 Apr
Retry
Edit
Copy
Ah, got it — Screenpipe has an internal process that converts the captured JPG frames into MP4 chunks. When you
pkill -f screenpipe
hard, that conversion pipeline gets killed mid-flight, leaving unconverted JPGs behind.
The fix
The fix
You need to let Screenpipe finish its current conversion before killing it. The cleanest approach is to
send SIGTERM first, then wait
, instead of SIGKILL-equivalent
pkill
:
Copy to clipboard
bash
# Graceful stop — sends SIGTERM and waits
alias
sp-stop
=
'pkill -SIGTERM -f screenpipe && while pgrep -f screenpipe > /dev/null; do sleep 1; done && echo "screenpipe stopped"'
This gives Screenpipe time to finish in-flight conversions before actually dying.
If that's not enough — convert remaining JPGs manually
If that's not enough — convert remaining JPGs manually
After stopping, find any unconverted JPG sequences and process them:
Copy to clipboard
bash
find
~/.screenpipe/data -type d
|
while
read
dir
;
do
jpgs
=
$(
ls
"
$dir
"
/*.jpg
2
>
/dev/null
|
wc
-l
)
mp4
=
$(
ls
"
$dir
"
/*.mp4
2
>
/dev/null
|
wc
-l
)
if
[
"
$jpgs
"
-gt
0
]
&&
[
"
$mp4
"
-eq
0
]
;
then
echo
"Converting
$dir
..."
ffmpeg -framerate
10
-pattern_type glob -i
"
$dir
/*.jpg"
\
-c:v libx264 -pix_fmt yuv420p
"
$dir
/output.mp4"
-loglevel error
fi
done
Adjust
~/.screenpipe/data
to your actual path and
framerate
to whatever Screenpipe uses.
Combined stop alias
Combined stop alias
Copy to clipboard
bash
alias
sp-stop
=
'
pkill -SIGTERM -f screenpipe && \
while pgrep -f screenpipe > /dev/null; do sleep 1; done && \
echo "screenpipe stopped, converting remaining frames..." && \
find ~/.screenpipe/data -type d | while read dir; do
jpgs=$(ls "$dir"/*.jpg 2>/dev/null | wc -l)
mp4=$(ls "$dir"/*.mp4 2>/dev/null | wc -l)
if [ "$jpgs" -gt 0 ] && [ "$mp4" -eq 0 ]; then
ffmpeg -framerate 10 -pattern_type glob -i "$dir/*.jpg" \
-c:v libx264 -pix_fmt yuv420p "$dir/output.mp4" -loglevel error && \
echo "Converted $dir"
fi
done && \
echo "all done"
'
Do you know the actual framerate Screenpipe uses for its captures?
Copy
Give positive feedback
Give negative feedback
Retry
Pasted Text, pasted, 255 lines
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-17 $ ll total 1388520 drwxr-xr-x 252 lukas staff 8064 17 Apr 21:06 . drwxr-xr-x 11 lukas staff 352 17 Apr 08:56 .. -rw-r--r-- 1 lukas staff 199318 17 Apr 21:04 1776449072292_m1.jpg -rw-r--r-- 1 lukas
PASTED
17 Apr
Retry
Edit
Copy
Now the picture is clear. Looking at your directory:
JPGs are named like
1776449072292_m1.jpg
(timestamp + monitor)
MP4s are named like
compact_monitor_1_1776406033543.mp4
(monitor + timestamp)
MP4s are produced in ~5 minute chunks per monitor
The loose JPGs at the bottom (21
:04
–21
:06
) have
no corresponding MP4
yet — that's the unconverted tail
So Screenpipe batches JPGs into 5-minute MP4 chunks. When killed, the current batch is abandoned.
Script to convert remaining JPGs
Script to convert remaining JPGs
The key insight from the filenames: JPGs are
{timestamp}_m{N}.jpg
— group them by monitor number (
m1
,
m2
...) and convert each group.
Copy to clipboard
bash
#!/bin/bash
# sp-convert-remaining.sh
# Converts any unconverted JPGs in ~/.screenpipe/data/data/<date>/
DATE
=
"
${1
:-
$(date +
%
Y-
%
m-
%
d)}
"
DIR
=
"
$HOME
/.screenpipe/data/data/
$DATE
"
echo
"Scanning
$DIR
for unconverted JPGs..."
for
monitor
in
1
2
;
do
jpgs
=
(
"
$DIR
"
/*_m
${monitor}
.jpg
)
[
[
!
-e
"
${jpgs
[
0
]
}
"
]
]
&&
continue
echo
"Monitor
$monitor
: found
${
#
jpgs
[
@
]
}
JPGs"
# Sort by timestamp (they're already timestamp-prefixed, so glob order is fine)
# Use the first frame's timestamp for the output filename
first_ts
=
$(
basename
"
${jpgs
[
0
]
}
"
|
cut
-d_ -f1
)
outfile
=
"
$DIR
/compact_monitor_
${monitor}
_
${first_ts}
.mp4"
if
[
[
-f
"
$outfile
"
]
]
;
then
echo
" Already converted:
$outfile
— skipping"
continue
fi...
|
51492
|
|
10054
|
194
|
19
|
2026-04-14T08:09:49.338209+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776154189338_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Notion CalendarEditViewWindowHelplahlSupport Daily Notion CalendarEditViewWindowHelplahlSupport Daily - in 3h 51 m100% <78 • Tue 14 Apr 11:09:49+HomeDMsActivityFiles..•More+Jiminny ...= UnreadsThreadsHuddlesDrafts & sentDirectoriesExternal connections* Starredplatform-inner-team(*Channels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product _launches# random# releases# sofia-office# support# thank-yousSearch Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan Georgiev84• MessagesAdd canvas+minoitymunnoзначи не сьздава веднага по принцип, в някакьв час на деня лиToday~Lukas Kovalik 10:36 AMтова ще гледа всичко applicable за днес (ако не понедлник или начало на месец е само daily)крон го пуска през нощтака че мануално пусни при тестванеако трябва да тестваме други репорти може да променя команда за тестване да приема параметьр за report template и д си пускамеопределен когато тествамеNikolay Yankov 10:41 AMможеш ли да я рьннеш ти командатаLukas Kovalik 10:43 AMдаNikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтърNikolay Yankov 11:01 AMДобреMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+AaNew...
|
NULL
|
-8829114875580625174
|
NULL
|
click
|
ocr
|
NULL
|
Notion CalendarEditViewWindowHelplahlSupport Daily Notion CalendarEditViewWindowHelplahlSupport Daily - in 3h 51 m100% <78 • Tue 14 Apr 11:09:49+HomeDMsActivityFiles..•More+Jiminny ...= UnreadsThreadsHuddlesDrafts & sentDirectoriesExternal connections* Starredplatform-inner-team(*Channels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product _launches# random# releases# sofia-office# support# thank-yousSearch Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan Georgiev84• MessagesAdd canvas+minoitymunnoзначи не сьздава веднага по принцип, в някакьв час на деня лиToday~Lukas Kovalik 10:36 AMтова ще гледа всичко applicable за днес (ако не понедлник или начало на месец е само daily)крон го пуска през нощтака че мануално пусни при тестванеако трябва да тестваме други репорти може да променя команда за тестване да приема параметьр за report template и д си пускамеопределен когато тествамеNikolay Yankov 10:41 AMможеш ли да я рьннеш ти командатаLukas Kovalik 10:43 AMдаNikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтърNikolay Yankov 11:01 AMДобреMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+AaNew...
|
10052
|
|
68656
|
1556
|
27
|
2026-04-22T06:26:23.193200+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776839183193_m1.jpg...
|
PhpStorm
|
faVsco.js – EventServiceProvider.php
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Show Replace Field
Search History
DetachActivityObject
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/1
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Providers;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Jiminny;
use Jiminny\Component;
use Jiminny\Component\Encoding\Listeners\CreateM3U8MediaListener;
use Jiminny\Component\Nudge\Listener\SendImmediateNudgeListener;
use Jiminny\Component\Slack\Listeners\ImportSlackUsersAccountsListener;
use Jiminny\Events;
use Jiminny\Listeners;
use Jiminny\Models\Group;
use Jiminny\Models\User;
use Jiminny\Observers\GroupObserver;
use Jiminny\Observers\UserObserver;
use Jiminny\Observers\UserRoleObserver;
class EventServiceProvider extends ServiceProvider
{
protected $subscribe = [
Component\ActivityAnalytics\Event\EventSubscriber::class,
Component\Transcription\Event\EventSubscriber::class,
Component\Twilio\Event\TwilioConferenceEventSubscriber::class,
Component\Twilio\Event\TwilioReportingSubscriber::class,
Component\ActivitySearch\EventSubscriber\SlackEventSubscriber::class,
Listeners\Import\ActivityImportSubscriber::class,
];
/**
* The event listener mappings for the application.
*/
protected $listen = [
\Illuminate\Notifications\Events\NotificationSent::class => [
],
// User Related Events...
Events\Auth\UserRegistered::class => [
Listeners\Users\SyncIntercom::class,
Listeners\Users\SyncPlanhat::class,
Listeners\Crm\InitProfiles::class,
Listeners\Users\SyncUserPilot::class,
Jiminny\Services\Crm\IntegrationApp\Jobs\UpdateProfileRelatedEntitiesJob::class,
],
Events\Auth\ChromeExtensionAuthenticated::class => [
Listeners\Authentication\Intercom\CreateChromeExtensionAuthenticatedEvent::class,
],
Events\Auth\DeviceAuthenticated::class => [
Listeners\Authentication\Intercom\UpdateUserDeviceActivity::class,
],
Events\ElasticSearch\RemovesDocumentWhenDeleted::class => [
Listeners\Activities\ElasticSearchMetricsRemoveActivityListener::class,
Listeners\ElasticSearch\RemovesDocumentBelongingToDeletedModel::class,
],
Events\Users\UserCreated::class => [
Listeners\Users\SetDefaultAvatarListener::class,
Listeners\Users\CreateDefaultPlaylist::class,
Listeners\Users\CreateDefaultSavedSearches::class,
Component\BillingManagement\Listeners\UserCreatedOrUpdatedListener::class,
],
Events\Users\UserUpdated::class => [
Listeners\Users\SetDefaultAvatarListener::class,
Listeners\Users\SyncIntercom::class,
Listeners\Users\SyncPlanhat::class,
Listeners\Users\SyncUserPilot::class,
Listeners\Users\DeleteScheduledUserActivitiesForInsightSeatUsers::class,
Component\BillingManagement\Listeners\UserCreatedOrUpdatedListener::class,
],
Events\Users\UserPhotoUpdated::class => [
Listeners\Activities\ReindexForUserListener::class,
],
Jiminny\Events\Users\UserDeactivated::class => [
Jiminny\Listeners\Activities\ReindexForUserListener::class,
Listeners\Mailbox\DeactivateUserListener::class,
],
Jiminny\Events\Users\UserDeleted::class => [
Jiminny\Listeners\Activities\ReindexForUserListener::class,
],
Events\Users\SocialAccountConnected::class => [
Listeners\Users\SetupCalendarSync::class,
Listeners\Users\ActivityProviderIntegrated::class,
Listeners\Authentication\Intercom\UpdateSocialTag::class,
Listeners\Users\SetupMailSync::class,
Listeners\Crm\BootstrapIntegrationApp::class,
],
Events\Users\CrmAccountReconnected::class => [
Listeners\Crm\ImportMetadata::class,
],
Events\Users\SocialAccountDisconnected::class => [
Listeners\Users\NotifyCrmOwnerDisconnectedListener::class,
Listeners\Users\NotifyCrmUserDisconnectedListener::class,
Listeners\Users\ActivityProviderDisconnectedListener::class,
Listeners\Authentication\Intercom\UpdateSocialTag::class,
],
Events\Users\GroupChangedEvent::class => [
Listeners\Activities\ReindexForUserListener::class,
Listeners\Playlists\ImportGroupPlaylistSharesListener::class,
],
Events\Calendars\EventChanged::class => [
Jiminny\Services\MeetingGenerator\Listeners\MeetingUpdated::class,
],
Events\Calendars\EventCancelled::class => [
Listeners\Calendars\EventCancelled::class,
Listeners\Activities\Providers\CancelledInCalendar::class,
Jiminny\Services\MeetingGenerator\Listeners\MeetingCancelled::class,
],
Events\Crm\OpportunityUpdated::class => [
Listeners\Activities\ReindexForOpportunityListener::class,
Listeners\DealRisks\RecalculateDealRiskOnOpportunityChange::class,
],
Events\Crm\AccountUpdated::class => [
Listeners\Activities\ReindexForAccountListener::class,
],
Events\Crm\ContactUpdated::class => [
Listeners\Activities\ReindexForContactListener::class,
],
Events\Crm\LeadUpdated::class => [
Listeners\Activities\ReindexForLeadListener::class,
],
Events\Crm\ProfileCreated::class => [
Listeners\Crm\SyncProfileOpportunities::class,
Listeners\Crm\SyncProfileLeads::class,
],
// Local CRM records are stale, cleaning up after remote deletion
Events\Crm\RemoteCrmRecordDeleted::class => [
Listeners\Crm\RemoteCrmRecordDeletedListener::class,
],
// Activity Related Events
Events\Activities\ActivityUpdated::class => [
],
Events\Activities\ActivityTypeUpdated::class => [
Component\Settings\AutoScoring\Listeners\AnalyzeActivityScorecards::class,
// CRM Filling is executed here after ActivityProcessingEndOfPipeline
// AI Call Scoring is executed here after ActivityProcessingEndOfPipeline
],
Events\Groups\SettingsUpdated::class => [
Listeners\DealRisks\RecalculateDealRiskOnSettingsUpdate::class,
],
Events\Activities\TrackReady::class => [
Listeners\Activities\ImportRemoteTrackListener::class,
],
Events\Activities\TrackImportedEvent::class => [
Component\FFMpeg\Listeners\AnalyzeTrackChannelsListener::class,
Listeners\Activities\DialerMetricsImportedActivityListener::class,
],
Component\FFMpeg\Events\Audio\TrackChannelsAnalyzedEvent::class => [
Listeners\Activities\Audio\SwitchAudioChannels::class,
],
Events\Activities\Audio\AudioChannelsReady::class => [
Listeners\Activities\Audio\TrimHoldMusic::class,
],
Events\Activities\Audio\TrackTrimmed::class => [
Listeners\Activities\Audio\StartMediaPipeline::class,
],
Component\MediaPipeline\Events\ActivityProcessingPipelineStartedEvent::class => [
Component\Encoding\Listeners\CalculateTalkTimeFromSilenceListener::class,
CreateM3U8MediaListener::class,
],
Component\Encoding\Events\SpeechFromSilenceGeneratedEvent::class => [
Component\Activity\Listener\ActivityLanguageConfirmListener::class,
],
Component\Activity\Event\ActivityProcessingEndOfPipelineEvent::class => [
Component\Activity\Listener\ActivityProcessingEndOfPipelineListener::class,
],
Component\Activity\Event\ActivityProcessingDoneEvent::class => [
Component\Webhooks\Listeners\CreateConversationProcessedWebhook::class,
Component\AiAutomation\Listeners\PendingAnalysis\ActivityPendingAiAnalysisAfterProcessingDoneListener::class,
],
Component\Activity\Event\ActivityProcessingFailedEvent::class => [
Component\AiAutomation\Listeners\PendingAnalysis\ActivityPendingAiAnalysisAfterProcessingDoneListener::class,
Listeners\Activities\Crm\AutoLogActivity::class,
],
Component\ActivityAnalytics\Event\ActivityLanguageConfirmed::class => [
Listeners\Transcription\TranscriptionInitListener::class,
],
Events\Transcription\TranscriptionReady::class => [
Component\ActivityAnalytics\Listener\CalculateAnalyticsListener::class,
Jiminny\Component\TranscriptionSummary\Listeners\SummarizeTranscriptionListener::class,
Jiminny\Component\ActionItems\Listeners\GenerateActionItemsListener::class,
Component\KeyPoints\Listeners\GenerateKeyPointsListener::class,
Jiminny\Component\AiActivityType\Listeners\GenerateAiActivityTypeListener::class,
Listeners\DealRisks\RecalculateDealRisksOnTranscriptionReady::class,
Component\Transcription\Listener\TranslateTranscriptListener::class,
],
Component\ActivityAnalytics\Event\AnalyticsCompletedEvent::class => [
SendImmediateNudgeListener::class,
Component\Settings\AutoScoring\Listeners\AnalyzeActivityScorecards::class,
],
Events\Activities\Audio\TrackTranscoded::class => [
],
Events\Activities\Audio\TrackSegmented::class => [
Listeners\Activities\Audio\TrackSegmented::class,
],
Events\Activities\Audio\TrackAvailable::class => [
Listeners\Activities\Audio\TrackAvailable::class,
Listeners\Activities\Coaching\CreateAvailabilityNotification::class,
],
Events\Activities\Audio\RecordingStarted::class => [
Listeners\Activities\Audio\Recording::class,
],
Events\Activities\Audio\RecordingStopped::class => [
Listeners\Activities\Audio\Recording::class,
],
Events\Activities\Audio\RecordingPaused::class => [
Listeners\Activities\Audio\Recording::class,
],
Events\Activities\Audio\RecordingResumed::class => [
Listeners\Activities\Audio\Recording::class,
],
Events\Activities\Audio\RecordingEnabled::class => [
Listeners\Activities\Audio\Recording::class,
],
Component\FFMpeg\Events\Video\TrackChannelsAnalyzedEvent::class => [
Listeners\Activities\Audio\DemuxAudioOnlyListener::class,
Component\PlaybackPage\Snapshots\Listeners\GenerateSnapshotsListener::class,
],
Events\Activities\Video\TrackDemuxedAudio::class => [
Listeners\Activities\Audio\StartMediaPipeline::class,
],
Events\Activities\Audio\SpeechTimesCalculated::class => [
],
Events\Activities\ActivityExported::class => [
Listeners\Activities\GenerateExportTokens::class,
Listeners\Activities\Coaching\UserPilot\CreateExportedEvent::class,
Component\Webhooks\Listeners\CreateActivityExportedWebhook::class,
],
Events\Activities\ExportTokenGenerated::class => [
Listeners\Activities\SendExportEmail::class,
],
Events\Activities\Crm\StageChanged::class => [
],
Events\Opportunities\AskJiminnyOnDealPromptUpdate::class => [
Listeners\Opportunities\ClearAskJiminnyOnDealCache::class,
],
Events\Activities\Crm\ActivityLogged::class => [
Listeners\Activities\Coaching\Intercom\CreateActivitySummarizedEvent::class,
Listeners\Activities\Coaching\Planhat\CreateActivityLoggedEvent::class,
Listeners\Activities\Coaching\UserPilot\CreateActivityLoggedEvent::class,
Listeners\DealRisks\RecalculateDealRisksOnActivityChange::class,
Listeners\Activities\Crm\Summary\ActivityLoggedListener::class,
],
Events\Activities\Crm\ActivityScheduled::class => [
Listeners\DealRisks\RecalculateDealRisksOnActivityChange::class,
],
Events\Activities\Crm\ActivityCancelled::class => [
Listeners\DealRisks\RecalculateDealRisksOnScheduledActivity::class,
],
Events\Activities\Crm\ActivityCancelledAsNoShow::class => [
Listeners\Activities\Crm\AutoLogCancelledActivity::class,
],
Events\Activities\Crm\ActivityLinkedToCrm::class => [
],
Events\Activities\Crm\EmailWithCRMObjectsProcessed::class => [
Listeners\DealRisks\RecalculateDealRisksOnActivityChange::class,
Listeners\Opportunities\ClearAskJiminnyOnDealCache::class,
Component\AiAutomation\Listeners\PendingAnalysis\EmailActivityPendingAiAnalysisAfterImport::class,
],
Events\Activities\Sms\Sent::class => [
Listeners\Activities\Sms\Intercom\CreateSmsSentEvent::class,
Listeners\Activities\Sms\Planhat\CreateSmsSentEvent::class,
Listeners\Activities\Crm\AutoLogActivity::class,
],
Events\Activities\Sms\Undelivered::class => [
],
Events\Activities\Sms\Failed::class => [
],
Events\Activities\Sms\Delivered::class => [
Listeners\DealRisks\RecalculateDealRisksOnActivityChange::class,
],
Events\Activities\Sms\Received::class => [
Listeners\Activities\Sms\CreateReceivedNotification::class,
Listeners\Activities\Sms\Intercom\CreateSmsReceivedEvent::class,
Listeners\Activities\Sms\Planhat\CreateSmsReceivedEvent::class,
Listeners\Activities\Crm\AutoLogActivity::class,
Listeners\DealRisks\RecalculateDealRisksOnActivityChange::class,
],
Events\Users\NumberVerified::class => [
],
Events\Activities\Bots\MeetingBotEvent::class => [
Listeners\Activities\Bots\EventHandler::class,
],
Events\Activities\Conferences\StartingSoon::class => [
Listeners\Activities\ResolveProvider::class,
Listeners\Crm\SyncOpportunity::class,
Listeners\Crm\ResolveOwner::class,
],
Events\Activities\Conferences\ParticipantDeclinedRecordingEvent::class => [
Listeners\Activities\Conferences\ParticipantDeclinedRecordingListener::class,
],
Events\Activities\Conferences\Locked::class => [
Listeners\Activities\Conferences\Locked::class,
],
Events\Activities\Conferences\Started::class => [
Listeners\Activities\Conferences\Started::class,
Listeners\Activities\Crm\UpdateCrmData::class,
Listeners\DealRisks\RecalculateDealRisksOnScheduledActivity::class,
],
Events\Activities\Conferences\Ended::class => [
Listeners\Activities\Conferences\Ended::class,
Listeners\Activities\Audio\StartMediaPipeline::class,
Listeners\Activities\Conferences\Intercom\CreateHeldActivityEvent::class,
Listeners\Activities\Conferences\Planhat\CreateHeldActivityEvent::class,
Listeners\Activities\Conferences\UserPilot\CreateHeldActivityEvent::class,
Listeners\Activities\Crm\AutoSyncActivity::class,
Listeners\Activities\Conferences\MatchMeetingOwnerEvent::class,
],
Events\Activities\Conferences\ConferenceFailedEvent::class => [
],
Events\AiCallScoring\AiScorecardCompletedEvent::class => [
Component\Webhooks\Listeners\CreateAiScorecardCompletedWebhook::class,
],
\Spatie\WebhookServer\Events\WebhookCallSucceededEvent::class => [
Listeners\Webhook\LogWebhookDeliveryListener::class . '@handleSucceeded',
],
\Spatie\WebhookServer\Events\WebhookCallFailedEvent::class => [
Listeners\Webhook\LogWebhookDeliveryListener::class . '@handleFailed',
],
\Spatie\WebhookServer\Events\FinalWebhookCallFailedEvent::class => [
Listeners\Webhook\LogWebhookDeliveryListener::class . '@handleFinalFailed',
],
Component\TranscriptionSummary\Events\TranscriptionAiSummaryReadyEvent::class => [
Listeners\Activities\Crm\Summary\AiSummaryCreatedListener::class,
Listeners\Opportunities\ClearAskJiminnyOnDealCache::class,
],
Events\Activities\Conferences\Rescheduled::class => [
Listeners\DealRisks\RecalculateDealRisksOnScheduledActivity::class,
],
Events\Activities\Conferences\Scheduled::class => [
Listeners\Activities\Conferences\Intercom\CreateScheduledActivityEvent::class,
Listeners\Activities\Conferences\Planhat\CreateScheduledActivityEvent::class,
Listeners\Activities\Following\CreateScheduledNotification::class,
Listeners\DealRisks\RecalculateDealRisksOnScheduledActivity::class,
],
Events\Activities\Softphone\Ended::class => [
Listeners\Activities\Softphone\Intercom\CreateDialerActivityEvent::class,
Listeners\Activities\Softphone\Planhat\CreateDialerActivityEvent::class,
Listeners\Activities\Softphone\UserPilot\CreateDialerActivityEvent::class,
Listeners\Activities\Crm\AutoSyncActivity::class,
],
Events\Activities\Dialers\CallImported::class => [
Listeners\Activities\Softphone\Intercom\CreateDialerActivityEvent::class,
Listeners\Activities\Softphone\Planhat\CreateDialerActivityEvent::class,
Listeners\Activities\Softphone\UserPilot\CreateDialerActivityEvent::class,
Listeners\DealRisks\RecalculateDealRisksOnActivityChange::class,
],
Events\Sidekick\SidekickDisabled::class => [
],
Events\Sidekick\AutologEnabled::class => [
Listeners\Activities\Crm\UserPilot\CreateAutologEnabledEvent::class,
],
Events\Activities\Crm\AutoLogActivity::class => [
Listeners\Activities\Crm\AutoLogActivity::class,
],
Events\Teams\NotificationProviderEnabled::class => [
Listeners\Teams\UserPilot\TrackNotificationProviderEnabled::class,
ImportSlackUsersAccountsListener::class,
],
Events\Activities\Sessions\Started::class => [
Listeners\Activities\Sessions\Started::class,
],
Jiminny\Events\Activities\Sessions\Ended::class => [
Jiminny\Listeners\Activities\Sessions\Ended::class,
Jiminny\Listeners\Activities\Audio\StartMediaPipeline::class,
],
Events\Activities\Sessions\Muted::class => [
Listeners\Activities\Sessions\Muted::class,
],
Events\Activities\Sessions\Unmuted::class => [
Listeners\Activities\Sessions\Unmuted::class,
],
Events\Activities\Connections\Opened::class => [
Listeners\Activities\Connections\Opened::class,
Listeners\Activities\Crm\MatchCrmObject::class,
],
Jiminny\Events\Activities\Connections\Closed::class => [
Listeners\Activities\Audio\StartMediaPipeline::class,
Jiminny\Listeners\Activities\Connections\Closed::class,
Jiminny\Listeners\Activities\Connections\IngestInsights::class,
],
Events\Activities\Connections\Muted::class => [
Listeners\Activities\Connections\Muted::class,
],
Events\Activities\Connections\Unmuted::class => [
Listeners\Activities\Connections\Unmuted::class,
],
Events\Activities\Connections\Held::class => [
Listeners\Activities\Connections\Held::class,
],
Events\Activities\Connections\Unheld::class => [
Listeners\Activities\Connections\Unheld::class,
],
Events\Activities\Participants\Joined::class => [
Listeners\Activities\Crm\MatchCrmObject::class,
],
Events\Activities\Messages\Created::class => [
Listeners\Activities\Coaching\CreateMessageCreatedNotification::class,
],
// Coaching Related Events
Events\Activities\Coaching\Coached::class => [
Listeners\Activities\Coaching\CreateCoachingFeedbackNotification::class,
Listeners\Activities\Coaching\Intercom\CreateManagerCoachedEvent::class,
Listeners\Activities\Coaching\Intercom\CreateSelfCoachedEvent::class,
Listeners\Activities\Coaching\Planhat\CreateManagerCoachedEvent::class,
Listeners\Activities\Coaching\Planhat\CreateSelfCoachedEvent::class,
Listeners\Activities\Coaching\Planhat\CreateCoachingFeedbackReceivedEvent::class,
Listeners\Activities\Coaching\Planhat\CreateCoachingFeedbackCompletedEvent::class,
Component\Webhooks\Listeners\CreateCoachingFeedbackCompletedWebhook::class,
],
Events\Activities\Coaching\CoachRequested::class => [
Listeners\Activities\Coaching\CreateRequestNotification::class,
],
Events\Activities\Coaching\Commented::class => [
Listeners\Activities\Coaching\CreateCommentNotification::class,
Listeners\Activities\Coaching\CreateMentionNotification::class,
Listeners\Activities\Coaching\Intercom\CreateCommentedEvent::class,
Listeners\Activities\Coaching\Planhat\CreateCommentedEvent::class,
Listeners\Activities\Coaching\CreateNotifyContributorNotification::class,
],
Events\Activities\Coaching\Shared::class => [
Listeners\Activities\Coaching\CreateShareNotification::class,
Listeners\Activities\Coaching\Intercom\CreateSharedEvent::class,
Listeners\Activities\Coaching\Planhat\CreateSharedEvent::class,
Listeners\Activities\Coaching\UserPilot\CreateSharedEvent::class,
Component\Webhooks\Listeners\CreateConversationShareWebhook::class,
],
Component\Playlist\Events\NewTrackEvent::class => [
Listeners\Playlists\Activities\CreatePlaylistAddedNotification::class,
Listeners\Playlists\Planhat\CreateActivityAddedToPlaylistEvent::class,
Listeners\Playlists\UserPilot\CreateActivityAddedToPlaylistEvent::class,
],
Events\Activities\Coaching\Played::class => [
Listeners\Activities\Coaching\Intercom\CreatePlayedEvent::class,
Listeners\Activities\Coaching\Planhat\CreatePlayedEvent::class,
Component\Webhooks\Listeners\CreateConversationPlayedWebhook::class,
],
Jiminny\Events\Activities\Coaching\LiveCoached::class => [
Jiminny\Listeners\Activities\Coaching\CreateLiveCoachNotification::class,
],
Events\Opportunities\Commented::class => [
Listeners\Opportunities\CreateCommentNotification::class,
Listeners\Opportunities\CreateMentionNotification::class,
Listeners\Opportunities\CreateAlsoCommentedNotification::class,
],
Events\Playbooks\PlaybookCreated::class => [
Listeners\Playbooks\AttachLayout::class,
Listeners\Playbooks\CreatePlaybookCreatedEvent::class,
Listeners\Crm\ImportActivityTypes::class,
],
Events\Playbooks\PlaybookUpdated::class => [
],
Events\Playlists\PlaylistCreated::class => [
Listeners\Activities\Coaching\UserPilot\CreatePlaylistCreatedEvent::class,
],
Events\Groups\GroupCreated::class => [
Listeners\Users\CreateGroupCreatedEvent::class,
],
Events\Groups\GroupUpdated::class => [
Listeners\Playbooks\ChangeSidekickSettings::class,
Listeners\Activities\ReindexForGroupListener::class,
],
Events\Groups\GroupDeleted::class => [
Listeners\Groups\CleanupGroupSearchFilters::class,
],
// Team Related Events...
Events\Teams\TeamCreated::class => [
Listeners\Teams\UpdateSalesforceAccount::class,
Listeners\Teams\CreateTwilioSubAccount::class,
Listeners\Teams\CreateDefaultLayouts::class,
Listeners\Teams\CreateTeamFolders::class,
Listeners\Teams\CreateDefaultJobTitles::class,
Listeners\Teams\SyncIntercomCompany::class,
Listeners\Teams\SyncPlanhatCompany::class,
Listeners\Teams\InstallInstantInviteCapableProviders::class,
Component\ActivityAnalytics\Listener\InsertDefaultThemes::class,
Jiminny\Services\UserPilot\SyncUserPilotCompanyListener::class,
],
Events\Teams\TeamUpdated::class => [
Listeners\Teams\UpdateSalesforceAccount::class,
Listeners\Teams\CreateTwilioSubAccountOnUpdate::class,
Listeners\Teams\SyncIntercomCompany::class,
Listeners\Teams\SyncPlanhatCompany::class,
Jiminny\Services\UserPilot\SyncUserPilotCompanyListener::class,
],
Events\Teams\UserInvitedToTeam::class => [
],
Events\Teams\OwnerAssigned::class => [
],
Events\Teams\TeamMemberAdded::class => [
],
Events\Nudges\NudgeCreated::class => [
Listeners\Nudges\CreateNudgeCreatedEvent::class,
Listeners\Nudges\UserPilot\CreateNudgeCreatedEvent::class,
],
Events\Activities\Provider\ActivityProviderInstalledEvent::class => [
Listeners\Activities\ActivityProvider\UserPilot\TrackProviderInstalledEvent::class,
],
\Illuminate\Mail\Events\MessageSending::class => [
Listeners\Users\ValidateSendingMessage::class,
],
\Illuminate\Notifications\Events\NotificationSending::class => [
Listeners\Users\ValidateSendingNotification::class,
],
Events\Teams\SlackBotDisconnected::class => [
Listeners\Teams\RemoveSlackBot::class,
],
Events\Activities\Crm\ActivityLeadConverted::class => [
Jiminny\Services\Crm\Listeners\PurgeLookupCache::class,
],
Events\Activities\Crm\LeadConverted::class => [
Jiminny\Services\Crm\Listeners\ConvertLeadActivities::class,
],
Events\Teams\DeactivateTeamEvent::class => [
Listeners\Teams\UnsubscribeTeamEventsAction::class,
Listeners\Teams\HubspotAppUninstallListener::class,
Listeners\Teams\DeactivateTeamAction::class,
],
Events\Activities\Provider\SyncActivityProviderEvent::class => [
Listeners\Activities\Providers\SyncActivityProviderAction::class,
],
Events\Activities\Provider\DisableActivityProviderEvent::class => [
Listeners\Activities\Providers\DisableActivityProviderAction::class,
],
Events\Activities\SetupIntegrationEvent::class => [
Listeners\Activities\SetupIntegrationAction::class,
],
Events\Activities\ActivityProvider\JustCall\UpdateCallDispositionEvent::class => [
Listeners\Activities\ActivityProvider\JustCall\UpdateCallDispositionAction::class,
],
\Illuminate\Queue\Events\JobProcessing::class => [
Listeners\ChangeLogContextCorrelationId::class,
],
Events\Crm\LayoutUpdatedEvent::class => [
Listeners\Crm\LayoutUpdatedListener::class,
],
Events\Crm\LayoutModifiedEvent::class => [
Listeners\Crm\LayoutModifiedListener::class,
],
Events\Crm\DetachActivityObject::class => [
Listeners\Crm\RematchActivityOnCrmObjectDetach::class,
],
Events\Activities\Audio\UpdateActivityTimesMismatchEvent::class => [
Jiminny\Services\Activity\BaseService\Listener\UpdateActivityTimesMismatchListener::class,
Jiminny\Services\Activity\Outreach\Listener\UpdateActivityTimesMismatchListener::class,
Jiminny\Services\Activity\FiveNine\Listener\UpdateActivityTimesMismatchListener::class,
],
Events\Crm\ProspectUpdated::class => [
[Jiminny\Services\Crm\ProspectCache::class, 'handleProspectUpdated'],
],
Events\Activities\ActivityProvider\CrmActivityProviderIntegratedEvent::class => [
Jiminny\Services\Crm\CrmActivityProviderIntegratedEventListener::class,
],
/**
* Trigger ES Update operations from events ONLY!
*/
Jiminny\Contracts\ES\Events\UpdateSingleEntity::class => [
Component\ES\Listeners\UpdateSingleTargetListener::class,
],
/**
* Trigger ES Update operations from events ONLY!
*/
Jiminny\Contracts\ES\Events\UpdateMultipleEntities::class => [
Component\ES\Listeners\UpdateMultipleTargetsListener::class,
],
/**
* Trigger AI Automation Analysis for an activity with associated opportunity
* and transcription / email content
*/
Events\Activities\AiAutomation\RunActivityAiAnalysis::class => [
Jiminny\Component\AiAutomation\Listeners\RunActivityAiAnalysisListener::class,
],
/**
* Run AiAutomation analysis on an Opportunity.
*/
Events\Activities\AiAutomation\RunOpportunityAiAnalysis::class => [
Jiminny\Component\AiAutomation\Listeners\RunOpportunityAiAnalysisListener::class,
],
/**
* A new prospect is added. Validate if we need to send it for Ai Automation.
*/
Events\Activities\AiAutomation\ActivityProspectAdded::class => [
Component\AiAutomation\Listeners\PendingAnalysis\ActivityPendingAiAnalysisAfterProspectAdded::class,
Component\AiCallScoring\Listeners\RegenerateAiCallScoringOnDealChangeListener::class,
],
/**
* Manually start the AiAutomation analysis. Mimics the end of processing pipeline contract
*/
Events\Activities\AiAutomation\ManualTriggerForAnalysis::class => [
Component\AiAutomation\Listeners\PendingAnalysis\ActivityPendingAiAnalysisAfterProcessingDoneListener::class,
],
/**
* Conference activity is imported. Validate if we need to send it for Ai Automation.
*/
Events\Activities\AiAutomation\ConferenceActivityImported::class => [
Component\AiAutomation\Listeners\PendingAnalysis\ActivityPendingAiAnalysisAfterConferenceImported::class,
],
/**
* An opportunity stage has changed. Validate if we need to send it for Ai Automation
*/
Events\Crm\OpportunityStageUpdated::class => [
Component\AiAutomation\Listeners\PendingAnalysis\OpportunityPendingAiAnalysisAfterStageChanged::class,
],
/**
* Manage the system layout for AI Automation.
*/
Events\Activities\AiAutomation\TemplateFieldsUpdated::class => [
Component\AiAutomation\Listeners\Layout\PrepareAiTemplateSystemLayout::class,
],
/**
* AiAutomation analysis is saved in db, and pending to be processed,
* potentially even sent to the CRM depending on flags and current target state.
*/
Events\Activities\AiAutomation\AiAutomationAnalysisReady::class => [
Component\AiAutomation\Listeners\ProcessAiAutomationAnalysisResults::class,
],
/**
* Trigger AiAutomation analysis if Task or Event is assigned to the activity.
*/
Events\Activities\ActivityCrmProvidedUpdated::class => [
Component\AiAutomation\Listeners\PendingAnalysis\ActivityPendingAiAnalysisAfterCrmProviderUpdated::class,
],
/**
* Handle CRM field validation failures from Salesforce.
*/
Events\AiAutomation\CrmFieldValidationFailedEvent::class => [
Component\AiAutomation\Listeners\HandleCrmFieldValidationFailureListener::class,
],
];
/** Register any other events for your application. */
public function boot(): void
{
User::observe(UserObserver::class);
User::laratrustObserve(UserRoleObserver::class);
Group::observe(GroupObserver::class);
}
/**
* Determine if events and listeners should be automatically discovered.
*/
public function shouldDiscoverEvents(): bool
{
return false;
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Sync Changes
Hide This Notification
Code changed:
Hide
35
1
33
63
Previous Highlighted Error
Next Highlighted Error
SELECT * FROM teams WHERE name LIKE '%litify%'; # 1069, 994, 24993
SELECT * FROM users WHERE id = 25061;
SELECT * FROM crm_profiles WHERE crm_configuration_id = 994;
SELECT * FROM crm_profiles WHERE user_id = 25061;
select * from crm_configurations where id = 834;
SELECT * FROM teams WHERE id = 882;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 882 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal
SELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations WHERE provider = 'hubspot' and crm_provider_id = 7270388;
SELECT * FROM contacts where crm_configuration_id = 834;
SELECT * FROM opportunities WHERE team_id = 933
# AND crm_provider_id IN ('20131586060','46017317898','52543911090','53451356564','54101251892','54323768459');
AND id IN (8482561,18352941,19042734,19232139,19445140,19472541);
SELECT * FROM opportunity_contacts
WHERE opportunity_id IN (8482561,18352941,19042734,19232139,19445140,19472541);
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 485; #
SELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
select crm.provider, l.* from leads l join crm_configurations crm on l.crm_configuration_id = crm.id
where crm.provider NOT IN ('salesforce', 'integration-app', 'bullhorn', 'copper')
# and l.converted_at IS NOT NULL
;
# [PASSWORD_DOTS]
SELECT * FROM activities a WHERE type IN ('email-inbound', 'email-outbound')
and opportunity_id IS NULL
order by id desc;
SELECT * FROM teams WHERE id = 604; # 598
SELECT * FROM activities WHERE id = 74410828; # [EMAIL]
SELECT * FROM accounts WHERE id = 20068382;
SELECT * FROM accounts WHERE id = 35186038;
SELECT * FROM contacts WHERE team_id = 852 and updated_at > '2026-01-23 12:30:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 559 and sa.provider = 'hubspot';
SELECT * FROM activities WHERE uuid_to_bin('cb6342b6-a183-401c-b0af-ede92b2ae763') = uuid;
select * from sidekick_settings where team_id = 781;
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 26651871; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 7562435;
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8420347; # opflit 2100
SELECT * FROM crm_layouts WHERE crm_configuration_id = 711;
SELECT * FROM activities where crm_configuration_id = 711 and crm_provider_id IS NULL
and is_internal = 0 and status = 'completed'
order by id desc;
SELECT * FROM crm_layout_entities
WHERE crm_layout_id IN (2352, 2353);
;
SELECT * FROM crm_configurations where provider = 'hubspot' and id = 530;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 556 and sa.provider = 'hubspot';
SELECT * FROM activities WHERE uuid_to_bin('c6ca4b22-7738-4563-a95d-b8a9598924ae') = uuid;
SELECT * FROM activities WHERE uuid_to_bin('442abb2b-28bd-4be8-9c25-19e9bf02766d') = uuid;
select * from contacts
where crm_configuration_id = 530
and crm_provider_id = 872252;
select * from activities where crm_configuration_id = 530
and user_id = 14343 and type like '%softphone%'
and created_at between '2026-01-28 15:00:00' and '2026-01-28 15:10:00';
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 25666868; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8646335; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id IN (5933397);
SELECT t.name, t.id, t.owner_id, c.id, c.provider, c.crm_base_url FROM teams t
JOIN crm_configurations c ON t.id = c.team_id
WHERE t.status = 'active';
SELECT * FROM teams where id = 1091;
SELECT * FROM crm_configurations where team_id = 1091;
SELECT * FROM activity_providers where team_id = 1091;
SELECT * FROM activities where crm_configuration_id = 1024 and type IN ('softphone', 'softphone-outbound')
and provider NOT IN ('hubspot', 'aircall')
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by id desc;
SELECT * FROM teams WHERE name LIKE '%Leadventure%';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1091 and sa.provider = 'salesforce';
SELECT * FROM teams WHERE name LIKE '%Wilson%'; # 862, 812
SELECT * FROM teams where id = 862;
SELECT * FROM crm_configurations where team_id = 862;
SELECT * FROM activity_providers where team_id = 862;
SELECT * FROM activities where crm_configuration_id = 812 and type IN ('softphone', 'softphone-outbound')
and provider NOT IN ('hubspot', 'aircall')
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by id desc;
SELECT t.id, crm.id, crm.provider, ap.* FROM teams t
join crm_configurations crm on t.id = crm.team_id
join activity_providers ap on t.id = ap.team_id
where t.status = 'active' and ap.is_enabled = 1
and crm.provider = 'hubspot'
and ap.provider NOT IN ('hubspot', 'aircall', 'uploader', 'gong', 'twilio', 'zoom-bot', 'google-meet', 'ms-teams',
'outreach', 'close', 'ringcentral', 'dialpad', 'zoom-phone');
SELECT * FROM teams where id = 1068;
SELECT * FROM crm_configurations where team_id = 1068;
SELECT * FROM activity_providers where team_id = 1068;
SELECT * FROM activities a
where crm_configuration_id = 993 and type IN ('softphone', 'softphone-outbound')
and a.provider NOT IN ('hubspot', 'uploader', 'gong', 'twilio', 'google-meet', 'ms-teams','close'
)
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by a.id desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1068 and sa.provider = 'hubspot';
# [PASSWORD_DOTS]
# [PASSWORD_DOTS]
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal , portalId: 6017093
SELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-06 00:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 834; # 882 - AnyVan , portalId: 5468262
SELECT * FROM contacts WHERE crm_configuration_id = 834 and updated_at > '2026-03-30 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE crm_configuration_id = 834 and updated_at > '2026-03-04 08:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 882 and sa.provider = 'hubspot';
select * from crm_layouts where crm_configuration_id = 834;
select * from crm_layout_entities where crm_layout_id = 2780;
select * from crm_fields where id IN (321153,321192,321193,321194);
SELECT * FROM opportunities WHERE crm_configuration_id = 834 and id = 10993426;
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 988; # 1057 - Teya (543ce4f4-168c-4571-91ea-5b35c253f06f) , portalId: 26651871
SELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1057 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations where id = 533; # 559 - Connectd , portalId: 6710988
SELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 801; # 852 - Rise Vision , portalId: 2700250
SELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-04 00:00:00' order by updated_at desc; # 6th last
SELECT * FROM crm_configurations where id = 962; # 1034 - evergrowth.io , portalId: 143180990
SELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 1037; # 1102 - Jibble , portalId: 6649755
SELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 8
SELECT * FROM crm_configurations where id = 1015; # 1049 - Travefy , portalId: 48904401
SELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 20
SELECT * FROM crm_configurations where id = 64; # 70 - SalaryFinance , portalId: 3404115
SELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 6th last
SELECT * FROM crm_configurations where id = 802; # 853 - Street Group , portalId: 7658438
SELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 10
SELECT * FROM crm_configurations where id = 872; # 921 - In Professional Development , portalId: 9238273
SELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 2
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 550; # 576 - SeedLegals , portalId: 3028661
SELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 989; # 1058 - rtaoutdoor.com , portalId: 22371204
SELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 896; # 946 - Mintago , portalId: 6621281
SELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 617; # 641 - PCS , portalId: 5244937
SELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-05 14:00:00' order by updated_at desc; # 7th
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 649; # 670 - Eventeny , portalId: 4492849
SELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; #
SELECT * FROM crm_configurations where id = 48; # 51 - CleanCloud , portalId: 4373137
SELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-03-04 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-02-09 08:00:00' order by updated_at desc;
select * from users where team_id = 51; # 7783
SELECT * FROM groups WHERE uuid_to_bin('8a8d2cb6-8b55-4fa3-8b5c-5f0e3d8de59a') = uuid; # 1130
select * from activity_searches where user_id = 7783;
select * from activity_search_filters where activity_search_id IN (32291, 32292);
SELECT asf.activity_search_id, asf.id, asf.value
FROM activity_search_filters asf
WHERE asf.filter = 'group_id'
AND asf.value IN (
SELECT CONCAT(
HEX(SUBSTR(uuid, 5, 4)), '-',
HEX(SUBSTR(uuid, 3, 2)), '-',
HEX(SUBSTR(uuid, 1, 2)), '-',
HEX(SUBSTR(uuid, 9, 2)), '-',
HEX(SUBSTR(uuid, 11))
)
FROM groups
WHERE deleted_at IS NOT NULL
);
SELECT * FROM crm_configurations where id = 272; # 290 - Bonham & Brook , portalId: 5705856
SELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-05 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; # 6th
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where provider = 'hubspot';
SELECT * FROM crm_configurations where id = 1056; # 1119 - Chromatic , portalId: 45602133
SELECT * FROM opportunities WHERE team_id = 1119 and remotely_created_at > '2026-02-01 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1119 and updated_at > '2026-02-09 09:00:00' order by updated_at desc; # null
# [PASSWORD_DOTS]
select * from contacts where crm_provider_id = '003Uu00000ojD4NIAU';
select
cp.*
# DISTINCT t.id
# cp.id, cp.user_id, t.id, cp.crm_configuration_id, cp.contact_fields
FROM crm_profiles cp
JOIN crm_configurations crm on crm.id = cp.crm_configuration_id
JOIN users u on u.id = cp.user_id
JOIN teams t ON t.id = crm.team_id
WHERE crm.provider = 'salesforce' and t.status = 'active'
and cp.archived_at IS NULL and u.deleted_at IS NULL
and t.id NOT IN (1093)
and t.id = 2
and cp.contact_fields IS NULL;
# and c.crm_provider_id = '003Uu00000ojD4NIAU';
SELECT * FROM users WHERE id = 26484;
SELECT * FR...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"help_text":"Git Branch: master","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Show Replace Field","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Search History","depth":3,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"DetachActivityObject","depth":4,"value":"DetachActivityObject","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Match Case","depth":3,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Words","depth":3,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Regex","depth":3,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Replace History","depth":3,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.024444444},"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Replace","depth":4,"role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.024444444},"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Preserve case","depth":3,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.024444444},"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1/1","depth":4,"role_description":"text"},{"role":"AXButton","text":"Previous Occurrence","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Occurrence","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Filter Search Results","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Window, Multiple Cursors","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Click to highlight","depth":4,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Providers;\n\nuse Illuminate\\Foundation\\Support\\Providers\\EventServiceProvider as ServiceProvider;\nuse Jiminny;\nuse Jiminny\\Component;\nuse Jiminny\\Component\\Encoding\\Listeners\\CreateM3U8MediaListener;\nuse Jiminny\\Component\\Nudge\\Listener\\SendImmediateNudgeListener;\nuse Jiminny\\Component\\Slack\\Listeners\\ImportSlackUsersAccountsListener;\nuse Jiminny\\Events;\nuse Jiminny\\Listeners;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Observers\\GroupObserver;\nuse Jiminny\\Observers\\UserObserver;\nuse Jiminny\\Observers\\UserRoleObserver;\n\nclass EventServiceProvider extends ServiceProvider\n{\n protected $subscribe = [\n Component\\ActivityAnalytics\\Event\\EventSubscriber::class,\n Component\\Transcription\\Event\\EventSubscriber::class,\n Component\\Twilio\\Event\\TwilioConferenceEventSubscriber::class,\n Component\\Twilio\\Event\\TwilioReportingSubscriber::class,\n Component\\ActivitySearch\\EventSubscriber\\SlackEventSubscriber::class,\n Listeners\\Import\\ActivityImportSubscriber::class,\n ];\n\n /**\n * The event listener mappings for the application.\n */\n protected $listen = [\n \\Illuminate\\Notifications\\Events\\NotificationSent::class => [\n ],\n\n // User Related Events...\n Events\\Auth\\UserRegistered::class => [\n Listeners\\Users\\SyncIntercom::class,\n Listeners\\Users\\SyncPlanhat::class,\n Listeners\\Crm\\InitProfiles::class,\n Listeners\\Users\\SyncUserPilot::class,\n Jiminny\\Services\\Crm\\IntegrationApp\\Jobs\\UpdateProfileRelatedEntitiesJob::class,\n ],\n\n Events\\Auth\\ChromeExtensionAuthenticated::class => [\n Listeners\\Authentication\\Intercom\\CreateChromeExtensionAuthenticatedEvent::class,\n ],\n\n Events\\Auth\\DeviceAuthenticated::class => [\n Listeners\\Authentication\\Intercom\\UpdateUserDeviceActivity::class,\n ],\n\n Events\\ElasticSearch\\RemovesDocumentWhenDeleted::class => [\n Listeners\\Activities\\ElasticSearchMetricsRemoveActivityListener::class,\n Listeners\\ElasticSearch\\RemovesDocumentBelongingToDeletedModel::class,\n ],\n\n Events\\Users\\UserCreated::class => [\n Listeners\\Users\\SetDefaultAvatarListener::class,\n Listeners\\Users\\CreateDefaultPlaylist::class,\n Listeners\\Users\\CreateDefaultSavedSearches::class,\n Component\\BillingManagement\\Listeners\\UserCreatedOrUpdatedListener::class,\n ],\n\n Events\\Users\\UserUpdated::class => [\n Listeners\\Users\\SetDefaultAvatarListener::class,\n Listeners\\Users\\SyncIntercom::class,\n Listeners\\Users\\SyncPlanhat::class,\n Listeners\\Users\\SyncUserPilot::class,\n Listeners\\Users\\DeleteScheduledUserActivitiesForInsightSeatUsers::class,\n Component\\BillingManagement\\Listeners\\UserCreatedOrUpdatedListener::class,\n ],\n\n Events\\Users\\UserPhotoUpdated::class => [\n Listeners\\Activities\\ReindexForUserListener::class,\n ],\n\n Jiminny\\Events\\Users\\UserDeactivated::class => [\n Jiminny\\Listeners\\Activities\\ReindexForUserListener::class,\n Listeners\\Mailbox\\DeactivateUserListener::class,\n ],\n\n Jiminny\\Events\\Users\\UserDeleted::class => [\n Jiminny\\Listeners\\Activities\\ReindexForUserListener::class,\n ],\n\n Events\\Users\\SocialAccountConnected::class => [\n Listeners\\Users\\SetupCalendarSync::class,\n Listeners\\Users\\ActivityProviderIntegrated::class,\n Listeners\\Authentication\\Intercom\\UpdateSocialTag::class,\n Listeners\\Users\\SetupMailSync::class,\n Listeners\\Crm\\BootstrapIntegrationApp::class,\n ],\n\n Events\\Users\\CrmAccountReconnected::class => [\n Listeners\\Crm\\ImportMetadata::class,\n ],\n\n Events\\Users\\SocialAccountDisconnected::class => [\n Listeners\\Users\\NotifyCrmOwnerDisconnectedListener::class,\n Listeners\\Users\\NotifyCrmUserDisconnectedListener::class,\n Listeners\\Users\\ActivityProviderDisconnectedListener::class,\n Listeners\\Authentication\\Intercom\\UpdateSocialTag::class,\n ],\n\n Events\\Users\\GroupChangedEvent::class => [\n Listeners\\Activities\\ReindexForUserListener::class,\n Listeners\\Playlists\\ImportGroupPlaylistSharesListener::class,\n ],\n\n Events\\Calendars\\EventChanged::class => [\n Jiminny\\Services\\MeetingGenerator\\Listeners\\MeetingUpdated::class,\n ],\n\n Events\\Calendars\\EventCancelled::class => [\n Listeners\\Calendars\\EventCancelled::class,\n Listeners\\Activities\\Providers\\CancelledInCalendar::class,\n Jiminny\\Services\\MeetingGenerator\\Listeners\\MeetingCancelled::class,\n ],\n\n Events\\Crm\\OpportunityUpdated::class => [\n Listeners\\Activities\\ReindexForOpportunityListener::class,\n Listeners\\DealRisks\\RecalculateDealRiskOnOpportunityChange::class,\n ],\n\n Events\\Crm\\AccountUpdated::class => [\n Listeners\\Activities\\ReindexForAccountListener::class,\n ],\n\n Events\\Crm\\ContactUpdated::class => [\n Listeners\\Activities\\ReindexForContactListener::class,\n ],\n\n Events\\Crm\\LeadUpdated::class => [\n Listeners\\Activities\\ReindexForLeadListener::class,\n ],\n\n Events\\Crm\\ProfileCreated::class => [\n Listeners\\Crm\\SyncProfileOpportunities::class,\n Listeners\\Crm\\SyncProfileLeads::class,\n ],\n\n // Local CRM records are stale, cleaning up after remote deletion\n Events\\Crm\\RemoteCrmRecordDeleted::class => [\n Listeners\\Crm\\RemoteCrmRecordDeletedListener::class,\n ],\n\n // Activity Related Events\n Events\\Activities\\ActivityUpdated::class => [\n ],\n\n Events\\Activities\\ActivityTypeUpdated::class => [\n Component\\Settings\\AutoScoring\\Listeners\\AnalyzeActivityScorecards::class,\n // CRM Filling is executed here after ActivityProcessingEndOfPipeline\n // AI Call Scoring is executed here after ActivityProcessingEndOfPipeline\n ],\n\n Events\\Groups\\SettingsUpdated::class => [\n Listeners\\DealRisks\\RecalculateDealRiskOnSettingsUpdate::class,\n ],\n\n Events\\Activities\\TrackReady::class => [\n Listeners\\Activities\\ImportRemoteTrackListener::class,\n ],\n\n Events\\Activities\\TrackImportedEvent::class => [\n Component\\FFMpeg\\Listeners\\AnalyzeTrackChannelsListener::class,\n Listeners\\Activities\\DialerMetricsImportedActivityListener::class,\n ],\n\n Component\\FFMpeg\\Events\\Audio\\TrackChannelsAnalyzedEvent::class => [\n Listeners\\Activities\\Audio\\SwitchAudioChannels::class,\n ],\n\n Events\\Activities\\Audio\\AudioChannelsReady::class => [\n Listeners\\Activities\\Audio\\TrimHoldMusic::class,\n ],\n\n Events\\Activities\\Audio\\TrackTrimmed::class => [\n Listeners\\Activities\\Audio\\StartMediaPipeline::class,\n ],\n\n Component\\MediaPipeline\\Events\\ActivityProcessingPipelineStartedEvent::class => [\n Component\\Encoding\\Listeners\\CalculateTalkTimeFromSilenceListener::class,\n CreateM3U8MediaListener::class,\n ],\n\n Component\\Encoding\\Events\\SpeechFromSilenceGeneratedEvent::class => [\n Component\\Activity\\Listener\\ActivityLanguageConfirmListener::class,\n ],\n\n Component\\Activity\\Event\\ActivityProcessingEndOfPipelineEvent::class => [\n Component\\Activity\\Listener\\ActivityProcessingEndOfPipelineListener::class,\n ],\n\n Component\\Activity\\Event\\ActivityProcessingDoneEvent::class => [\n Component\\Webhooks\\Listeners\\CreateConversationProcessedWebhook::class,\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\ActivityPendingAiAnalysisAfterProcessingDoneListener::class,\n ],\n\n Component\\Activity\\Event\\ActivityProcessingFailedEvent::class => [\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\ActivityPendingAiAnalysisAfterProcessingDoneListener::class,\n Listeners\\Activities\\Crm\\AutoLogActivity::class,\n ],\n\n Component\\ActivityAnalytics\\Event\\ActivityLanguageConfirmed::class => [\n Listeners\\Transcription\\TranscriptionInitListener::class,\n ],\n\n Events\\Transcription\\TranscriptionReady::class => [\n Component\\ActivityAnalytics\\Listener\\CalculateAnalyticsListener::class,\n Jiminny\\Component\\TranscriptionSummary\\Listeners\\SummarizeTranscriptionListener::class,\n Jiminny\\Component\\ActionItems\\Listeners\\GenerateActionItemsListener::class,\n Component\\KeyPoints\\Listeners\\GenerateKeyPointsListener::class,\n Jiminny\\Component\\AiActivityType\\Listeners\\GenerateAiActivityTypeListener::class,\n Listeners\\DealRisks\\RecalculateDealRisksOnTranscriptionReady::class,\n Component\\Transcription\\Listener\\TranslateTranscriptListener::class,\n ],\n\n Component\\ActivityAnalytics\\Event\\AnalyticsCompletedEvent::class => [\n SendImmediateNudgeListener::class,\n Component\\Settings\\AutoScoring\\Listeners\\AnalyzeActivityScorecards::class,\n ],\n\n Events\\Activities\\Audio\\TrackTranscoded::class => [\n ],\n\n Events\\Activities\\Audio\\TrackSegmented::class => [\n Listeners\\Activities\\Audio\\TrackSegmented::class,\n ],\n\n Events\\Activities\\Audio\\TrackAvailable::class => [\n Listeners\\Activities\\Audio\\TrackAvailable::class,\n Listeners\\Activities\\Coaching\\CreateAvailabilityNotification::class,\n ],\n\n Events\\Activities\\Audio\\RecordingStarted::class => [\n Listeners\\Activities\\Audio\\Recording::class,\n ],\n\n Events\\Activities\\Audio\\RecordingStopped::class => [\n Listeners\\Activities\\Audio\\Recording::class,\n ],\n\n Events\\Activities\\Audio\\RecordingPaused::class => [\n Listeners\\Activities\\Audio\\Recording::class,\n ],\n\n Events\\Activities\\Audio\\RecordingResumed::class => [\n Listeners\\Activities\\Audio\\Recording::class,\n ],\n\n Events\\Activities\\Audio\\RecordingEnabled::class => [\n Listeners\\Activities\\Audio\\Recording::class,\n ],\n\n Component\\FFMpeg\\Events\\Video\\TrackChannelsAnalyzedEvent::class => [\n Listeners\\Activities\\Audio\\DemuxAudioOnlyListener::class,\n Component\\PlaybackPage\\Snapshots\\Listeners\\GenerateSnapshotsListener::class,\n ],\n\n Events\\Activities\\Video\\TrackDemuxedAudio::class => [\n Listeners\\Activities\\Audio\\StartMediaPipeline::class,\n ],\n\n Events\\Activities\\Audio\\SpeechTimesCalculated::class => [\n ],\n\n Events\\Activities\\ActivityExported::class => [\n Listeners\\Activities\\GenerateExportTokens::class,\n Listeners\\Activities\\Coaching\\UserPilot\\CreateExportedEvent::class,\n Component\\Webhooks\\Listeners\\CreateActivityExportedWebhook::class,\n ],\n\n Events\\Activities\\ExportTokenGenerated::class => [\n Listeners\\Activities\\SendExportEmail::class,\n ],\n\n Events\\Activities\\Crm\\StageChanged::class => [\n ],\n\n Events\\Opportunities\\AskJiminnyOnDealPromptUpdate::class => [\n Listeners\\Opportunities\\ClearAskJiminnyOnDealCache::class,\n ],\n\n Events\\Activities\\Crm\\ActivityLogged::class => [\n Listeners\\Activities\\Coaching\\Intercom\\CreateActivitySummarizedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreateActivityLoggedEvent::class,\n Listeners\\Activities\\Coaching\\UserPilot\\CreateActivityLoggedEvent::class,\n Listeners\\DealRisks\\RecalculateDealRisksOnActivityChange::class,\n Listeners\\Activities\\Crm\\Summary\\ActivityLoggedListener::class,\n ],\n\n Events\\Activities\\Crm\\ActivityScheduled::class => [\n Listeners\\DealRisks\\RecalculateDealRisksOnActivityChange::class,\n ],\n\n Events\\Activities\\Crm\\ActivityCancelled::class => [\n Listeners\\DealRisks\\RecalculateDealRisksOnScheduledActivity::class,\n ],\n\n Events\\Activities\\Crm\\ActivityCancelledAsNoShow::class => [\n Listeners\\Activities\\Crm\\AutoLogCancelledActivity::class,\n ],\n\n Events\\Activities\\Crm\\ActivityLinkedToCrm::class => [\n ],\n\n Events\\Activities\\Crm\\EmailWithCRMObjectsProcessed::class => [\n Listeners\\DealRisks\\RecalculateDealRisksOnActivityChange::class,\n Listeners\\Opportunities\\ClearAskJiminnyOnDealCache::class,\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\EmailActivityPendingAiAnalysisAfterImport::class,\n ],\n\n Events\\Activities\\Sms\\Sent::class => [\n Listeners\\Activities\\Sms\\Intercom\\CreateSmsSentEvent::class,\n Listeners\\Activities\\Sms\\Planhat\\CreateSmsSentEvent::class,\n Listeners\\Activities\\Crm\\AutoLogActivity::class,\n ],\n\n Events\\Activities\\Sms\\Undelivered::class => [\n ],\n\n Events\\Activities\\Sms\\Failed::class => [\n ],\n\n Events\\Activities\\Sms\\Delivered::class => [\n Listeners\\DealRisks\\RecalculateDealRisksOnActivityChange::class,\n ],\n\n Events\\Activities\\Sms\\Received::class => [\n Listeners\\Activities\\Sms\\CreateReceivedNotification::class,\n Listeners\\Activities\\Sms\\Intercom\\CreateSmsReceivedEvent::class,\n Listeners\\Activities\\Sms\\Planhat\\CreateSmsReceivedEvent::class,\n Listeners\\Activities\\Crm\\AutoLogActivity::class,\n Listeners\\DealRisks\\RecalculateDealRisksOnActivityChange::class,\n ],\n\n Events\\Users\\NumberVerified::class => [\n ],\n\n Events\\Activities\\Bots\\MeetingBotEvent::class => [\n Listeners\\Activities\\Bots\\EventHandler::class,\n ],\n\n Events\\Activities\\Conferences\\StartingSoon::class => [\n Listeners\\Activities\\ResolveProvider::class,\n Listeners\\Crm\\SyncOpportunity::class,\n Listeners\\Crm\\ResolveOwner::class,\n ],\n\n Events\\Activities\\Conferences\\ParticipantDeclinedRecordingEvent::class => [\n Listeners\\Activities\\Conferences\\ParticipantDeclinedRecordingListener::class,\n ],\n\n Events\\Activities\\Conferences\\Locked::class => [\n Listeners\\Activities\\Conferences\\Locked::class,\n ],\n\n Events\\Activities\\Conferences\\Started::class => [\n Listeners\\Activities\\Conferences\\Started::class,\n Listeners\\Activities\\Crm\\UpdateCrmData::class,\n Listeners\\DealRisks\\RecalculateDealRisksOnScheduledActivity::class,\n ],\n\n Events\\Activities\\Conferences\\Ended::class => [\n Listeners\\Activities\\Conferences\\Ended::class,\n Listeners\\Activities\\Audio\\StartMediaPipeline::class,\n Listeners\\Activities\\Conferences\\Intercom\\CreateHeldActivityEvent::class,\n Listeners\\Activities\\Conferences\\Planhat\\CreateHeldActivityEvent::class,\n Listeners\\Activities\\Conferences\\UserPilot\\CreateHeldActivityEvent::class,\n Listeners\\Activities\\Crm\\AutoSyncActivity::class,\n Listeners\\Activities\\Conferences\\MatchMeetingOwnerEvent::class,\n ],\n\n Events\\Activities\\Conferences\\ConferenceFailedEvent::class => [\n ],\n\n Events\\AiCallScoring\\AiScorecardCompletedEvent::class => [\n Component\\Webhooks\\Listeners\\CreateAiScorecardCompletedWebhook::class,\n ],\n\n \\Spatie\\WebhookServer\\Events\\WebhookCallSucceededEvent::class => [\n Listeners\\Webhook\\LogWebhookDeliveryListener::class . '@handleSucceeded',\n ],\n\n \\Spatie\\WebhookServer\\Events\\WebhookCallFailedEvent::class => [\n Listeners\\Webhook\\LogWebhookDeliveryListener::class . '@handleFailed',\n ],\n\n \\Spatie\\WebhookServer\\Events\\FinalWebhookCallFailedEvent::class => [\n Listeners\\Webhook\\LogWebhookDeliveryListener::class . '@handleFinalFailed',\n ],\n\n Component\\TranscriptionSummary\\Events\\TranscriptionAiSummaryReadyEvent::class => [\n Listeners\\Activities\\Crm\\Summary\\AiSummaryCreatedListener::class,\n Listeners\\Opportunities\\ClearAskJiminnyOnDealCache::class,\n ],\n\n Events\\Activities\\Conferences\\Rescheduled::class => [\n Listeners\\DealRisks\\RecalculateDealRisksOnScheduledActivity::class,\n ],\n\n Events\\Activities\\Conferences\\Scheduled::class => [\n Listeners\\Activities\\Conferences\\Intercom\\CreateScheduledActivityEvent::class,\n Listeners\\Activities\\Conferences\\Planhat\\CreateScheduledActivityEvent::class,\n Listeners\\Activities\\Following\\CreateScheduledNotification::class,\n Listeners\\DealRisks\\RecalculateDealRisksOnScheduledActivity::class,\n ],\n\n Events\\Activities\\Softphone\\Ended::class => [\n Listeners\\Activities\\Softphone\\Intercom\\CreateDialerActivityEvent::class,\n Listeners\\Activities\\Softphone\\Planhat\\CreateDialerActivityEvent::class,\n Listeners\\Activities\\Softphone\\UserPilot\\CreateDialerActivityEvent::class,\n Listeners\\Activities\\Crm\\AutoSyncActivity::class,\n ],\n\n Events\\Activities\\Dialers\\CallImported::class => [\n Listeners\\Activities\\Softphone\\Intercom\\CreateDialerActivityEvent::class,\n Listeners\\Activities\\Softphone\\Planhat\\CreateDialerActivityEvent::class,\n Listeners\\Activities\\Softphone\\UserPilot\\CreateDialerActivityEvent::class,\n Listeners\\DealRisks\\RecalculateDealRisksOnActivityChange::class,\n ],\n\n Events\\Sidekick\\SidekickDisabled::class => [\n ],\n\n Events\\Sidekick\\AutologEnabled::class => [\n Listeners\\Activities\\Crm\\UserPilot\\CreateAutologEnabledEvent::class,\n ],\n\n Events\\Activities\\Crm\\AutoLogActivity::class => [\n Listeners\\Activities\\Crm\\AutoLogActivity::class,\n ],\n\n Events\\Teams\\NotificationProviderEnabled::class => [\n Listeners\\Teams\\UserPilot\\TrackNotificationProviderEnabled::class,\n ImportSlackUsersAccountsListener::class,\n ],\n\n Events\\Activities\\Sessions\\Started::class => [\n Listeners\\Activities\\Sessions\\Started::class,\n ],\n\n Jiminny\\Events\\Activities\\Sessions\\Ended::class => [\n Jiminny\\Listeners\\Activities\\Sessions\\Ended::class,\n Jiminny\\Listeners\\Activities\\Audio\\StartMediaPipeline::class,\n ],\n\n Events\\Activities\\Sessions\\Muted::class => [\n Listeners\\Activities\\Sessions\\Muted::class,\n ],\n\n Events\\Activities\\Sessions\\Unmuted::class => [\n Listeners\\Activities\\Sessions\\Unmuted::class,\n ],\n\n Events\\Activities\\Connections\\Opened::class => [\n Listeners\\Activities\\Connections\\Opened::class,\n Listeners\\Activities\\Crm\\MatchCrmObject::class,\n ],\n\n Jiminny\\Events\\Activities\\Connections\\Closed::class => [\n Listeners\\Activities\\Audio\\StartMediaPipeline::class,\n Jiminny\\Listeners\\Activities\\Connections\\Closed::class,\n Jiminny\\Listeners\\Activities\\Connections\\IngestInsights::class,\n ],\n\n Events\\Activities\\Connections\\Muted::class => [\n Listeners\\Activities\\Connections\\Muted::class,\n ],\n\n Events\\Activities\\Connections\\Unmuted::class => [\n Listeners\\Activities\\Connections\\Unmuted::class,\n ],\n\n Events\\Activities\\Connections\\Held::class => [\n Listeners\\Activities\\Connections\\Held::class,\n ],\n\n Events\\Activities\\Connections\\Unheld::class => [\n Listeners\\Activities\\Connections\\Unheld::class,\n ],\n\n Events\\Activities\\Participants\\Joined::class => [\n Listeners\\Activities\\Crm\\MatchCrmObject::class,\n ],\n\n Events\\Activities\\Messages\\Created::class => [\n Listeners\\Activities\\Coaching\\CreateMessageCreatedNotification::class,\n ],\n\n // Coaching Related Events\n Events\\Activities\\Coaching\\Coached::class => [\n Listeners\\Activities\\Coaching\\CreateCoachingFeedbackNotification::class,\n Listeners\\Activities\\Coaching\\Intercom\\CreateManagerCoachedEvent::class,\n Listeners\\Activities\\Coaching\\Intercom\\CreateSelfCoachedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreateManagerCoachedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreateSelfCoachedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreateCoachingFeedbackReceivedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreateCoachingFeedbackCompletedEvent::class,\n Component\\Webhooks\\Listeners\\CreateCoachingFeedbackCompletedWebhook::class,\n ],\n\n Events\\Activities\\Coaching\\CoachRequested::class => [\n Listeners\\Activities\\Coaching\\CreateRequestNotification::class,\n ],\n\n Events\\Activities\\Coaching\\Commented::class => [\n Listeners\\Activities\\Coaching\\CreateCommentNotification::class,\n Listeners\\Activities\\Coaching\\CreateMentionNotification::class,\n Listeners\\Activities\\Coaching\\Intercom\\CreateCommentedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreateCommentedEvent::class,\n Listeners\\Activities\\Coaching\\CreateNotifyContributorNotification::class,\n ],\n\n Events\\Activities\\Coaching\\Shared::class => [\n Listeners\\Activities\\Coaching\\CreateShareNotification::class,\n Listeners\\Activities\\Coaching\\Intercom\\CreateSharedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreateSharedEvent::class,\n Listeners\\Activities\\Coaching\\UserPilot\\CreateSharedEvent::class,\n Component\\Webhooks\\Listeners\\CreateConversationShareWebhook::class,\n ],\n\n Component\\Playlist\\Events\\NewTrackEvent::class => [\n Listeners\\Playlists\\Activities\\CreatePlaylistAddedNotification::class,\n Listeners\\Playlists\\Planhat\\CreateActivityAddedToPlaylistEvent::class,\n Listeners\\Playlists\\UserPilot\\CreateActivityAddedToPlaylistEvent::class,\n ],\n\n Events\\Activities\\Coaching\\Played::class => [\n Listeners\\Activities\\Coaching\\Intercom\\CreatePlayedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreatePlayedEvent::class,\n Component\\Webhooks\\Listeners\\CreateConversationPlayedWebhook::class,\n ],\n\n Jiminny\\Events\\Activities\\Coaching\\LiveCoached::class => [\n Jiminny\\Listeners\\Activities\\Coaching\\CreateLiveCoachNotification::class,\n ],\n\n Events\\Opportunities\\Commented::class => [\n Listeners\\Opportunities\\CreateCommentNotification::class,\n Listeners\\Opportunities\\CreateMentionNotification::class,\n Listeners\\Opportunities\\CreateAlsoCommentedNotification::class,\n ],\n\n Events\\Playbooks\\PlaybookCreated::class => [\n Listeners\\Playbooks\\AttachLayout::class,\n Listeners\\Playbooks\\CreatePlaybookCreatedEvent::class,\n Listeners\\Crm\\ImportActivityTypes::class,\n ],\n\n Events\\Playbooks\\PlaybookUpdated::class => [\n ],\n\n Events\\Playlists\\PlaylistCreated::class => [\n Listeners\\Activities\\Coaching\\UserPilot\\CreatePlaylistCreatedEvent::class,\n ],\n\n Events\\Groups\\GroupCreated::class => [\n Listeners\\Users\\CreateGroupCreatedEvent::class,\n ],\n\n Events\\Groups\\GroupUpdated::class => [\n Listeners\\Playbooks\\ChangeSidekickSettings::class,\n Listeners\\Activities\\ReindexForGroupListener::class,\n ],\n\n Events\\Groups\\GroupDeleted::class => [\n Listeners\\Groups\\CleanupGroupSearchFilters::class,\n ],\n\n // Team Related Events...\n Events\\Teams\\TeamCreated::class => [\n Listeners\\Teams\\UpdateSalesforceAccount::class,\n Listeners\\Teams\\CreateTwilioSubAccount::class,\n Listeners\\Teams\\CreateDefaultLayouts::class,\n Listeners\\Teams\\CreateTeamFolders::class,\n Listeners\\Teams\\CreateDefaultJobTitles::class,\n Listeners\\Teams\\SyncIntercomCompany::class,\n Listeners\\Teams\\SyncPlanhatCompany::class,\n Listeners\\Teams\\InstallInstantInviteCapableProviders::class,\n Component\\ActivityAnalytics\\Listener\\InsertDefaultThemes::class,\n Jiminny\\Services\\UserPilot\\SyncUserPilotCompanyListener::class,\n ],\n\n Events\\Teams\\TeamUpdated::class => [\n Listeners\\Teams\\UpdateSalesforceAccount::class,\n Listeners\\Teams\\CreateTwilioSubAccountOnUpdate::class,\n Listeners\\Teams\\SyncIntercomCompany::class,\n Listeners\\Teams\\SyncPlanhatCompany::class,\n Jiminny\\Services\\UserPilot\\SyncUserPilotCompanyListener::class,\n ],\n\n Events\\Teams\\UserInvitedToTeam::class => [\n ],\n\n Events\\Teams\\OwnerAssigned::class => [\n ],\n\n Events\\Teams\\TeamMemberAdded::class => [\n ],\n\n Events\\Nudges\\NudgeCreated::class => [\n Listeners\\Nudges\\CreateNudgeCreatedEvent::class,\n Listeners\\Nudges\\UserPilot\\CreateNudgeCreatedEvent::class,\n ],\n\n Events\\Activities\\Provider\\ActivityProviderInstalledEvent::class => [\n Listeners\\Activities\\ActivityProvider\\UserPilot\\TrackProviderInstalledEvent::class,\n ],\n\n \\Illuminate\\Mail\\Events\\MessageSending::class => [\n Listeners\\Users\\ValidateSendingMessage::class,\n ],\n\n \\Illuminate\\Notifications\\Events\\NotificationSending::class => [\n Listeners\\Users\\ValidateSendingNotification::class,\n ],\n\n Events\\Teams\\SlackBotDisconnected::class => [\n Listeners\\Teams\\RemoveSlackBot::class,\n ],\n\n Events\\Activities\\Crm\\ActivityLeadConverted::class => [\n Jiminny\\Services\\Crm\\Listeners\\PurgeLookupCache::class,\n ],\n\n Events\\Activities\\Crm\\LeadConverted::class => [\n Jiminny\\Services\\Crm\\Listeners\\ConvertLeadActivities::class,\n ],\n\n Events\\Teams\\DeactivateTeamEvent::class => [\n Listeners\\Teams\\UnsubscribeTeamEventsAction::class,\n Listeners\\Teams\\HubspotAppUninstallListener::class,\n Listeners\\Teams\\DeactivateTeamAction::class,\n ],\n\n Events\\Activities\\Provider\\SyncActivityProviderEvent::class => [\n Listeners\\Activities\\Providers\\SyncActivityProviderAction::class,\n ],\n\n Events\\Activities\\Provider\\DisableActivityProviderEvent::class => [\n Listeners\\Activities\\Providers\\DisableActivityProviderAction::class,\n ],\n\n Events\\Activities\\SetupIntegrationEvent::class => [\n Listeners\\Activities\\SetupIntegrationAction::class,\n ],\n\n Events\\Activities\\ActivityProvider\\JustCall\\UpdateCallDispositionEvent::class => [\n Listeners\\Activities\\ActivityProvider\\JustCall\\UpdateCallDispositionAction::class,\n ],\n\n \\Illuminate\\Queue\\Events\\JobProcessing::class => [\n Listeners\\ChangeLogContextCorrelationId::class,\n ],\n\n Events\\Crm\\LayoutUpdatedEvent::class => [\n Listeners\\Crm\\LayoutUpdatedListener::class,\n ],\n\n Events\\Crm\\LayoutModifiedEvent::class => [\n Listeners\\Crm\\LayoutModifiedListener::class,\n ],\n\n Events\\Crm\\DetachActivityObject::class => [\n Listeners\\Crm\\RematchActivityOnCrmObjectDetach::class,\n ],\n\n Events\\Activities\\Audio\\UpdateActivityTimesMismatchEvent::class => [\n Jiminny\\Services\\Activity\\BaseService\\Listener\\UpdateActivityTimesMismatchListener::class,\n Jiminny\\Services\\Activity\\Outreach\\Listener\\UpdateActivityTimesMismatchListener::class,\n Jiminny\\Services\\Activity\\FiveNine\\Listener\\UpdateActivityTimesMismatchListener::class,\n ],\n\n Events\\Crm\\ProspectUpdated::class => [\n [Jiminny\\Services\\Crm\\ProspectCache::class, 'handleProspectUpdated'],\n ],\n Events\\Activities\\ActivityProvider\\CrmActivityProviderIntegratedEvent::class => [\n Jiminny\\Services\\Crm\\CrmActivityProviderIntegratedEventListener::class,\n ],\n\n /**\n * Trigger ES Update operations from events ONLY!\n */\n Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity::class => [\n Component\\ES\\Listeners\\UpdateSingleTargetListener::class,\n ],\n\n /**\n * Trigger ES Update operations from events ONLY!\n */\n Jiminny\\Contracts\\ES\\Events\\UpdateMultipleEntities::class => [\n Component\\ES\\Listeners\\UpdateMultipleTargetsListener::class,\n ],\n\n /**\n * Trigger AI Automation Analysis for an activity with associated opportunity\n * and transcription / email content\n */\n Events\\Activities\\AiAutomation\\RunActivityAiAnalysis::class => [\n Jiminny\\Component\\AiAutomation\\Listeners\\RunActivityAiAnalysisListener::class,\n ],\n /**\n * Run AiAutomation analysis on an Opportunity.\n */\n Events\\Activities\\AiAutomation\\RunOpportunityAiAnalysis::class => [\n Jiminny\\Component\\AiAutomation\\Listeners\\RunOpportunityAiAnalysisListener::class,\n ],\n /**\n * A new prospect is added. Validate if we need to send it for Ai Automation.\n */\n Events\\Activities\\AiAutomation\\ActivityProspectAdded::class => [\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\ActivityPendingAiAnalysisAfterProspectAdded::class,\n Component\\AiCallScoring\\Listeners\\RegenerateAiCallScoringOnDealChangeListener::class,\n ],\n /**\n * Manually start the AiAutomation analysis. Mimics the end of processing pipeline contract\n */\n Events\\Activities\\AiAutomation\\ManualTriggerForAnalysis::class => [\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\ActivityPendingAiAnalysisAfterProcessingDoneListener::class,\n ],\n /**\n * Conference activity is imported. Validate if we need to send it for Ai Automation.\n */\n Events\\Activities\\AiAutomation\\ConferenceActivityImported::class => [\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\ActivityPendingAiAnalysisAfterConferenceImported::class,\n ],\n\n /**\n * An opportunity stage has changed. Validate if we need to send it for Ai Automation\n */\n Events\\Crm\\OpportunityStageUpdated::class => [\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\OpportunityPendingAiAnalysisAfterStageChanged::class,\n ],\n\n /**\n * Manage the system layout for AI Automation.\n */\n Events\\Activities\\AiAutomation\\TemplateFieldsUpdated::class => [\n Component\\AiAutomation\\Listeners\\Layout\\PrepareAiTemplateSystemLayout::class,\n ],\n\n /**\n * AiAutomation analysis is saved in db, and pending to be processed,\n * potentially even sent to the CRM depending on flags and current target state.\n */\n Events\\Activities\\AiAutomation\\AiAutomationAnalysisReady::class => [\n Component\\AiAutomation\\Listeners\\ProcessAiAutomationAnalysisResults::class,\n ],\n\n /**\n * Trigger AiAutomation analysis if Task or Event is assigned to the activity.\n */\n Events\\Activities\\ActivityCrmProvidedUpdated::class => [\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\ActivityPendingAiAnalysisAfterCrmProviderUpdated::class,\n ],\n\n /**\n * Handle CRM field validation failures from Salesforce.\n */\n Events\\AiAutomation\\CrmFieldValidationFailedEvent::class => [\n Component\\AiAutomation\\Listeners\\HandleCrmFieldValidationFailureListener::class,\n ],\n ];\n\n /** Register any other events for your application. */\n public function boot(): void\n {\n\n User::observe(UserObserver::class);\n\n User::laratrustObserve(UserRoleObserver::class);\n Group::observe(GroupObserver::class);\n\n }\n\n /**\n * Determine if events and listeners should be automatically discovered.\n */\n public function shouldDiscoverEvents(): bool\n {\n return false;\n }\n}","depth":4,"value":"<?php\n\nnamespace Jiminny\\Providers;\n\nuse Illuminate\\Foundation\\Support\\Providers\\EventServiceProvider as ServiceProvider;\nuse Jiminny;\nuse Jiminny\\Component;\nuse Jiminny\\Component\\Encoding\\Listeners\\CreateM3U8MediaListener;\nuse Jiminny\\Component\\Nudge\\Listener\\SendImmediateNudgeListener;\nuse Jiminny\\Component\\Slack\\Listeners\\ImportSlackUsersAccountsListener;\nuse Jiminny\\Events;\nuse Jiminny\\Listeners;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Observers\\GroupObserver;\nuse Jiminny\\Observers\\UserObserver;\nuse Jiminny\\Observers\\UserRoleObserver;\n\nclass EventServiceProvider extends ServiceProvider\n{\n protected $subscribe = [\n Component\\ActivityAnalytics\\Event\\EventSubscriber::class,\n Component\\Transcription\\Event\\EventSubscriber::class,\n Component\\Twilio\\Event\\TwilioConferenceEventSubscriber::class,\n Component\\Twilio\\Event\\TwilioReportingSubscriber::class,\n Component\\ActivitySearch\\EventSubscriber\\SlackEventSubscriber::class,\n Listeners\\Import\\ActivityImportSubscriber::class,\n ];\n\n /**\n * The event listener mappings for the application.\n */\n protected $listen = [\n \\Illuminate\\Notifications\\Events\\NotificationSent::class => [\n ],\n\n // User Related Events...\n Events\\Auth\\UserRegistered::class => [\n Listeners\\Users\\SyncIntercom::class,\n Listeners\\Users\\SyncPlanhat::class,\n Listeners\\Crm\\InitProfiles::class,\n Listeners\\Users\\SyncUserPilot::class,\n Jiminny\\Services\\Crm\\IntegrationApp\\Jobs\\UpdateProfileRelatedEntitiesJob::class,\n ],\n\n Events\\Auth\\ChromeExtensionAuthenticated::class => [\n Listeners\\Authentication\\Intercom\\CreateChromeExtensionAuthenticatedEvent::class,\n ],\n\n Events\\Auth\\DeviceAuthenticated::class => [\n Listeners\\Authentication\\Intercom\\UpdateUserDeviceActivity::class,\n ],\n\n Events\\ElasticSearch\\RemovesDocumentWhenDeleted::class => [\n Listeners\\Activities\\ElasticSearchMetricsRemoveActivityListener::class,\n Listeners\\ElasticSearch\\RemovesDocumentBelongingToDeletedModel::class,\n ],\n\n Events\\Users\\UserCreated::class => [\n Listeners\\Users\\SetDefaultAvatarListener::class,\n Listeners\\Users\\CreateDefaultPlaylist::class,\n Listeners\\Users\\CreateDefaultSavedSearches::class,\n Component\\BillingManagement\\Listeners\\UserCreatedOrUpdatedListener::class,\n ],\n\n Events\\Users\\UserUpdated::class => [\n Listeners\\Users\\SetDefaultAvatarListener::class,\n Listeners\\Users\\SyncIntercom::class,\n Listeners\\Users\\SyncPlanhat::class,\n Listeners\\Users\\SyncUserPilot::class,\n Listeners\\Users\\DeleteScheduledUserActivitiesForInsightSeatUsers::class,\n Component\\BillingManagement\\Listeners\\UserCreatedOrUpdatedListener::class,\n ],\n\n Events\\Users\\UserPhotoUpdated::class => [\n Listeners\\Activities\\ReindexForUserListener::class,\n ],\n\n Jiminny\\Events\\Users\\UserDeactivated::class => [\n Jiminny\\Listeners\\Activities\\ReindexForUserListener::class,\n Listeners\\Mailbox\\DeactivateUserListener::class,\n ],\n\n Jiminny\\Events\\Users\\UserDeleted::class => [\n Jiminny\\Listeners\\Activities\\ReindexForUserListener::class,\n ],\n\n Events\\Users\\SocialAccountConnected::class => [\n Listeners\\Users\\SetupCalendarSync::class,\n Listeners\\Users\\ActivityProviderIntegrated::class,\n Listeners\\Authentication\\Intercom\\UpdateSocialTag::class,\n Listeners\\Users\\SetupMailSync::class,\n Listeners\\Crm\\BootstrapIntegrationApp::class,\n ],\n\n Events\\Users\\CrmAccountReconnected::class => [\n Listeners\\Crm\\ImportMetadata::class,\n ],\n\n Events\\Users\\SocialAccountDisconnected::class => [\n Listeners\\Users\\NotifyCrmOwnerDisconnectedListener::class,\n Listeners\\Users\\NotifyCrmUserDisconnectedListener::class,\n Listeners\\Users\\ActivityProviderDisconnectedListener::class,\n Listeners\\Authentication\\Intercom\\UpdateSocialTag::class,\n ],\n\n Events\\Users\\GroupChangedEvent::class => [\n Listeners\\Activities\\ReindexForUserListener::class,\n Listeners\\Playlists\\ImportGroupPlaylistSharesListener::class,\n ],\n\n Events\\Calendars\\EventChanged::class => [\n Jiminny\\Services\\MeetingGenerator\\Listeners\\MeetingUpdated::class,\n ],\n\n Events\\Calendars\\EventCancelled::class => [\n Listeners\\Calendars\\EventCancelled::class,\n Listeners\\Activities\\Providers\\CancelledInCalendar::class,\n Jiminny\\Services\\MeetingGenerator\\Listeners\\MeetingCancelled::class,\n ],\n\n Events\\Crm\\OpportunityUpdated::class => [\n Listeners\\Activities\\ReindexForOpportunityListener::class,\n Listeners\\DealRisks\\RecalculateDealRiskOnOpportunityChange::class,\n ],\n\n Events\\Crm\\AccountUpdated::class => [\n Listeners\\Activities\\ReindexForAccountListener::class,\n ],\n\n Events\\Crm\\ContactUpdated::class => [\n Listeners\\Activities\\ReindexForContactListener::class,\n ],\n\n Events\\Crm\\LeadUpdated::class => [\n Listeners\\Activities\\ReindexForLeadListener::class,\n ],\n\n Events\\Crm\\ProfileCreated::class => [\n Listeners\\Crm\\SyncProfileOpportunities::class,\n Listeners\\Crm\\SyncProfileLeads::class,\n ],\n\n // Local CRM records are stale, cleaning up after remote deletion\n Events\\Crm\\RemoteCrmRecordDeleted::class => [\n Listeners\\Crm\\RemoteCrmRecordDeletedListener::class,\n ],\n\n // Activity Related Events\n Events\\Activities\\ActivityUpdated::class => [\n ],\n\n Events\\Activities\\ActivityTypeUpdated::class => [\n Component\\Settings\\AutoScoring\\Listeners\\AnalyzeActivityScorecards::class,\n // CRM Filling is executed here after ActivityProcessingEndOfPipeline\n // AI Call Scoring is executed here after ActivityProcessingEndOfPipeline\n ],\n\n Events\\Groups\\SettingsUpdated::class => [\n Listeners\\DealRisks\\RecalculateDealRiskOnSettingsUpdate::class,\n ],\n\n Events\\Activities\\TrackReady::class => [\n Listeners\\Activities\\ImportRemoteTrackListener::class,\n ],\n\n Events\\Activities\\TrackImportedEvent::class => [\n Component\\FFMpeg\\Listeners\\AnalyzeTrackChannelsListener::class,\n Listeners\\Activities\\DialerMetricsImportedActivityListener::class,\n ],\n\n Component\\FFMpeg\\Events\\Audio\\TrackChannelsAnalyzedEvent::class => [\n Listeners\\Activities\\Audio\\SwitchAudioChannels::class,\n ],\n\n Events\\Activities\\Audio\\AudioChannelsReady::class => [\n Listeners\\Activities\\Audio\\TrimHoldMusic::class,\n ],\n\n Events\\Activities\\Audio\\TrackTrimmed::class => [\n Listeners\\Activities\\Audio\\StartMediaPipeline::class,\n ],\n\n Component\\MediaPipeline\\Events\\ActivityProcessingPipelineStartedEvent::class => [\n Component\\Encoding\\Listeners\\CalculateTalkTimeFromSilenceListener::class,\n CreateM3U8MediaListener::class,\n ],\n\n Component\\Encoding\\Events\\SpeechFromSilenceGeneratedEvent::class => [\n Component\\Activity\\Listener\\ActivityLanguageConfirmListener::class,\n ],\n\n Component\\Activity\\Event\\ActivityProcessingEndOfPipelineEvent::class => [\n Component\\Activity\\Listener\\ActivityProcessingEndOfPipelineListener::class,\n ],\n\n Component\\Activity\\Event\\ActivityProcessingDoneEvent::class => [\n Component\\Webhooks\\Listeners\\CreateConversationProcessedWebhook::class,\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\ActivityPendingAiAnalysisAfterProcessingDoneListener::class,\n ],\n\n Component\\Activity\\Event\\ActivityProcessingFailedEvent::class => [\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\ActivityPendingAiAnalysisAfterProcessingDoneListener::class,\n Listeners\\Activities\\Crm\\AutoLogActivity::class,\n ],\n\n Component\\ActivityAnalytics\\Event\\ActivityLanguageConfirmed::class => [\n Listeners\\Transcription\\TranscriptionInitListener::class,\n ],\n\n Events\\Transcription\\TranscriptionReady::class => [\n Component\\ActivityAnalytics\\Listener\\CalculateAnalyticsListener::class,\n Jiminny\\Component\\TranscriptionSummary\\Listeners\\SummarizeTranscriptionListener::class,\n Jiminny\\Component\\ActionItems\\Listeners\\GenerateActionItemsListener::class,\n Component\\KeyPoints\\Listeners\\GenerateKeyPointsListener::class,\n Jiminny\\Component\\AiActivityType\\Listeners\\GenerateAiActivityTypeListener::class,\n Listeners\\DealRisks\\RecalculateDealRisksOnTranscriptionReady::class,\n Component\\Transcription\\Listener\\TranslateTranscriptListener::class,\n ],\n\n Component\\ActivityAnalytics\\Event\\AnalyticsCompletedEvent::class => [\n SendImmediateNudgeListener::class,\n Component\\Settings\\AutoScoring\\Listeners\\AnalyzeActivityScorecards::class,\n ],\n\n Events\\Activities\\Audio\\TrackTranscoded::class => [\n ],\n\n Events\\Activities\\Audio\\TrackSegmented::class => [\n Listeners\\Activities\\Audio\\TrackSegmented::class,\n ],\n\n Events\\Activities\\Audio\\TrackAvailable::class => [\n Listeners\\Activities\\Audio\\TrackAvailable::class,\n Listeners\\Activities\\Coaching\\CreateAvailabilityNotification::class,\n ],\n\n Events\\Activities\\Audio\\RecordingStarted::class => [\n Listeners\\Activities\\Audio\\Recording::class,\n ],\n\n Events\\Activities\\Audio\\RecordingStopped::class => [\n Listeners\\Activities\\Audio\\Recording::class,\n ],\n\n Events\\Activities\\Audio\\RecordingPaused::class => [\n Listeners\\Activities\\Audio\\Recording::class,\n ],\n\n Events\\Activities\\Audio\\RecordingResumed::class => [\n Listeners\\Activities\\Audio\\Recording::class,\n ],\n\n Events\\Activities\\Audio\\RecordingEnabled::class => [\n Listeners\\Activities\\Audio\\Recording::class,\n ],\n\n Component\\FFMpeg\\Events\\Video\\TrackChannelsAnalyzedEvent::class => [\n Listeners\\Activities\\Audio\\DemuxAudioOnlyListener::class,\n Component\\PlaybackPage\\Snapshots\\Listeners\\GenerateSnapshotsListener::class,\n ],\n\n Events\\Activities\\Video\\TrackDemuxedAudio::class => [\n Listeners\\Activities\\Audio\\StartMediaPipeline::class,\n ],\n\n Events\\Activities\\Audio\\SpeechTimesCalculated::class => [\n ],\n\n Events\\Activities\\ActivityExported::class => [\n Listeners\\Activities\\GenerateExportTokens::class,\n Listeners\\Activities\\Coaching\\UserPilot\\CreateExportedEvent::class,\n Component\\Webhooks\\Listeners\\CreateActivityExportedWebhook::class,\n ],\n\n Events\\Activities\\ExportTokenGenerated::class => [\n Listeners\\Activities\\SendExportEmail::class,\n ],\n\n Events\\Activities\\Crm\\StageChanged::class => [\n ],\n\n Events\\Opportunities\\AskJiminnyOnDealPromptUpdate::class => [\n Listeners\\Opportunities\\ClearAskJiminnyOnDealCache::class,\n ],\n\n Events\\Activities\\Crm\\ActivityLogged::class => [\n Listeners\\Activities\\Coaching\\Intercom\\CreateActivitySummarizedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreateActivityLoggedEvent::class,\n Listeners\\Activities\\Coaching\\UserPilot\\CreateActivityLoggedEvent::class,\n Listeners\\DealRisks\\RecalculateDealRisksOnActivityChange::class,\n Listeners\\Activities\\Crm\\Summary\\ActivityLoggedListener::class,\n ],\n\n Events\\Activities\\Crm\\ActivityScheduled::class => [\n Listeners\\DealRisks\\RecalculateDealRisksOnActivityChange::class,\n ],\n\n Events\\Activities\\Crm\\ActivityCancelled::class => [\n Listeners\\DealRisks\\RecalculateDealRisksOnScheduledActivity::class,\n ],\n\n Events\\Activities\\Crm\\ActivityCancelledAsNoShow::class => [\n Listeners\\Activities\\Crm\\AutoLogCancelledActivity::class,\n ],\n\n Events\\Activities\\Crm\\ActivityLinkedToCrm::class => [\n ],\n\n Events\\Activities\\Crm\\EmailWithCRMObjectsProcessed::class => [\n Listeners\\DealRisks\\RecalculateDealRisksOnActivityChange::class,\n Listeners\\Opportunities\\ClearAskJiminnyOnDealCache::class,\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\EmailActivityPendingAiAnalysisAfterImport::class,\n ],\n\n Events\\Activities\\Sms\\Sent::class => [\n Listeners\\Activities\\Sms\\Intercom\\CreateSmsSentEvent::class,\n Listeners\\Activities\\Sms\\Planhat\\CreateSmsSentEvent::class,\n Listeners\\Activities\\Crm\\AutoLogActivity::class,\n ],\n\n Events\\Activities\\Sms\\Undelivered::class => [\n ],\n\n Events\\Activities\\Sms\\Failed::class => [\n ],\n\n Events\\Activities\\Sms\\Delivered::class => [\n Listeners\\DealRisks\\RecalculateDealRisksOnActivityChange::class,\n ],\n\n Events\\Activities\\Sms\\Received::class => [\n Listeners\\Activities\\Sms\\CreateReceivedNotification::class,\n Listeners\\Activities\\Sms\\Intercom\\CreateSmsReceivedEvent::class,\n Listeners\\Activities\\Sms\\Planhat\\CreateSmsReceivedEvent::class,\n Listeners\\Activities\\Crm\\AutoLogActivity::class,\n Listeners\\DealRisks\\RecalculateDealRisksOnActivityChange::class,\n ],\n\n Events\\Users\\NumberVerified::class => [\n ],\n\n Events\\Activities\\Bots\\MeetingBotEvent::class => [\n Listeners\\Activities\\Bots\\EventHandler::class,\n ],\n\n Events\\Activities\\Conferences\\StartingSoon::class => [\n Listeners\\Activities\\ResolveProvider::class,\n Listeners\\Crm\\SyncOpportunity::class,\n Listeners\\Crm\\ResolveOwner::class,\n ],\n\n Events\\Activities\\Conferences\\ParticipantDeclinedRecordingEvent::class => [\n Listeners\\Activities\\Conferences\\ParticipantDeclinedRecordingListener::class,\n ],\n\n Events\\Activities\\Conferences\\Locked::class => [\n Listeners\\Activities\\Conferences\\Locked::class,\n ],\n\n Events\\Activities\\Conferences\\Started::class => [\n Listeners\\Activities\\Conferences\\Started::class,\n Listeners\\Activities\\Crm\\UpdateCrmData::class,\n Listeners\\DealRisks\\RecalculateDealRisksOnScheduledActivity::class,\n ],\n\n Events\\Activities\\Conferences\\Ended::class => [\n Listeners\\Activities\\Conferences\\Ended::class,\n Listeners\\Activities\\Audio\\StartMediaPipeline::class,\n Listeners\\Activities\\Conferences\\Intercom\\CreateHeldActivityEvent::class,\n Listeners\\Activities\\Conferences\\Planhat\\CreateHeldActivityEvent::class,\n Listeners\\Activities\\Conferences\\UserPilot\\CreateHeldActivityEvent::class,\n Listeners\\Activities\\Crm\\AutoSyncActivity::class,\n Listeners\\Activities\\Conferences\\MatchMeetingOwnerEvent::class,\n ],\n\n Events\\Activities\\Conferences\\ConferenceFailedEvent::class => [\n ],\n\n Events\\AiCallScoring\\AiScorecardCompletedEvent::class => [\n Component\\Webhooks\\Listeners\\CreateAiScorecardCompletedWebhook::class,\n ],\n\n \\Spatie\\WebhookServer\\Events\\WebhookCallSucceededEvent::class => [\n Listeners\\Webhook\\LogWebhookDeliveryListener::class . '@handleSucceeded',\n ],\n\n \\Spatie\\WebhookServer\\Events\\WebhookCallFailedEvent::class => [\n Listeners\\Webhook\\LogWebhookDeliveryListener::class . '@handleFailed',\n ],\n\n \\Spatie\\WebhookServer\\Events\\FinalWebhookCallFailedEvent::class => [\n Listeners\\Webhook\\LogWebhookDeliveryListener::class . '@handleFinalFailed',\n ],\n\n Component\\TranscriptionSummary\\Events\\TranscriptionAiSummaryReadyEvent::class => [\n Listeners\\Activities\\Crm\\Summary\\AiSummaryCreatedListener::class,\n Listeners\\Opportunities\\ClearAskJiminnyOnDealCache::class,\n ],\n\n Events\\Activities\\Conferences\\Rescheduled::class => [\n Listeners\\DealRisks\\RecalculateDealRisksOnScheduledActivity::class,\n ],\n\n Events\\Activities\\Conferences\\Scheduled::class => [\n Listeners\\Activities\\Conferences\\Intercom\\CreateScheduledActivityEvent::class,\n Listeners\\Activities\\Conferences\\Planhat\\CreateScheduledActivityEvent::class,\n Listeners\\Activities\\Following\\CreateScheduledNotification::class,\n Listeners\\DealRisks\\RecalculateDealRisksOnScheduledActivity::class,\n ],\n\n Events\\Activities\\Softphone\\Ended::class => [\n Listeners\\Activities\\Softphone\\Intercom\\CreateDialerActivityEvent::class,\n Listeners\\Activities\\Softphone\\Planhat\\CreateDialerActivityEvent::class,\n Listeners\\Activities\\Softphone\\UserPilot\\CreateDialerActivityEvent::class,\n Listeners\\Activities\\Crm\\AutoSyncActivity::class,\n ],\n\n Events\\Activities\\Dialers\\CallImported::class => [\n Listeners\\Activities\\Softphone\\Intercom\\CreateDialerActivityEvent::class,\n Listeners\\Activities\\Softphone\\Planhat\\CreateDialerActivityEvent::class,\n Listeners\\Activities\\Softphone\\UserPilot\\CreateDialerActivityEvent::class,\n Listeners\\DealRisks\\RecalculateDealRisksOnActivityChange::class,\n ],\n\n Events\\Sidekick\\SidekickDisabled::class => [\n ],\n\n Events\\Sidekick\\AutologEnabled::class => [\n Listeners\\Activities\\Crm\\UserPilot\\CreateAutologEnabledEvent::class,\n ],\n\n Events\\Activities\\Crm\\AutoLogActivity::class => [\n Listeners\\Activities\\Crm\\AutoLogActivity::class,\n ],\n\n Events\\Teams\\NotificationProviderEnabled::class => [\n Listeners\\Teams\\UserPilot\\TrackNotificationProviderEnabled::class,\n ImportSlackUsersAccountsListener::class,\n ],\n\n Events\\Activities\\Sessions\\Started::class => [\n Listeners\\Activities\\Sessions\\Started::class,\n ],\n\n Jiminny\\Events\\Activities\\Sessions\\Ended::class => [\n Jiminny\\Listeners\\Activities\\Sessions\\Ended::class,\n Jiminny\\Listeners\\Activities\\Audio\\StartMediaPipeline::class,\n ],\n\n Events\\Activities\\Sessions\\Muted::class => [\n Listeners\\Activities\\Sessions\\Muted::class,\n ],\n\n Events\\Activities\\Sessions\\Unmuted::class => [\n Listeners\\Activities\\Sessions\\Unmuted::class,\n ],\n\n Events\\Activities\\Connections\\Opened::class => [\n Listeners\\Activities\\Connections\\Opened::class,\n Listeners\\Activities\\Crm\\MatchCrmObject::class,\n ],\n\n Jiminny\\Events\\Activities\\Connections\\Closed::class => [\n Listeners\\Activities\\Audio\\StartMediaPipeline::class,\n Jiminny\\Listeners\\Activities\\Connections\\Closed::class,\n Jiminny\\Listeners\\Activities\\Connections\\IngestInsights::class,\n ],\n\n Events\\Activities\\Connections\\Muted::class => [\n Listeners\\Activities\\Connections\\Muted::class,\n ],\n\n Events\\Activities\\Connections\\Unmuted::class => [\n Listeners\\Activities\\Connections\\Unmuted::class,\n ],\n\n Events\\Activities\\Connections\\Held::class => [\n Listeners\\Activities\\Connections\\Held::class,\n ],\n\n Events\\Activities\\Connections\\Unheld::class => [\n Listeners\\Activities\\Connections\\Unheld::class,\n ],\n\n Events\\Activities\\Participants\\Joined::class => [\n Listeners\\Activities\\Crm\\MatchCrmObject::class,\n ],\n\n Events\\Activities\\Messages\\Created::class => [\n Listeners\\Activities\\Coaching\\CreateMessageCreatedNotification::class,\n ],\n\n // Coaching Related Events\n Events\\Activities\\Coaching\\Coached::class => [\n Listeners\\Activities\\Coaching\\CreateCoachingFeedbackNotification::class,\n Listeners\\Activities\\Coaching\\Intercom\\CreateManagerCoachedEvent::class,\n Listeners\\Activities\\Coaching\\Intercom\\CreateSelfCoachedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreateManagerCoachedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreateSelfCoachedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreateCoachingFeedbackReceivedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreateCoachingFeedbackCompletedEvent::class,\n Component\\Webhooks\\Listeners\\CreateCoachingFeedbackCompletedWebhook::class,\n ],\n\n Events\\Activities\\Coaching\\CoachRequested::class => [\n Listeners\\Activities\\Coaching\\CreateRequestNotification::class,\n ],\n\n Events\\Activities\\Coaching\\Commented::class => [\n Listeners\\Activities\\Coaching\\CreateCommentNotification::class,\n Listeners\\Activities\\Coaching\\CreateMentionNotification::class,\n Listeners\\Activities\\Coaching\\Intercom\\CreateCommentedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreateCommentedEvent::class,\n Listeners\\Activities\\Coaching\\CreateNotifyContributorNotification::class,\n ],\n\n Events\\Activities\\Coaching\\Shared::class => [\n Listeners\\Activities\\Coaching\\CreateShareNotification::class,\n Listeners\\Activities\\Coaching\\Intercom\\CreateSharedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreateSharedEvent::class,\n Listeners\\Activities\\Coaching\\UserPilot\\CreateSharedEvent::class,\n Component\\Webhooks\\Listeners\\CreateConversationShareWebhook::class,\n ],\n\n Component\\Playlist\\Events\\NewTrackEvent::class => [\n Listeners\\Playlists\\Activities\\CreatePlaylistAddedNotification::class,\n Listeners\\Playlists\\Planhat\\CreateActivityAddedToPlaylistEvent::class,\n Listeners\\Playlists\\UserPilot\\CreateActivityAddedToPlaylistEvent::class,\n ],\n\n Events\\Activities\\Coaching\\Played::class => [\n Listeners\\Activities\\Coaching\\Intercom\\CreatePlayedEvent::class,\n Listeners\\Activities\\Coaching\\Planhat\\CreatePlayedEvent::class,\n Component\\Webhooks\\Listeners\\CreateConversationPlayedWebhook::class,\n ],\n\n Jiminny\\Events\\Activities\\Coaching\\LiveCoached::class => [\n Jiminny\\Listeners\\Activities\\Coaching\\CreateLiveCoachNotification::class,\n ],\n\n Events\\Opportunities\\Commented::class => [\n Listeners\\Opportunities\\CreateCommentNotification::class,\n Listeners\\Opportunities\\CreateMentionNotification::class,\n Listeners\\Opportunities\\CreateAlsoCommentedNotification::class,\n ],\n\n Events\\Playbooks\\PlaybookCreated::class => [\n Listeners\\Playbooks\\AttachLayout::class,\n Listeners\\Playbooks\\CreatePlaybookCreatedEvent::class,\n Listeners\\Crm\\ImportActivityTypes::class,\n ],\n\n Events\\Playbooks\\PlaybookUpdated::class => [\n ],\n\n Events\\Playlists\\PlaylistCreated::class => [\n Listeners\\Activities\\Coaching\\UserPilot\\CreatePlaylistCreatedEvent::class,\n ],\n\n Events\\Groups\\GroupCreated::class => [\n Listeners\\Users\\CreateGroupCreatedEvent::class,\n ],\n\n Events\\Groups\\GroupUpdated::class => [\n Listeners\\Playbooks\\ChangeSidekickSettings::class,\n Listeners\\Activities\\ReindexForGroupListener::class,\n ],\n\n Events\\Groups\\GroupDeleted::class => [\n Listeners\\Groups\\CleanupGroupSearchFilters::class,\n ],\n\n // Team Related Events...\n Events\\Teams\\TeamCreated::class => [\n Listeners\\Teams\\UpdateSalesforceAccount::class,\n Listeners\\Teams\\CreateTwilioSubAccount::class,\n Listeners\\Teams\\CreateDefaultLayouts::class,\n Listeners\\Teams\\CreateTeamFolders::class,\n Listeners\\Teams\\CreateDefaultJobTitles::class,\n Listeners\\Teams\\SyncIntercomCompany::class,\n Listeners\\Teams\\SyncPlanhatCompany::class,\n Listeners\\Teams\\InstallInstantInviteCapableProviders::class,\n Component\\ActivityAnalytics\\Listener\\InsertDefaultThemes::class,\n Jiminny\\Services\\UserPilot\\SyncUserPilotCompanyListener::class,\n ],\n\n Events\\Teams\\TeamUpdated::class => [\n Listeners\\Teams\\UpdateSalesforceAccount::class,\n Listeners\\Teams\\CreateTwilioSubAccountOnUpdate::class,\n Listeners\\Teams\\SyncIntercomCompany::class,\n Listeners\\Teams\\SyncPlanhatCompany::class,\n Jiminny\\Services\\UserPilot\\SyncUserPilotCompanyListener::class,\n ],\n\n Events\\Teams\\UserInvitedToTeam::class => [\n ],\n\n Events\\Teams\\OwnerAssigned::class => [\n ],\n\n Events\\Teams\\TeamMemberAdded::class => [\n ],\n\n Events\\Nudges\\NudgeCreated::class => [\n Listeners\\Nudges\\CreateNudgeCreatedEvent::class,\n Listeners\\Nudges\\UserPilot\\CreateNudgeCreatedEvent::class,\n ],\n\n Events\\Activities\\Provider\\ActivityProviderInstalledEvent::class => [\n Listeners\\Activities\\ActivityProvider\\UserPilot\\TrackProviderInstalledEvent::class,\n ],\n\n \\Illuminate\\Mail\\Events\\MessageSending::class => [\n Listeners\\Users\\ValidateSendingMessage::class,\n ],\n\n \\Illuminate\\Notifications\\Events\\NotificationSending::class => [\n Listeners\\Users\\ValidateSendingNotification::class,\n ],\n\n Events\\Teams\\SlackBotDisconnected::class => [\n Listeners\\Teams\\RemoveSlackBot::class,\n ],\n\n Events\\Activities\\Crm\\ActivityLeadConverted::class => [\n Jiminny\\Services\\Crm\\Listeners\\PurgeLookupCache::class,\n ],\n\n Events\\Activities\\Crm\\LeadConverted::class => [\n Jiminny\\Services\\Crm\\Listeners\\ConvertLeadActivities::class,\n ],\n\n Events\\Teams\\DeactivateTeamEvent::class => [\n Listeners\\Teams\\UnsubscribeTeamEventsAction::class,\n Listeners\\Teams\\HubspotAppUninstallListener::class,\n Listeners\\Teams\\DeactivateTeamAction::class,\n ],\n\n Events\\Activities\\Provider\\SyncActivityProviderEvent::class => [\n Listeners\\Activities\\Providers\\SyncActivityProviderAction::class,\n ],\n\n Events\\Activities\\Provider\\DisableActivityProviderEvent::class => [\n Listeners\\Activities\\Providers\\DisableActivityProviderAction::class,\n ],\n\n Events\\Activities\\SetupIntegrationEvent::class => [\n Listeners\\Activities\\SetupIntegrationAction::class,\n ],\n\n Events\\Activities\\ActivityProvider\\JustCall\\UpdateCallDispositionEvent::class => [\n Listeners\\Activities\\ActivityProvider\\JustCall\\UpdateCallDispositionAction::class,\n ],\n\n \\Illuminate\\Queue\\Events\\JobProcessing::class => [\n Listeners\\ChangeLogContextCorrelationId::class,\n ],\n\n Events\\Crm\\LayoutUpdatedEvent::class => [\n Listeners\\Crm\\LayoutUpdatedListener::class,\n ],\n\n Events\\Crm\\LayoutModifiedEvent::class => [\n Listeners\\Crm\\LayoutModifiedListener::class,\n ],\n\n Events\\Crm\\DetachActivityObject::class => [\n Listeners\\Crm\\RematchActivityOnCrmObjectDetach::class,\n ],\n\n Events\\Activities\\Audio\\UpdateActivityTimesMismatchEvent::class => [\n Jiminny\\Services\\Activity\\BaseService\\Listener\\UpdateActivityTimesMismatchListener::class,\n Jiminny\\Services\\Activity\\Outreach\\Listener\\UpdateActivityTimesMismatchListener::class,\n Jiminny\\Services\\Activity\\FiveNine\\Listener\\UpdateActivityTimesMismatchListener::class,\n ],\n\n Events\\Crm\\ProspectUpdated::class => [\n [Jiminny\\Services\\Crm\\ProspectCache::class, 'handleProspectUpdated'],\n ],\n Events\\Activities\\ActivityProvider\\CrmActivityProviderIntegratedEvent::class => [\n Jiminny\\Services\\Crm\\CrmActivityProviderIntegratedEventListener::class,\n ],\n\n /**\n * Trigger ES Update operations from events ONLY!\n */\n Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity::class => [\n Component\\ES\\Listeners\\UpdateSingleTargetListener::class,\n ],\n\n /**\n * Trigger ES Update operations from events ONLY!\n */\n Jiminny\\Contracts\\ES\\Events\\UpdateMultipleEntities::class => [\n Component\\ES\\Listeners\\UpdateMultipleTargetsListener::class,\n ],\n\n /**\n * Trigger AI Automation Analysis for an activity with associated opportunity\n * and transcription / email content\n */\n Events\\Activities\\AiAutomation\\RunActivityAiAnalysis::class => [\n Jiminny\\Component\\AiAutomation\\Listeners\\RunActivityAiAnalysisListener::class,\n ],\n /**\n * Run AiAutomation analysis on an Opportunity.\n */\n Events\\Activities\\AiAutomation\\RunOpportunityAiAnalysis::class => [\n Jiminny\\Component\\AiAutomation\\Listeners\\RunOpportunityAiAnalysisListener::class,\n ],\n /**\n * A new prospect is added. Validate if we need to send it for Ai Automation.\n */\n Events\\Activities\\AiAutomation\\ActivityProspectAdded::class => [\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\ActivityPendingAiAnalysisAfterProspectAdded::class,\n Component\\AiCallScoring\\Listeners\\RegenerateAiCallScoringOnDealChangeListener::class,\n ],\n /**\n * Manually start the AiAutomation analysis. Mimics the end of processing pipeline contract\n */\n Events\\Activities\\AiAutomation\\ManualTriggerForAnalysis::class => [\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\ActivityPendingAiAnalysisAfterProcessingDoneListener::class,\n ],\n /**\n * Conference activity is imported. Validate if we need to send it for Ai Automation.\n */\n Events\\Activities\\AiAutomation\\ConferenceActivityImported::class => [\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\ActivityPendingAiAnalysisAfterConferenceImported::class,\n ],\n\n /**\n * An opportunity stage has changed. Validate if we need to send it for Ai Automation\n */\n Events\\Crm\\OpportunityStageUpdated::class => [\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\OpportunityPendingAiAnalysisAfterStageChanged::class,\n ],\n\n /**\n * Manage the system layout for AI Automation.\n */\n Events\\Activities\\AiAutomation\\TemplateFieldsUpdated::class => [\n Component\\AiAutomation\\Listeners\\Layout\\PrepareAiTemplateSystemLayout::class,\n ],\n\n /**\n * AiAutomation analysis is saved in db, and pending to be processed,\n * potentially even sent to the CRM depending on flags and current target state.\n */\n Events\\Activities\\AiAutomation\\AiAutomationAnalysisReady::class => [\n Component\\AiAutomation\\Listeners\\ProcessAiAutomationAnalysisResults::class,\n ],\n\n /**\n * Trigger AiAutomation analysis if Task or Event is assigned to the activity.\n */\n Events\\Activities\\ActivityCrmProvidedUpdated::class => [\n Component\\AiAutomation\\Listeners\\PendingAnalysis\\ActivityPendingAiAnalysisAfterCrmProviderUpdated::class,\n ],\n\n /**\n * Handle CRM field validation failures from Salesforce.\n */\n Events\\AiAutomation\\CrmFieldValidationFailedEvent::class => [\n Component\\AiAutomation\\Listeners\\HandleCrmFieldValidationFailureListener::class,\n ],\n ];\n\n /** Register any other events for your application. */\n public function boot(): void\n {\n\n User::observe(UserObserver::class);\n\n User::laratrustObserve(UserRoleObserver::class);\n Group::observe(GroupObserver::class);\n\n }\n\n /**\n * Determine if events and listeners should be automatically discovered.\n */\n public function shouldDiscoverEvents(): bool\n {\n return false;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Execute","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Explain Plan","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Browse Query History","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View Parameters","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open Query Execution Settings…","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"In-Editor Results","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Tx: Auto","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cancel Running Statements","depth":4,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Playground","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"jiminny","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"35","depth":4,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":4,"role_description":"text"},{"role":"AXStaticText","text":"33","depth":4,"role_description":"text"},{"role":"AXStaticText","text":"63","depth":4,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"SELECT * FROM teams WHERE name LIKE '%litify%'; # 1069, 994, 24993\nSELECT * FROM users WHERE id = 25061;\nSELECT * FROM crm_profiles WHERE crm_configuration_id = 994;\nSELECT * FROM crm_profiles WHERE user_id = 25061;\n\nselect * from crm_configurations where id = 834;\nSELECT * FROM teams WHERE id = 882;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 882 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal\nSELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations WHERE provider = 'hubspot' and crm_provider_id = 7270388;\n\nSELECT * FROM contacts where crm_configuration_id = 834;\nSELECT * FROM opportunities WHERE team_id = 933\n# AND crm_provider_id IN ('20131586060','46017317898','52543911090','53451356564','54101251892','54323768459');\nAND id IN (8482561,18352941,19042734,19232139,19445140,19472541);\nSELECT * FROM opportunity_contacts\nWHERE opportunity_id IN (8482561,18352941,19042734,19232139,19445140,19472541);\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 485; #\nSELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\nselect crm.provider, l.* from leads l join crm_configurations crm on l.crm_configuration_id = crm.id\nwhere crm.provider NOT IN ('salesforce', 'integration-app', 'bullhorn', 'copper')\n# and l.converted_at IS NOT NULL\n;\n\n# ********************************************************************\nSELECT * FROM activities a WHERE type IN ('email-inbound', 'email-outbound')\nand opportunity_id IS NULL\norder by id desc;\n\nSELECT * FROM teams WHERE id = 604; # 598\nSELECT * FROM activities WHERE id = 74410828; # chelseaw@allvoices.co\nSELECT * FROM accounts WHERE id = 20068382;\nSELECT * FROM accounts WHERE id = 35186038;\n\nSELECT * FROM contacts WHERE team_id = 852 and updated_at > '2026-01-23 12:30:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 559 and sa.provider = 'hubspot';\n\nSELECT * FROM activities WHERE uuid_to_bin('cb6342b6-a183-401c-b0af-ede92b2ae763') = uuid;\nselect * from sidekick_settings where team_id = 781;\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 26651871; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 7562435;\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8420347; # opflit 2100\n\nSELECT * FROM crm_layouts WHERE crm_configuration_id = 711;\nSELECT * FROM activities where crm_configuration_id = 711 and crm_provider_id IS NULL\nand is_internal = 0 and status = 'completed'\norder by id desc;\n\nSELECT * FROM crm_layout_entities\nWHERE crm_layout_id IN (2352, 2353);\n;\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and id = 530;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 556 and sa.provider = 'hubspot';\n\nSELECT * FROM activities WHERE uuid_to_bin('c6ca4b22-7738-4563-a95d-b8a9598924ae') = uuid;\nSELECT * FROM activities WHERE uuid_to_bin('442abb2b-28bd-4be8-9c25-19e9bf02766d') = uuid;\nselect * from contacts\nwhere crm_configuration_id = 530\nand crm_provider_id = 872252;\n\nselect * from activities where crm_configuration_id = 530\nand user_id = 14343 and type like '%softphone%'\nand created_at between '2026-01-28 15:00:00' and '2026-01-28 15:10:00';\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 25666868; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8646335; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id IN (5933397);\n\n\nSELECT t.name, t.id, t.owner_id, c.id, c.provider, c.crm_base_url FROM teams t\nJOIN crm_configurations c ON t.id = c.team_id\nWHERE t.status = 'active';\n\nSELECT * FROM teams where id = 1091;\nSELECT * FROM crm_configurations where team_id = 1091;\nSELECT * FROM activity_providers where team_id = 1091;\nSELECT * FROM activities where crm_configuration_id = 1024 and type IN ('softphone', 'softphone-outbound')\nand provider NOT IN ('hubspot', 'aircall')\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by id desc;\n\n\nSELECT * FROM teams WHERE name LIKE '%Leadventure%';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1091 and sa.provider = 'salesforce';\n\nSELECT * FROM teams WHERE name LIKE '%Wilson%'; # 862, 812\nSELECT * FROM teams where id = 862;\nSELECT * FROM crm_configurations where team_id = 862;\nSELECT * FROM activity_providers where team_id = 862;\nSELECT * FROM activities where crm_configuration_id = 812 and type IN ('softphone', 'softphone-outbound')\nand provider NOT IN ('hubspot', 'aircall')\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by id desc;\n\n\nSELECT t.id, crm.id, crm.provider, ap.* FROM teams t\njoin crm_configurations crm on t.id = crm.team_id\njoin activity_providers ap on t.id = ap.team_id\nwhere t.status = 'active' and ap.is_enabled = 1\nand crm.provider = 'hubspot'\nand ap.provider NOT IN ('hubspot', 'aircall', 'uploader', 'gong', 'twilio', 'zoom-bot', 'google-meet', 'ms-teams',\n 'outreach', 'close', 'ringcentral', 'dialpad', 'zoom-phone');\n\nSELECT * FROM teams where id = 1068;\nSELECT * FROM crm_configurations where team_id = 1068;\nSELECT * FROM activity_providers where team_id = 1068;\n\nSELECT * FROM activities a\nwhere crm_configuration_id = 993 and type IN ('softphone', 'softphone-outbound')\nand a.provider NOT IN ('hubspot', 'uploader', 'gong', 'twilio', 'google-meet', 'ms-teams','close'\n )\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by a.id desc;\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1068 and sa.provider = 'hubspot';\n\n# ********************************************************************\n# ********************************************************************\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal , portalId: 6017093\nSELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-06 00:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 834; # 882 - AnyVan , portalId: 5468262\nSELECT * FROM contacts WHERE crm_configuration_id = 834 and updated_at > '2026-03-30 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE crm_configuration_id = 834 and updated_at > '2026-03-04 08:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 882 and sa.provider = 'hubspot';\nselect * from crm_layouts where crm_configuration_id = 834;\nselect * from crm_layout_entities where crm_layout_id = 2780;\nselect * from crm_fields where id IN (321153,321192,321193,321194);\n\nSELECT * FROM opportunities WHERE crm_configuration_id = 834 and id = 10993426;\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 988; # 1057 - Teya (543ce4f4-168c-4571-91ea-5b35c253f06f) , portalId: 26651871\nSELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1057 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations where id = 533; # 559 - Connectd , portalId: 6710988\nSELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 801; # 852 - Rise Vision , portalId: 2700250\nSELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-04 00:00:00' order by updated_at desc; # 6th last\n\nSELECT * FROM crm_configurations where id = 962; # 1034 - evergrowth.io , portalId: 143180990\nSELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 1037; # 1102 - Jibble , portalId: 6649755\nSELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 8\n\nSELECT * FROM crm_configurations where id = 1015; # 1049 - Travefy , portalId: 48904401\nSELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 20\n\nSELECT * FROM crm_configurations where id = 64; # 70 - SalaryFinance , portalId: 3404115\nSELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 6th last\n\nSELECT * FROM crm_configurations where id = 802; # 853 - Street Group , portalId: 7658438\nSELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 10\n\nSELECT * FROM crm_configurations where id = 872; # 921 - In Professional Development , portalId: 9238273\nSELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 2\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 550; # 576 - SeedLegals , portalId: 3028661\nSELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 989; # 1058 - rtaoutdoor.com , portalId: 22371204\nSELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 896; # 946 - Mintago , portalId: 6621281\nSELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 617; # 641 - PCS , portalId: 5244937\nSELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-05 14:00:00' order by updated_at desc; # 7th\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 649; # 670 - Eventeny , portalId: 4492849\nSELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; #\n\nSELECT * FROM crm_configurations where id = 48; # 51 - CleanCloud , portalId: 4373137\nSELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-03-04 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-02-09 08:00:00' order by updated_at desc;\nselect * from users where team_id = 51; # 7783\nSELECT * FROM groups WHERE uuid_to_bin('8a8d2cb6-8b55-4fa3-8b5c-5f0e3d8de59a') = uuid; # 1130\nselect * from activity_searches where user_id = 7783;\nselect * from activity_search_filters where activity_search_id IN (32291, 32292);\n\nSELECT asf.activity_search_id, asf.id, asf.value\nFROM activity_search_filters asf\nWHERE asf.filter = 'group_id'\nAND asf.value IN (\n SELECT CONCAT(\n HEX(SUBSTR(uuid, 5, 4)), '-',\n HEX(SUBSTR(uuid, 3, 2)), '-',\n HEX(SUBSTR(uuid, 1, 2)), '-',\n HEX(SUBSTR(uuid, 9, 2)), '-',\n HEX(SUBSTR(uuid, 11))\n )\n FROM groups\n WHERE deleted_at IS NOT NULL\n);\n\nSELECT * FROM crm_configurations where id = 272; # 290 - Bonham & Brook , portalId: 5705856\nSELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-05 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; # 6th\n# ********************************************************************\nSELECT * FROM crm_configurations where provider = 'hubspot';\nSELECT * FROM crm_configurations where id = 1056; # 1119 - Chromatic , portalId: 45602133\nSELECT * FROM opportunities WHERE team_id = 1119 and remotely_created_at > '2026-02-01 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1119 and updated_at > '2026-02-09 09:00:00' order by updated_at desc; # null\n# ********************************************************************\n\nselect * from contacts where crm_provider_id = '003Uu00000ojD4NIAU';\nselect\n cp.*\n# DISTINCT t.id\n# cp.id, cp.user_id, t.id, cp.crm_configuration_id, cp.contact_fields\nFROM crm_profiles cp\nJOIN crm_configurations crm on crm.id = cp.crm_configuration_id\nJOIN users u on u.id = cp.user_id\nJOIN teams t ON t.id = crm.team_id\nWHERE crm.provider = 'salesforce' and t.status = 'active'\n and cp.archived_at IS NULL and u.deleted_at IS NULL\n and t.id NOT IN (1093)\n and t.id = 2\n and cp.contact_fields IS NULL;\n# and c.crm_provider_id = '003Uu00000ojD4NIAU';\n\nSELECT * FROM users WHERE id = 26484;\nSELECT * FROM crm_profiles WHERE user_id = 26484;\nSELECT * FROM social_accounts WHERE sociable_id = 26484;\nSELECT * FROM crm_configurations where provider = 'salesforce';\nselect * from users where id IN (10022, 10403);\nselect * from users where team_id IN (526);\nselect * from teams where id IN (526, 532);\nselect * from crm_configurations where id IN (500, 516);\nselect * from crm_profiles where crm_configuration_id IN (500, 516) and user_id IN (10022, 10403);\nselect * from contacts where crm_configuration_id IN (500, 516) and crm_provider_id = '003Uu00000ojD4NIAU';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 526 and sa.provider = 'salesforce';\nselect * from team_settings where team_id IN (526, 532);\n\nselect * from users where id IN (22824);\nselect * from crm_profiles where crm_configuration_id IN (1026);\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1093 and sa.provider = 'salesforce';\n\nselect * from teams where id = 1099;\nselect * from users where id = 29643\n\nselect * from activity_processing_states;\n\nSELECT * FROM teams where name LIKE '%Fare%'; # 233\nSELECT * FROM opportunities where crm_configuration_id = 215\n# and crm_provider_id = 'oppo_ogESZf2P50nDrd1nGPvKDXeA6sSaTN5v51Lp4ayVzKR'\n;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1088 and sa.provider = 'hubspot';\n\nSELECT * FROM teams order by updated_at DESC\nSELECT * FROM crm_configurations WHERE id = 1019; # SimpleConsign 1088 - no social account\n\nselect * from crm_configurations where provider = 'pipedrive';\n\nselect * from teams where id = 957;\nselect * from crm_configurations where id = 957;\n\nSELECT * FROM teams WHERE name LIKE '%Prolific%'; # 544, 518, 10743\nSELECT * FROM opportunities where crm_configuration_id = 518 order by id desc;\n\nselect * from users where team_id = 1; # 26726 - Gabriela Dureva\nSELECT * FROM opportunities where user_id = 26726; # 16834447 - Prolific\nselect * from activities where user_id = 26726 order by id desc;\nselect * from contacts where crm_configuration_id = 1\nand email IN ('charlotte.ward@prolific.com', 'frankie.bryant@prolific.com'); # 2094416, 2093620\nSELECT * FROM contacts WHERE id = 6284931;\n\nSELECT p.* FROM activities a JOIN participants p ON a.id = p.activity_id\nWHERE a.user_id = 26726 and p.lead_id IN (2094416, 2093620) and a.created_at > '2026-01-01 00:00:00' order by p.email;\n\nselect * from activities where id IN (75509259,75509261,75509261,75511034,75026464,75517602,75517605);\nselect * from crm_configurations where id = 1;\n\n43801692-1aeb-32ce-acba-5b80a479701a\n44c3c9cf-6f5e-75f3-8179-bc9f75dd2b1b\n405975c0-b3d0-7aaa-821f-09d59cae6dd1\n4caf848d-4bed-2299-b248-7788d41f9fca\n49bedc3f-f196-eef3-89c3-dea6a3b4aa63\n43420989-a09d-b8f8-9806-c8bbf7a02aac\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1 and sa.provider = 'salesforce';\n\nSELECT * FROM activities WHERE id = 75461988;\n\nSELECT * FROM activities WHERE uuid_to_bin('d6c5052e-e972-49e9-8912-26f2f7d6c5f6') = uuid;\n\nselect * from contacts where id = 17900517;\n\nselect * from contact_roles cr join crm_configurations crm on cr.crm_configuration_id = crm.id\nwhere crm.provider != 'salesforce';\n\nselect * from users where id = 21047;\nSELECT * FROM crm_configurations WHERE id = 892;\nSELECT * FROM teams WHERE id = 942;\nselect * from opportunities where team_id = 942 order by updated_at desc;\nselect * from contacts where team_id = 942 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 942 and sa.provider = 'hubspot';\n\nSELECT * FROM opportunities where team_id = 1 and crm_provider_id IN ('006Pq00000NeH6XIAV', '006Pq000007z8kdIAA'); # 10697889, 6621430\nSELECT * FROM crm_configurations WHERE id = 1;\nSELECT * FROM teams WHERE crm_id = 1;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1 and sa.provider = 'salesforce';\n\nselect id, user_id, opportunity_fields from crm_profiles where crm_configuration_id = 1\nSELECT * FROM opportunities where team_id = 1 order by updated_at desc; # 10697889, 6621430\n\nselect * from teams where id = 852;\nselect * from groups where id = 2286;\nselect * from sidekick_settings where team_id = 852;\nselect * from default_activity_types where team_id = 852;\n\n\nSELECT cc.provider, cc.id, p.id, u.*\nFROM users u\nLEFT JOIN crm_profiles p ON u.id = p.user_id AND p.id IS NULL -- no profile\nINNER JOIN teams t ON u.team_id = t.id AND t.status = 'active' -- team is active\nINNER JOIN crm_configurations cc ON t.crm_id = cc.id\nWHERE u.status = 1 AND u.deleted_at IS NULL\nAND u.crm_required = 1\nAND u.team_id = 1\nORDER BY u.team_id;\n\nSELECT * FROM crm_profiles cp where cp.crm_configuration_id = 1 and cp.user_id IN (\n18481\n );\n\nSELECT cc.provider, cc.id, p.id, u.*\nFROM users u\nLEFT JOIN crm_profiles p ON u.id = p.user_id\nINNER JOIN teams t ON u.team_id = t.id AND t.status = 'active'\nINNER JOIN crm_configurations cc ON t.crm_id = cc.id\nWHERE u.status = 1\n AND u.deleted_at IS NULL\n AND u.crm_required = 1\n# AND u.team_id = 1\n AND p.id IS NULL -- Move this condition to WHERE clause\nORDER BY u.team_id;\n\nSELECT * FROM opportunities WHERE id = 20002609;\nselect * from teams where id = 1122; # Velatir, 29953 - christian@velatir.com\nselect * from crm_configurations where id = 1060;\nselect * from crm_layouts where crm_configuration_id = 1060;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 3596;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1122 and sa.provider = 'hubspot';\nselect * from opportunities where team_id = 1122 order by updated_at desc;\n\nselect * from crm_field_data where object_type = 'contact';\n\nSELECT * FROM activities WHERE uuid_to_bin('374fc8ed-3315-4c9f-9b25-318b7fd2928f') = uuid; # 76584262\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 248 and sa.provider = 'salesforce';\n\nSELECT * FROM crm_profiles where user_id = 24115; # 005QF000002CswMYAS\nSELECT * FROM users where id = 24115;\nSELECT * FROM accounts where id = 4002896;\nSELECT * FROM teams WHERE name LIKE '%adswerve%';\nSELECT * FROM opportunities where crm_configuration_id = 230 AND crm_provider_id IN (\"0069N000003GIQ9QAO\",\"0061r000019yGP9AAM\",\"0066900001S2KWlAAN\",\"0066900001TDpj2AAD\",\"0066900001b8uEwAAI\",\"0069N000001rQi0QAE\",\"006QF00000KD40mYAD\",\"006QF00000LzpRJYAZ\",\"0069N000002uomtQAA\",\"0069N000002xlMLQAY\",\"0066900001NV6ubAAD\",\"0061r00001HJp45AAD\",\"006QF00000uTlUoYAK\",\"006QF00000v0bZqYAI\");\nSELECT * FROM opportunities WHERE crm_configuration_id = 230 AND crm_provider_id = '0069N000003GIQ9QAO'; # 6272203\n\nSELECT u.id, u.email, ac.name, a.* FROM activities a\nJOIN users u ON a.user_id = u.id\nJOIN accounts ac ON a.account_id = ac.id\nWHERE\nuuid_to_bin('e3269598-b562-44fb-b5e9-9d2694dc63e0') = a.uuid or\nuuid_to_bin('66ddc3ab-4e15-45aa-af0c-248c1eece593') = a.uuid or\nuuid_to_bin('826bd328-e1cc-4213-b8d8-572454cacc07') = a.uuid;\n\nselect * from users where id = 5825;\nSELECT * FROM activities WHERE uuid_to_bin('e56aa2e8-231a-421b-ab1f-cb38ed2bf573') = uuid;\n\nselect * from activities where uuid_to_bin('91e13b2f-2d1b-45f8-b1fd-1141b6563782') = uuid;\n19594, 862\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 862 and sa.provider = 'salesforce';\n\nselect * from automated_reports where id = 36;\nselect ar.frequency, r.*, ar.* from automated_report_results r\njoin automated_reports ar on r.report_id = ar.id\nwhere ar.frequency != 'one_off';\n\nselect s.* from activity_searches s join users u ON s.user_id = u.id where u.team_id = 882;\nselect * from nudges n where n.activity_search_id\n\nselect * from teams where created_at > '2026-03-09';\nSELECT * FROM crm_layouts WHERE crm_configuration_id = 1065; # 1065\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 3617;\n\nselect * from users where team_id = 1 and name like '%Lukas%'; # 7160\n\nSELECT * FROM teams WHERE id = 575;\nselect * from opportunities where team_id = 575;\nSELECT * FROM teams WHERE name LIKE '%Integrum ESG%'; # 1126, 1065,\nselect * from opportunities where team_id = 1126;\nSELECT * FROM teams WHERE name LIKE '%Base%'; # 1125, 1063,\nselect * from opportunities where team_id = 1125;\nselect * from contacts c\nwhere c.team_id = 882;\n\nSELECT * FROM activities WHERE id = 76822967;\nSELECT * FROM crm_profiles WHERE user_id = 15440;\nSELECT * FROM crm_profiles WHERE crm_configuration_id = 555;\nSELECT * FROM crm_configurations WHERE id = 555;\nSELECT * FROM users WHERE id = 15440; # team. 581, gr. 15440, pl. 3911, act. field 162182\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 581 and sa.provider = 'salesforce';\n\nSELECT * FROM automated_report_results order by id desc;\n\nselect * from features;\nselect * from team_features where feature_id = 40;\n\nselect * from teams where id = 556;\n\nselect * from automated_reports;\nwhere id = 54; # 4fdd41f6-dcf0-30d0-b339-7345381b6044 , [\"pdf\",\"podcast\"]\nSELECT * FROM automated_report_results WHERE uuid_to_bin('822fa41b-afd3-43a9-a248-86b0e36f3131') = uuid;\nselect * from automated_report_results order by id desc;\nSELECT * FROM automated_report_results WHERE id = 1919;\n\nselect * from automated_report_results WHERE report_id = 54;\n\nselect * from opportunities where id = 7594349;\n\nSELECT * FROM teams WHERE name LIKE '%Les%'; # 711, 692, 16067 - jiminnyintegration@lesmills.com\nselect * from playbooks where team_id = 711; # event 226147\nSELECT * FROM playbook_categories WHERE playbook_id = 5515;\nSELECT * FROM crm_fields WHERE crm_configuration_id = 692 and object_type = 'event';\nSELECT * FROM crm_fields WHERE id = 226147;\nSELECT * FROM crm_field_values WHERE crm_field_id = 226147;\n\nSELECT * FROM crm_configurations WHERE id = 692;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 711 and sa.provider = 'salesforce';\n\nSELECT * FROM crm_profiles cp JOIN users u on u.id = cp.user_id WHERE u.team_id = 711;\n\nselect * from leads;\n\nselect * from calendars;\n\nSELECT\n t.id AS team_id,\n t.name,\n LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1)) AS calendar_domain\nFROM teams t\nJOIN users u ON u.team_id = t.id\nJOIN calendars c ON c.user_id = u.id AND c.status = 'active' AND c.calendar_provider_id LIKE '%@%'\nLEFT JOIN team_domains td\n ON td.team_id = t.id\n AND td.deleted_at IS NULL\n AND td.domain = LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1))\nGROUP BY t.id, t.name, calendar_domain\nORDER BY t.name, calendar_domain;\n\nselect * from users u join calendars c on c.user_id = u.id\nwhere u.team_id = 882;\n\n\nselect * from activities where id = 74049485; # team 563 crm 537\nselect * from activities where id = 73272382; # team 563 crm 537\nselect * from activities where id = 64400389; # team 563 crm 537\nselect * from activities where id = 58081273; # team 563 crm 537\nselect * from activities where id = 54520297; # team 563 crm 537\nselect * from participants where activity_id = 58081273;\n\nselect * from activities where crm_configuration_id = 537 and provider = 'aircall'\nand account_id = 19003658 order by updated_at desc;\n\nselect * from contacts where crm_configuration_id = 537 and id = 35957759;\nselect * from accounts where crm_configuration_id = 537 and id = 19003658;","depth":4,"value":"SELECT * FROM teams WHERE name LIKE '%litify%'; # 1069, 994, 24993\nSELECT * FROM users WHERE id = 25061;\nSELECT * FROM crm_profiles WHERE crm_configuration_id = 994;\nSELECT * FROM crm_profiles WHERE user_id = 25061;\n\nselect * from crm_configurations where id = 834;\nSELECT * FROM teams WHERE id = 882;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 882 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal\nSELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations WHERE provider = 'hubspot' and crm_provider_id = 7270388;\n\nSELECT * FROM contacts where crm_configuration_id = 834;\nSELECT * FROM opportunities WHERE team_id = 933\n# AND crm_provider_id IN ('20131586060','46017317898','52543911090','53451356564','54101251892','54323768459');\nAND id IN (8482561,18352941,19042734,19232139,19445140,19472541);\nSELECT * FROM opportunity_contacts\nWHERE opportunity_id IN (8482561,18352941,19042734,19232139,19445140,19472541);\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 485; #\nSELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\nselect crm.provider, l.* from leads l join crm_configurations crm on l.crm_configuration_id = crm.id\nwhere crm.provider NOT IN ('salesforce', 'integration-app', 'bullhorn', 'copper')\n# and l.converted_at IS NOT NULL\n;\n\n# ********************************************************************\nSELECT * FROM activities a WHERE type IN ('email-inbound', 'email-outbound')\nand opportunity_id IS NULL\norder by id desc;\n\nSELECT * FROM teams WHERE id = 604; # 598\nSELECT * FROM activities WHERE id = 74410828; # chelseaw@allvoices.co\nSELECT * FROM accounts WHERE id = 20068382;\nSELECT * FROM accounts WHERE id = 35186038;\n\nSELECT * FROM contacts WHERE team_id = 852 and updated_at > '2026-01-23 12:30:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 559 and sa.provider = 'hubspot';\n\nSELECT * FROM activities WHERE uuid_to_bin('cb6342b6-a183-401c-b0af-ede92b2ae763') = uuid;\nselect * from sidekick_settings where team_id = 781;\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 26651871; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 7562435;\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8420347; # opflit 2100\n\nSELECT * FROM crm_layouts WHERE crm_configuration_id = 711;\nSELECT * FROM activities where crm_configuration_id = 711 and crm_provider_id IS NULL\nand is_internal = 0 and status = 'completed'\norder by id desc;\n\nSELECT * FROM crm_layout_entities\nWHERE crm_layout_id IN (2352, 2353);\n;\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and id = 530;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 556 and sa.provider = 'hubspot';\n\nSELECT * FROM activities WHERE uuid_to_bin('c6ca4b22-7738-4563-a95d-b8a9598924ae') = uuid;\nSELECT * FROM activities WHERE uuid_to_bin('442abb2b-28bd-4be8-9c25-19e9bf02766d') = uuid;\nselect * from contacts\nwhere crm_configuration_id = 530\nand crm_provider_id = 872252;\n\nselect * from activities where crm_configuration_id = 530\nand user_id = 14343 and type like '%softphone%'\nand created_at between '2026-01-28 15:00:00' and '2026-01-28 15:10:00';\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 25666868; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8646335; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id IN (5933397);\n\n\nSELECT t.name, t.id, t.owner_id, c.id, c.provider, c.crm_base_url FROM teams t\nJOIN crm_configurations c ON t.id = c.team_id\nWHERE t.status = 'active';\n\nSELECT * FROM teams where id = 1091;\nSELECT * FROM crm_configurations where team_id = 1091;\nSELECT * FROM activity_providers where team_id = 1091;\nSELECT * FROM activities where crm_configuration_id = 1024 and type IN ('softphone', 'softphone-outbound')\nand provider NOT IN ('hubspot', 'aircall')\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by id desc;\n\n\nSELECT * FROM teams WHERE name LIKE '%Leadventure%';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1091 and sa.provider = 'salesforce';\n\nSELECT * FROM teams WHERE name LIKE '%Wilson%'; # 862, 812\nSELECT * FROM teams where id = 862;\nSELECT * FROM crm_configurations where team_id = 862;\nSELECT * FROM activity_providers where team_id = 862;\nSELECT * FROM activities where crm_configuration_id = 812 and type IN ('softphone', 'softphone-outbound')\nand provider NOT IN ('hubspot', 'aircall')\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by id desc;\n\n\nSELECT t.id, crm.id, crm.provider, ap.* FROM teams t\njoin crm_configurations crm on t.id = crm.team_id\njoin activity_providers ap on t.id = ap.team_id\nwhere t.status = 'active' and ap.is_enabled = 1\nand crm.provider = 'hubspot'\nand ap.provider NOT IN ('hubspot', 'aircall', 'uploader', 'gong', 'twilio', 'zoom-bot', 'google-meet', 'ms-teams',\n 'outreach', 'close', 'ringcentral', 'dialpad', 'zoom-phone');\n\nSELECT * FROM teams where id = 1068;\nSELECT * FROM crm_configurations where team_id = 1068;\nSELECT * FROM activity_providers where team_id = 1068;\n\nSELECT * FROM activities a\nwhere crm_configuration_id = 993 and type IN ('softphone', 'softphone-outbound')\nand a.provider NOT IN ('hubspot', 'uploader', 'gong', 'twilio', 'google-meet', 'ms-teams','close'\n )\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by a.id desc;\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1068 and sa.provider = 'hubspot';\n\n# ********************************************************************\n# ********************************************************************\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal , portalId: 6017093\nSELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-06 00:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 834; # 882 - AnyVan , portalId: 5468262\nSELECT * FROM contacts WHERE crm_configuration_id = 834 and updated_at > '2026-03-30 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE crm_configuration_id = 834 and updated_at > '2026-03-04 08:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 882 and sa.provider = 'hubspot';\nselect * from crm_layouts where crm_configuration_id = 834;\nselect * from crm_layout_entities where crm_layout_id = 2780;\nselect * from crm_fields where id IN (321153,321192,321193,321194);\n\nSELECT * FROM opportunities WHERE crm_configuration_id = 834 and id = 10993426;\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 988; # 1057 - Teya (543ce4f4-168c-4571-91ea-5b35c253f06f) , portalId: 26651871\nSELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1057 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations where id = 533; # 559 - Connectd , portalId: 6710988\nSELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 801; # 852 - Rise Vision , portalId: 2700250\nSELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-04 00:00:00' order by updated_at desc; # 6th last\n\nSELECT * FROM crm_configurations where id = 962; # 1034 - evergrowth.io , portalId: 143180990\nSELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 1037; # 1102 - Jibble , portalId: 6649755\nSELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 8\n\nSELECT * FROM crm_configurations where id = 1015; # 1049 - Travefy , portalId: 48904401\nSELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 20\n\nSELECT * FROM crm_configurations where id = 64; # 70 - SalaryFinance , portalId: 3404115\nSELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 6th last\n\nSELECT * FROM crm_configurations where id = 802; # 853 - Street Group , portalId: 7658438\nSELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 10\n\nSELECT * FROM crm_configurations where id = 872; # 921 - In Professional Development , portalId: 9238273\nSELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 2\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 550; # 576 - SeedLegals , portalId: 3028661\nSELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 989; # 1058 - rtaoutdoor.com , portalId: 22371204\nSELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 896; # 946 - Mintago , portalId: 6621281\nSELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 617; # 641 - PCS , portalId: 5244937\nSELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-05 14:00:00' order by updated_at desc; # 7th\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 649; # 670 - Eventeny , portalId: 4492849\nSELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; #\n\nSELECT * FROM crm_configurations where id = 48; # 51 - CleanCloud , portalId: 4373137\nSELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-03-04 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-02-09 08:00:00' order by updated_at desc;\nselect * from users where team_id = 51; # 7783\nSELECT * FROM groups WHERE uuid_to_bin('8a8d2cb6-8b55-4fa3-8b5c-5f0e3d8de59a') = uuid; # 1130\nselect * from activity_searches where user_id = 7783;\nselect * from activity_search_filters where activity_search_id IN (32291, 32292);\n\nSELECT asf.activity_search_id, asf.id, asf.value\nFROM activity_search_filters asf\nWHERE asf.filter = 'group_id'\nAND asf.value IN (\n SELECT CONCAT(\n HEX(SUBSTR(uuid, 5, 4)), '-',\n HEX(SUBSTR(uuid, 3, 2)), '-',\n HEX(SUBSTR(uuid, 1, 2)), '-',\n HEX(SUBSTR(uuid, 9, 2)), '-',\n HEX(SUBSTR(uuid, 11))\n )\n FROM groups\n WHERE deleted_at IS NOT NULL\n);\n\nSELECT * FROM crm_configurations where id = 272; # 290 - Bonham & Brook , portalId: 5705856\nSELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-05 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; # 6th\n# ********************************************************************\nSELECT * FROM crm_configurations where provider = 'hubspot';\nSELECT * FROM crm_configurations where id = 1056; # 1119 - Chromatic , portalId: 45602133\nSELECT * FROM opportunities WHERE team_id = 1119 and remotely_created_at > '2026-02-01 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1119 and updated_at > '2026-02-09 09:00:00' order by updated_at desc; # null\n# ********************************************************************\n\nselect * from contacts where crm_provider_id = '003Uu00000ojD4NIAU';\nselect\n cp.*\n# DISTINCT t.id\n# cp.id, cp.user_id, t.id, cp.crm_configuration_id, cp.contact_fields\nFROM crm_profiles cp\nJOIN crm_configurations crm on crm.id = cp.crm_configuration_id\nJOIN users u on u.id = cp.user_id\nJOIN teams t ON t.id = crm.team_id\nWHERE crm.provider = 'salesforce' and t.status = 'active'\n and cp.archived_at IS NULL and u.deleted_at IS NULL\n and t.id NOT IN (1093)\n and t.id = 2\n and cp.contact_fields IS NULL;\n# and c.crm_provider_id = '003Uu00000ojD4NIAU';\n\nSELECT * FROM users WHERE id = 26484;\nSELECT * FROM crm_profiles WHERE user_id = 26484;\nSELECT * FROM social_accounts WHERE sociable_id = 26484;\nSELECT * FROM crm_configurations where provider = 'salesforce';\nselect * from users where id IN (10022, 10403);\nselect * from users where team_id IN (526);\nselect * from teams where id IN (526, 532);\nselect * from crm_configurations where id IN (500, 516);\nselect * from crm_profiles where crm_configuration_id IN (500, 516) and user_id IN (10022, 10403);\nselect * from contacts where crm_configuration_id IN (500, 516) and crm_provider_id = '003Uu00000ojD4NIAU';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 526 and sa.provider = 'salesforce';\nselect * from team_settings where team_id IN (526, 532);\n\nselect * from users where id IN (22824);\nselect * from crm_profiles where crm_configuration_id IN (1026);\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1093 and sa.provider = 'salesforce';\n\nselect * from teams where id = 1099;\nselect * from users where id = 29643\n\nselect * from activity_processing_states;\n\nSELECT * FROM teams where name LIKE '%Fare%'; # 233\nSELECT * FROM opportunities where crm_configuration_id = 215\n# and crm_provider_id = 'oppo_ogESZf2P50nDrd1nGPvKDXeA6sSaTN5v51Lp4ayVzKR'\n;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1088 and sa.provider = 'hubspot';\n\nSELECT * FROM teams order by updated_at DESC\nSELECT * FROM crm_configurations WHERE id = 1019; # SimpleConsign 1088 - no social account\n\nselect * from crm_configurations where provider = 'pipedrive';\n\nselect * from teams where id = 957;\nselect * from crm_configurations where id = 957;\n\nSELECT * FROM teams WHERE name LIKE '%Prolific%'; # 544, 518, 10743\nSELECT * FROM opportunities where crm_configuration_id = 518 order by id desc;\n\nselect * from users where team_id = 1; # 26726 - Gabriela Dureva\nSELECT * FROM opportunities where user_id = 26726; # 16834447 - Prolific\nselect * from activities where user_id = 26726 order by id desc;\nselect * from contacts where crm_configuration_id = 1\nand email IN ('charlotte.ward@prolific.com', 'frankie.bryant@prolific.com'); # 2094416, 2093620\nSELECT * FROM contacts WHERE id = 6284931;\n\nSELECT p.* FROM activities a JOIN participants p ON a.id = p.activity_id\nWHERE a.user_id = 26726 and p.lead_id IN (2094416, 2093620) and a.created_at > '2026-01-01 00:00:00' order by p.email;\n\nselect * from activities where id IN (75509259,75509261,75509261,75511034,75026464,75517602,75517605);\nselect * from crm_configurations where id = 1;\n\n43801692-1aeb-32ce-acba-5b80a479701a\n44c3c9cf-6f5e-75f3-8179-bc9f75dd2b1b\n405975c0-b3d0-7aaa-821f-09d59cae6dd1\n4caf848d-4bed-2299-b248-7788d41f9fca\n49bedc3f-f196-eef3-89c3-dea6a3b4aa63\n43420989-a09d-b8f8-9806-c8bbf7a02aac\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1 and sa.provider = 'salesforce';\n\nSELECT * FROM activities WHERE id = 75461988;\n\nSELECT * FROM activities WHERE uuid_to_bin('d6c5052e-e972-49e9-8912-26f2f7d6c5f6') = uuid;\n\nselect * from contacts where id = 17900517;\n\nselect * from contact_roles cr join crm_configurations crm on cr.crm_configuration_id = crm.id\nwhere crm.provider != 'salesforce';\n\nselect * from users where id = 21047;\nSELECT * FROM crm_configurations WHERE id = 892;\nSELECT * FROM teams WHERE id = 942;\nselect * from opportunities where team_id = 942 order by updated_at desc;\nselect * from contacts where team_id = 942 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 942 and sa.provider = 'hubspot';\n\nSELECT * FROM opportunities where team_id = 1 and crm_provider_id IN ('006Pq00000NeH6XIAV', '006Pq000007z8kdIAA'); # 10697889, 6621430\nSELECT * FROM crm_configurations WHERE id = 1;\nSELECT * FROM teams WHERE crm_id = 1;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1 and sa.provider = 'salesforce';\n\nselect id, user_id, opportunity_fields from crm_profiles where crm_configuration_id = 1\nSELECT * FROM opportunities where team_id = 1 order by updated_at desc; # 10697889, 6621430\n\nselect * from teams where id = 852;\nselect * from groups where id = 2286;\nselect * from sidekick_settings where team_id = 852;\nselect * from default_activity_types where team_id = 852;\n\n\nSELECT cc.provider, cc.id, p.id, u.*\nFROM users u\nLEFT JOIN crm_profiles p ON u.id = p.user_id AND p.id IS NULL -- no profile\nINNER JOIN teams t ON u.team_id = t.id AND t.status = 'active' -- team is active\nINNER JOIN crm_configurations cc ON t.crm_id = cc.id\nWHERE u.status = 1 AND u.deleted_at IS NULL\nAND u.crm_required = 1\nAND u.team_id = 1\nORDER BY u.team_id;\n\nSELECT * FROM crm_profiles cp where cp.crm_configuration_id = 1 and cp.user_id IN (\n18481\n );\n\nSELECT cc.provider, cc.id, p.id, u.*\nFROM users u\nLEFT JOIN crm_profiles p ON u.id = p.user_id\nINNER JOIN teams t ON u.team_id = t.id AND t.status = 'active'\nINNER JOIN crm_configurations cc ON t.crm_id = cc.id\nWHERE u.status = 1\n AND u.deleted_at IS NULL\n AND u.crm_required = 1\n# AND u.team_id = 1\n AND p.id IS NULL -- Move this condition to WHERE clause\nORDER BY u.team_id;\n\nSELECT * FROM opportunities WHERE id = 20002609;\nselect * from teams where id = 1122; # Velatir, 29953 - christian@velatir.com\nselect * from crm_configurations where id = 1060;\nselect * from crm_layouts where crm_configuration_id = 1060;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 3596;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1122 and sa.provider = 'hubspot';\nselect * from opportunities where team_id = 1122 order by updated_at desc;\n\nselect * from crm_field_data where object_type = 'contact';\n\nSELECT * FROM activities WHERE uuid_to_bin('374fc8ed-3315-4c9f-9b25-318b7fd2928f') = uuid; # 76584262\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 248 and sa.provider = 'salesforce';\n\nSELECT * FROM crm_profiles where user_id = 24115; # 005QF000002CswMYAS\nSELECT * FROM users where id = 24115;\nSELECT * FROM accounts where id = 4002896;\nSELECT * FROM teams WHERE name LIKE '%adswerve%';\nSELECT * FROM opportunities where crm_configuration_id = 230 AND crm_provider_id IN (\"0069N000003GIQ9QAO\",\"0061r000019yGP9AAM\",\"0066900001S2KWlAAN\",\"0066900001TDpj2AAD\",\"0066900001b8uEwAAI\",\"0069N000001rQi0QAE\",\"006QF00000KD40mYAD\",\"006QF00000LzpRJYAZ\",\"0069N000002uomtQAA\",\"0069N000002xlMLQAY\",\"0066900001NV6ubAAD\",\"0061r00001HJp45AAD\",\"006QF00000uTlUoYAK\",\"006QF00000v0bZqYAI\");\nSELECT * FROM opportunities WHERE crm_configuration_id = 230 AND crm_provider_id = '0069N000003GIQ9QAO'; # 6272203\n\nSELECT u.id, u.email, ac.name, a.* FROM activities a\nJOIN users u ON a.user_id = u.id\nJOIN accounts ac ON a.account_id = ac.id\nWHERE\nuuid_to_bin('e3269598-b562-44fb-b5e9-9d2694dc63e0') = a.uuid or\nuuid_to_bin('66ddc3ab-4e15-45aa-af0c-248c1eece593') = a.uuid or\nuuid_to_bin('826bd328-e1cc-4213-b8d8-572454cacc07') = a.uuid;\n\nselect * from users where id = 5825;\nSELECT * FROM activities WHERE uuid_to_bin('e56aa2e8-231a-421b-ab1f-cb38ed2bf573') = uuid;\n\nselect * from activities where uuid_to_bin('91e13b2f-2d1b-45f8-b1fd-1141b6563782') = uuid;\n19594, 862\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 862 and sa.provider = 'salesforce';\n\nselect * from automated_reports where id = 36;\nselect ar.frequency, r.*, ar.* from automated_report_results r\njoin automated_reports ar on r.report_id = ar.id\nwhere ar.frequency != 'one_off';\n\nselect s.* from activity_searches s join users u ON s.user_id = u.id where u.team_id = 882;\nselect * from nudges n where n.activity_search_id\n\nselect * from teams where created_at > '2026-03-09';\nSELECT * FROM crm_layouts WHERE crm_configuration_id = 1065; # 1065\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 3617;\n\nselect * from users where team_id = 1 and name like '%Lukas%'; # 7160\n\nSELECT * FROM teams WHERE id = 575;\nselect * from opportunities where team_id = 575;\nSELECT * FROM teams WHERE name LIKE '%Integrum ESG%'; # 1126, 1065,\nselect * from opportunities where team_id = 1126;\nSELECT * FROM teams WHERE name LIKE '%Base%'; # 1125, 1063,\nselect * from opportunities where team_id = 1125;\nselect * from contacts c\nwhere c.team_id = 882;\n\nSELECT * FROM activities WHERE id = 76822967;\nSELECT * FROM crm_profiles WHERE user_id = 15440;\nSELECT * FROM crm_profiles WHERE crm_configuration_id = 555;\nSELECT * FROM crm_configurations WHERE id = 555;\nSELECT * FROM users WHERE id = 15440; # team. 581, gr. 15440, pl. 3911, act. field 162182\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 581 and sa.provider = 'salesforce';\n\nSELECT * FROM automated_report_results order by id desc;\n\nselect * from features;\nselect * from team_features where feature_id = 40;\n\nselect * from teams where id = 556;\n\nselect * from automated_reports;\nwhere id = 54; # 4fdd41f6-dcf0-30d0-b339-7345381b6044 , [\"pdf\",\"podcast\"]\nSELECT * FROM automated_report_results WHERE uuid_to_bin('822fa41b-afd3-43a9-a248-86b0e36f3131') = uuid;\nselect * from automated_report_results order by id desc;\nSELECT * FROM automated_report_results WHERE id = 1919;\n\nselect * from automated_report_results WHERE report_id = 54;\n\nselect * from opportunities where id = 7594349;\n\nSELECT * FROM teams WHERE name LIKE '%Les%'; # 711, 692, 16067 - jiminnyintegration@lesmills.com\nselect * from playbooks where team_id = 711; # event 226147\nSELECT * FROM playbook_categories WHERE playbook_id = 5515;\nSELECT * FROM crm_fields WHERE crm_configuration_id = 692 and object_type = 'event';\nSELECT * FROM crm_fields WHERE id = 226147;\nSELECT * FROM crm_field_values WHERE crm_field_id = 226147;\n\nSELECT * FROM crm_configurations WHERE id = 692;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 711 and sa.provider = 'salesforce';\n\nSELECT * FROM crm_profiles cp JOIN users u on u.id = cp.user_id WHERE u.team_id = 711;\n\nselect * from leads;\n\nselect * from calendars;\n\nSELECT\n t.id AS team_id,\n t.name,\n LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1)) AS calendar_domain\nFROM teams t\nJOIN users u ON u.team_id = t.id\nJOIN calendars c ON c.user_id = u.id AND c.status = 'active' AND c.calendar_provider_id LIKE '%@%'\nLEFT JOIN team_domains td\n ON td.team_id = t.id\n AND td.deleted_at IS NULL\n AND td.domain = LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1))\nGROUP BY t.id, t.name, calendar_domain\nORDER BY t.name, calendar_domain;\n\nselect * from users u join calendars c on c.user_id = u.id\nwhere u.team_id = 882;\n\n\nselect * from activities where id = 74049485; # team 563 crm 537\nselect * from activities where id = 73272382; # team 563 crm 537\nselect * from activities where id = 64400389; # team 563 crm 537\nselect * from activities where id = 58081273; # team 563 crm 537\nselect * from activities where id = 54520297; # team 563 crm 537\nselect * from participants where activity_id = 58081273;\n\nselect * from activities where crm_configuration_id = 537 and provider = 'aircall'\nand account_id = 19003658 order by updated_at desc;\n\nselect * from contacts where crm_configuration_id = 537 and id = 35957759;\nselect * from accounts where crm_configuration_id = 537 and id = 19003658;","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"app ~/jiminny/app","depth":6,"role_description":"text"},{"role":"AXStaticText","text":".circleci","depth":7,"role_description":"text"},{"role":"AXStaticText","text":".cursor","depth":7,"role_description":"text"},{"role":"AXStaticText","text":".github","depth":7,"role_description":"text"},{"role":"AXStaticText","text":".sonarlint","depth":7,"role_description":"text"},{"role":"AXStaticText","text":".vscode","depth":7,"role_description":"text"},{"role":"AXStaticText","text":".windsurf","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"app, sources root","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"Actions","depth":8,"role_description":"text"},{"role":"AXStaticText","text":"Component","depth":8,"role_description":"text"},{"role":"AXStaticText","text":"Acl","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ActionItems","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ActivityAnalytics","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ActivitySearch","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"AiActivityType","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"AiAutomation","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"AiCallScoring","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Dtos","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"Events","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"AskAnythingPromptService.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"HistoryService.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"AskJiminnyAi","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"AWS","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"BillingManagement","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Cache","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"CoachingFeedback","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Country","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"CustomerApi","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Database","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Datadog","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"DateTime","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"DealInsights","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ElasticSearch","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Eloquent","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Encoding","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Encryption","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ES","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Faker","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"FeatureFlags","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"FFMpeg","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"FileSystem","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Gecko","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Gong","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"GuzzleHttp","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"KeyPoints","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Kiosk","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"LanguageDetection","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"LiveFeed","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Locks","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Math","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"MediaPipeline","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"MobileSettings","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Model","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Notification","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Nudge","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ParagraphBreaker","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ParticipantSpeech","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"PartitionedCookie","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"PlaybackPage","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Playlist","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Prophet","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ProphetAi","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ProsperWorks","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Queue","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Router","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Saml2","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"SCIM","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Seeder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Sentry","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Serializer","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Settings","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Sidekick","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Slack","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"TeamInsights","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"TimeMemoryMapper","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Transcription","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"TranscriptionSummary","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Twilio","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Uploader","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"UrlGenerator","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Utility","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Uuid","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Waveform","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Webhooks","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Workflow","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Configuration","depth":8,"role_description":"text"},{"role":"AXStaticText","text":"Console","depth":8,"role_description":"text"},{"role":"AXStaticText","text":"Commands","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Activities","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"Analytics","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"Calendars","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"Hubspot","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"IntegrationApp","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"Traits, folder","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"AddLayoutEntities.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"AutologDelayedCommand.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"BullhornCommandAbstract.php, abstract class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"BullhornPingCommand.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"BullhornSearchCommand.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"BullhornSessionCommand.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"CheckActivityLoggableCommand.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"CleanDuplicateFieldDataCommand.php","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"FullSyncOpportunityCommand.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"LogActivitiesCommand.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ManageSyncStrategyCommand.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"MatchCrmObjectsCommand.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"MatchOpportunityActivitiesCommand.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"MigrateProvider.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ProcessHubspotObjectsSyncBatches.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"PurgeDeletedOpportunitiesCommand.php","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ResetGovernorLimits.php","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"SendNotLogged.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"SetupActivityTypeForFollowUp.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"SetupCloseCrm.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"SetupCopperCrm.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"SetupCrmCommand.php, abstract class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayouts.php","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"SyncAccount.php","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"SyncContact.php","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotActiveDeals.php","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":11,"role_description":"text"}]...
|
-8829091456177500286
|
1135484450831218245
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Show Replace Field
Search History
DetachActivityObject
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/1
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Providers;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Jiminny;
use Jiminny\Component;
use Jiminny\Component\Encoding\Listeners\CreateM3U8MediaListener;
use Jiminny\Component\Nudge\Listener\SendImmediateNudgeListener;
use Jiminny\Component\Slack\Listeners\ImportSlackUsersAccountsListener;
use Jiminny\Events;
use Jiminny\Listeners;
use Jiminny\Models\Group;
use Jiminny\Models\User;
use Jiminny\Observers\GroupObserver;
use Jiminny\Observers\UserObserver;
use Jiminny\Observers\UserRoleObserver;
class EventServiceProvider extends ServiceProvider
{
protected $subscribe = [
Component\ActivityAnalytics\Event\EventSubscriber::class,
Component\Transcription\Event\EventSubscriber::class,
Component\Twilio\Event\TwilioConferenceEventSubscriber::class,
Component\Twilio\Event\TwilioReportingSubscriber::class,
Component\ActivitySearch\EventSubscriber\SlackEventSubscriber::class,
Listeners\Import\ActivityImportSubscriber::class,
];
/**
* The event listener mappings for the application.
*/
protected $listen = [
\Illuminate\Notifications\Events\NotificationSent::class => [
],
// User Related Events...
Events\Auth\UserRegistered::class => [
Listeners\Users\SyncIntercom::class,
Listeners\Users\SyncPlanhat::class,
Listeners\Crm\InitProfiles::class,
Listeners\Users\SyncUserPilot::class,
Jiminny\Services\Crm\IntegrationApp\Jobs\UpdateProfileRelatedEntitiesJob::class,
],
Events\Auth\ChromeExtensionAuthenticated::class => [
Listeners\Authentication\Intercom\CreateChromeExtensionAuthenticatedEvent::class,
],
Events\Auth\DeviceAuthenticated::class => [
Listeners\Authentication\Intercom\UpdateUserDeviceActivity::class,
],
Events\ElasticSearch\RemovesDocumentWhenDeleted::class => [
Listeners\Activities\ElasticSearchMetricsRemoveActivityListener::class,
Listeners\ElasticSearch\RemovesDocumentBelongingToDeletedModel::class,
],
Events\Users\UserCreated::class => [
Listeners\Users\SetDefaultAvatarListener::class,
Listeners\Users\CreateDefaultPlaylist::class,
Listeners\Users\CreateDefaultSavedSearches::class,
Component\BillingManagement\Listeners\UserCreatedOrUpdatedListener::class,
],
Events\Users\UserUpdated::class => [
Listeners\Users\SetDefaultAvatarListener::class,
Listeners\Users\SyncIntercom::class,
Listeners\Users\SyncPlanhat::class,
Listeners\Users\SyncUserPilot::class,
Listeners\Users\DeleteScheduledUserActivitiesForInsightSeatUsers::class,
Component\BillingManagement\Listeners\UserCreatedOrUpdatedListener::class,
],
Events\Users\UserPhotoUpdated::class => [
Listeners\Activities\ReindexForUserListener::class,
],
Jiminny\Events\Users\UserDeactivated::class => [
Jiminny\Listeners\Activities\ReindexForUserListener::class,
Listeners\Mailbox\DeactivateUserListener::class,
],
Jiminny\Events\Users\UserDeleted::class => [
Jiminny\Listeners\Activities\ReindexForUserListener::class,
],
Events\Users\SocialAccountConnected::class => [
Listeners\Users\SetupCalendarSync::class,
Listeners\Users\ActivityProviderIntegrated::class,
Listeners\Authentication\Intercom\UpdateSocialTag::class,
Listeners\Users\SetupMailSync::class,
Listeners\Crm\BootstrapIntegrationApp::class,
],
Events\Users\CrmAccountReconnected::class => [
Listeners\Crm\ImportMetadata::class,
],
Events\Users\SocialAccountDisconnected::class => [
Listeners\Users\NotifyCrmOwnerDisconnectedListener::class,
Listeners\Users\NotifyCrmUserDisconnectedListener::class,
Listeners\Users\ActivityProviderDisconnectedListener::class,
Listeners\Authentication\Intercom\UpdateSocialTag::class,
],
Events\Users\GroupChangedEvent::class => [
Listeners\Activities\ReindexForUserListener::class,
Listeners\Playlists\ImportGroupPlaylistSharesListener::class,
],
Events\Calendars\EventChanged::class => [
Jiminny\Services\MeetingGenerator\Listeners\MeetingUpdated::class,
],
Events\Calendars\EventCancelled::class => [
Listeners\Calendars\EventCancelled::class,
Listeners\Activities\Providers\CancelledInCalendar::class,
Jiminny\Services\MeetingGenerator\Listeners\MeetingCancelled::class,
],
Events\Crm\OpportunityUpdated::class => [
Listeners\Activities\ReindexForOpportunityListener::class,
Listeners\DealRisks\RecalculateDealRiskOnOpportunityChange::class,
],
Events\Crm\AccountUpdated::class => [
Listeners\Activities\ReindexForAccountListener::class,
],
Events\Crm\ContactUpdated::class => [
Listeners\Activities\ReindexForContactListener::class,
],
Events\Crm\LeadUpdated::class => [
Listeners\Activities\ReindexForLeadListener::class,
],
Events\Crm\ProfileCreated::class => [
Listeners\Crm\SyncProfileOpportunities::class,
Listeners\Crm\SyncProfileLeads::class,
],
// Local CRM records are stale, cleaning up after remote deletion
Events\Crm\RemoteCrmRecordDeleted::class => [
Listeners\Crm\RemoteCrmRecordDeletedListener::class,
],
// Activity Related Events
Events\Activities\ActivityUpdated::class => [
],
Events\Activities\ActivityTypeUpdated::class => [
Component\Settings\AutoScoring\Listeners\AnalyzeActivityScorecards::class,
// CRM Filling is executed here after ActivityProcessingEndOfPipeline
// AI Call Scoring is executed here after ActivityProcessingEndOfPipeline
],
Events\Groups\SettingsUpdated::class => [
Listeners\DealRisks\RecalculateDealRiskOnSettingsUpdate::class,
],
Events\Activities\TrackReady::class => [
Listeners\Activities\ImportRemoteTrackListener::class,
],
Events\Activities\TrackImportedEvent::class => [
Component\FFMpeg\Listeners\AnalyzeTrackChannelsListener::class,
Listeners\Activities\DialerMetricsImportedActivityListener::class,
],
Component\FFMpeg\Events\Audio\TrackChannelsAnalyzedEvent::class => [
Listeners\Activities\Audio\SwitchAudioChannels::class,
],
Events\Activities\Audio\AudioChannelsReady::class => [
Listeners\Activities\Audio\TrimHoldMusic::class,
],
Events\Activities\Audio\TrackTrimmed::class => [
Listeners\Activities\Audio\StartMediaPipeline::class,
],
Component\MediaPipeline\Events\ActivityProcessingPipelineStartedEvent::class => [
Component\Encoding\Listeners\CalculateTalkTimeFromSilenceListener::class,
CreateM3U8MediaListener::class,
],
Component\Encoding\Events\SpeechFromSilenceGeneratedEvent::class => [
Component\Activity\Listener\ActivityLanguageConfirmListener::class,
],
Component\Activity\Event\ActivityProcessingEndOfPipelineEvent::class => [
Component\Activity\Listener\ActivityProcessingEndOfPipelineListener::class,
],
Component\Activity\Event\ActivityProcessingDoneEvent::class => [
Component\Webhooks\Listeners\CreateConversationProcessedWebhook::class,
Component\AiAutomation\Listeners\PendingAnalysis\ActivityPendingAiAnalysisAfterProcessingDoneListener::class,
],
Component\Activity\Event\ActivityProcessingFailedEvent::class => [
Component\AiAutomation\Listeners\PendingAnalysis\ActivityPendingAiAnalysisAfterProcessingDoneListener::class,
Listeners\Activities\Crm\AutoLogActivity::class,
],
Component\ActivityAnalytics\Event\ActivityLanguageConfirmed::class => [
Listeners\Transcription\TranscriptionInitListener::class,
],
Events\Transcription\TranscriptionReady::class => [
Component\ActivityAnalytics\Listener\CalculateAnalyticsListener::class,
Jiminny\Component\TranscriptionSummary\Listeners\SummarizeTranscriptionListener::class,
Jiminny\Component\ActionItems\Listeners\GenerateActionItemsListener::class,
Component\KeyPoints\Listeners\GenerateKeyPointsListener::class,
Jiminny\Component\AiActivityType\Listeners\GenerateAiActivityTypeListener::class,
Listeners\DealRisks\RecalculateDealRisksOnTranscriptionReady::class,
Component\Transcription\Listener\TranslateTranscriptListener::class,
],
Component\ActivityAnalytics\Event\AnalyticsCompletedEvent::class => [
SendImmediateNudgeListener::class,
Component\Settings\AutoScoring\Listeners\AnalyzeActivityScorecards::class,
],
Events\Activities\Audio\TrackTranscoded::class => [
],
Events\Activities\Audio\TrackSegmented::class => [
Listeners\Activities\Audio\TrackSegmented::class,
],
Events\Activities\Audio\TrackAvailable::class => [
Listeners\Activities\Audio\TrackAvailable::class,
Listeners\Activities\Coaching\CreateAvailabilityNotification::class,
],
Events\Activities\Audio\RecordingStarted::class => [
Listeners\Activities\Audio\Recording::class,
],
Events\Activities\Audio\RecordingStopped::class => [
Listeners\Activities\Audio\Recording::class,
],
Events\Activities\Audio\RecordingPaused::class => [
Listeners\Activities\Audio\Recording::class,
],
Events\Activities\Audio\RecordingResumed::class => [
Listeners\Activities\Audio\Recording::class,
],
Events\Activities\Audio\RecordingEnabled::class => [
Listeners\Activities\Audio\Recording::class,
],
Component\FFMpeg\Events\Video\TrackChannelsAnalyzedEvent::class => [
Listeners\Activities\Audio\DemuxAudioOnlyListener::class,
Component\PlaybackPage\Snapshots\Listeners\GenerateSnapshotsListener::class,
],
Events\Activities\Video\TrackDemuxedAudio::class => [
Listeners\Activities\Audio\StartMediaPipeline::class,
],
Events\Activities\Audio\SpeechTimesCalculated::class => [
],
Events\Activities\ActivityExported::class => [
Listeners\Activities\GenerateExportTokens::class,
Listeners\Activities\Coaching\UserPilot\CreateExportedEvent::class,
Component\Webhooks\Listeners\CreateActivityExportedWebhook::class,
],
Events\Activities\ExportTokenGenerated::class => [
Listeners\Activities\SendExportEmail::class,
],
Events\Activities\Crm\StageChanged::class => [
],
Events\Opportunities\AskJiminnyOnDealPromptUpdate::class => [
Listeners\Opportunities\ClearAskJiminnyOnDealCache::class,
],
Events\Activities\Crm\ActivityLogged::class => [
Listeners\Activities\Coaching\Intercom\CreateActivitySummarizedEvent::class,
Listeners\Activities\Coaching\Planhat\CreateActivityLoggedEvent::class,
Listeners\Activities\Coaching\UserPilot\CreateActivityLoggedEvent::class,
Listeners\DealRisks\RecalculateDealRisksOnActivityChange::class,
Listeners\Activities\Crm\Summary\ActivityLoggedListener::class,
],
Events\Activities\Crm\ActivityScheduled::class => [
Listeners\DealRisks\RecalculateDealRisksOnActivityChange::class,
],
Events\Activities\Crm\ActivityCancelled::class => [
Listeners\DealRisks\RecalculateDealRisksOnScheduledActivity::class,
],
Events\Activities\Crm\ActivityCancelledAsNoShow::class => [
Listeners\Activities\Crm\AutoLogCancelledActivity::class,
],
Events\Activities\Crm\ActivityLinkedToCrm::class => [
],
Events\Activities\Crm\EmailWithCRMObjectsProcessed::class => [
Listeners\DealRisks\RecalculateDealRisksOnActivityChange::class,
Listeners\Opportunities\ClearAskJiminnyOnDealCache::class,
Component\AiAutomation\Listeners\PendingAnalysis\EmailActivityPendingAiAnalysisAfterImport::class,
],
Events\Activities\Sms\Sent::class => [
Listeners\Activities\Sms\Intercom\CreateSmsSentEvent::class,
Listeners\Activities\Sms\Planhat\CreateSmsSentEvent::class,
Listeners\Activities\Crm\AutoLogActivity::class,
],
Events\Activities\Sms\Undelivered::class => [
],
Events\Activities\Sms\Failed::class => [
],
Events\Activities\Sms\Delivered::class => [
Listeners\DealRisks\RecalculateDealRisksOnActivityChange::class,
],
Events\Activities\Sms\Received::class => [
Listeners\Activities\Sms\CreateReceivedNotification::class,
Listeners\Activities\Sms\Intercom\CreateSmsReceivedEvent::class,
Listeners\Activities\Sms\Planhat\CreateSmsReceivedEvent::class,
Listeners\Activities\Crm\AutoLogActivity::class,
Listeners\DealRisks\RecalculateDealRisksOnActivityChange::class,
],
Events\Users\NumberVerified::class => [
],
Events\Activities\Bots\MeetingBotEvent::class => [
Listeners\Activities\Bots\EventHandler::class,
],
Events\Activities\Conferences\StartingSoon::class => [
Listeners\Activities\ResolveProvider::class,
Listeners\Crm\SyncOpportunity::class,
Listeners\Crm\ResolveOwner::class,
],
Events\Activities\Conferences\ParticipantDeclinedRecordingEvent::class => [
Listeners\Activities\Conferences\ParticipantDeclinedRecordingListener::class,
],
Events\Activities\Conferences\Locked::class => [
Listeners\Activities\Conferences\Locked::class,
],
Events\Activities\Conferences\Started::class => [
Listeners\Activities\Conferences\Started::class,
Listeners\Activities\Crm\UpdateCrmData::class,
Listeners\DealRisks\RecalculateDealRisksOnScheduledActivity::class,
],
Events\Activities\Conferences\Ended::class => [
Listeners\Activities\Conferences\Ended::class,
Listeners\Activities\Audio\StartMediaPipeline::class,
Listeners\Activities\Conferences\Intercom\CreateHeldActivityEvent::class,
Listeners\Activities\Conferences\Planhat\CreateHeldActivityEvent::class,
Listeners\Activities\Conferences\UserPilot\CreateHeldActivityEvent::class,
Listeners\Activities\Crm\AutoSyncActivity::class,
Listeners\Activities\Conferences\MatchMeetingOwnerEvent::class,
],
Events\Activities\Conferences\ConferenceFailedEvent::class => [
],
Events\AiCallScoring\AiScorecardCompletedEvent::class => [
Component\Webhooks\Listeners\CreateAiScorecardCompletedWebhook::class,
],
\Spatie\WebhookServer\Events\WebhookCallSucceededEvent::class => [
Listeners\Webhook\LogWebhookDeliveryListener::class . '@handleSucceeded',
],
\Spatie\WebhookServer\Events\WebhookCallFailedEvent::class => [
Listeners\Webhook\LogWebhookDeliveryListener::class . '@handleFailed',
],
\Spatie\WebhookServer\Events\FinalWebhookCallFailedEvent::class => [
Listeners\Webhook\LogWebhookDeliveryListener::class . '@handleFinalFailed',
],
Component\TranscriptionSummary\Events\TranscriptionAiSummaryReadyEvent::class => [
Listeners\Activities\Crm\Summary\AiSummaryCreatedListener::class,
Listeners\Opportunities\ClearAskJiminnyOnDealCache::class,
],
Events\Activities\Conferences\Rescheduled::class => [
Listeners\DealRisks\RecalculateDealRisksOnScheduledActivity::class,
],
Events\Activities\Conferences\Scheduled::class => [
Listeners\Activities\Conferences\Intercom\CreateScheduledActivityEvent::class,
Listeners\Activities\Conferences\Planhat\CreateScheduledActivityEvent::class,
Listeners\Activities\Following\CreateScheduledNotification::class,
Listeners\DealRisks\RecalculateDealRisksOnScheduledActivity::class,
],
Events\Activities\Softphone\Ended::class => [
Listeners\Activities\Softphone\Intercom\CreateDialerActivityEvent::class,
Listeners\Activities\Softphone\Planhat\CreateDialerActivityEvent::class,
Listeners\Activities\Softphone\UserPilot\CreateDialerActivityEvent::class,
Listeners\Activities\Crm\AutoSyncActivity::class,
],
Events\Activities\Dialers\CallImported::class => [
Listeners\Activities\Softphone\Intercom\CreateDialerActivityEvent::class,
Listeners\Activities\Softphone\Planhat\CreateDialerActivityEvent::class,
Listeners\Activities\Softphone\UserPilot\CreateDialerActivityEvent::class,
Listeners\DealRisks\RecalculateDealRisksOnActivityChange::class,
],
Events\Sidekick\SidekickDisabled::class => [
],
Events\Sidekick\AutologEnabled::class => [
Listeners\Activities\Crm\UserPilot\CreateAutologEnabledEvent::class,
],
Events\Activities\Crm\AutoLogActivity::class => [
Listeners\Activities\Crm\AutoLogActivity::class,
],
Events\Teams\NotificationProviderEnabled::class => [
Listeners\Teams\UserPilot\TrackNotificationProviderEnabled::class,
ImportSlackUsersAccountsListener::class,
],
Events\Activities\Sessions\Started::class => [
Listeners\Activities\Sessions\Started::class,
],
Jiminny\Events\Activities\Sessions\Ended::class => [
Jiminny\Listeners\Activities\Sessions\Ended::class,
Jiminny\Listeners\Activities\Audio\StartMediaPipeline::class,
],
Events\Activities\Sessions\Muted::class => [
Listeners\Activities\Sessions\Muted::class,
],
Events\Activities\Sessions\Unmuted::class => [
Listeners\Activities\Sessions\Unmuted::class,
],
Events\Activities\Connections\Opened::class => [
Listeners\Activities\Connections\Opened::class,
Listeners\Activities\Crm\MatchCrmObject::class,
],
Jiminny\Events\Activities\Connections\Closed::class => [
Listeners\Activities\Audio\StartMediaPipeline::class,
Jiminny\Listeners\Activities\Connections\Closed::class,
Jiminny\Listeners\Activities\Connections\IngestInsights::class,
],
Events\Activities\Connections\Muted::class => [
Listeners\Activities\Connections\Muted::class,
],
Events\Activities\Connections\Unmuted::class => [
Listeners\Activities\Connections\Unmuted::class,
],
Events\Activities\Connections\Held::class => [
Listeners\Activities\Connections\Held::class,
],
Events\Activities\Connections\Unheld::class => [
Listeners\Activities\Connections\Unheld::class,
],
Events\Activities\Participants\Joined::class => [
Listeners\Activities\Crm\MatchCrmObject::class,
],
Events\Activities\Messages\Created::class => [
Listeners\Activities\Coaching\CreateMessageCreatedNotification::class,
],
// Coaching Related Events
Events\Activities\Coaching\Coached::class => [
Listeners\Activities\Coaching\CreateCoachingFeedbackNotification::class,
Listeners\Activities\Coaching\Intercom\CreateManagerCoachedEvent::class,
Listeners\Activities\Coaching\Intercom\CreateSelfCoachedEvent::class,
Listeners\Activities\Coaching\Planhat\CreateManagerCoachedEvent::class,
Listeners\Activities\Coaching\Planhat\CreateSelfCoachedEvent::class,
Listeners\Activities\Coaching\Planhat\CreateCoachingFeedbackReceivedEvent::class,
Listeners\Activities\Coaching\Planhat\CreateCoachingFeedbackCompletedEvent::class,
Component\Webhooks\Listeners\CreateCoachingFeedbackCompletedWebhook::class,
],
Events\Activities\Coaching\CoachRequested::class => [
Listeners\Activities\Coaching\CreateRequestNotification::class,
],
Events\Activities\Coaching\Commented::class => [
Listeners\Activities\Coaching\CreateCommentNotification::class,
Listeners\Activities\Coaching\CreateMentionNotification::class,
Listeners\Activities\Coaching\Intercom\CreateCommentedEvent::class,
Listeners\Activities\Coaching\Planhat\CreateCommentedEvent::class,
Listeners\Activities\Coaching\CreateNotifyContributorNotification::class,
],
Events\Activities\Coaching\Shared::class => [
Listeners\Activities\Coaching\CreateShareNotification::class,
Listeners\Activities\Coaching\Intercom\CreateSharedEvent::class,
Listeners\Activities\Coaching\Planhat\CreateSharedEvent::class,
Listeners\Activities\Coaching\UserPilot\CreateSharedEvent::class,
Component\Webhooks\Listeners\CreateConversationShareWebhook::class,
],
Component\Playlist\Events\NewTrackEvent::class => [
Listeners\Playlists\Activities\CreatePlaylistAddedNotification::class,
Listeners\Playlists\Planhat\CreateActivityAddedToPlaylistEvent::class,
Listeners\Playlists\UserPilot\CreateActivityAddedToPlaylistEvent::class,
],
Events\Activities\Coaching\Played::class => [
Listeners\Activities\Coaching\Intercom\CreatePlayedEvent::class,
Listeners\Activities\Coaching\Planhat\CreatePlayedEvent::class,
Component\Webhooks\Listeners\CreateConversationPlayedWebhook::class,
],
Jiminny\Events\Activities\Coaching\LiveCoached::class => [
Jiminny\Listeners\Activities\Coaching\CreateLiveCoachNotification::class,
],
Events\Opportunities\Commented::class => [
Listeners\Opportunities\CreateCommentNotification::class,
Listeners\Opportunities\CreateMentionNotification::class,
Listeners\Opportunities\CreateAlsoCommentedNotification::class,
],
Events\Playbooks\PlaybookCreated::class => [
Listeners\Playbooks\AttachLayout::class,
Listeners\Playbooks\CreatePlaybookCreatedEvent::class,
Listeners\Crm\ImportActivityTypes::class,
],
Events\Playbooks\PlaybookUpdated::class => [
],
Events\Playlists\PlaylistCreated::class => [
Listeners\Activities\Coaching\UserPilot\CreatePlaylistCreatedEvent::class,
],
Events\Groups\GroupCreated::class => [
Listeners\Users\CreateGroupCreatedEvent::class,
],
Events\Groups\GroupUpdated::class => [
Listeners\Playbooks\ChangeSidekickSettings::class,
Listeners\Activities\ReindexForGroupListener::class,
],
Events\Groups\GroupDeleted::class => [
Listeners\Groups\CleanupGroupSearchFilters::class,
],
// Team Related Events...
Events\Teams\TeamCreated::class => [
Listeners\Teams\UpdateSalesforceAccount::class,
Listeners\Teams\CreateTwilioSubAccount::class,
Listeners\Teams\CreateDefaultLayouts::class,
Listeners\Teams\CreateTeamFolders::class,
Listeners\Teams\CreateDefaultJobTitles::class,
Listeners\Teams\SyncIntercomCompany::class,
Listeners\Teams\SyncPlanhatCompany::class,
Listeners\Teams\InstallInstantInviteCapableProviders::class,
Component\ActivityAnalytics\Listener\InsertDefaultThemes::class,
Jiminny\Services\UserPilot\SyncUserPilotCompanyListener::class,
],
Events\Teams\TeamUpdated::class => [
Listeners\Teams\UpdateSalesforceAccount::class,
Listeners\Teams\CreateTwilioSubAccountOnUpdate::class,
Listeners\Teams\SyncIntercomCompany::class,
Listeners\Teams\SyncPlanhatCompany::class,
Jiminny\Services\UserPilot\SyncUserPilotCompanyListener::class,
],
Events\Teams\UserInvitedToTeam::class => [
],
Events\Teams\OwnerAssigned::class => [
],
Events\Teams\TeamMemberAdded::class => [
],
Events\Nudges\NudgeCreated::class => [
Listeners\Nudges\CreateNudgeCreatedEvent::class,
Listeners\Nudges\UserPilot\CreateNudgeCreatedEvent::class,
],
Events\Activities\Provider\ActivityProviderInstalledEvent::class => [
Listeners\Activities\ActivityProvider\UserPilot\TrackProviderInstalledEvent::class,
],
\Illuminate\Mail\Events\MessageSending::class => [
Listeners\Users\ValidateSendingMessage::class,
],
\Illuminate\Notifications\Events\NotificationSending::class => [
Listeners\Users\ValidateSendingNotification::class,
],
Events\Teams\SlackBotDisconnected::class => [
Listeners\Teams\RemoveSlackBot::class,
],
Events\Activities\Crm\ActivityLeadConverted::class => [
Jiminny\Services\Crm\Listeners\PurgeLookupCache::class,
],
Events\Activities\Crm\LeadConverted::class => [
Jiminny\Services\Crm\Listeners\ConvertLeadActivities::class,
],
Events\Teams\DeactivateTeamEvent::class => [
Listeners\Teams\UnsubscribeTeamEventsAction::class,
Listeners\Teams\HubspotAppUninstallListener::class,
Listeners\Teams\DeactivateTeamAction::class,
],
Events\Activities\Provider\SyncActivityProviderEvent::class => [
Listeners\Activities\Providers\SyncActivityProviderAction::class,
],
Events\Activities\Provider\DisableActivityProviderEvent::class => [
Listeners\Activities\Providers\DisableActivityProviderAction::class,
],
Events\Activities\SetupIntegrationEvent::class => [
Listeners\Activities\SetupIntegrationAction::class,
],
Events\Activities\ActivityProvider\JustCall\UpdateCallDispositionEvent::class => [
Listeners\Activities\ActivityProvider\JustCall\UpdateCallDispositionAction::class,
],
\Illuminate\Queue\Events\JobProcessing::class => [
Listeners\ChangeLogContextCorrelationId::class,
],
Events\Crm\LayoutUpdatedEvent::class => [
Listeners\Crm\LayoutUpdatedListener::class,
],
Events\Crm\LayoutModifiedEvent::class => [
Listeners\Crm\LayoutModifiedListener::class,
],
Events\Crm\DetachActivityObject::class => [
Listeners\Crm\RematchActivityOnCrmObjectDetach::class,
],
Events\Activities\Audio\UpdateActivityTimesMismatchEvent::class => [
Jiminny\Services\Activity\BaseService\Listener\UpdateActivityTimesMismatchListener::class,
Jiminny\Services\Activity\Outreach\Listener\UpdateActivityTimesMismatchListener::class,
Jiminny\Services\Activity\FiveNine\Listener\UpdateActivityTimesMismatchListener::class,
],
Events\Crm\ProspectUpdated::class => [
[Jiminny\Services\Crm\ProspectCache::class, 'handleProspectUpdated'],
],
Events\Activities\ActivityProvider\CrmActivityProviderIntegratedEvent::class => [
Jiminny\Services\Crm\CrmActivityProviderIntegratedEventListener::class,
],
/**
* Trigger ES Update operations from events ONLY!
*/
Jiminny\Contracts\ES\Events\UpdateSingleEntity::class => [
Component\ES\Listeners\UpdateSingleTargetListener::class,
],
/**
* Trigger ES Update operations from events ONLY!
*/
Jiminny\Contracts\ES\Events\UpdateMultipleEntities::class => [
Component\ES\Listeners\UpdateMultipleTargetsListener::class,
],
/**
* Trigger AI Automation Analysis for an activity with associated opportunity
* and transcription / email content
*/
Events\Activities\AiAutomation\RunActivityAiAnalysis::class => [
Jiminny\Component\AiAutomation\Listeners\RunActivityAiAnalysisListener::class,
],
/**
* Run AiAutomation analysis on an Opportunity.
*/
Events\Activities\AiAutomation\RunOpportunityAiAnalysis::class => [
Jiminny\Component\AiAutomation\Listeners\RunOpportunityAiAnalysisListener::class,
],
/**
* A new prospect is added. Validate if we need to send it for Ai Automation.
*/
Events\Activities\AiAutomation\ActivityProspectAdded::class => [
Component\AiAutomation\Listeners\PendingAnalysis\ActivityPendingAiAnalysisAfterProspectAdded::class,
Component\AiCallScoring\Listeners\RegenerateAiCallScoringOnDealChangeListener::class,
],
/**
* Manually start the AiAutomation analysis. Mimics the end of processing pipeline contract
*/
Events\Activities\AiAutomation\ManualTriggerForAnalysis::class => [
Component\AiAutomation\Listeners\PendingAnalysis\ActivityPendingAiAnalysisAfterProcessingDoneListener::class,
],
/**
* Conference activity is imported. Validate if we need to send it for Ai Automation.
*/
Events\Activities\AiAutomation\ConferenceActivityImported::class => [
Component\AiAutomation\Listeners\PendingAnalysis\ActivityPendingAiAnalysisAfterConferenceImported::class,
],
/**
* An opportunity stage has changed. Validate if we need to send it for Ai Automation
*/
Events\Crm\OpportunityStageUpdated::class => [
Component\AiAutomation\Listeners\PendingAnalysis\OpportunityPendingAiAnalysisAfterStageChanged::class,
],
/**
* Manage the system layout for AI Automation.
*/
Events\Activities\AiAutomation\TemplateFieldsUpdated::class => [
Component\AiAutomation\Listeners\Layout\PrepareAiTemplateSystemLayout::class,
],
/**
* AiAutomation analysis is saved in db, and pending to be processed,
* potentially even sent to the CRM depending on flags and current target state.
*/
Events\Activities\AiAutomation\AiAutomationAnalysisReady::class => [
Component\AiAutomation\Listeners\ProcessAiAutomationAnalysisResults::class,
],
/**
* Trigger AiAutomation analysis if Task or Event is assigned to the activity.
*/
Events\Activities\ActivityCrmProvidedUpdated::class => [
Component\AiAutomation\Listeners\PendingAnalysis\ActivityPendingAiAnalysisAfterCrmProviderUpdated::class,
],
/**
* Handle CRM field validation failures from Salesforce.
*/
Events\AiAutomation\CrmFieldValidationFailedEvent::class => [
Component\AiAutomation\Listeners\HandleCrmFieldValidationFailureListener::class,
],
];
/** Register any other events for your application. */
public function boot(): void
{
User::observe(UserObserver::class);
User::laratrustObserve(UserRoleObserver::class);
Group::observe(GroupObserver::class);
}
/**
* Determine if events and listeners should be automatically discovered.
*/
public function shouldDiscoverEvents(): bool
{
return false;
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Sync Changes
Hide This Notification
Code changed:
Hide
35
1
33
63
Previous Highlighted Error
Next Highlighted Error
SELECT * FROM teams WHERE name LIKE '%litify%'; # 1069, 994, 24993
SELECT * FROM users WHERE id = 25061;
SELECT * FROM crm_profiles WHERE crm_configuration_id = 994;
SELECT * FROM crm_profiles WHERE user_id = 25061;
select * from crm_configurations where id = 834;
SELECT * FROM teams WHERE id = 882;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 882 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal
SELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations WHERE provider = 'hubspot' and crm_provider_id = 7270388;
SELECT * FROM contacts where crm_configuration_id = 834;
SELECT * FROM opportunities WHERE team_id = 933
# AND crm_provider_id IN ('20131586060','46017317898','52543911090','53451356564','54101251892','54323768459');
AND id IN (8482561,18352941,19042734,19232139,19445140,19472541);
SELECT * FROM opportunity_contacts
WHERE opportunity_id IN (8482561,18352941,19042734,19232139,19445140,19472541);
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 485; #
SELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
select crm.provider, l.* from leads l join crm_configurations crm on l.crm_configuration_id = crm.id
where crm.provider NOT IN ('salesforce', 'integration-app', 'bullhorn', 'copper')
# and l.converted_at IS NOT NULL
;
# [PASSWORD_DOTS]
SELECT * FROM activities a WHERE type IN ('email-inbound', 'email-outbound')
and opportunity_id IS NULL
order by id desc;
SELECT * FROM teams WHERE id = 604; # 598
SELECT * FROM activities WHERE id = 74410828; # [EMAIL]
SELECT * FROM accounts WHERE id = 20068382;
SELECT * FROM accounts WHERE id = 35186038;
SELECT * FROM contacts WHERE team_id = 852 and updated_at > '2026-01-23 12:30:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 559 and sa.provider = 'hubspot';
SELECT * FROM activities WHERE uuid_to_bin('cb6342b6-a183-401c-b0af-ede92b2ae763') = uuid;
select * from sidekick_settings where team_id = 781;
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 26651871; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 7562435;
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8420347; # opflit 2100
SELECT * FROM crm_layouts WHERE crm_configuration_id = 711;
SELECT * FROM activities where crm_configuration_id = 711 and crm_provider_id IS NULL
and is_internal = 0 and status = 'completed'
order by id desc;
SELECT * FROM crm_layout_entities
WHERE crm_layout_id IN (2352, 2353);
;
SELECT * FROM crm_configurations where provider = 'hubspot' and id = 530;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 556 and sa.provider = 'hubspot';
SELECT * FROM activities WHERE uuid_to_bin('c6ca4b22-7738-4563-a95d-b8a9598924ae') = uuid;
SELECT * FROM activities WHERE uuid_to_bin('442abb2b-28bd-4be8-9c25-19e9bf02766d') = uuid;
select * from contacts
where crm_configuration_id = 530
and crm_provider_id = 872252;
select * from activities where crm_configuration_id = 530
and user_id = 14343 and type like '%softphone%'
and created_at between '2026-01-28 15:00:00' and '2026-01-28 15:10:00';
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 25666868; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8646335; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id IN (5933397);
SELECT t.name, t.id, t.owner_id, c.id, c.provider, c.crm_base_url FROM teams t
JOIN crm_configurations c ON t.id = c.team_id
WHERE t.status = 'active';
SELECT * FROM teams where id = 1091;
SELECT * FROM crm_configurations where team_id = 1091;
SELECT * FROM activity_providers where team_id = 1091;
SELECT * FROM activities where crm_configuration_id = 1024 and type IN ('softphone', 'softphone-outbound')
and provider NOT IN ('hubspot', 'aircall')
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by id desc;
SELECT * FROM teams WHERE name LIKE '%Leadventure%';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1091 and sa.provider = 'salesforce';
SELECT * FROM teams WHERE name LIKE '%Wilson%'; # 862, 812
SELECT * FROM teams where id = 862;
SELECT * FROM crm_configurations where team_id = 862;
SELECT * FROM activity_providers where team_id = 862;
SELECT * FROM activities where crm_configuration_id = 812 and type IN ('softphone', 'softphone-outbound')
and provider NOT IN ('hubspot', 'aircall')
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by id desc;
SELECT t.id, crm.id, crm.provider, ap.* FROM teams t
join crm_configurations crm on t.id = crm.team_id
join activity_providers ap on t.id = ap.team_id
where t.status = 'active' and ap.is_enabled = 1
and crm.provider = 'hubspot'
and ap.provider NOT IN ('hubspot', 'aircall', 'uploader', 'gong', 'twilio', 'zoom-bot', 'google-meet', 'ms-teams',
'outreach', 'close', 'ringcentral', 'dialpad', 'zoom-phone');
SELECT * FROM teams where id = 1068;
SELECT * FROM crm_configurations where team_id = 1068;
SELECT * FROM activity_providers where team_id = 1068;
SELECT * FROM activities a
where crm_configuration_id = 993 and type IN ('softphone', 'softphone-outbound')
and a.provider NOT IN ('hubspot', 'uploader', 'gong', 'twilio', 'google-meet', 'ms-teams','close'
)
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by a.id desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1068 and sa.provider = 'hubspot';
# [PASSWORD_DOTS]
# [PASSWORD_DOTS]
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal , portalId: 6017093
SELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-06 00:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 834; # 882 - AnyVan , portalId: 5468262
SELECT * FROM contacts WHERE crm_configuration_id = 834 and updated_at > '2026-03-30 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE crm_configuration_id = 834 and updated_at > '2026-03-04 08:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 882 and sa.provider = 'hubspot';
select * from crm_layouts where crm_configuration_id = 834;
select * from crm_layout_entities where crm_layout_id = 2780;
select * from crm_fields where id IN (321153,321192,321193,321194);
SELECT * FROM opportunities WHERE crm_configuration_id = 834 and id = 10993426;
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 988; # 1057 - Teya (543ce4f4-168c-4571-91ea-5b35c253f06f) , portalId: 26651871
SELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1057 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations where id = 533; # 559 - Connectd , portalId: 6710988
SELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 801; # 852 - Rise Vision , portalId: 2700250
SELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-04 00:00:00' order by updated_at desc; # 6th last
SELECT * FROM crm_configurations where id = 962; # 1034 - evergrowth.io , portalId: 143180990
SELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 1037; # 1102 - Jibble , portalId: 6649755
SELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 8
SELECT * FROM crm_configurations where id = 1015; # 1049 - Travefy , portalId: 48904401
SELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 20
SELECT * FROM crm_configurations where id = 64; # 70 - SalaryFinance , portalId: 3404115
SELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 6th last
SELECT * FROM crm_configurations where id = 802; # 853 - Street Group , portalId: 7658438
SELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 10
SELECT * FROM crm_configurations where id = 872; # 921 - In Professional Development , portalId: 9238273
SELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 2
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 550; # 576 - SeedLegals , portalId: 3028661
SELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 989; # 1058 - rtaoutdoor.com , portalId: 22371204
SELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 896; # 946 - Mintago , portalId: 6621281
SELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 617; # 641 - PCS , portalId: 5244937
SELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-05 14:00:00' order by updated_at desc; # 7th
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 649; # 670 - Eventeny , portalId: 4492849
SELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; #
SELECT * FROM crm_configurations where id = 48; # 51 - CleanCloud , portalId: 4373137
SELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-03-04 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-02-09 08:00:00' order by updated_at desc;
select * from users where team_id = 51; # 7783
SELECT * FROM groups WHERE uuid_to_bin('8a8d2cb6-8b55-4fa3-8b5c-5f0e3d8de59a') = uuid; # 1130
select * from activity_searches where user_id = 7783;
select * from activity_search_filters where activity_search_id IN (32291, 32292);
SELECT asf.activity_search_id, asf.id, asf.value
FROM activity_search_filters asf
WHERE asf.filter = 'group_id'
AND asf.value IN (
SELECT CONCAT(
HEX(SUBSTR(uuid, 5, 4)), '-',
HEX(SUBSTR(uuid, 3, 2)), '-',
HEX(SUBSTR(uuid, 1, 2)), '-',
HEX(SUBSTR(uuid, 9, 2)), '-',
HEX(SUBSTR(uuid, 11))
)
FROM groups
WHERE deleted_at IS NOT NULL
);
SELECT * FROM crm_configurations where id = 272; # 290 - Bonham & Brook , portalId: 5705856
SELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-05 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; # 6th
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where provider = 'hubspot';
SELECT * FROM crm_configurations where id = 1056; # 1119 - Chromatic , portalId: 45602133
SELECT * FROM opportunities WHERE team_id = 1119 and remotely_created_at > '2026-02-01 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1119 and updated_at > '2026-02-09 09:00:00' order by updated_at desc; # null
# [PASSWORD_DOTS]
select * from contacts where crm_provider_id = '003Uu00000ojD4NIAU';
select
cp.*
# DISTINCT t.id
# cp.id, cp.user_id, t.id, cp.crm_configuration_id, cp.contact_fields
FROM crm_profiles cp
JOIN crm_configurations crm on crm.id = cp.crm_configuration_id
JOIN users u on u.id = cp.user_id
JOIN teams t ON t.id = crm.team_id
WHERE crm.provider = 'salesforce' and t.status = 'active'
and cp.archived_at IS NULL and u.deleted_at IS NULL
and t.id NOT IN (1093)
and t.id = 2
and cp.contact_fields IS NULL;
# and c.crm_provider_id = '003Uu00000ojD4NIAU';
SELECT * FROM users WHERE id = 26484;
SELECT * FR...
|
NULL
|
|
59240
|
1275
|
25
|
2026-04-20T13:34:22.575068+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776692062575_m2.jpg...
|
PhpStorm
|
PhpStorm
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormINavigareCodeFV faVsco.js°9 master kProlet PhostormINavigareCodeFV faVsco.js°9 master kProletey© SyncFieldMetadata.php© SyncLeads.phpsyncopportunitiesJob.onp© SyncOpportunity.phpsyncrronllemeladata.ono© SyncTeamFieldsJob.phpc) SyncTeammetadata.php©UpdateOpportunitySpecifications.phpC) UpdateStage.phpDealRisksMailboxMidd ewareM Team• TelephonyM User© BaseProcessingJob.php(c) Dummv.loh.nhn© ImportRecallAlRecordingsJob.php© ImportRemoteTrackJob.php© Job.php@ JobDispatcher.phpJobDispatcherlnterface.php© PurgeSoftDeletedOpportunityJob.php0 SqsVisibilityControl.phpv C Listeners~ Activities~ D ActivityProvider> D JustCall~ D UserPilotC) TrackProviderinstalledEvent.pho> D Audio> MBots> _ Coachinav M ConferenceslIntercom• Planhaiv UserPilot(C) Create-leldActivitvsvent.ohnC.Conterencelistener.ohoC) Ended.nhn©Locked.phpC) [EMAIL]) Started nhr)M Connostiond)MCrm> D FollowingM DrovidordActivityController.phpAutomateakeporskepository.pnp© AutomatedReportsCommand.phpHubspotlastmodiriedsyncstrateay.ono© SyncObjects.php x(C)ImportOpportunityBatch.php©)ImportContactBatch.php(C) Service.phpBatchSyncTrait.phpT OpportunitySyncTrait.phpC)Hubspotwebnookbatchsyncstrategy.pnp# SyncCrmEntities Trait.php© Client.php© WebhookSyncBatchProcessor.pho©HubspotPaginationService.phpAutomatedReportsController.phsphp api_v2.php(C) AutomatedReportResult.ohv(C) AutomatedReport.ohoclass SyncObjects extends Job implements ShouldQueuepublic function handle(13213413714114211451461481usaGeorivate function dasoatchSalesforceretch..oosint ScrmConfiaurationidlConfiguration ScrmConfig,LoggerInterface $logger): void &$entityTypes = [SyncBatch::ENTITY_TYPE_LEAD,SyncBatch::ENTITY_TYPE_OPPORTUNITY,SyncBatch::ENTITY_TYPE_CONTACT,SyncBatch::ENTITY_TYPE_CONTACT_ROLE,$logger->info('[SyncObjects] Dispatching Salesforce fetch jobs', I'cean =› scnis->reanlo'crm_configuration_id' => $crmConfigurationId,'entity types' => Sentitylypesforeach ($entityTypes as $index => $entityType) {$since = CarbonImmutable: : instance($crmConfig->getEntitySyncedAt($entityType));"delav = sindex *5FetchSalesforceEntitiesJob::dispatchldScrmConfiaurationid$entityType,Ssincel)->delag(now()->addSeconds(Sdelay)):$logger->info('[SyncObjects) Dispatched fetch job', I= ScrmConfiaunationtd.'entity_type' = $entityType,= Ssince->toTco8601Stning0lick // Configure... (today 14:06)|X1 A v —589590591100% C28• Mon 20 Apr 16:34:22L AskJiminnyReportActivityServiceTestE custom.logE laravel.logA SF [iminny@localhost]A HS_local (jiminny@localhost]4 console (PROD] x A console [EU]A console [STAGING]Tx: AutoPlaygroundda jiminnySELECT * FROM crm_profiles WHERE crm_configurat:034 A1 A34 X62 A VGELECT * FROM crm confiqurations WHERE id = 555:SELECT * FROM USOS WHERE id 15440; # toam, 581, gr. 15440, pL. 3911, act.CONCAT(u.id, CASE WHEN U.id = t,owner_id THEN ' (owner) ' ELSE "' END) ASU.emall,sa.*,t.owner_id FROM social_accounts saJOIN users u on u.id = sa.sociable_idJOIN teams t 1..n<->1: on t.id = u.team_idVHERE u.team_id = 581 and sa.provider = 'salesforce' :CascadeRetactor ConnectionCRM Initial Sync Over+0 ..• aispatcnes one ProcessSatestorceEntityBatchJob per daten (Processsa lestorceEnt1tybatChJOD.pпp: 42-204) Wnicn reaas tne keaispayload and calls importOpportunityFromPayload() per record (fine-grained retry via RetryFailedSalesforceRecordsJob).Crucially, for opportunities this job already runs multiple strategies through fetch0pportunitiesModifiedSinceWithStrategies() (BatchSyncTrait.php: 63-90) and it already deduplicates across strategies ( trackSeenIds branch in processIterator). So the per-strategy, per-batch dispatch isalready solved - just not parametrised for the profile/since case.What splitting the profile sync into batches would look likeOption A - minimal: reuse FetchSalesforceEntitiesJob for the profile pathtegies ($since) which uses the team-level strategies (no profile filte). To support the ProfileCreated path you'd need to:1. Extend the job to accept an optional profile context + strategy override (e.g. 7int sprofileid, ?string $strategy, ?CarbonImmutable SuntiSELECT * FROM automated_report_results order by id desc;select * from features;select * from team_features where feature_id = 40;select * from teams where id = 556;select * from au•ts where id = 54; # 4fdd41f6-dcf0-30d0-b339-734SELECT * FROM automated_report_results WHERE uuid_to_bin('822fa41b-afd3-43a9select * from automated_report_results order by id desc;SELECT * FROM automated_report_results WHERE id = 1919;2. Add a profile-aware streaming method on Salesforce service (e.g. fetchOpportunitiesForProfile(Profile Sprofile, CarbonImmutable $since,?CarbonImmutable Suntil, ?string $strategy) ) that runs SalesforcelastModifiedByProfileSyncStrategy: :fetchOpportunities() with l'profile' → ..., 'cra_profite_id' → ..., 'since' »> ..., 'to' → ...l and returns the Querylterator .3. In streamRecordsToBatches() branch on "has profile" → call the new method instead of fetchOpportunitiesModifiedSinceWithStrategies().4. In SyneProfs eopportunities (Salesforce branch), dispatch FetchSalesforceEntstlesJob with the profle + strategy + window, instead of syncOpportunitieslob.You get for free:• streamed fetch (no OOM on big owners),•100-record batches via Redis,• per-batch retries with backoff (ProcessSalesforceEntityBatchJob),• per-record failure isolation + RetryFai ledSalesforceRecordsJ0b,key so different profiles don't collide.select * from automated_report_results WHERE report id = 54;select * from opportunities where id = 7594349;ISELEET * FRON FOBRS IHERE nane LTKE 134.081, +4 711, 692, 16867 - iainy inselect * from playbooks where team_id = 711; # event 226147SELECT * FROM playbook_categories WHERE playbook_id = 5515;SELECT * FROM crm_fields WHERE id = 226147;SELECT * FROM crm_field_values WHERE crm_field_id = 226147;8,380836,313SELECT * FROM crm_configurations WHERE id = 692;SELECTCONGAT(U.1d, CASE WHEN U.id = t. owner_id THEN ' (owner)' ELSE "* END) ASv.emair,sa.*,t.owner_id FROM social_accounts saJOTN usens u on trid = ca.cociable idiJOIN teams ton t.id = u.team_idMHEPE n toam id = 711land sa.provider = 'salesforce';RecommendationOption A. The SyncBatch / SyncBatchRedisService / ProcessSalesfdesigned as the canonical batched path; funneling the profile sync through it gives you identical observability ( SyncBatch status, failed recordsretry, unique job IDs) without a second parallel mechanism. The only real code change is:• a profile-aware fetch method on the Salesforce service (reusing SalesforceLastModifiedByProfileSyncStrategy ),• optional (2int Sprofileid, Zstring $strategy, ?string Suntil) constructor args on FetchSalesforceEntitiesJob with an updated uniquelswap the syncopportunitiesJob dispatch in SyncProf steOpportuntles for FetchSalesforceEntitlesJob when the provider is Salesforco.Heads-up: FetchSalesforceEntitiesJ0b:1streamOpportunittesWithStrategies() writes updateEntitySyncedAt("opportunity', ...) on the configat the end (FetchSalesforceEntitiesJob.php: 144-145). For a profile backfill you don't want that side-effect bleeding into the team-levelwatermark - gate it on "no profile context"SELECT * FROM crm_profiles cp JOIN users u 1..n<-›1: on u.id = cp.user_id WHEAsk anvthina (&4-D" CodeClaude Qnus 17 Medium000148:49 (8 chars)UTF-8f 4 spaces...
|
NULL
|
-8828820293117641157
|
NULL
|
click
|
ocr
|
NULL
|
PhostormINavigareCodeFV faVsco.js°9 master kProlet PhostormINavigareCodeFV faVsco.js°9 master kProletey© SyncFieldMetadata.php© SyncLeads.phpsyncopportunitiesJob.onp© SyncOpportunity.phpsyncrronllemeladata.ono© SyncTeamFieldsJob.phpc) SyncTeammetadata.php©UpdateOpportunitySpecifications.phpC) UpdateStage.phpDealRisksMailboxMidd ewareM Team• TelephonyM User© BaseProcessingJob.php(c) Dummv.loh.nhn© ImportRecallAlRecordingsJob.php© ImportRemoteTrackJob.php© Job.php@ JobDispatcher.phpJobDispatcherlnterface.php© PurgeSoftDeletedOpportunityJob.php0 SqsVisibilityControl.phpv C Listeners~ Activities~ D ActivityProvider> D JustCall~ D UserPilotC) TrackProviderinstalledEvent.pho> D Audio> MBots> _ Coachinav M ConferenceslIntercom• Planhaiv UserPilot(C) Create-leldActivitvsvent.ohnC.Conterencelistener.ohoC) Ended.nhn©Locked.phpC) [EMAIL]) Started nhr)M Connostiond)MCrm> D FollowingM DrovidordActivityController.phpAutomateakeporskepository.pnp© AutomatedReportsCommand.phpHubspotlastmodiriedsyncstrateay.ono© SyncObjects.php x(C)ImportOpportunityBatch.php©)ImportContactBatch.php(C) Service.phpBatchSyncTrait.phpT OpportunitySyncTrait.phpC)Hubspotwebnookbatchsyncstrategy.pnp# SyncCrmEntities Trait.php© Client.php© WebhookSyncBatchProcessor.pho©HubspotPaginationService.phpAutomatedReportsController.phsphp api_v2.php(C) AutomatedReportResult.ohv(C) AutomatedReport.ohoclass SyncObjects extends Job implements ShouldQueuepublic function handle(13213413714114211451461481usaGeorivate function dasoatchSalesforceretch..oosint ScrmConfiaurationidlConfiguration ScrmConfig,LoggerInterface $logger): void &$entityTypes = [SyncBatch::ENTITY_TYPE_LEAD,SyncBatch::ENTITY_TYPE_OPPORTUNITY,SyncBatch::ENTITY_TYPE_CONTACT,SyncBatch::ENTITY_TYPE_CONTACT_ROLE,$logger->info('[SyncObjects] Dispatching Salesforce fetch jobs', I'cean =› scnis->reanlo'crm_configuration_id' => $crmConfigurationId,'entity types' => Sentitylypesforeach ($entityTypes as $index => $entityType) {$since = CarbonImmutable: : instance($crmConfig->getEntitySyncedAt($entityType));"delav = sindex *5FetchSalesforceEntitiesJob::dispatchldScrmConfiaurationid$entityType,Ssincel)->delag(now()->addSeconds(Sdelay)):$logger->info('[SyncObjects) Dispatched fetch job', I= ScrmConfiaunationtd.'entity_type' = $entityType,= Ssince->toTco8601Stning0lick // Configure... (today 14:06)|X1 A v —589590591100% C28• Mon 20 Apr 16:34:22L AskJiminnyReportActivityServiceTestE custom.logE laravel.logA SF [iminny@localhost]A HS_local (jiminny@localhost]4 console (PROD] x A console [EU]A console [STAGING]Tx: AutoPlaygroundda jiminnySELECT * FROM crm_profiles WHERE crm_configurat:034 A1 A34 X62 A VGELECT * FROM crm confiqurations WHERE id = 555:SELECT * FROM USOS WHERE id 15440; # toam, 581, gr. 15440, pL. 3911, act.CONCAT(u.id, CASE WHEN U.id = t,owner_id THEN ' (owner) ' ELSE "' END) ASU.emall,sa.*,t.owner_id FROM social_accounts saJOIN users u on u.id = sa.sociable_idJOIN teams t 1..n<->1: on t.id = u.team_idVHERE u.team_id = 581 and sa.provider = 'salesforce' :CascadeRetactor ConnectionCRM Initial Sync Over+0 ..• aispatcnes one ProcessSatestorceEntityBatchJob per daten (Processsa lestorceEnt1tybatChJOD.pпp: 42-204) Wnicn reaas tne keaispayload and calls importOpportunityFromPayload() per record (fine-grained retry via RetryFailedSalesforceRecordsJob).Crucially, for opportunities this job already runs multiple strategies through fetch0pportunitiesModifiedSinceWithStrategies() (BatchSyncTrait.php: 63-90) and it already deduplicates across strategies ( trackSeenIds branch in processIterator). So the per-strategy, per-batch dispatch isalready solved - just not parametrised for the profile/since case.What splitting the profile sync into batches would look likeOption A - minimal: reuse FetchSalesforceEntitiesJob for the profile pathtegies ($since) which uses the team-level strategies (no profile filte). To support the ProfileCreated path you'd need to:1. Extend the job to accept an optional profile context + strategy override (e.g. 7int sprofileid, ?string $strategy, ?CarbonImmutable SuntiSELECT * FROM automated_report_results order by id desc;select * from features;select * from team_features where feature_id = 40;select * from teams where id = 556;select * from au•ts where id = 54; # 4fdd41f6-dcf0-30d0-b339-734SELECT * FROM automated_report_results WHERE uuid_to_bin('822fa41b-afd3-43a9select * from automated_report_results order by id desc;SELECT * FROM automated_report_results WHERE id = 1919;2. Add a profile-aware streaming method on Salesforce service (e.g. fetchOpportunitiesForProfile(Profile Sprofile, CarbonImmutable $since,?CarbonImmutable Suntil, ?string $strategy) ) that runs SalesforcelastModifiedByProfileSyncStrategy: :fetchOpportunities() with l'profile' → ..., 'cra_profite_id' → ..., 'since' »> ..., 'to' → ...l and returns the Querylterator .3. In streamRecordsToBatches() branch on "has profile" → call the new method instead of fetchOpportunitiesModifiedSinceWithStrategies().4. In SyneProfs eopportunities (Salesforce branch), dispatch FetchSalesforceEntstlesJob with the profle + strategy + window, instead of syncOpportunitieslob.You get for free:• streamed fetch (no OOM on big owners),•100-record batches via Redis,• per-batch retries with backoff (ProcessSalesforceEntityBatchJob),• per-record failure isolation + RetryFai ledSalesforceRecordsJ0b,key so different profiles don't collide.select * from automated_report_results WHERE report id = 54;select * from opportunities where id = 7594349;ISELEET * FRON FOBRS IHERE nane LTKE 134.081, +4 711, 692, 16867 - iainy inselect * from playbooks where team_id = 711; # event 226147SELECT * FROM playbook_categories WHERE playbook_id = 5515;SELECT * FROM crm_fields WHERE id = 226147;SELECT * FROM crm_field_values WHERE crm_field_id = 226147;8,380836,313SELECT * FROM crm_configurations WHERE id = 692;SELECTCONGAT(U.1d, CASE WHEN U.id = t. owner_id THEN ' (owner)' ELSE "* END) ASv.emair,sa.*,t.owner_id FROM social_accounts saJOTN usens u on trid = ca.cociable idiJOIN teams ton t.id = u.team_idMHEPE n toam id = 711land sa.provider = 'salesforce';RecommendationOption A. The SyncBatch / SyncBatchRedisService / ProcessSalesfdesigned as the canonical batched path; funneling the profile sync through it gives you identical observability ( SyncBatch status, failed recordsretry, unique job IDs) without a second parallel mechanism. The only real code change is:• a profile-aware fetch method on the Salesforce service (reusing SalesforceLastModifiedByProfileSyncStrategy ),• optional (2int Sprofileid, Zstring $strategy, ?string Suntil) constructor args on FetchSalesforceEntitiesJob with an updated uniquelswap the syncopportunitiesJob dispatch in SyncProf steOpportuntles for FetchSalesforceEntitlesJob when the provider is Salesforco.Heads-up: FetchSalesforceEntitiesJ0b:1streamOpportunittesWithStrategies() writes updateEntitySyncedAt("opportunity', ...) on the configat the end (FetchSalesforceEntitiesJob.php: 144-145). For a profile backfill you don't want that side-effect bleeding into the team-levelwatermark - gate it on "no profile context"SELECT * FROM crm_profiles cp JOIN users u 1..n<-›1: on u.id = cp.user_id WHEAsk anvthina (&4-D" CodeClaude Qnus 17 Medium000148:49 (8 chars)UTF-8f 4 spaces...
|
NULL
|
|
61648
|
1328
|
60
|
2026-04-21T07:06:41.456769+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776755201456_m1.jpg...
|
QuickTime Player
|
Daily 2026-04-21.mp4
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
rewind
play/pause
fast forward
mute
More Controls
rewind
play/pause
fast forward
mute
More Controls
toggle full screen
show external playback menu
show external playback menu
show media selection menu
toggle picture-in-picture playback
show action menu
share
show chapter menu
zoom
zoom
playback speed
13:55
toggle elapsed time, timecode and framecount
14:32
toggle duration and remaining time
document actions
Daily 2026-04-21.mp4...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"rewind","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"play/pause","depth":1,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":true},{"role":"AXButton","text":"fast forward","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"mute","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"More Controls","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"toggle full screen","depth":1,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show external playback menu","depth":1,"role_description":"button","is_focused":false},{"role":"AXButton","text":"show external playback menu","depth":2,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show media selection menu","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"toggle picture-in-picture playback","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show action menu","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"share","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show chapter menu","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"zoom","depth":1,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"zoom","depth":1,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"playback speed","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXStaticText","text":"13:55","depth":1,"role_description":"text"},{"role":"AXCheckBox","text":"toggle elapsed time, timecode and framecount","depth":1,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXStaticText","text":"14:32","depth":1,"role_description":"text"},{"role":"AXCheckBox","text":"toggle duration and remaining time","depth":1,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXMenuButton","text":"document actions","depth":1,"role_description":"menu button","is_enabled":false,"is_focused":false},{"role":"AXStaticText","text":"Daily 2026-04-21.mp4","depth":1,"role_description":"text"}]...
|
-8828782664858175739
|
8232067491680750198
|
visual_change
|
hybrid
|
NULL
|
rewind
play/pause
fast forward
mute
More Controls
rewind
play/pause
fast forward
mute
More Controls
toggle full screen
show external playback menu
show external playback menu
show media selection menu
toggle picture-in-picture playback
show action menu
share
show chapter menu
zoom
zoom
playback speed
13:55
toggle elapsed time, timecode and framecount
14:32
toggle duration and remaining time
document actions
Daily 2026-04-21.mp4
System SettingsFileApril 2soun+EEST08:0009:0010:0611:0012:0013:0014:0015:0016:00SoundSound inputSound outputSound volumeAlerts and sound effectsMute the soundAccessibilityBackground soundsBackgroundsounds volumeFlash the screen when analert sound occursPlay sound whencommand is recognisedPlay soundsPlay sounds for keys anddwell actionsPlay system soundsSelect Background SoundTurn off backgroundsounds when your Mac isnot in useUse click key soundsHearing DevicesBluetoothBluetooth audioControl CentreShow volume in themenu barNetworkEditViewWindowHelpSoundSound EffectsAlert soundPlay sound effects throughAlert volumePlay sound on startupPlay user interface sound effectsPlay feedback when volume is changedOutput & InputOutputNameMacBook Pro Speakerssoundcore AeroClipDELL U3821DWBoop € Osoundcore AeroClip €InputTyрeBuilt-inBluetoothDisplayPortApplications may be able to access head pose information when playingspatialised audio.Output volume4 H• MuteBalanceLeftRight• Support Daily - in 4 h 54 mWeek vTodaySat 25Sun 26• Isolated Web ContentMEMORY PRESSURE184,6 MBPhysical Memory:Memory Used:Cached Files:Swap Used:100% <8Tue 21 Apr 10:06:41CPUMemoryEnergyDiskNetworkThreadsPorts PID ,00 GB13,82 GB2,12 GB2,24 GBApp Memory:Wired Memory:Compressed:Userlukaslukaslukas_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas4,85 GB2,55 GB5,86 GB...
|
61646
|
|
61654
|
NULL
|
0
|
2026-04-21T07:06:58.130654+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776755218130_m2.jpg...
|
QuickTime Player
|
Daily 2026-04-21.mp4
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
rewind
play/pause
fast forward
mute
More Controls
rewind
play/pause
fast forward
mute
More Controls
toggle full screen
show external playback menu
show external playback menu
show media selection menu
toggle picture-in-picture playback
show action menu
share
show chapter menu
zoom
zoom
playback speed
13:55
toggle elapsed time, timecode and framecount
14:32
toggle duration and remaining time
document actions
Daily 2026-04-21.mp4...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"rewind","depth":1,"bounds":{"left":0.54521275,"top":0.72027135,"width":0.00831117,"height":0.012769354},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"play/pause","depth":1,"bounds":{"left":0.55701464,"top":0.7134876,"width":0.009640957,"height":0.027134877},"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":true},{"role":"AXButton","text":"fast forward","depth":1,"bounds":{"left":0.5703125,"top":0.72027135,"width":0.00831117,"height":0.012769354},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"mute","depth":1,"bounds":{"left":0.48919547,"top":0.72027135,"width":0.007480053,"height":0.011971269},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"More Controls","depth":1,"bounds":{"left":0.6284907,"top":0.7198723,"width":0.005984043,"height":0.012769354},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"toggle full screen","depth":1,"bounds":{"left":0.59857047,"top":0.72426176,"width":0.0066489363,"height":0.015961692},"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show external playback menu","depth":1,"bounds":{"left":0.59857047,"top":0.71907425,"width":0.0066489363,"height":0.015961692},"role_description":"button","is_focused":false},{"role":"AXButton","text":"show external playback menu","depth":2,"bounds":{"left":0.59857047,"top":0.71907425,"width":0.0066489363,"height":0.015961692},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show media selection menu","depth":1,"bounds":{"left":0.59857047,"top":0.72426176,"width":0.00731383,"height":0.015961692},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"toggle picture-in-picture playback","depth":1,"bounds":{"left":0.61120343,"top":0.7186752,"width":0.00831117,"height":0.015961692},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show action menu","depth":1,"bounds":{"left":0.59857047,"top":0.7238627,"width":0.006981383,"height":0.016759777},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"share","depth":1,"bounds":{"left":0.62549865,"top":0.71628094,"width":0.006482713,"height":0.018355945},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show chapter menu","depth":1,"bounds":{"left":0.59857047,"top":0.72625697,"width":0.006981383,"height":0.011971269},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"zoom","depth":1,"bounds":{"left":0.59857047,"top":0.7226656,"width":0.0066489363,"height":0.01915403},"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"zoom","depth":1,"bounds":{"left":0.59857047,"top":0.7246608,"width":0.00831117,"height":0.015163607},"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"playback speed","depth":1,"bounds":{"left":0.59857047,"top":0.7246608,"width":0.0063164895,"height":0.015163607},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXStaticText","text":"13:55","depth":1,"bounds":{"left":0.48919547,"top":0.74660814,"width":0.012632979,"height":0.011971269},"role_description":"text"},{"role":"AXCheckBox","text":"toggle elapsed time, timecode and framecount","depth":1,"bounds":{"left":0.4898604,"top":0.74660814,"width":0.011303191,"height":0.011971269},"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXStaticText","text":"14:32","depth":1,"bounds":{"left":0.6193484,"top":0.74660814,"width":0.01512633,"height":0.011971269},"role_description":"text"},{"role":"AXCheckBox","text":"toggle duration and remaining time","depth":1,"bounds":{"left":0.6200133,"top":0.74660814,"width":0.013796543,"height":0.011971269},"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXMenuButton","text":"document actions","depth":1,"bounds":{"left":0.59042555,"top":0.21947326,"width":0.0033244682,"height":0.012769354},"role_description":"menu button","is_enabled":false,"is_focused":false},{"role":"AXStaticText","text":"Daily 2026-04-21.mp4","depth":1,"bounds":{"left":0.53956115,"top":0.21947326,"width":0.05086436,"height":0.012769354},"role_description":"text"}]...
|
-8828782664858175739
|
8232067491680750198
|
visual_change
|
hybrid
|
NULL
|
rewind
play/pause
fast forward
mute
More Controls
rewind
play/pause
fast forward
mute
More Controls
toggle full screen
show external playback menu
show external playback menu
show media selection menu
toggle picture-in-picture playback
show action menu
share
show chapter menu
zoom
zoom
playback speed
13:55
toggle elapsed time, timecode and framecount
14:32
toggle duration and remaining time
document actions
Daily 2026-04-21.mp4
Cuickllme PlayercaltVIeWWindowMelpsuppont Dally • In 4n 04m100% LzTue 21 Apr 10:06:581y.dulassian.nelld/sortware c/oro ects/sy/oodrossrO JIMINNYQ Search+ CreateAsk RovoIY [SRD-6793] Les Mills activity type(SRD-6787] Issue with reconnectinX Jiminny MCP Connector - Product@ For you© Recent|# Starred0+ Apps|• SpacesSpaces / Jiminny (New)Platform TeamSummary& TimelineE BacklogII Active sprints@ CalendarReports* Testina Boardi# ListE Formse Components⅔› Development% Code• Security• Releases• DeploymentsE Archived work itemsE Docs@ ShortcutsvSlack integration& Reporting Center+ (UY-20676) Notify the user if a PanM Jiminny Mail• Search boardi00081Epic vType v+.*.Jiminny (New)(JY-20500) Batch initial sync for S.READY FOR DEV 7Rework Nudges - Phase 2 - changeNudaes to use the indexed at periodFeed - jiminny - Sentry& Jiminny() JY-20701 | Reschedule HubSpot SPipelines - jiminny/appNew TabService-Desk - Queues - Platforn_ New Tabull Plarorm leamIID SE KanbanII Capture TeamW Enterprise Stability I...ID Processing TeamC Service-Desk= More spaces— FiltersCB DashboardsC÷ OperationsICOST-EFFECTIVE AND FASTER NUDGESBacklogN JY-20489IN DEV 2Change foreveexpirationCOST-EFFECTIVEIn Dev |… JY-9712Q Search board800018 Epic vInvestigate and fix why exceedAI Review - QOIN DEY 2ronrawesome packade limirsiKey PointsMAINTENANCEGROWTH - MAINReady for DevIn Devl JY-20564|.JY-20566Backog35 /2 ..=|45 1 •••=2 Confluence: TeamsAI Reports > Empty page design andpromotionAJ REPORTSBacklog[ JY-20372"= Customise sidebar|Send emall notitication when the revort is.not generatedAJ REPORTSBacklog[ JY-201572 •000=|Notify a user before the AJ Report expiresAJ REPORTSBacklog[ JY-205081 ..00=@10:00 AM | Daily - PlatformSvnc obbortunities without a local ownerl(user_id is null)PLATFORM STABILITYBacklogEJY-20352OA2PO ACCEPTANCEIn QAlAI BE (FE) QA51 •=Nikolay IvaSteliyan GeorgievLukas Kovalik3 othersGroup: QueriesDEPLOY 7Prepare fallback with email for SSO forpersistent name_id_ tormatREDUCE CHURNClosed… JY-20632m•ee=AJ Panorama > Don't show internal errorsto customersASK ANYTHING ON ANYTHINGDeployedProphet)₴ JY-20278@ •=Upgrade Python and libraries - AprMAINTENANCEDeployedE JY-19967|1@ •=CLONE - [Team insights] Filter gets resetautomaticallv(SUPPORT TICKETSDeployedYY JY-206810.5 ? •edTssue with reconnectina 7oholSUPPORT TICKETSDeployedY .IY-20692Tech Navl Tmnrove Nenendahot Rot 8.ClosedIEJY-20696Les Mills activity types not pulling in...
|
NULL
|
|
61655
|
NULL
|
0
|
2026-04-21T07:06:59.685419+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776755219685_m1.jpg...
|
QuickTime Player
|
Daily 2026-04-21.mp4
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
rewind
play/pause
fast forward
mute
More Controls
rewind
play/pause
fast forward
mute
More Controls
toggle full screen
show external playback menu
show external playback menu
show media selection menu
toggle picture-in-picture playback
show action menu
share
show chapter menu
zoom
zoom
playback speed
13:55
toggle elapsed time, timecode and framecount
14:32
toggle duration and remaining time
document actions
Daily 2026-04-21.mp4...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"rewind","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"play/pause","depth":1,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":true},{"role":"AXButton","text":"fast forward","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"mute","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"More Controls","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"toggle full screen","depth":1,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show external playback menu","depth":1,"role_description":"button","is_focused":false},{"role":"AXButton","text":"show external playback menu","depth":2,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show media selection menu","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"toggle picture-in-picture playback","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show action menu","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"share","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show chapter menu","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"zoom","depth":1,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"zoom","depth":1,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"playback speed","depth":1,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXStaticText","text":"13:55","depth":1,"role_description":"text"},{"role":"AXCheckBox","text":"toggle elapsed time, timecode and framecount","depth":1,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXStaticText","text":"14:32","depth":1,"role_description":"text"},{"role":"AXCheckBox","text":"toggle duration and remaining time","depth":1,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXMenuButton","text":"document actions","depth":1,"role_description":"menu button","is_enabled":false,"is_focused":false},{"role":"AXStaticText","text":"Daily 2026-04-21.mp4","depth":1,"role_description":"text"}]...
|
-8828782664858175739
|
8232067491680750198
|
visual_change
|
hybrid
|
NULL
|
rewind
play/pause
fast forward
mute
More Controls
rewind
play/pause
fast forward
mute
More Controls
toggle full screen
show external playback menu
show external playback menu
show media selection menu
toggle picture-in-picture playback
show action menu
share
show chapter menu
zoom
zoom
playback speed
13:55
toggle elapsed time, timecode and framecount
14:32
toggle duration and remaining time
document actions
Daily 2026-04-21.mp4
System SettingsFileApril 2soun+EEST08:0009:0010:0611:0012:0013:0014:0015:0016:00SoundSound inputSound outputSound volumeAlerts and sound effectsMute the soundAccessibilityBackground soundsBackgroundsounds volumeFlash the screen when analert sound occursPlay sound whencommand is recognisedPlay soundsPlay sounds for keys anddwell actionsPlay system soundsSelect Background SoundTurn off backgroundsounds when your Mac isnot in useUse click key soundsHearing DevicesBluetoothBluetooth audioControl CentreShow volume in themenu barNetworkEditViewWindowHelpSoundSound EffectsAlert soundPlay sound effects throughAlert volumePlay sound on startupPlay user interface sound effectsPlay feedback when volume is changedOutput & InputOutputNameMacBook Pro Speakerssoundcore AeroClipDELL U3821DWBoop € Osoundcore AeroClip €InputTyрeBuilt-inBluetoothDisplayPortApplications may be able to access head pose information when playingspatialised audio.Output volume4 H(•*))• MuteBalanceLeftRight• Support Daily - in 4 h 54 mWeek vTodaySat 25Sun 26• Isolated Web ContentMEMORY PRESSURE184,7 MBPhysical Memory:Memory Used:Cached Files:Swap Used:100% <8Tue 21 Apr 10:06:59CPUMemoryEnergyDiskNetworkThreadsPorts PID ,00 GB13,33 GB2,52 GB2,23 GBApp Memory:Wired Memory:Compressed:Userlukaslukaslukas_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas4,43 GB2,44 GB5,92 GB...
|
61652
|
|
74240
|
1843
|
30
|
2026-04-23T09:30:19.653575+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-23/1776 /Users/lukas/.screenpipe/data/data/2026-04-23/1776936619653_m1.jpg...
|
PhpStorm
|
faVsco.js – TrackAutomatedReportGeneratedEvent.php
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20157-AJ-report-not-se Project: faVsco.js, menu
JY-20157-AJ-report-not-send-notification, menu
Start Listening for PHP Debug Connections
AutomatedReportsCommandTest
Run 'AutomatedReportsCommandTest'
Debug 'AutomatedReportsCommandTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Show Replace Field
Search History
->track(
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/1
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
1
2
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Listeners\AutomatedReports\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\Queue\Constants;
use Jiminny\Events\AutomatedReports\AutomatedReportGenerated;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\Contracts\UserContract;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\UserPilot\UserPilotClient;
class TrackAutomatedReportGeneratedEvent implements ShouldQueue
{
use InteractsWithQueue;
private const string EVENT_NAME_AUTOMATED_REPORT = 'automated-report-generated';
private const string EVENT_NAME_ASK_JIMINNY_REPORT = 'ask-jiminny-report-generated';
public string $queue = Constants::QUEUE_DELAYABLE;
public function __construct(
private readonly UserPilotClient $userPilotClient,
private readonly AutomatedReportsService $automatedReportsService,
) {
}
public function handle(AutomatedReportGenerated $event): void
{
if (config('services.userpilot.token') === null) {
return;
}
$automatedReport = $event->automatedReport;
$payload = $this->buildPayload($automatedReport);
$eventName = $this->resolveEventName($automatedReport);
try {
foreach ($this->resolveUsers($automatedReport) as $user) {
$this->userPilotClient->track($user, $eventName, $payload);
}
} catch (GuzzleException $e) {
$this->release(3600);
}
}
/**
* @return array<UserContract>
*/
private function resolveUsers(AutomatedReport $automatedReport): array
{
if ($automatedReport->isAskJiminnyReport()) {
$creator = $automatedReport->getCreator();
return $creator !== null ? [$creator] : [];
}
return $this->automatedReportsService->getRecipientUserObjects($automatedReport);
}
private function buildPayload(AutomatedReport $automatedReport): array
{
return [
'report_type' => $automatedReport->getType(),
'frequency' => $automatedReport->getFrequency(),
];
}
private function resolveEventName(AutomatedReport $automatedReport): string
{
if ($automatedReport->isAskJiminnyReport()) {
return self::EVENT_NAME_ASK_JIMINNY_REPORT;
}
return self::EVENT_NAME_AUTOMATED_REPORT;
}
}...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20157-AJ-report-not-send-notification, menu","depth":5,"help_text":"Git Branch: JY-20157-AJ-report-not-send-notification","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AutomatedReportsCommandTest","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AutomatedReportsCommandTest'","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AutomatedReportsCommandTest'","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Show Replace Field","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Search History","depth":3,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"->track(","depth":4,"value":"->track(","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Match Case","depth":3,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Words","depth":3,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Regex","depth":3,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Replace History","depth":3,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.024444444},"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Replace","depth":4,"role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.024444444},"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Preserve case","depth":3,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.024444444},"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1/1","depth":4,"role_description":"text"},{"role":"AXButton","text":"Previous Occurrence","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Occurrence","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Filter Search Results","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Window, Multiple Cursors","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Click to highlight","depth":4,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":4,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":4,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Listeners\\AutomatedReports\\UserPilot;\n\nuse GuzzleHttp\\Exception\\GuzzleException;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Component\\Queue\\Constants;\nuse Jiminny\\Events\\AutomatedReports\\AutomatedReportGenerated;\nuse Jiminny\\Models\\AutomatedReport;\nuse Jiminny\\Models\\Contracts\\UserContract;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService;\nuse Jiminny\\Services\\UserPilot\\UserPilotClient;\n\nclass TrackAutomatedReportGeneratedEvent implements ShouldQueue\n{\n use InteractsWithQueue;\n\n private const string EVENT_NAME_AUTOMATED_REPORT = 'automated-report-generated';\n private const string EVENT_NAME_ASK_JIMINNY_REPORT = 'ask-jiminny-report-generated';\n\n public string $queue = Constants::QUEUE_DELAYABLE;\n\n public function __construct(\n private readonly UserPilotClient $userPilotClient,\n private readonly AutomatedReportsService $automatedReportsService,\n ) {\n }\n\n public function handle(AutomatedReportGenerated $event): void\n {\n if (config('services.userpilot.token') === null) {\n return;\n }\n\n $automatedReport = $event->automatedReport;\n $payload = $this->buildPayload($automatedReport);\n\n $eventName = $this->resolveEventName($automatedReport);\n\n try {\n foreach ($this->resolveUsers($automatedReport) as $user) {\n $this->userPilotClient->track($user, $eventName, $payload);\n }\n } catch (GuzzleException $e) {\n $this->release(3600);\n }\n }\n\n /**\n * @return array<UserContract>\n */\n private function resolveUsers(AutomatedReport $automatedReport): array\n {\n if ($automatedReport->isAskJiminnyReport()) {\n $creator = $automatedReport->getCreator();\n\n return $creator !== null ? [$creator] : [];\n }\n\n return $this->automatedReportsService->getRecipientUserObjects($automatedReport);\n }\n\n private function buildPayload(AutomatedReport $automatedReport): array\n {\n return [\n 'report_type' => $automatedReport->getType(),\n 'frequency' => $automatedReport->getFrequency(),\n ];\n }\n\n private function resolveEventName(AutomatedReport $automatedReport): string\n {\n if ($automatedReport->isAskJiminnyReport()) {\n return self::EVENT_NAME_ASK_JIMINNY_REPORT;\n }\n\n return self::EVENT_NAME_AUTOMATED_REPORT;\n }\n}","depth":4,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Listeners\\AutomatedReports\\UserPilot;\n\nuse GuzzleHttp\\Exception\\GuzzleException;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Component\\Queue\\Constants;\nuse Jiminny\\Events\\AutomatedReports\\AutomatedReportGenerated;\nuse Jiminny\\Models\\AutomatedReport;\nuse Jiminny\\Models\\Contracts\\UserContract;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService;\nuse Jiminny\\Services\\UserPilot\\UserPilotClient;\n\nclass TrackAutomatedReportGeneratedEvent implements ShouldQueue\n{\n use InteractsWithQueue;\n\n private const string EVENT_NAME_AUTOMATED_REPORT = 'automated-report-generated';\n private const string EVENT_NAME_ASK_JIMINNY_REPORT = 'ask-jiminny-report-generated';\n\n public string $queue = Constants::QUEUE_DELAYABLE;\n\n public function __construct(\n private readonly UserPilotClient $userPilotClient,\n private readonly AutomatedReportsService $automatedReportsService,\n ) {\n }\n\n public function handle(AutomatedReportGenerated $event): void\n {\n if (config('services.userpilot.token') === null) {\n return;\n }\n\n $automatedReport = $event->automatedReport;\n $payload = $this->buildPayload($automatedReport);\n\n $eventName = $this->resolveEventName($automatedReport);\n\n try {\n foreach ($this->resolveUsers($automatedReport) as $user) {\n $this->userPilotClient->track($user, $eventName, $payload);\n }\n } catch (GuzzleException $e) {\n $this->release(3600);\n }\n }\n\n /**\n * @return array<UserContract>\n */\n private function resolveUsers(AutomatedReport $automatedReport): array\n {\n if ($automatedReport->isAskJiminnyReport()) {\n $creator = $automatedReport->getCreator();\n\n return $creator !== null ? [$creator] : [];\n }\n\n return $this->automatedReportsService->getRecipientUserObjects($automatedReport);\n }\n\n private function buildPayload(AutomatedReport $automatedReport): array\n {\n return [\n 'report_type' => $automatedReport->getType(),\n 'frequency' => $automatedReport->getFrequency(),\n ];\n }\n\n private function resolveEventName(AutomatedReport $automatedReport): string\n {\n if ($automatedReport->isAskJiminnyReport()) {\n return self::EVENT_NAME_ASK_JIMINNY_REPORT;\n }\n\n return self::EVENT_NAME_AUTOMATED_REPORT;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8828354569008504129
|
-3035262853051614398
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20157-AJ-report-not-se Project: faVsco.js, menu
JY-20157-AJ-report-not-send-notification, menu
Start Listening for PHP Debug Connections
AutomatedReportsCommandTest
Run 'AutomatedReportsCommandTest'
Debug 'AutomatedReportsCommandTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Show Replace Field
Search History
->track(
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/1
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
1
2
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Listeners\AutomatedReports\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\Queue\Constants;
use Jiminny\Events\AutomatedReports\AutomatedReportGenerated;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\Contracts\UserContract;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\UserPilot\UserPilotClient;
class TrackAutomatedReportGeneratedEvent implements ShouldQueue
{
use InteractsWithQueue;
private const string EVENT_NAME_AUTOMATED_REPORT = 'automated-report-generated';
private const string EVENT_NAME_ASK_JIMINNY_REPORT = 'ask-jiminny-report-generated';
public string $queue = Constants::QUEUE_DELAYABLE;
public function __construct(
private readonly UserPilotClient $userPilotClient,
private readonly AutomatedReportsService $automatedReportsService,
) {
}
public function handle(AutomatedReportGenerated $event): void
{
if (config('services.userpilot.token') === null) {
return;
}
$automatedReport = $event->automatedReport;
$payload = $this->buildPayload($automatedReport);
$eventName = $this->resolveEventName($automatedReport);
try {
foreach ($this->resolveUsers($automatedReport) as $user) {
$this->userPilotClient->track($user, $eventName, $payload);
}
} catch (GuzzleException $e) {
$this->release(3600);
}
}
/**
* @return array<UserContract>
*/
private function resolveUsers(AutomatedReport $automatedReport): array
{
if ($automatedReport->isAskJiminnyReport()) {
$creator = $automatedReport->getCreator();
return $creator !== null ? [$creator] : [];
}
return $this->automatedReportsService->getRecipientUserObjects($automatedReport);
}
private function buildPayload(AutomatedReport $automatedReport): array
{
return [
'report_type' => $automatedReport->getType(),
'frequency' => $automatedReport->getFrequency(),
];
}
private function resolveEventName(AutomatedReport $automatedReport): string
{
if ($automatedReport->isAskJiminnyReport()) {
return self::EVENT_NAME_ASK_JIMINNY_REPORT;
}
return self::EVENT_NAME_AUTOMATED_REPORT;
}
}...
|
NULL
|
|
7099
|
126
|
24
|
2026-04-13T14:32:46.943261+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-13/1776 /Users/lukas/.screenpipe/data/data/2026-04-13/1776090766943_m1.jpg...
|
Finder
|
screenpipe
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Favourites
jiminny
AirDrop
Recents
Applications
Do Favourites
jiminny
AirDrop
Recents
Applications
Documents
Desktop
Downloads
lukas
iCloud
iCloud Drive
Sync folder
Locations
DXP4800PLUS-B5F8
Eject
Network
Tags
CRM
Orange
Red
Yellow
Green
Blue
Purple
All Tags…
Name
Date Modified
Size
Kind
data
Today at 17:32
144,2 MB
Folder
#recycle
Today at 17:30
73 bytes
Folder
db.sqlite
Today at 17:20
442,9 MB
Document
app
Today at 17:18
118 KB
Folder
pipes
11 Apr 2026 at 16:51
13 KB
Folder
Name
Date Modified
Size
Kind
5 items, 2,12 TB available
screenpipe...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Favourites","depth":6,"automation_id":"xSidebarHeader","role_description":"text"},{"role":"AXStaticText","text":"jiminny","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"AirDrop","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Recents","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Applications","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Documents","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Desktop","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Downloads","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"lukas","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"iCloud","depth":6,"automation_id":"xSidebarHeader","role_description":"text"},{"role":"AXStaticText","text":"iCloud Drive","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Sync folder","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Locations","depth":6,"automation_id":"xSidebarHeader","role_description":"text"},{"role":"AXStaticText","text":"DXP4800PLUS-B5F8","depth":6,"role_description":"text"},{"role":"AXButton","text":"Eject","depth":6,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXStaticText","text":"Network","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Tags","depth":6,"automation_id":"xSidebarHeader","role_description":"text"},{"role":"AXStaticText","text":"CRM","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Orange","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Red","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Yellow","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Green","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Blue","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Purple","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"All Tags…","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Name","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"Date Modified","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"Size","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"Kind","depth":7,"role_description":"text"},{"role":"AXTextField","text":"data","depth":7,"value":"data","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Today at 17:32","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"144,2 MB","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":7,"role_description":"text"},{"role":"AXTextField","text":"#recycle","depth":7,"value":"#recycle","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Today at 17:30","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"73 bytes","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":7,"role_description":"text"},{"role":"AXTextField","text":"db.sqlite","depth":7,"value":"db.sqlite","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Today at 17:20","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"442,9 MB","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"Document","depth":7,"role_description":"text"},{"role":"AXTextField","text":"app","depth":7,"value":"app","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Today at 17:18","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"118 KB","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":7,"role_description":"text"},{"role":"AXTextField","text":"pipes","depth":7,"value":"pipes","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"11 Apr 2026 at 16:51","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"13 KB","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":7,"role_description":"text"},{"role":"AXButton","text":"Name","depth":6,"role_description":"sort button","subrole":"AXSortButton","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Date Modified","depth":6,"role_description":"sort button","subrole":"AXSortButton","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Size","depth":6,"role_description":"sort button","subrole":"AXSortButton","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Kind","depth":6,"role_description":"sort button","subrole":"AXSortButton","is_enabled":true,"is_focused":false},{"role":"AXStaticText","text":"5 items, 2,12 TB available","depth":2,"automation_id":"_NS:34","role_description":"text"},{"role":"AXStaticText","text":"screenpipe","depth":1,"role_description":"text"}]...
|
-8828237771950621313
|
-1246896355566555249
|
click
|
accessibility
|
NULL
|
Favourites
jiminny
AirDrop
Recents
Applications
Do Favourites
jiminny
AirDrop
Recents
Applications
Documents
Desktop
Downloads
lukas
iCloud
iCloud Drive
Sync folder
Locations
DXP4800PLUS-B5F8
Eject
Network
Tags
CRM
Orange
Red
Yellow
Green
Blue
Purple
All Tags…
Name
Date Modified
Size
Kind
data
Today at 17:32
144,2 MB
Folder
#recycle
Today at 17:30
73 bytes
Folder
db.sqlite
Today at 17:20
442,9 MB
Document
app
Today at 17:18
118 KB
Folder
pipes
11 Apr 2026 at 16:51
13 KB
Folder
Name
Date Modified
Size
Kind
5 items, 2,12 TB available
screenpipe...
|
NULL
|
|
43320
|
923
|
3
|
2026-04-17T08:03:10.011092+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776412990011_m2.jpg...
|
Firefox
|
Meet - Backend Chapter — Work
|
True
|
meet.google.com/gjc-ikxu-wxu?authuser=lukas.kovali meet.google.com/gjc-ikxu-wxu?authuser=lukas.kovalik%40jiminny.com...
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Workers | Datadog
Platform Sprint 2 Q2 - Platform Workers | Datadog
Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
Close tab
[SRD-6793] Les Mills activity types not pulling in - Jira
Close tab
Problem loading page
Close tab
Symfony\Component\Debug\Exception\FatalThrowableError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line
Close tab
CloudWatch | us-east-2
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Close tab
Console Home | Console Home | eu-west-1
Close tab
New Tab
Close tab
Meet - Backend Chapter
Close tab
New Tab
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Customize sidebar
Nikolay Nikolov (Presenting, annotating)
Nikolay Nikolov (Presenting, annotating)
People
3
Take notes with Gemini
Take notes with Gemini
Gemini
Gemini
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Zoom in
Open in new window
Enter Full Screen
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Nikolay Nikolov
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Lukas Kovalik
Others might see more of your background. Click to view your full video.
11:03
AM
Backend Chapter
Backend Chapter
Audio settings...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"bounds":{"left":0.23320313,"top":1.0,"width":0.018945312,"height":-0.045138836},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.23320313,"top":1.0,"width":0.018945312,"height":-0.08263886},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.23398438,"top":1.0,"width":0.005859375,"height":-0.08263886},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Problem loading page","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Symfony\\Component\\Debug\\Exception\\FatalThrowableError: League\\Flysystem\\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Configure SSH access to multiple environment - Engineering - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Console Home | Console Home | eu-west-1","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"New Tab","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Meet - Backend Chapter","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Tab","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Nikolay Nikolov (Presenting, annotating)","depth":12,"bounds":{"left":0.27558595,"top":1.0,"width":0.10078125,"height":-0.063194394},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Nikolay Nikolov (Presenting, annotating)","depth":13,"bounds":{"left":0.27558595,"top":1.0,"width":0.10078125,"height":-0.06388891},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"People","depth":15,"bounds":{"left":0.7320312,"top":1.0,"width":0.023046875,"height":-0.05590272},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"3","depth":22,"bounds":{"left":0.7476562,"top":1.0,"width":0.002734375,"height":-0.063194394},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Take notes with Gemini","depth":14,"bounds":{"left":0.75820315,"top":1.0,"width":0.0140625,"height":-0.05590272},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Take notes with Gemini","depth":17,"bounds":{"left":0.7597656,"top":1.0,"width":0.051171876,"height":-0.063194394},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Gemini","depth":22,"bounds":{"left":0.7769531,"top":1.0,"width":0.015820313,"height":-0.063194394},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Gemini","depth":21,"bounds":{"left":0.7757813,"top":1.0,"width":0.01328125,"height":-0.056597233},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Pop out this video More screens are more fun. Play this video while you do other things.","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pop out this video","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"More screens are more fun. Play this video while you do other things.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Zoom in","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open in new window","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Enter Full Screen","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Pop out this video More screens are more fun. Play this video while you do other things.","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pop out this video","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"More screens are more fun. Play this video while you do other things.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Pop out this video More screens are more fun. Play this video while you do other things.","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pop out this video","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"More screens are more fun. Play this video while you do other things.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Others might see more of your background. Click to view your full video.","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"11:03","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"AM","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Backend Chapter","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Backend Chapter","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Audio settings","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8827857103048102834
|
-6453544752108045450
|
click
|
hybrid
|
NULL
|
Workers | Datadog
Platform Sprint 2 Q2 - Platform Workers | Datadog
Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
Close tab
[SRD-6793] Les Mills activity types not pulling in - Jira
Close tab
Problem loading page
Close tab
Symfony\Component\Debug\Exception\FatalThrowableError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line
Close tab
CloudWatch | us-east-2
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Close tab
Console Home | Console Home | eu-west-1
Close tab
New Tab
Close tab
Meet - Backend Chapter
Close tab
New Tab
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Customize sidebar
Nikolay Nikolov (Presenting, annotating)
Nikolay Nikolov (Presenting, annotating)
People
3
Take notes with Gemini
Take notes with Gemini
Gemini
Gemini
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Zoom in
Open in new window
Enter Full Screen
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Nikolay Nikolov
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Lukas Kovalik
Others might see more of your background. Click to view your full video.
11:03
AM
Backend Chapter
Backend Chapter
Audio settings
dwensawrt.ze pazepdn.'dwensaurtdlipn callt?apnanpa.indwensawttз-рanela.cnep esone" (T)OUTAUTOUOM ST(e)ueua(o7T)Neua.eлa00e eUenneaneл.aweusOTNEUMO TPIJasn." (e7T) JeuoJen0т20120.1092.1aepanepon abes.0aUoSUntcamlunoadeaspTaunoodeY(9T) Aueumeppon.'pauбtsun Cotaut prBaz NIOrasn NIOrм0'7**esONOS1O313S* 10010S×9n29292nas1zXa HABaz NIOrasn NIOrмо *7**es103135eseunieat mou noanesy•psl"тela"n10373569S0S90STLy SST9LTy Kuedwos #1C.00LLYEEZLZAL,DOCOCCTTACь NH"Tocotkc"oum= decooohaоnек-19оe-с/hh-e2 1/-cohloay. Wio onПОТHOСОТTO/h INHATOS9TZ6e = pI ЛaTATIOe=A punoloeidл OnH *xIaoral alosuosrБорелелн00Ll 1dy 2113 8C$ %00LSATAHO-UeewouDReInoLe-anedcE neneoenhnnanolencee.aneoneouo, joatiuadoggg eamad.e ..e...aoe staae caepдереaw Lsalesiul66ST86ST -L6ST96ST76STE6STTACTO6ST68ST88STL8ST98STS8STE8STZ8STT8STAOCTI6LST8LSTELLST _9LSTSLST7LSTELST =ZLST_TLSTOLST_69ST89STL9ST =99STS9STH9ST_S9STZ9STHT9ST =09ST6SST8SSTSSTAV GLT IT IEUОCCТАSSSTGSSTESSTZSSTTSSTOSSTsanrococornoltaosac-stue unolecXeunoM"O suensI.amem leep, oaiauadomas, caanmom,m maelanou - antloudeз лелле :сaбenss abenesabesn zsabesn zAatunauoddos wanteF(suo,aenoooses .famere.e.fpenetoesttenseddesepdes-stussF(OpIaale-Aamunauogdoe1fam a%eme.freaalanneesasesed.ss-sttts"OTUANC<-OT HOTOIO NO.sunsal n* M0o"un oipne iseopod•uc'asiwacyoeqlenstoca oalewony oy•Ud"IoR dudl80%.L98998$98798298298T98900998SS8798£S8ZS8TS80S8678878L78ОHяICHяT778278278T78078478.SE8.T818LT89T8ST87T8ST82T8TT8ATOIКARIRARIsoorL<SOSL<noaxansanoaynaeIneisanday ondyd-unÁxoid oudunsayaбed 6emnonestoaseecuc"allonuonstocaruulwicystdydsepingeasdjaнmopulmS00ljanesenepogAebinenMAIA4P31 1oajolawionstet...
|
43317
|
|
59661
|
1282
|
87
|
2026-04-20T13:55:46.225869+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776693346225_m1.jpg...
|
Firefox
|
Firefox
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpmeet.google.com/cxs-eips-npt?authuser=0Galya Dimitrova (Presenting, annotating)SafariFileEditViewHistoryBookmarksDevelopWindowHelp#* Platform Te...A SentryF Conferene3 HubSpot|8 OрenAl|jiminny.atlassian.net|AWS AIPlanhat= Figma#f Seit ServiceDust Docs• AWS US |S. GTM Tren.• AWS EU7 A Jourmey-The Reven.88Searchg For youSpaces / Jiminny (New)Platform TeamRecent# Starred8: Appя• Summary|Timeline• Backlog|IID Active sprints• Calendar |% PI0 SpStarrPS-PhpStormIID Enterprise Stability I...Discovery9 JY-19628Evaluation of AJ PanoramaASK ANYTHI...BACKLOGProductA JY-20676 Notify the user if a Panorama prom.BACKLOGKeeenA JY-20615 Notify the user if a SS is deleted bu...AJ REPORTSBACKLOG2.59 Service-Desk= More spaces |A JY-20613 Allow owner's role to be selected w...BACKLOGA JY-20500 Batch initial sync for SalesforceCRM SYNCH....= FiltersA JY-20501 Batch initial sync for HubspotCRM SYNCH...BACKLOGIB DashboardsOperationsJY-20503 Batch insert/update CRM objects in…& Customers|A JY-20410 Update the templi|PLATFORM S...meet.google.com is sharing your screen.BACKLOGStop sharing152-8• Mon 20 Apr 16:55•] Emojй|E3 Festures.intercomA LogRocketE Ask JiminP PostmarkBuild yourBamboo* Campus xFirebaseSminny M.G. Demo Exr+ Create• UpgradeAsk Rovo• Jira work itemE ReportsMore 9+• More fields|= &Tt•Av:=v +vBE - 0.5FE -1OA -8. Q + James GrahanSaveCancel4:55 PM | [Platform] Refinement ®Lộ3100% 128• Mon 20 Apr 16:55:45800Aneliya AngelovaGalya DimitrovahersNikolay YankovLukas Kovalik1:53:57...
|
NULL
|
-8827648164887124324
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpmeet.google.com/cxs-eips-npt?authuser=0Galya Dimitrova (Presenting, annotating)SafariFileEditViewHistoryBookmarksDevelopWindowHelp#* Platform Te...A SentryF Conferene3 HubSpot|8 OрenAl|jiminny.atlassian.net|AWS AIPlanhat= Figma#f Seit ServiceDust Docs• AWS US |S. GTM Tren.• AWS EU7 A Jourmey-The Reven.88Searchg For youSpaces / Jiminny (New)Platform TeamRecent# Starred8: Appя• Summary|Timeline• Backlog|IID Active sprints• Calendar |% PI0 SpStarrPS-PhpStormIID Enterprise Stability I...Discovery9 JY-19628Evaluation of AJ PanoramaASK ANYTHI...BACKLOGProductA JY-20676 Notify the user if a Panorama prom.BACKLOGKeeenA JY-20615 Notify the user if a SS is deleted bu...AJ REPORTSBACKLOG2.59 Service-Desk= More spaces |A JY-20613 Allow owner's role to be selected w...BACKLOGA JY-20500 Batch initial sync for SalesforceCRM SYNCH....= FiltersA JY-20501 Batch initial sync for HubspotCRM SYNCH...BACKLOGIB DashboardsOperationsJY-20503 Batch insert/update CRM objects in…& Customers|A JY-20410 Update the templi|PLATFORM S...meet.google.com is sharing your screen.BACKLOGStop sharing152-8• Mon 20 Apr 16:55•] Emojй|E3 Festures.intercomA LogRocketE Ask JiminP PostmarkBuild yourBamboo* Campus xFirebaseSminny M.G. Demo Exr+ Create• UpgradeAsk Rovo• Jira work itemE ReportsMore 9+• More fields|= &Tt•Av:=v +vBE - 0.5FE -1OA -8. Q + James GrahanSaveCancel4:55 PM | [Platform] Refinement ®Lộ3100% 128• Mon 20 Apr 16:55:45800Aneliya AngelovaGalya DimitrovahersNikolay YankovLukas Kovalik1:53:57...
|
59659
|
|
11764
|
241
|
14
|
2026-04-14T10:09:53.841577+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776161393841_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEoitViewHistoryBookmarksProfilesWindowH FirefoxFileEoitViewHistoryBookmarksProfilesWindowHelpPlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloZ Configure SSH access to multipleConsole Home | Console Home | usSecurityGroup | EC2 |us-east-2JY-20543 add AJ reports User pilo5 SRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity(8) Jiminny7 Ask Jiminny test report - 8 Aor 201- Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilc(x) Configure SSH access to multipleCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabToolsdoo.clcieci.com/oroelines/cunuominnydoeo circleci • AHomePipelinesProjectsDeploysInsightsRunnersOrgPlan57242JOOSJobsJobsChunksetup ob9039test 869840test-backend-lint 869838sona cOo 00v04/ Successsetup-workflow SETUPseluo 00.054C Running17m 41s remain ®build_accept_deploycheckou-code dovalsbuild-frontend 869816test-frontend 869817oullc-oackeno 80-84phpstan 869815prepare_deploy_revision_stage 869820build_docker_backend_code_stage 869825build_docker_worker_code_stage 869824bulc cocker worker vioeo code stade o0-82db_migrations_stage 869827deploy_docker_backend_code_stage 869829sentry_notify 869830deploy_docker_worker_code_stage 869828deploy_docker_worker_video_code_stage 869831deploy_frontend_assets_to_s3_stage 869826setla xer8test 869861test-backend-lint 869822sonar col 80.804X Failedbuild_accept_deploycneckou-code coalsVbuild-frontend 869816test-frontend 869817oullc-oackeno 80-84phpstan 869815JY-19617-calendar-memory-leak1232603 JY-19617: prevent memory overflow on GoogleAPI response floods CJy-log09-automated-reports-ask-jiminny4esevo verce oanchyy" ovuv-auromareo-reports-ask-jiminny' of github.com:jiminny/app into….JY-18909-automated-reports-ask-jiminny42e3e90 Merge branch JY-18909-automated-reports-ask-jiminny' of github.com:jiminny/app into..j Support Daily • in 1h 51mA100% CS•Tue 14 Apr 13:09:531m 31som sossm 18snoros15m [EMAIL] Commit pushedRerun from failedom aoog Push Commit pushed23m ago/M 9451m 56sIm 33S1m 37smas1m 25s44s1m 57s1m 55sm 4uS6s37s7m 9s26s29s1m 21s7m 53s4m 24s14m 28s1m 56slons5S1m 37smas1m 25sGGAS.GGQS....
|
NULL
|
-8826467609224359379
|
NULL
|
visual_change
|
ocr
|
NULL
|
FirefoxFileEoitViewHistoryBookmarksProfilesWindowH FirefoxFileEoitViewHistoryBookmarksProfilesWindowHelpPlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloZ Configure SSH access to multipleConsole Home | Console Home | usSecurityGroup | EC2 |us-east-2JY-20543 add AJ reports User pilo5 SRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity(8) Jiminny7 Ask Jiminny test report - 8 Aor 201- Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilc(x) Configure SSH access to multipleCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabToolsdoo.clcieci.com/oroelines/cunuominnydoeo circleci • AHomePipelinesProjectsDeploysInsightsRunnersOrgPlan57242JOOSJobsJobsChunksetup ob9039test 869840test-backend-lint 869838sona cOo 00v04/ Successsetup-workflow SETUPseluo 00.054C Running17m 41s remain ®build_accept_deploycheckou-code dovalsbuild-frontend 869816test-frontend 869817oullc-oackeno 80-84phpstan 869815prepare_deploy_revision_stage 869820build_docker_backend_code_stage 869825build_docker_worker_code_stage 869824bulc cocker worker vioeo code stade o0-82db_migrations_stage 869827deploy_docker_backend_code_stage 869829sentry_notify 869830deploy_docker_worker_code_stage 869828deploy_docker_worker_video_code_stage 869831deploy_frontend_assets_to_s3_stage 869826setla xer8test 869861test-backend-lint 869822sonar col 80.804X Failedbuild_accept_deploycneckou-code coalsVbuild-frontend 869816test-frontend 869817oullc-oackeno 80-84phpstan 869815JY-19617-calendar-memory-leak1232603 JY-19617: prevent memory overflow on GoogleAPI response floods CJy-log09-automated-reports-ask-jiminny4esevo verce oanchyy" ovuv-auromareo-reports-ask-jiminny' of github.com:jiminny/app into….JY-18909-automated-reports-ask-jiminny42e3e90 Merge branch JY-18909-automated-reports-ask-jiminny' of github.com:jiminny/app into..j Support Daily • in 1h 51mA100% CS•Tue 14 Apr 13:09:531m 31som sossm 18snoros15m [EMAIL] Commit pushedRerun from failedom aoog Push Commit pushed23m ago/M 9451m 56sIm 33S1m 37smas1m 25s44s1m 57s1m 55sm 4uS6s37s7m 9s26s29s1m 21s7m 53s4m 24s14m 28s1m 56slons5S1m 37smas1m 25sGGAS.GGQS....
|
NULL
|
|
41313
|
877
|
28
|
2026-04-17T06:09:36.737323+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776406176737_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpEU (ssh)-zsh(all* Review screenpipe U...100% 1478Fri 17 Apr 9:09:36181DOCKERDEV (-zsh)О 882APP (-zsh)883XI11 DOCKER (-zsh)Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/infrastructure/dev/docker or its parentsPoetry could not find a pyproject.toml/docker or its parentsin /Users/lukas/jiminny/infrastructure/dev*4-zsh®О885PROD (ssh)Run 'do-release-upgrade' to upgrade to it.• 26-zshPRODlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/infrastructure/dev/docker (develop)$Lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/infrastructure/dev/docker (develop)$ 0*** System restart required ***Last login: Thu Apr 16 06:55:09 2026 from 212.39.71.189lukas@jiminny-prod-bastion:~$X L3 EU (ssh)New release '24.04.4 LTS' available.Run'do-release-upgrade'to upgrade to it.U*** System restart required ***login: Thu Apr 16 06:55:03 2026 from 212.39.71.189lukas@jiminny-eu-bastion:~$ |T4 STAGE (-zsh)Last login: Thu Apr 16 15:43:43 on consolePoetry could not find a pyproject.toml file in /Users/lukas or its parentsSTAGEPoetry could not find a pyproject.toml file in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny$T5 QA (-zsh)Last login: Thu Apr 16 15:43:43 on consolePoetry could not find a pyproject.toml file in /Users/lukas or its parentsPoetry could not find a pyproject.tomlfile in /Users/lukas or its parentsXT6 FE (-zsh)Last login: Thu Apr 16 15:48:07 on ttys004Poetry could not find a pyproject.toml file in /Users/lukas or its parents RONTENDPoetry could not find a pyproject.toml file in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ IX T7 EXT (-zsh)Poetry could not find a pyproject.toml file in /Users/lukas or its parentsEXTENSIONPoetry could not find a pyproject.tomlfile in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ I|...
|
NULL
|
-8825914515535770530
|
NULL
|
click
|
ocr
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpEU (ssh)-zsh(all* Review screenpipe U...100% 1478Fri 17 Apr 9:09:36181DOCKERDEV (-zsh)О 882APP (-zsh)883XI11 DOCKER (-zsh)Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/infrastructure/dev/docker or its parentsPoetry could not find a pyproject.toml/docker or its parentsin /Users/lukas/jiminny/infrastructure/dev*4-zsh®О885PROD (ssh)Run 'do-release-upgrade' to upgrade to it.• 26-zshPRODlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/infrastructure/dev/docker (develop)$Lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/infrastructure/dev/docker (develop)$ 0*** System restart required ***Last login: Thu Apr 16 06:55:09 2026 from 212.39.71.189lukas@jiminny-prod-bastion:~$X L3 EU (ssh)New release '24.04.4 LTS' available.Run'do-release-upgrade'to upgrade to it.U*** System restart required ***login: Thu Apr 16 06:55:03 2026 from 212.39.71.189lukas@jiminny-eu-bastion:~$ |T4 STAGE (-zsh)Last login: Thu Apr 16 15:43:43 on consolePoetry could not find a pyproject.toml file in /Users/lukas or its parentsSTAGEPoetry could not find a pyproject.toml file in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny$T5 QA (-zsh)Last login: Thu Apr 16 15:43:43 on consolePoetry could not find a pyproject.toml file in /Users/lukas or its parentsPoetry could not find a pyproject.tomlfile in /Users/lukas or its parentsXT6 FE (-zsh)Last login: Thu Apr 16 15:48:07 on ttys004Poetry could not find a pyproject.toml file in /Users/lukas or its parents RONTENDPoetry could not find a pyproject.toml file in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ IX T7 EXT (-zsh)Poetry could not find a pyproject.toml file in /Users/lukas or its parentsEXTENSIONPoetry could not find a pyproject.tomlfile in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ I|...
|
NULL
|
|
19354
|
411
|
24
|
2026-04-15T07:32:44.429289+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776238364429_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelp> 0.| [Platform] Planning... 28 m left)meet.google.com/tgb-pyuf-dri?authuser=lukas.kovalik%40jiminny.comGalya Dimitrova (Presenting, annotating)SafariFileEditViewHistoryBookmarksDevelopWindowHelp2.₽33 HubSpot|OpenAl#f Seit ServiceAWS US#* Platform TeamAWS EUThe Revenue.jiminny.atlassian.net|AWS AIPlanhatE Features Adop....•] Emojї|BICELUT4 LogRocket|P PostmarkBambooE Ask Siminey V..88Search+ Create• Upgrade? For you©Recent |# Starred89 AppsSpaces / Jiminny (New)Platform Team@ Summary|& Timeline• Backlog|IID Active sprints& Reports4 Testing BoardE ListQ Search backlog |010800Version vEpic vType vLabel vQuick filters v& Plans0, SpacesA JY-20489Rework Nudges - Phase 2 - change Nudges to use the indexed_at periodCOST-EFFECTIVE AN…StarredA JY-9712 Change forever nudges to 1 year expirationCOST-EFFECTIVE AN...Jiminny (New)I ( Platform TeamIID Processing TeamII SE KanbanIID Capture TeamIID Enterprise Stability I...Discovery© JY-20564 Investigate and fix why exceed Fontawesome package limitsMAINTENANCEA JY-20372 AI Reports › Empty page design and promotionAJ REPORTSA JY-20157 Send email notification when the report is not generatedAJ REPORTSD JY-20508 Notify a user before the AJ Report expiresX JY-20278 AJ Panorama> Don't show internal errors to customersASK ANYTHING ON A.A JY-20566 AI Review - Q1 - Summary/Action items/Key Points CGROWTH - MAINTAIProductRecent© JY-19628 Evaluation of AJ PanoramaASK ANYTHING ON A.9 Service-Desk= More spaces |D JY-20412 Change Auto-log delayPLATFORM STABILITY© JY-20352 Sync opportunities without a local owner (user_id is null)PLATFORM STABTUTY= FiltersIB DashboardsA JY-20361 AJ Panorama for Call Scoring in ODAUTOMATED AI SCO..Operations© JY-19957 Upgrade BE librarias- Anr& Customersmeet.google.com is sharing your screen.© JY-19967 Upgrade Python &Stop sharingHideMAINTENANCE& FormsBACKLOGBACKLOGREADY FOR DEVBACKLOGBACKLOGBACKLOGBACKLOGBACKLOGBACKLOGBACKLOG vBACKLOGBACKLOG VBACKLOGQ8•Wed 15 Apr 10:32** Campus x) FirebaseF* LLM EvaluatioAsk RovoComponentsMore 9+4.5= %16= &2= g1= 15= g14= 82.5= g1=Sterka StoyanovaNikolay Nikolov10:32 AM | [Platform] Planning | Session EzSộ3→Lukas Kovalik32:3010:32:44Galya Dimitrova4 others...
|
NULL
|
-8825519736760097080
|
NULL
|
visual_change
|
ocr
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelp> 0.| [Platform] Planning... 28 m left)meet.google.com/tgb-pyuf-dri?authuser=lukas.kovalik%40jiminny.comGalya Dimitrova (Presenting, annotating)SafariFileEditViewHistoryBookmarksDevelopWindowHelp2.₽33 HubSpot|OpenAl#f Seit ServiceAWS US#* Platform TeamAWS EUThe Revenue.jiminny.atlassian.net|AWS AIPlanhatE Features Adop....•] Emojї|BICELUT4 LogRocket|P PostmarkBambooE Ask Siminey V..88Search+ Create• Upgrade? For you©Recent |# Starred89 AppsSpaces / Jiminny (New)Platform Team@ Summary|& Timeline• Backlog|IID Active sprints& Reports4 Testing BoardE ListQ Search backlog |010800Version vEpic vType vLabel vQuick filters v& Plans0, SpacesA JY-20489Rework Nudges - Phase 2 - change Nudges to use the indexed_at periodCOST-EFFECTIVE AN…StarredA JY-9712 Change forever nudges to 1 year expirationCOST-EFFECTIVE AN...Jiminny (New)I ( Platform TeamIID Processing TeamII SE KanbanIID Capture TeamIID Enterprise Stability I...Discovery© JY-20564 Investigate and fix why exceed Fontawesome package limitsMAINTENANCEA JY-20372 AI Reports › Empty page design and promotionAJ REPORTSA JY-20157 Send email notification when the report is not generatedAJ REPORTSD JY-20508 Notify a user before the AJ Report expiresX JY-20278 AJ Panorama> Don't show internal errors to customersASK ANYTHING ON A.A JY-20566 AI Review - Q1 - Summary/Action items/Key Points CGROWTH - MAINTAIProductRecent© JY-19628 Evaluation of AJ PanoramaASK ANYTHING ON A.9 Service-Desk= More spaces |D JY-20412 Change Auto-log delayPLATFORM STABILITY© JY-20352 Sync opportunities without a local owner (user_id is null)PLATFORM STABTUTY= FiltersIB DashboardsA JY-20361 AJ Panorama for Call Scoring in ODAUTOMATED AI SCO..Operations© JY-19957 Upgrade BE librarias- Anr& Customersmeet.google.com is sharing your screen.© JY-19967 Upgrade Python &Stop sharingHideMAINTENANCE& FormsBACKLOGBACKLOGREADY FOR DEVBACKLOGBACKLOGBACKLOGBACKLOGBACKLOGBACKLOGBACKLOG vBACKLOGBACKLOG VBACKLOGQ8•Wed 15 Apr 10:32** Campus x) FirebaseF* LLM EvaluatioAsk RovoComponentsMore 9+4.5= %16= &2= g1= 15= g14= 82.5= g1=Sterka StoyanovaNikolay Nikolov10:32 AM | [Platform] Planning | Session EzSộ3→Lukas Kovalik32:3010:32:44Galya Dimitrova4 others...
|
19352
|
|
15857
|
354
|
77
|
2026-04-14T15:01:22.338276+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776178882338_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
175281002009/10Dark Age-Villager Created--Scout Ca 175281002009/10Dark Age-Villager Created--Scout Cavalrykovalfklukas (Britons)T 0/243/435 Urus Khan: 246/246 Ct2 Zhu Di: 246/2464 Afonso de Albuquerque: 240/2403 Anawrahta: 240/2408 Vortigern: 239/2396 John the Blind: 238/2387 Humayun: 234/2341 kovaliklukas: 230/230...
|
NULL
|
-8825130416665064909
|
NULL
|
click
|
ocr
|
NULL
|
175281002009/10Dark Age-Villager Created--Scout Ca 175281002009/10Dark Age-Villager Created--Scout Cavalrykovalfklukas (Britons)T 0/243/435 Urus Khan: 246/246 Ct2 Zhu Di: 246/2464 Afonso de Albuquerque: 240/2403 Anawrahta: 240/2408 Vortigern: 239/2396 John the Blind: 238/2387 Humayun: 234/2341 kovaliklukas: 230/230...
|
15855
|
|
45155
|
951
|
63
|
2026-04-17T09:22:54.410283+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776417774410_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpmeet.google.com/xpx-omah-rknall= Support Daily • in 2h 38 m100% 1978 • Fri 17 Apr 12:22:54=6+llian Kyuchukov (Presenting, annotating)FileProfiesCowowneo"wtteCloudwatch | eu-west-1CloudWatch | no-west-1% eu-west-1.console.aws.amazon.com/cloudwatch/home?region=eu-west-1ilogsV2:logs-insightsS3FqueryDetailS3D-(end-*2026-04-17T06*3a39*3a35.9782-start-v2026-04-17T06*3a04*3a5.awsQ(Option+5) © Ask Amazon Q58029758241410MOUOWOLCELogs Insights>generalLogs Insights QL½ Query generator@ FieldsSaved and sample queries |Query commands© Completed. Query executed for 30 log groups. ©Logs (1.5k)Patterns (1)VisualizationLogs (1.5k)"a Snare resuitShowing 1,498 of 1,498 records matched ©703,629 records (174.3 MB) scanned in 3.3s @ 210,983 records/s (52.3 MB/s)n-942-4ов.10ce.1sQ, Filter toble results (cose insensitive)..2026-04-17T06:40:002.328 maschesetimestaroAnessoge2026-04-17706:18:07.00722026-04-17106:18:08.25822026-04-17706:18:09.30622026-04-17T06:18:15.15822026-04-17786:18:16.4362• 11.• 12.2026-04-17706:18:19.69922826-04-17706:18:20.26022026-04-17786:18:22.97822826-84-17706:18:23.85422026-04-17706:18:24.48322026-84-17786:18:24.5582","code":580, "response": "Internal Server Error") ("correlation_id":-en-delayed/worker-delzyed/8b/f6344876744fe808u52404e13e254 L""code" :500, "response":"Internol Server Error") ("correlation,id":-worker-delayed/worker-delayed/ba12570878c340x066c04d581e46b828 Lworker-delayed/worker-delayed/25bu2c3c95864e418cb631Sc98754283 LKivdr trro) 1 corretacionsid anwer-delayed/worker-delayed/73ba2c3c95064e418cb631Sc99734283 Ltyw:/worker-delayed/KMete5991924b1efca39bbeSaef95d k?ker-delayed/worker-delayed/c908024094c543745d1869175dsf0924Server Error") ("correlation,id":-delayed/worker-delayed/79ba2c3c95054e418cb631Sc98734283 Lker-delayed/C340be589197001efcxS9bbeSaefc95d L?"code" : 500, "response" : "Internaldelayed/8bf1cs448/0144te505a524e4e13e254 Ldelayed/290802409&c5437e841869173daf0924 Ldetayed/worker-delayed/036221e65381864cb882679de766970e LeLog765728199711.765728199711.765728199711765728199711765728199711-765728199711rowicoaidaroo/cews12• Q 8• Fri17 Aor 12:22O WorkFinish update :CU.View_Only ©.765720199711Leam more CQueriesSaved queries• fiiter tw query nomdCreate query• Calendar (1)• CleandDB (20)• CRM (12)• Dialers (19) |• Emo (Activity Logs) (1)• Mails (1) |• Notetaker (31) |• Nudge (1)• Ogi (2)• Pipedrive (4)• Processing (4)• Prophet (1)• Recall (1)• Summary (15)|• Tomov (4)|_general - CWL • +|_Social Account Status logs - CWU +DB Errors - CWL +|Ouplicated track event - CWL +Termsllian KyuchukovNikolay NikolovVasil VasilevMihail MihaylovCookie preferencesLukas Kovalik12:22 PM | Daily - Processing...
|
NULL
|
-8824977071384149106
|
NULL
|
visual_change
|
ocr
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpmeet.google.com/xpx-omah-rknall= Support Daily • in 2h 38 m100% 1978 • Fri 17 Apr 12:22:54=6+llian Kyuchukov (Presenting, annotating)FileProfiesCowowneo"wtteCloudwatch | eu-west-1CloudWatch | no-west-1% eu-west-1.console.aws.amazon.com/cloudwatch/home?region=eu-west-1ilogsV2:logs-insightsS3FqueryDetailS3D-(end-*2026-04-17T06*3a39*3a35.9782-start-v2026-04-17T06*3a04*3a5.awsQ(Option+5) © Ask Amazon Q58029758241410MOUOWOLCELogs Insights>generalLogs Insights QL½ Query generator@ FieldsSaved and sample queries |Query commands© Completed. Query executed for 30 log groups. ©Logs (1.5k)Patterns (1)VisualizationLogs (1.5k)"a Snare resuitShowing 1,498 of 1,498 records matched ©703,629 records (174.3 MB) scanned in 3.3s @ 210,983 records/s (52.3 MB/s)n-942-4ов.10ce.1sQ, Filter toble results (cose insensitive)..2026-04-17T06:40:002.328 maschesetimestaroAnessoge2026-04-17706:18:07.00722026-04-17106:18:08.25822026-04-17706:18:09.30622026-04-17T06:18:15.15822026-04-17786:18:16.4362• 11.• 12.2026-04-17706:18:19.69922826-04-17706:18:20.26022026-04-17786:18:22.97822826-84-17706:18:23.85422026-04-17706:18:24.48322026-84-17786:18:24.5582","code":580, "response": "Internal Server Error") ("correlation_id":-en-delayed/worker-delzyed/8b/f6344876744fe808u52404e13e254 L""code" :500, "response":"Internol Server Error") ("correlation,id":-worker-delayed/worker-delayed/ba12570878c340x066c04d581e46b828 Lworker-delayed/worker-delayed/25bu2c3c95864e418cb631Sc98754283 LKivdr trro) 1 corretacionsid anwer-delayed/worker-delayed/73ba2c3c95064e418cb631Sc99734283 Ltyw:/worker-delayed/KMete5991924b1efca39bbeSaef95d k?ker-delayed/worker-delayed/c908024094c543745d1869175dsf0924Server Error") ("correlation,id":-delayed/worker-delayed/79ba2c3c95054e418cb631Sc98734283 Lker-delayed/C340be589197001efcxS9bbeSaefc95d L?"code" : 500, "response" : "Internaldelayed/8bf1cs448/0144te505a524e4e13e254 Ldelayed/290802409&c5437e841869173daf0924 Ldetayed/worker-delayed/036221e65381864cb882679de766970e LeLog765728199711.765728199711.765728199711765728199711765728199711-765728199711rowicoaidaroo/cews12• Q 8• Fri17 Aor 12:22O WorkFinish update :CU.View_Only ©.765720199711Leam more CQueriesSaved queries• fiiter tw query nomdCreate query• Calendar (1)• CleandDB (20)• CRM (12)• Dialers (19) |• Emo (Activity Logs) (1)• Mails (1) |• Notetaker (31) |• Nudge (1)• Ogi (2)• Pipedrive (4)• Processing (4)• Prophet (1)• Recall (1)• Summary (15)|• Tomov (4)|_general - CWL • +|_Social Account Status logs - CWU +DB Errors - CWL +|Ouplicated track event - CWL +Termsllian KyuchukovNikolay NikolovVasil VasilevMihail MihaylovCookie preferencesLukas Kovalik12:22 PM | Daily - Processing...
|
NULL
|
|
27330
|
574
|
14
|
2026-04-15T13:46:49.760113+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776260809760_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
6683883360321955165/185VImperial Age-Onager Resear 6683883360321955165/185VImperial Age-Onager Research Complete-5 Magnus Olafsson: 23894/238941 kovaliklukas: 20142/201428 Almish Yiltawar: 18994/18994ON2 Rajyapala: 18492/18492NV6 László I: 12438/12438NV7Maximilian of Habobung: 6760/6760NV1 Louis VI: 6374/637433 Huagcár: 6170/6178 F TVStablekovalfklukas (Britons))7 3/102100/2100...
|
NULL
|
-8824710372955523113
|
NULL
|
click
|
ocr
|
NULL
|
6683883360321955165/185VImperial Age-Onager Resear 6683883360321955165/185VImperial Age-Onager Research Complete-5 Magnus Olafsson: 23894/238941 kovaliklukas: 20142/201428 Almish Yiltawar: 18994/18994ON2 Rajyapala: 18492/18492NV6 László I: 12438/12438NV7Maximilian of Habobung: 6760/6760NV1 Louis VI: 6374/637433 Huagcár: 6170/6178 F TVStablekovalfklukas (Britons))7 3/102100/2100...
|
NULL
|
|
27345
|
572
|
18
|
2026-04-15T13:47:06.524481+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776260826524_m1.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
+SlackFileEditViewGoEDHomeActivity..•More+HistoryW +SlackFileEditViewGoEDHomeActivity..•More+HistoryWindowHelp→Search Jiminny IncJiminny ...sos+# general# infra-changes# jiminny-bg# platform-tickets# product _launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesStoyan TanevVesGalya DimitrovaAneliya Angelova, ...Vasil VasilevSteliyan GeorgievAdelina Petrova, Ili...P. Adelina PetrovaD. Nikolay Nikolov2 Galya Dimitrova, Ni...ii: AppsToastJira Cloud# releases8 22Messagesnewdou+O Files• Bookmarksv 2 new messagesGitHub APP3:28 PM7 new commits pushed tomaster by nikolay-yankovNew24b989ee - Enhance SECFIXdocumentation and policiesa3a0a742 - Update SECFIX Slack channelreference in documentation and workflowfiles071c999d - Merge branch 'master' intoimprove-secfix-bot-15-04-2026981e9a1a - Update SECFIX_PROMPT.mdto enhance clarity on upgrade safety andchangelog reviews6e938e53 - Enhance SECFIX workflow withSlack notification optionsShow more( jiminny/app Added by GitHubCircleCl APP3:53 PMDeployment Successful!Project: appWhen:04/15/202612:53:30Tag:View JobMessage #releases+Aa...Activity MonitorAll ProcessesProcess NameBoosteroidWindowServerFirefoxFirefoxCP Isolated Web ContentFirefoxCursorUlViewService (Not Responding)FirefoxCP Isolated Web ContentFirefox GPU HelperFirefoxCP Isolated Web ContentFirefox GPU HelperVTDecoderXPCServiceFirefoxCP Isolated Web ContentSlack Helper (Renderer)FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentNotion Calendar Helper (Renderer)Notion Helper (Renderer)claudeClaude Helper (Renderer)FirefoxCP Isolated Web ContentiTerm2FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentscreenpipeMEMORY PRESSUREMem...2,03 GB1,19 GB993,0 MB962,7 MB836,4 MB793,5 MB783,3 MB554,1 MB547,4 MB543,8 MB516,1 MB464,6 MB450,8 MB426,1 MB425,4 MB393,2 MB391,4 MB389,7 MB372,5 MB343,7 MB327,3 MB326,1 MB325,2 MB299,9 MB252,1 MB244,2 MB244,1 MB237,6 MBPhysical Memory:Memory Used:Cached Files:Swap Used:100% <478Wed 15 Apr 16:47:06CPUMemoryDiskThreads39237526842830252611241525242626232215211315286272860EnergyPorts60719 7587241251 20120 019130244128250167120185123124124127120119175330722201261 833125129520PID93892407801442974146648424203080193671314673938993548041863358313527643652430163689848173265481148509106051935833487856138482984287616,00 GB14,22 GB<1,75 GB2,90 GBApp Memory:Wired Memory:Compressed:NetworkUserlukas_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas3,70 GB2,90 GB7,07 GB...
|
NULL
|
-8824303513799148943
|
NULL
|
click
|
ocr
|
NULL
|
+SlackFileEditViewGoEDHomeActivity..•More+HistoryW +SlackFileEditViewGoEDHomeActivity..•More+HistoryWindowHelp→Search Jiminny IncJiminny ...sos+# general# infra-changes# jiminny-bg# platform-tickets# product _launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesStoyan TanevVesGalya DimitrovaAneliya Angelova, ...Vasil VasilevSteliyan GeorgievAdelina Petrova, Ili...P. Adelina PetrovaD. Nikolay Nikolov2 Galya Dimitrova, Ni...ii: AppsToastJira Cloud# releases8 22Messagesnewdou+O Files• Bookmarksv 2 new messagesGitHub APP3:28 PM7 new commits pushed tomaster by nikolay-yankovNew24b989ee - Enhance SECFIXdocumentation and policiesa3a0a742 - Update SECFIX Slack channelreference in documentation and workflowfiles071c999d - Merge branch 'master' intoimprove-secfix-bot-15-04-2026981e9a1a - Update SECFIX_PROMPT.mdto enhance clarity on upgrade safety andchangelog reviews6e938e53 - Enhance SECFIX workflow withSlack notification optionsShow more( jiminny/app Added by GitHubCircleCl APP3:53 PMDeployment Successful!Project: appWhen:04/15/202612:53:30Tag:View JobMessage #releases+Aa...Activity MonitorAll ProcessesProcess NameBoosteroidWindowServerFirefoxFirefoxCP Isolated Web ContentFirefoxCursorUlViewService (Not Responding)FirefoxCP Isolated Web ContentFirefox GPU HelperFirefoxCP Isolated Web ContentFirefox GPU HelperVTDecoderXPCServiceFirefoxCP Isolated Web ContentSlack Helper (Renderer)FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentNotion Calendar Helper (Renderer)Notion Helper (Renderer)claudeClaude Helper (Renderer)FirefoxCP Isolated Web ContentiTerm2FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentscreenpipeMEMORY PRESSUREMem...2,03 GB1,19 GB993,0 MB962,7 MB836,4 MB793,5 MB783,3 MB554,1 MB547,4 MB543,8 MB516,1 MB464,6 MB450,8 MB426,1 MB425,4 MB393,2 MB391,4 MB389,7 MB372,5 MB343,7 MB327,3 MB326,1 MB325,2 MB299,9 MB252,1 MB244,2 MB244,1 MB237,6 MBPhysical Memory:Memory Used:Cached Files:Swap Used:100% <478Wed 15 Apr 16:47:06CPUMemoryDiskThreads39237526842830252611241525242626232215211315286272860EnergyPorts60719 7587241251 20120 019130244128250167120185123124124127120119175330722201261 833125129520PID93892407801442974146648424203080193671314673938993548041863358313527643652430163689848173265481148509106051935833487856138482984287616,00 GB14,22 GB<1,75 GB2,90 GBApp Memory:Wired Memory:Compressed:NetworkUserlukas_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas3,70 GB2,90 GB7,07 GB...
|
27343
|
|
52878
|
1147
|
22
|
2026-04-20T07:46:32.578486+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776671192578_m2.jpg...
|
PhpStorm
|
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Find in Files
9 matches in 3 files
File mask:
*.ph Find in Files
9 matches in 3 files
File mask:
*.php
*.php
Auto
*.php
Filter Search Results...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Find in Files","depth":1,"bounds":{"left":0.2992021,"top":0.12609737,"width":0.024601065,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"9 matches in 3 files","depth":1,"bounds":{"left":0.32779256,"top":0.12609737,"width":0.039893616,"height":0.013567438},"role_description":"text"},{"role":"AXCheckBox","text":"File mask:","depth":1,"bounds":{"left":0.5315825,"top":0.12290503,"width":0.029587766,"height":0.019952115},"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXComboBox","text":"*.php","depth":1,"bounds":{"left":0.5621675,"top":0.11971269,"width":0.027925532,"height":0.027134877},"value":"*.php","role_description":"combo box","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"*.php","depth":6,"role_description":"text"},{"role":"AXStaticText","text":"Auto","depth":6,"role_description":"text"},{"role":"AXTextField","text":"*.php","depth":2,"bounds":{"left":0.5661569,"top":0.12609737,"width":0.011635638,"height":0.013567438},"value":"*.php","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Filter Search Results","depth":1,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8824265561475803386
|
-8610200700851170001
|
click
|
hybrid
|
NULL
|
Find in Files
9 matches in 3 files
File mask:
*.ph Find in Files
9 matches in 3 files
File mask:
*.php
*.php
Auto
*.php
Filter Search Results
PhostormVIeWINavigarecodeLaravelrTavsco.s#11894 on JY-18909-aProiectm AutomatedReports(C) Service.onpC) FieldRepository.pnpv D UserPilot© TrackAutomatedReportGer> D Calendars© AutcOerm© Creatboorstrapintecralionapo.ong© ImportActivityTypes.php(C) TrackProviderInstalledEvent.php© CreateActivityLoqgedEvent.php© UserPilC Importmetadata.phpC) AutomatedReportsCallbackService.php(C) RequestGenerateAskJiminnyReportJob.r© InitProfiles.phpC)LavoutModitiedListener.phpC) AutomatedReportResult.ohd© AutomatedReport.oho© LayoutUpdatedListener.phpclass TrackAutomatedReportGeneratedEvent implements ShouldQunublic function handleAutomatedRenontGenenated Sevent).RematchActivitvonCrmobiectl o4@ RemoteCrmRecordDeletedListc) Resolveowner.ono© SvncOpportunitv.ohpSvncProfileLeads.oho© SyncProfileOpportunities.phpN DealRisksM SlacticSearchiM GrouncImportM MailboyNudgesD OpportunitiesD PlaybooksD PlaylistsD TeamsC TranscriptionC Users0 Webhook= .aitkeep© ChangeLoqContextCorrelationld.r> 0 Mailv D Models→D ActivitvAskAnvthinaM CalendarConnectionContractsv Mermc BusinessProcess.ohn© Configuration.php(C) ContactRole.nhn(C) Field.nhr@ FieldData nhn|© FieldValue.phpal lavout nhr© LayoutEntity.php© Loa.php(c) Profille.pnpSautomatedReport = sevent->automatedReport:Spavload = sthis->bu1ldPavLoadSautomatedReport)SeventName = Sthis->resolvezventName SautomatedRepontry <foreach(Sthis->resolvelsersSautomatedRenort)aSthis->userPilotClient->trackSuser Sevent!} catch (GuzzleException $e) 1Sthis->release( delay: 3600):* @return array<UserContract>T usageprivate function resolveUsers(AutomatedReport Sautomatedif (SautomatedReport->isAskJiminnyReportO) {Screator = SautomatedReport->qetCreatororeturn Screator !== null? [Screator]: []return Sthis->automatedReportsService->qetRecipientU1 usageorivate function buildPavloadAutomatedRenort Sautomatedreturn1npnont +vne!=> SautomatedRenont->ae+tvneoi"Frpqueney'= SautomatedRenont->ae+srequencvd100% Lz• Mon 20 Apr 10:46:32+0 ..© Playbook.php© ReportController.phpFind in Files © matches in 3 tillessthis->userPilotelient->Directory ScopelotClient->exoects(sthis->never))->method("track")nt-seynects/sthis->once?))lotClient->aynects(Sthis->neverd)=method("track"olcllent*›expecis(sthis->exactiv(2))t->eynects(Sthis-snever())->method("track")otClient-sexnects/Sthis-sonce/))->expects(Sthis->once())'ilotClient->track(Suser, $eventName, $payload):it->upsertCompany(Sevent->team):= custom.log=laravel.log4 SF [jiminny@localhost]A HS_local (jiminny@localhost]& console [PKol)4 console [EU] XA console [STAGING]Tx: Autovdojiminny vFie mask.027 A9 A23 V3 V 105 ^X5 Cc WTrackAutomatedReoortGeneratedEventTest.ono 49TrackAutomatedRenortGeneratedEventTest.ohn 69frackAutomatedRenortGeneratedEventTest.ohn 91TrackAutomatedRenortGeneratedFventTest.oho 114TrackAutomatedRenortGeneratedEventTest.ohn 141TrackAutomatedReportGeneratedEventTest.php 161TrackAutomatedRenortGeneratedFventTest.nhn 188TrackAutomatedReportGeneratedEvent.php 45SyncUsgyPilotCompanyListener.php 20Group Photo UrL RevRetactor UserPilot TraFindinas: What changed with Group photoAfter diaaina through both backend and frontend history. I can now aive a definitive answerBackend (Group::photo_url)Unchanged since it was tirst introduced. commit 434a4e0c "Set tlag as group photo for now", May 5 2017 added getPhotcurtaccrioutely with the exdct country-tlag logic stilin place toddy"• Group.php:220-223return cdn('img/flags/1x1/' . strtolower($this->country_code) . '.svg');uo had no photo URL attribute at all. So at the model level. the answer is: the URL has alwavs been thecountry tlag svc (Since May 201/); there was no earlier formulaFrontend (GroupAvatar, vue) — this is probablv what vou noticedThe avatar visual did change recently. The photoUrl (flag image) was the same, but a colored ring was drawn around it using•Before (Sep 2020 - Dec 2024, commit d8618b5a87 ):TrackAutomatedReoortGeneratedEventTest.ono tests/Unit/Listeners/AutomatedReports/UserPilotpublic function testHandleSkipsWhenUserPilotTokenIsNull): voidconfiodi'services.usernilot token' => nullid:Sreport = $this->createMockCe: AutomatedRenort:class):Srenort->exnects(Sthis->neverOn->method constra'isAskJiminnyReport');Sthis->userPilotClient->expects(Sthis->never())->method( constraint: 'track'):$listener = Sthis->makeListenerO:Slictenen-shandle/Sthic-smakeFvent(Snenont))•public function testHandleTracksCreatorForAskJiminnyReport: voidconfig(['services.userpilot.token' => 'NX-token']):Screator = Sthis->createMock( originalClassName: User::class):Sreport = sthis->createMock@ originalClassName: AutomatedReport::class):Sreport->expects(sthis->exactly count: 200->method constraint: '1sAskJaminnvReport')->w1l Return( value: true):Sreport-›expects(Sthis->once(0->method constraint: 'getcreaton')->w1l1Return(Screator):Sreport->expects(Sthis->once0)->method constraint'getType')->willReturn( value: AutomatedReportsService::TYPE_AS^ Onen recults in new tabOnen in Sind Window35.6293.12098.11.60701idvuelio.comborder-color="aroun.color"After commit 85a3688eaf - "Remove aroun color" (Ahmet Katranci. Dec 19 2024). oart of JY-17913:0 CrounAvatarvule:1-10l<BaseAvatarurle"aroup.ohotour"content: group.name,•.• сippy,</template>The matching backend commit aae3d5e755 ("JY-17913 Remove group color in php") dropped the color field from Group: :$f:1lable and removed detGolor()) I cetGolor!).Conclucion• The imade itself (countrv flaa) has been the same since 2017.• What changed in Dec 2024 (JY-17913) is that the colored border that surrounded the flag in the GroupAvatar componentAsk anvthing (84D)Claude Qnus 4.7 MediumPo. 4 spac...
|
52876
|
|
8758
|
169
|
38
|
2026-04-14T07:04:08.939307+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776150248939_m2.jpg...
|
Activity Monitor
|
Activity Monitor – All Processes
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Physical Memory:
16,00 GB
Memory Used:
14,09 GB
Ca Physical Memory:
16,00 GB
Memory Used:
14,09 GB
Cached Files:
1,88 GB
Swap Used:
3,53 GB
3,18 GB
Wired Memory:
Compressed:
2,83 GB
7,53 GB
App Memory:
MEMORY PRESSURE
Virtual Machine Service for Claude
1,85 GB
20
79
53868
lukas
Virtual Machine Service for Docker
1,44 GB
21
84
30274
lukas
WindowServer
959,2 MB
21
11 252
407
_windowserver
FirefoxCP Isolated Web Content
759,2 MB
23
122
14700
lukas
Claude Helper (Renderer)
707,6 MB
15
217
2517
lukas
Browser Helper (Renderer)
698,4 MB
66
463
27083
lukas
Firefox GPU Helper
619,9 MB
30
238
8019
lukas
Firefox
551,9 MB
72
703
8014
lukas
Postman Helper (Renderer)
527,6 MB
25
286
42547
lukas
Firefox GPU Helper
518,7 MB
27
229
14673
lukas
Slack Helper (Renderer)
477,3 MB
15
161
24273
lukas
Firefox
472,9 MB
77
755
14664
lukas
Notion Calendar Helper (Renderer)
462,5 MB
16
187
26548
lukas
Notion Helper (Renderer)
462,2 MB
21...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Physical Memory:","depth":3,"automation_id":"_NS:456","help_text":"Total amount of memory installed in this computer.","role_description":"text"},{"role":"AXStaticText","text":"16,00 GB","depth":3,"automation_id":"_NS:448","help_text":"Total amount of memory installed in this computer.","role_description":"text"},{"role":"AXStaticText","text":"Memory Used:","depth":3,"automation_id":"_NS:441","help_text":"Amount of physical memory that is in use by apps or the system.","role_description":"text"},{"role":"AXStaticText","text":"14,09 GB","depth":3,"automation_id":"_NS:435","help_text":"Amount of physical memory that is in use by apps or the system.","role_description":"text"},{"role":"AXStaticText","text":"Cached Files:","depth":3,"automation_id":"_NS:428","help_text":"Size of files cached by the system into unused memory to improve performance.","role_description":"text"},{"role":"AXStaticText","text":"1,88 GB","depth":3,"automation_id":"_NS:422","help_text":"Size of files cached by the system into unused memory to improve performance.","role_description":"text"},{"role":"AXStaticText","text":"Swap Used:","depth":3,"automation_id":"_NS:415","help_text":"Amount of compressed data temporarily moved to disk to make room in memory for more recently used data.","role_description":"text"},{"role":"AXStaticText","text":"3,53 GB","depth":3,"automation_id":"_NS:409","help_text":"Amount of compressed data temporarily moved to disk to make room in memory for more recently used data.","role_description":"text"},{"role":"AXStaticText","text":"3,18 GB","depth":3,"automation_id":"_NS:400","help_text":"Physical memory allocated by apps and system processes.","role_description":"text"},{"role":"AXStaticText","text":"Wired Memory:","depth":3,"automation_id":"_NS:393","help_text":"Physical memory containing data that cannot be compressed or swapped to disk.","role_description":"text"},{"role":"AXStaticText","text":"Compressed:","depth":3,"automation_id":"_NS:386","help_text":"Physical memory used to store a compressed version of data that has not been used recently.","role_description":"text"},{"role":"AXStaticText","text":"2,83 GB","depth":3,"automation_id":"_NS:380","help_text":"Physical memory containing data that cannot be compressed or swapped to disk.","role_description":"text"},{"role":"AXStaticText","text":"7,53 GB","depth":3,"automation_id":"_NS:374","help_text":"Physical memory used to store a compressed version of data that has not been used recently.","role_description":"text"},{"role":"AXStaticText","text":"App Memory:","depth":3,"automation_id":"_NS:367","help_text":"Physical memory allocated by apps and system processes.","role_description":"text"},{"role":"AXStaticText","text":"MEMORY PRESSURE","depth":3,"automation_id":"_NS:359","role_description":"text"},{"role":"AXStaticText","text":"Virtual Machine Service for Claude","depth":5,"bounds":{"left":0.5257813,"top":1.0,"width":0.0984375,"height":-0.07916665},"automation_id":"_NS:31","role_description":"text"},{"role":"AXStaticText","text":"1,85 GB","depth":5,"bounds":{"left":0.6308594,"top":1.0,"width":0.025,"height":-0.07916665},"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"20","depth":5,"bounds":{"left":0.6625,"top":1.0,"width":0.0234375,"height":-0.07916665},"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"79","depth":5,"bounds":{"left":0.69257814,"top":1.0,"width":0.01875,"height":-0.07916665},"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"53868","depth":5,"bounds":{"left":0.71796876,"top":1.0,"width":0.015625,"height":-0.07916665},"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"lukas","depth":5,"bounds":{"left":0.7402344,"top":1.0,"width":0.03125,"height":-0.07916665},"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"Virtual Machine Service for Docker","depth":5,"bounds":{"left":0.5257813,"top":1.0,"width":0.0984375,"height":-0.0958333},"automation_id":"_NS:31","role_description":"text"},{"role":"AXStaticText","text":"1,44 GB","depth":5,"bounds":{"left":0.6308594,"top":1.0,"width":0.025,"height":-0.0958333},"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"21","depth":5,"bounds":{"left":0.6625,"top":1.0,"width":0.0234375,"height":-0.0958333},"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"84","depth":5,"bounds":{"left":0.69257814,"top":1.0,"width":0.01875,"height":-0.0958333},"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"30274","depth":5,"bounds":{"left":0.71796876,"top":1.0,"width":0.015625,"height":-0.0958333},"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"lukas","depth":5,"bounds":{"left":0.7402344,"top":1.0,"width":0.03125,"height":-0.0958333},"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"WindowServer","depth":5,"automation_id":"_NS:31","role_description":"text"},{"role":"AXStaticText","text":"959,2 MB","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"21","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"11 252","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"407","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"_windowserver","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"FirefoxCP Isolated Web Content","depth":5,"automation_id":"_NS:31","role_description":"text"},{"role":"AXStaticText","text":"759,2 MB","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"23","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"122","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"14700","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"lukas","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"Claude Helper (Renderer)","depth":5,"automation_id":"_NS:31","role_description":"text"},{"role":"AXStaticText","text":"707,6 MB","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"15","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"217","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"2517","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"lukas","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"Browser Helper (Renderer)","depth":5,"automation_id":"_NS:31","role_description":"text"},{"role":"AXStaticText","text":"698,4 MB","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"66","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"463","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"27083","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"lukas","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"Firefox GPU Helper","depth":5,"automation_id":"_NS:31","role_description":"text"},{"role":"AXStaticText","text":"619,9 MB","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"30","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"238","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"8019","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"lukas","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"Firefox","depth":5,"automation_id":"_NS:31","role_description":"text"},{"role":"AXStaticText","text":"551,9 MB","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"72","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"703","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"8014","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"lukas","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"Postman Helper (Renderer)","depth":5,"automation_id":"_NS:31","role_description":"text"},{"role":"AXStaticText","text":"527,6 MB","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"25","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"286","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"42547","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"lukas","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"Firefox GPU Helper","depth":5,"automation_id":"_NS:31","role_description":"text"},{"role":"AXStaticText","text":"518,7 MB","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"27","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"229","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"14673","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"lukas","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"Slack Helper (Renderer)","depth":5,"automation_id":"_NS:31","role_description":"text"},{"role":"AXStaticText","text":"477,3 MB","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"15","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"161","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"24273","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"lukas","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"Firefox","depth":5,"automation_id":"_NS:31","role_description":"text"},{"role":"AXStaticText","text":"472,9 MB","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"77","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"755","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"14664","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"lukas","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"Notion Calendar Helper (Renderer)","depth":5,"automation_id":"_NS:31","role_description":"text"},{"role":"AXStaticText","text":"462,5 MB","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"16","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"187","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"26548","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"lukas","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"Notion Helper (Renderer)","depth":5,"automation_id":"_NS:31","role_description":"text"},{"role":"AXStaticText","text":"462,2 MB","depth":5,"automation_id":"_NS:9","role_description":"text"},{"role":"AXStaticText","text":"21","depth":5,"automation_id":"_NS:9","role_description":"text"}]...
|
-8824128627505095456
|
842676782304508805
|
app_switch
|
accessibility
|
NULL
|
Physical Memory:
16,00 GB
Memory Used:
14,09 GB
Ca Physical Memory:
16,00 GB
Memory Used:
14,09 GB
Cached Files:
1,88 GB
Swap Used:
3,53 GB
3,18 GB
Wired Memory:
Compressed:
2,83 GB
7,53 GB
App Memory:
MEMORY PRESSURE
Virtual Machine Service for Claude
1,85 GB
20
79
53868
lukas
Virtual Machine Service for Docker
1,44 GB
21
84
30274
lukas
WindowServer
959,2 MB
21
11 252
407
_windowserver
FirefoxCP Isolated Web Content
759,2 MB
23
122
14700
lukas
Claude Helper (Renderer)
707,6 MB
15
217
2517
lukas
Browser Helper (Renderer)
698,4 MB
66
463
27083
lukas
Firefox GPU Helper
619,9 MB
30
238
8019
lukas
Firefox
551,9 MB
72
703
8014
lukas
Postman Helper (Renderer)
527,6 MB
25
286
42547
lukas
Firefox GPU Helper
518,7 MB
27
229
14673
lukas
Slack Helper (Renderer)
477,3 MB
15
161
24273
lukas
Firefox
472,9 MB
77
755
14664
lukas
Notion Calendar Helper (Renderer)
462,5 MB
16
187
26548
lukas
Notion Helper (Renderer)
462,2 MB
21...
|
NULL
|
|
46198
|
976
|
62
|
2026-04-17T10:24:54.624427+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776421494624_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesTools W FirefoxFileEditViewHistoryBookmarksProfilesTools Window Help• - app.dev.jiminny.com/onboardDevelopers | HubSpotM'inbox (1,575) - lukas.kovalik@jimin/M 120216 is your HubSpot Log In CodFal CloudWatch | eu-west-1New Tabz Configure SSH access to multiple. fix-cache-for-business-processes4 [JY-20692] Issue with reconnectirg Jiminny+ New TabJIMINN2 Zoho CRMLinking your Zoho CRM accountPlease select one of authentication options:ConnectingA popup window should open, please proceed therete your information3:00)IDURING CALLSom)ed we'll default to this oneTINGSImport Calendar Meetings*a Sign in with Zoho CRMG Sign in with GoogleLet's Get Started!Suooort Dailv . in 1h 36ml100% C8 Fri 17 Apr 13:24:54• Inspector• Console• Debugger T Network 1> Style Editor( Performance »wFilter OutoutErrors Warnings Info Logs DebugessNone of the "shas84" hashes in the inteqrity attribute match the content of the subresource at "https: fontSPa0e0d6a50/200/S0276ax 1KKUCSPLLwH/ ruMEKTCPJag CquEV5N*.A MouseEvent-mozInputSource is deprecated. Use PointerEvent-pointerType instead.0100xXHRIRequests | #*connectindex.mis:5:3Top ÷ ED...
|
NULL
|
-8823934582715059897
|
NULL
|
visual_change
|
ocr
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesTools W FirefoxFileEditViewHistoryBookmarksProfilesTools Window Help• - app.dev.jiminny.com/onboardDevelopers | HubSpotM'inbox (1,575) - lukas.kovalik@jimin/M 120216 is your HubSpot Log In CodFal CloudWatch | eu-west-1New Tabz Configure SSH access to multiple. fix-cache-for-business-processes4 [JY-20692] Issue with reconnectirg Jiminny+ New TabJIMINN2 Zoho CRMLinking your Zoho CRM accountPlease select one of authentication options:ConnectingA popup window should open, please proceed therete your information3:00)IDURING CALLSom)ed we'll default to this oneTINGSImport Calendar Meetings*a Sign in with Zoho CRMG Sign in with GoogleLet's Get Started!Suooort Dailv . in 1h 36ml100% C8 Fri 17 Apr 13:24:54• Inspector• Console• Debugger T Network 1> Style Editor( Performance »wFilter OutoutErrors Warnings Info Logs DebugessNone of the "shas84" hashes in the inteqrity attribute match the content of the subresource at "https: fontSPa0e0d6a50/200/S0276ax 1KKUCSPLLwH/ ruMEKTCPJag CquEV5N*.A MouseEvent-mozInputSource is deprecated. Use PointerEvent-pointerType instead.0100xXHRIRequests | #*connectindex.mis:5:3Top ÷ ED...
|
46196
|
|
24269
|
NULL
|
0
|
2026-04-15T12:10:36.171302+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776255036171_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
CaudeFileEditViewWindowHelp• Not Secure | http://[ CaudeFileEditViewWindowHelp• Not Secure | http://[IP_ADDRESS]:8767/frames_fts_data/~ Google Geminip! Western Digital Red Plus 3.5 6TB 5400rpm 256MB SAiSl I SeneticТвърд диск, Western Digital Red 6TB Plus ( 3.5". 256N* SQLite Web: db.sqlitew Screenpipe DashboardV Welcome to Steam- New laomenoe c ne crmmial vommmialleIf you already have Terminal open, or preferusing it, you can command Finder to open thefolder for you.1. Open the Terminal app (you can find itby pressing Command + Space to openSpotlight and typing "Terminal").2. Type the following command: open~/. screenpipe3. Press Return. A new Finder window willimmediately pop up showing thecontents of the folder.Method 3: Unhide All Files in Your HomeDirectoryIf you want to be able to see the folderalongside your normal files so you can clickinto it manually.1. Open Finder.2. Go to your Home folder by pressingCommand + Shift + H (this is what the~ symbol represents).3. Press Command + Shift + . (Command,Shift, and the Period key at the sametime).4. You will see all your hidden files andfolders fade into view. Scroll down to findthe .screenpipe folder and double-click5. Note: You can press Command + Shift +• again to hide the files when you aredone to keep your folders looking clean.Eс :Ask GeminiPro vGemini is Al and can make mistakes, including about people.Your privacy and GeminiSummarize pagesqlite-web 0.7.2 db.sqlite frames_fts_datatable name…saix miarationsaudio_chunksaudio_tagsaudio_transcriptionsaudio_transcriptions_fts (v)audio_transcriptions_.audio_transcriptions_…audio_transcriptions_.elementselements_fts (v)elements_fts_configelements_fts_dataelements_fts_idxframesframes_fts (v)frames_fts_configframes_fts_dataframes_fts_idxmeetingsmemoriesmemories_fts (v)memories_fts_configmemories_fts_datamemories_fts_idxocr_textpipe_executionspipe_scheduler_statespeaker_embeddingsspeakerssqlite_sequencetagsui_eventsui_events_fts (v)ui_events_fts_configui_events_fts_dataui_events_fts_idxViceo cnunksIvision laosToggle helper tablesStructureContentSQLCREATE TABLE 'frames_fts_daid INTEGER PRIMARY KEY,block BLOBColumnsColumnblockIndexesnamesulite database browser vo./.L, pg, 0ChatCoworklablCodeSupport Daily • 5 m left100% C4"Wed 15 Apr 15:10:35•..n<+ New chatQ Search= CustomizeQ ChatsProjects88 ArtifactsStarredBulgarian citizenship application...Dawarich location tracking projectHecentsLinux SQLite Ul for NASClaude API 500 internal server e...Screenpipe query capabilities a...eGPU compatibility with Mac mi...Understanding OpenRouter API...Screenpipe 14-day retention exp...Reddit homepage feed overviewDocker container not visible in c..DIA browser RAM configurationScreenpipe company backgroundDSK Bank Bulgaria secure invest...Building a comprehensive perso…..Importing Google Timeline data t...Chromecast remote volume butt...Screenpipe free version guideSelf-hosted LLM alternatives to ..Screenpipe database query setupRunning screenpipe for freeMac Studio network switch setupClaude extension in Vivaldi brow...General niormaron realestRed dots on neck causesChange approvalQuerying Screenpipe with Claud...Setting up daily backups in Ugre...Upcoming remindersAccessing tools in Open WebUlLaraver issue troublesnootingLukas KovalikPro nianLinux SQLite Ul for NAS vframes_fts_content is not here. Lets make the data againYou're right, the size query grouped by name includes index entries separately. Use theQuery tab in sqlite-web and run this — it will give clean per-table sizes only, no indexes:sqlSELECTWlallie,SUM(pgsize) / 1024 / 1024 as size_mbFROM dbstatWHERE name IN ('frames', 'ocr_text', 'elements', 'ui_events','video_chunks','audio_chunks','audio_transcriptions','memories', 'meetings', 'tags', 'vision_tags', 'audio_tags','speakers', 'speaker _embeddings', 'pipe_executions','frames_fts_data', 'frames_fts_content','elements_fts_data', 'audio_transcriptions_fts_data','memories_fts_data', 'ui_events_fts_data'GROUP BY nameORDER BY SUM(pgsize) DESC;And then also run this to get the actual schema for all real tables at once:sqlSELECT name, sqlFROM sqlite_masterWHERE type='table'AND name NOT LIKE"%_fts%'AND name NOT LIKE'sqlite_%'AND name NOT LIKE_sqlx%'ORDER BY name;Paste both outputs and I'll give you the full breakdown with proper explanations per table.lets run queries again I want to know what tables are used what data is collected. I want to knowthe size, and count. Also what is stored in data/data/{date}l+Sonnet 46 vclaude is Al and can make mistakes. rlease double-cneck responses....
|
NULL
|
-8823383847668080036
|
NULL
|
idle
|
ocr
|
NULL
|
CaudeFileEditViewWindowHelp• Not Secure | http://[ CaudeFileEditViewWindowHelp• Not Secure | http://[IP_ADDRESS]:8767/frames_fts_data/~ Google Geminip! Western Digital Red Plus 3.5 6TB 5400rpm 256MB SAiSl I SeneticТвърд диск, Western Digital Red 6TB Plus ( 3.5". 256N* SQLite Web: db.sqlitew Screenpipe DashboardV Welcome to Steam- New laomenoe c ne crmmial vommmialleIf you already have Terminal open, or preferusing it, you can command Finder to open thefolder for you.1. Open the Terminal app (you can find itby pressing Command + Space to openSpotlight and typing "Terminal").2. Type the following command: open~/. screenpipe3. Press Return. A new Finder window willimmediately pop up showing thecontents of the folder.Method 3: Unhide All Files in Your HomeDirectoryIf you want to be able to see the folderalongside your normal files so you can clickinto it manually.1. Open Finder.2. Go to your Home folder by pressingCommand + Shift + H (this is what the~ symbol represents).3. Press Command + Shift + . (Command,Shift, and the Period key at the sametime).4. You will see all your hidden files andfolders fade into view. Scroll down to findthe .screenpipe folder and double-click5. Note: You can press Command + Shift +• again to hide the files when you aredone to keep your folders looking clean.Eс :Ask GeminiPro vGemini is Al and can make mistakes, including about people.Your privacy and GeminiSummarize pagesqlite-web 0.7.2 db.sqlite frames_fts_datatable name…saix miarationsaudio_chunksaudio_tagsaudio_transcriptionsaudio_transcriptions_fts (v)audio_transcriptions_.audio_transcriptions_…audio_transcriptions_.elementselements_fts (v)elements_fts_configelements_fts_dataelements_fts_idxframesframes_fts (v)frames_fts_configframes_fts_dataframes_fts_idxmeetingsmemoriesmemories_fts (v)memories_fts_configmemories_fts_datamemories_fts_idxocr_textpipe_executionspipe_scheduler_statespeaker_embeddingsspeakerssqlite_sequencetagsui_eventsui_events_fts (v)ui_events_fts_configui_events_fts_dataui_events_fts_idxViceo cnunksIvision laosToggle helper tablesStructureContentSQLCREATE TABLE 'frames_fts_daid INTEGER PRIMARY KEY,block BLOBColumnsColumnblockIndexesnamesulite database browser vo./.L, pg, 0ChatCoworklablCodeSupport Daily • 5 m left100% C4"Wed 15 Apr 15:10:35•..n<+ New chatQ Search= CustomizeQ ChatsProjects88 ArtifactsStarredBulgarian citizenship application...Dawarich location tracking projectHecentsLinux SQLite Ul for NASClaude API 500 internal server e...Screenpipe query capabilities a...eGPU compatibility with Mac mi...Understanding OpenRouter API...Screenpipe 14-day retention exp...Reddit homepage feed overviewDocker container not visible in c..DIA browser RAM configurationScreenpipe company backgroundDSK Bank Bulgaria secure invest...Building a comprehensive perso…..Importing Google Timeline data t...Chromecast remote volume butt...Screenpipe free version guideSelf-hosted LLM alternatives to ..Screenpipe database query setupRunning screenpipe for freeMac Studio network switch setupClaude extension in Vivaldi brow...General niormaron realestRed dots on neck causesChange approvalQuerying Screenpipe with Claud...Setting up daily backups in Ugre...Upcoming remindersAccessing tools in Open WebUlLaraver issue troublesnootingLukas KovalikPro nianLinux SQLite Ul for NAS vframes_fts_content is not here. Lets make the data againYou're right, the size query grouped by name includes index entries separately. Use theQuery tab in sqlite-web and run this — it will give clean per-table sizes only, no indexes:sqlSELECTWlallie,SUM(pgsize) / 1024 / 1024 as size_mbFROM dbstatWHERE name IN ('frames', 'ocr_text', 'elements', 'ui_events','video_chunks','audio_chunks','audio_transcriptions','memories', 'meetings', 'tags', 'vision_tags', 'audio_tags','speakers', 'speaker _embeddings', 'pipe_executions','frames_fts_data', 'frames_fts_content','elements_fts_data', 'audio_transcriptions_fts_data','memories_fts_data', 'ui_events_fts_data'GROUP BY nameORDER BY SUM(pgsize) DESC;And then also run this to get the actual schema for all real tables at once:sqlSELECT name, sqlFROM sqlite_masterWHERE type='table'AND name NOT LIKE"%_fts%'AND name NOT LIKE'sqlite_%'AND name NOT LIKE_sqlx%'ORDER BY name;Paste both outputs and I'll give you the full breakdown with proper explanations per table.lets run queries again I want to know what tables are used what data is collected. I want to knowthe size, and count. Also what is stored in data/data/{date}l+Sonnet 46 vclaude is Al and can make mistakes. rlease double-cneck responses....
|
24266
|
|
13042
|
283
|
29
|
2026-04-14T11:58:36.905858+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776167916905_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhpStormFileEditFV faVsco.js vViewNavigateCodeLara PhpStormFileEditFV faVsco.js vViewNavigateCodeLaravelRefactor#11894 on JY-18909-automated-reports-ask-iminny ~ToolsWindowHelpProject vProphetAi~ D Reports© AutomatedReportsCi© AutomatedReportsRe© AutomatedReportsS:© CreateMockAskJimir© DeleteReportComma© GenerateMarketingR© Team.php© Usage.phpD Slack• TeamsD TracksO TranscriptionO TwilioD UsersC VocabularyDZoom© CoachingFeedbacksUpr© Command.phpc Crearevaroaseusers.oc Daraoase oecountoi© DeleteOldAiCrmNotesC:© DeleteS3LeftoversComiDevPostmanCommand./© DiarizeViaAiParticipantk© EncryptTokensComman© EngagementStatsRegen© FeatureFlagsHelper.php© FixCrossTenantlssues.p©FlushRolesPermissionsC© GeneratelnternalWebho• GroupSetDefaultLangua© HelperTruncateCoachin© HubspotJournalPollingC© HubspotWebhookServic©ImportRecording.phpImportUsersFromCsvFil© IterateUsersCommand.fc)Jiminnvcacheclearcom(c) minnv Deouacommanc(c)Jminnvser-ncrvotedio(c) Jiminny okenintocomm© MakeSlackLiveCoaching© ManageScimForTeam.p© MarkBranchForEnvironn© MuteOrganizerChannel.© PhpApm.php© PropagateCoachingFeer© PurgeConferences.php© PurgeSoftDeletedOppor© PurgeSyncBatchesCom(e RecalculatebealkiskscoC) RemoveDeleteMarkersd(e) Remove-xoiredNudoes© RemoveUnusedParticip:© ResetElasticSearch.php© RestoreActivityCrmProv© RestoreActivityTypeCor© ReportController.php© SendReportJob.phpAulomaleakepor skeposilory.onoAulomaleakeporisservice.onpAutomatedReportsCommand.php© AutomatedReportsSendCommand.php>AddLayoutEntities.php© Team.phpCreateHeldActivityEvent.php• TrackProviderInstalledEvent.phpCreateActivityLoggedEvent.php© UserPilotActivityListener.php© RequestGenerateAskJiminnyReportJob.php© RequestGenerateReportJob.php© AutomatedReportResult.php© AutomatedReport.php© ActivityLogged.php© AutomatedReportsCallbackService.phpclass AutomatedReportsSendCommand extends Commandpublic function handled: 1nt$reportResults = $this->reportRepository->getGeneratedNotSentResults():787982100101102ML05104105106foreach (SreportResults as SreportResult) «/** @var AutomatedReportResult SreportResult */$validRecipients = $this->automatedReportsService->getValidRecipientUsers($reportResult->getReport());if ($this->automatedReportsService->shouldSendReport($validRecipients, $reportResult->getGeneratedAt())) €$this->logger->info(self::LOG_PREFIXDispatching job','uuid' => SreportResult->getUvid(),1);$this->dispatcher->dispatch(new SendReportJob($reportResult->getUvidO));rerurn colliondA lues. rouLcroo.lusaceprivate function handleForceSend(int $resultId): int$reportResult = AutomatedReportResult::find($resultId);if ($reportResult === null) €$this->logger->error(self::L0G_PREFIX . ' Result not found', ['result_id' => $resultId]);return CommandALias::FAILURE;$validRecipients = $this->automatedReportsService->getValidRecipientUsers($reportResult->getReport());if Cempty($validRecipients)) {$this->logger-›error(self::LOG_PREFIX . ' No valid recipients found', ['result_1d' => sresultid,"UUaLon=> $reportResult-›getUuid(),I);return CommandALias::FAILURE;$this->logger->info(self::LOG_PREFIX .' Force dispatching job', ['result_id' => $resultId,'uunG"=> $reportResult->getUvid(),$this->dispatcher->dispatch(new SendReportJob($reportResult->getUvid()));return connondacos..succros.Pushed 1 commit to origin/JY-18909-automated-reports-ask-jiminny // View pull request (2 minutes ago)= custom.log= laravel.logA SF [jiminny@localhostA HS_local [jiminny@loc< console PROD¿ console (EUJAl console [STAGING] XFa jiminny v017 A 15WHEKE U.tea523524523526041528529530select x 1iselect xselect * frselect * frselect * frselect * frselect * frselect * frselect * frselect * frselect# id, vvid,# crm_confifrom activi# and crm_pand provideORDER by idselect * frselect p.idFROM playbojoin playbowhere p.teaSELECT * FRSELECT * ERselect * frwhere crm_cselect * frSELECT r.*noun teansWHERE r.fneand r.staAND t.statuAND (r.exRiselect * fr566568 vD0%5701571select * Irselect * frselect *select * frselect *Ask anything (84L)+ ‹> Code.Claude Sonnet 4.6, 0hibdSupport Daily • in 2mAU AutomatedReportsCommandTestv100% C•Tue 14 Apr 14:58:36CascadeModify AutomatedRepIN that case lets change theparameters for @AutomatedReportsSendCommand.php as well and lets addresult lu to sene anen touen men uo not check snouldoehenesont vul call ullett oehlenesortsoe ll valkevecioeintsExplored 3 files and searched 3 querieswNow |have evervthina neec, Hil adc an optional --result-id arqument to the command that ovoasses shouldsendReport and dispatches directly if valid recipients exist.llettriealke neltteleleladiadrlateimiaie+38 -1Done. Here's what was added:--result-1d ootion on the signature — ovpasses the normal scheduled-time Tlow enurely.hand leForcesendd does.1. Finds AutomatedReportResult by ID - returns FAILURE with a log it not toundResolves valid recipients - returns FAILURE with a log if noneDispatches SendReportJo directv no shouldSendRenort checkusage instae tne docker contalner.• bashphp artisan automated-reports:send --result-id=<id>The normal scheculed flow ino --result-id) is como etelv unchanded.O .l -• 1 file committedJy-ovus moe i sene auromatee reootcommand to support immediate send for specific.Eoit Commit Message.winasun leams45:0uir-o( 4 spaces...
|
NULL
|
-8823267720895743553
|
NULL
|
click
|
ocr
|
NULL
|
PhpStormFileEditFV faVsco.js vViewNavigateCodeLara PhpStormFileEditFV faVsco.js vViewNavigateCodeLaravelRefactor#11894 on JY-18909-automated-reports-ask-iminny ~ToolsWindowHelpProject vProphetAi~ D Reports© AutomatedReportsCi© AutomatedReportsRe© AutomatedReportsS:© CreateMockAskJimir© DeleteReportComma© GenerateMarketingR© Team.php© Usage.phpD Slack• TeamsD TracksO TranscriptionO TwilioD UsersC VocabularyDZoom© CoachingFeedbacksUpr© Command.phpc Crearevaroaseusers.oc Daraoase oecountoi© DeleteOldAiCrmNotesC:© DeleteS3LeftoversComiDevPostmanCommand./© DiarizeViaAiParticipantk© EncryptTokensComman© EngagementStatsRegen© FeatureFlagsHelper.php© FixCrossTenantlssues.p©FlushRolesPermissionsC© GeneratelnternalWebho• GroupSetDefaultLangua© HelperTruncateCoachin© HubspotJournalPollingC© HubspotWebhookServic©ImportRecording.phpImportUsersFromCsvFil© IterateUsersCommand.fc)Jiminnvcacheclearcom(c) minnv Deouacommanc(c)Jminnvser-ncrvotedio(c) Jiminny okenintocomm© MakeSlackLiveCoaching© ManageScimForTeam.p© MarkBranchForEnvironn© MuteOrganizerChannel.© PhpApm.php© PropagateCoachingFeer© PurgeConferences.php© PurgeSoftDeletedOppor© PurgeSyncBatchesCom(e RecalculatebealkiskscoC) RemoveDeleteMarkersd(e) Remove-xoiredNudoes© RemoveUnusedParticip:© ResetElasticSearch.php© RestoreActivityCrmProv© RestoreActivityTypeCor© ReportController.php© SendReportJob.phpAulomaleakepor skeposilory.onoAulomaleakeporisservice.onpAutomatedReportsCommand.php© AutomatedReportsSendCommand.php>AddLayoutEntities.php© Team.phpCreateHeldActivityEvent.php• TrackProviderInstalledEvent.phpCreateActivityLoggedEvent.php© UserPilotActivityListener.php© RequestGenerateAskJiminnyReportJob.php© RequestGenerateReportJob.php© AutomatedReportResult.php© AutomatedReport.php© ActivityLogged.php© AutomatedReportsCallbackService.phpclass AutomatedReportsSendCommand extends Commandpublic function handled: 1nt$reportResults = $this->reportRepository->getGeneratedNotSentResults():787982100101102ML05104105106foreach (SreportResults as SreportResult) «/** @var AutomatedReportResult SreportResult */$validRecipients = $this->automatedReportsService->getValidRecipientUsers($reportResult->getReport());if ($this->automatedReportsService->shouldSendReport($validRecipients, $reportResult->getGeneratedAt())) €$this->logger->info(self::LOG_PREFIXDispatching job','uuid' => SreportResult->getUvid(),1);$this->dispatcher->dispatch(new SendReportJob($reportResult->getUvidO));rerurn colliondA lues. rouLcroo.lusaceprivate function handleForceSend(int $resultId): int$reportResult = AutomatedReportResult::find($resultId);if ($reportResult === null) €$this->logger->error(self::L0G_PREFIX . ' Result not found', ['result_id' => $resultId]);return CommandALias::FAILURE;$validRecipients = $this->automatedReportsService->getValidRecipientUsers($reportResult->getReport());if Cempty($validRecipients)) {$this->logger-›error(self::LOG_PREFIX . ' No valid recipients found', ['result_1d' => sresultid,"UUaLon=> $reportResult-›getUuid(),I);return CommandALias::FAILURE;$this->logger->info(self::LOG_PREFIX .' Force dispatching job', ['result_id' => $resultId,'uunG"=> $reportResult->getUvid(),$this->dispatcher->dispatch(new SendReportJob($reportResult->getUvid()));return connondacos..succros.Pushed 1 commit to origin/JY-18909-automated-reports-ask-jiminny // View pull request (2 minutes ago)= custom.log= laravel.logA SF [jiminny@localhostA HS_local [jiminny@loc< console PROD¿ console (EUJAl console [STAGING] XFa jiminny v017 A 15WHEKE U.tea523524523526041528529530select x 1iselect xselect * frselect * frselect * frselect * frselect * frselect * frselect * frselect * frselect# id, vvid,# crm_confifrom activi# and crm_pand provideORDER by idselect * frselect p.idFROM playbojoin playbowhere p.teaSELECT * FRSELECT * ERselect * frwhere crm_cselect * frSELECT r.*noun teansWHERE r.fneand r.staAND t.statuAND (r.exRiselect * fr566568 vD0%5701571select * Irselect * frselect *select * frselect *Ask anything (84L)+ ‹> Code.Claude Sonnet 4.6, 0hibdSupport Daily • in 2mAU AutomatedReportsCommandTestv100% C•Tue 14 Apr 14:58:36CascadeModify AutomatedRepIN that case lets change theparameters for @AutomatedReportsSendCommand.php as well and lets addresult lu to sene anen touen men uo not check snouldoehenesont vul call ullett oehlenesortsoe ll valkevecioeintsExplored 3 files and searched 3 querieswNow |have evervthina neec, Hil adc an optional --result-id arqument to the command that ovoasses shouldsendReport and dispatches directly if valid recipients exist.llettriealke neltteleleladiadrlateimiaie+38 -1Done. Here's what was added:--result-1d ootion on the signature — ovpasses the normal scheduled-time Tlow enurely.hand leForcesendd does.1. Finds AutomatedReportResult by ID - returns FAILURE with a log it not toundResolves valid recipients - returns FAILURE with a log if noneDispatches SendReportJo directv no shouldSendRenort checkusage instae tne docker contalner.• bashphp artisan automated-reports:send --result-id=<id>The normal scheculed flow ino --result-id) is como etelv unchanded.O .l -• 1 file committedJy-ovus moe i sene auromatee reootcommand to support immediate send for specific.Eoit Commit Message.winasun leams45:0uir-o( 4 spaces...
|
13040
|
|
19277
|
409
|
32
|
2026-04-15T07:29:54.373286+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776238194373_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfiles• 0→Too FirefoxFileEditViewHistoryBookmarksProfiles• 0→ToolsWindowHelpmeet.google.com/tgb-pyuf-dri?authuser=lukas.kovalik%40jiminny.com1 [Platform) Planning... 31 m left)100%8 • Wed 15 Apr 10:29:54Galya DimitrovaNikolay NikolovStefka StoyanovaNikolay YankovSteliyan GeorgievAneliya AngelovaNikolay IvanovLukas Kovalik10:29 AM | [Platform] Planning | Session z29:40Sộ3...
|
NULL
|
-8823108310828848260
|
NULL
|
click
|
ocr
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfiles• 0→Too FirefoxFileEditViewHistoryBookmarksProfiles• 0→ToolsWindowHelpmeet.google.com/tgb-pyuf-dri?authuser=lukas.kovalik%40jiminny.com1 [Platform) Planning... 31 m left)100%8 • Wed 15 Apr 10:29:54Galya DimitrovaNikolay NikolovStefka StoyanovaNikolay YankovSteliyan GeorgievAneliya AngelovaNikolay IvanovLukas Kovalik10:29 AM | [Platform] Planning | Session z29:40Sộ3...
|
NULL
|
|
70492
|
1652
|
17
|
2026-04-22T10:32:39.375191+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776853959375_m1.jpg...
|
PhpStorm
|
faVsco.js – JiminnyDebugCommand.php
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20157-AJ-report-not-se Project: faVsco.js, menu
JY-20157-AJ-report-not-send-notification, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
1
109
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Console\Commands;
use Carbon\Carbon;
use Illuminate\Console\Command;
use InvalidArgumentException;
use Jiminny\Jobs\AutomatedReports\RequestGenerateAskJiminnyReportJob;
use Jiminny\Jobs\AutomatedReports\SendReportMailJob;
use Jiminny\Jobs\JobDispatcherInterface;
use Jiminny\Models\Activity;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Services\Activity\CrmOwnerResolver;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
/**
* Class JiminnyDebugCommand
*
* @package Jiminny\Console\Commands
*/
class JiminnyDebugCommand extends Command
{
public const string FREQUENCY_DAILY = 'daily';
public const string FREQUENCY_WEEKLY = 'weekly';
public const string FREQUENCY_MONTHLY = 'monthly';
public const string FREQUENCY_QUARTERLY = 'quarterly';
public const string FREQUENCY_ONE_OFF = 'one_off';
protected $signature = 'jiminny:debug';
public function handle(JobDispatcherInterface $jobDispatcher, AutomatedReportsService $automatedReportsService): void
{
$report = AutomatedReportResult::find(275);
$job = new RequestGenerateAskJiminnyReportJob($report->getUuid());
$jobDispatcher->dispatch($job);
// $this->formatDate($jobDispatcher);
// $this->sendMail($jobDispatcher, $automatedReportsService);
// $this->crmService();
$this->getPayload($automatedReportsService);
exit(1);
}
private function crmService()
{
$activity = Activity::find(418141);
$team = Team::find(19);
$config = $team->getCrmConfiguration();
$crmResolver = app(CrmOwnerResolver::class, [
'team' => $team,
'integrationAdmin' => $team->getOwner(),
'providerSlug' => $config->getProviderName(),
]);
$crmService = $crmResolver->prepareCrmService();
$crmService->createTranscriptNotes($activity);
}
private function sendMail(JobDispatcherInterface $jobDispatcher, AutomatedReportsService $automatedReportsService)
{
$reportUuid = '';
// $report = $automatedReportsService->getReportResult($reportUuid);
$report = AutomatedReportResult::find(275);
$validRecipients = $automatedReportsService->getValidRecipientUsers(
$report->getReport(),
includeJiminny: true,
);
$recipient = $validRecipients[0];
$fileName = $automatedReportsService->getReportFileName($report);
$typeName = $report->getReport()->getCustomName()
?? $automatedReportsService->getReportTypeName($report);
$teamsName = $automatedReportsService->getReportTeamsName($report);
$periodName = $automatedReportsService->getReportPeriodName($report);
$s3Path = $automatedReportsService->getMediaPath($report);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$fileName ' . PHP_EOL . print_r($fileName, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$typeName ' . PHP_EOL . print_r($typeName, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$teamsName ' . PHP_EOL . print_r($teamsName, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$periodName ' . PHP_EOL . print_r($periodName, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$s3Path ' . PHP_EOL . print_r($s3Path, true));
$jobDispatcher->dispatch(
new SendReportMailJob(
reportUuid: $report->getUuid(),
s3Path: $s3Path,
recipientEmail: $recipient['email'],
recipientName: $recipient['name'] ?? null,
fileName: $fileName,
typeName: $typeName,
teamsName: $teamsName,
periodName: $periodName,
isAskJiminny: true,
)
);
exit(1);
}
private function formatDate(JobDispatcherInterface $jobDispatcher): void
{
$customName = 'Custom report name';
// $frequency = self::FREQUENCY_DAILY;
// $frequency = self::FREQUENCY_WEEKLY;
$frequency = self::FREQUENCY_MONTHLY;
// $frequency = self::FREQUENCY_QUARTERLY;
// $frequency = self::FREQUENCY_ONE_OFF;
$period = $this->calculateFromAndToDatePeriod($frequency);
$from = $period['fromDate'];
$to = $period['toDate'];
$periodName = $this->formatReportPeriodName($frequency, $from, $to);
$filenameSuffix = null;
if ($customName) {
if ($filenameSuffix) {
$customName .= " {$filenameSuffix}";
}
$result = $this->sanitizeFileName("{$customName} - {$periodName}");
}
$this->info($result);
}
public function calculateFromAndToDatePeriod(
string $frequency,
?Carbon $fromDate = null,
?Carbon $toDate = null
): array {
if ($frequency === self::FREQUENCY_ONE_OFF) {
return [
'fromDate' => $fromDate,
'toDate' => $toDate,
];
}
$now = Carbon::now();
return match ($frequency) {
self::FREQUENCY_DAILY => [
'fromDate' => $now->copy()->subDay()->startOfDay(),
'toDate' => $now->copy()->subDay()->endOfDay(),
],
self::FREQUENCY_WEEKLY => [
'fromDate' => $now->copy()->subWeeks(1)->startOfDay(),
'toDate' => $now->copy()->subDay()->endOfDay(),
],
self::FREQUENCY_MONTHLY => [
'fromDate' => $now->copy()->subMonths(1)->startOfDay(),
'toDate' => $now->copy()->subDay()->endOfDay(),
],
self::FREQUENCY_QUARTERLY => [
'fromDate' => $now->copy()->subMonths(3)->startOfDay(),
'toDate' => $now->copy()->subDay()->endOfDay(),
],
default => throw new InvalidArgumentException("Unsupported frequency: {$frequency}"),
};
}
private function formatReportPeriodName(string $frequency, Carbon $from, Carbon $to): string
{
$fromYear = $from->format('Y');
$toYear = $to->format('Y');
$differentYears = $fromYear !== $toYear;
switch ($frequency) {
case self::FREQUENCY_DAILY:
return $from->format('j M Y');
case self::FREQUENCY_QUARTERLY:
// 'Jan-Mar 2025' or 'Nov 2024-Jan 2025' if years differ
$startMonth = $from->format('M');
$endMonth = $to->copy()->subMonth();
$endMonthName = $endMonth->format('M');
$endMonthYear = $endMonth->format('Y');
if ($differentYears) {
return "{$startMonth} {$fromYear} - {$endMonthName} {$endMonthYear}";
}
return "{$startMonth} - {$endMonthName} {$toYear}";
case self::FREQUENCY_MONTHLY:
// 'May 2025' - monthly reports are always within the same year
return $from->format('M Y');
case self::FREQUENCY_WEEKLY:
// '4 - 8 Aug 2025', '27 Oct - 3 Nov 2025', or '28 Dec 2024 - 3 Jan 2025' if years differ
$startDay = $from->format('j');
$endDay = $to->format('j');
$startMonth = $from->format('M');
$endMonth = $to->format('M');
if ($differentYears) {
return "{$startDay} {$startMonth} {$fromYear} - {$endDay} {$endMonth} {$toYear}";
}
if ($startMonth !== $endMonth) {
return "{$startDay} {$startMonth} - {$endDay} {$endMonth} {$toYear}";
}
return "{$startDay} - {$endDay} {$endMonth} {$toYear}";
case self::FREQUENCY_ONE_OFF:
// '2 May-31 May 2025' or '15 Dec 2024-15 Jan 2025' if years differ
$startDay = $from->format('j');
$startMonth = $from->format('M');
$endDay = $to->format('j');
$endMonth = $to->format('M');
// If same month and year, use a format like '2-31 May 2025'
if ($startMonth === $endMonth && ! $differentYears) {
return "{$startDay} - {$endDay} {$startMonth} {$toYear}";
}
// If different years, include both years
if ($differentYears) {
return "{$startDay} {$startMonth} {$fromYear} - {$endDay} {$endMonth} {$toYear}";
}
// Same year but different months
return "{$startDay} {$startMonth} - {$endDay} {$endMonth} {$toYear}";
default:
// Default format for unknown frequencies
return $from->format('j M Y') . ' - ' . $to->format('j M Y');
}
}
public function sanitizeFileName(string $fileName): string
{
return str_replace(['/', '\\'], '-', $fileName);
}
private function getPayload(AutomatedReportsService $automatedReportsService)
{
$reportResult = AutomatedReportResult::find(269);
$automatedReport = $reportResult->getReport();
$activityIds = [1,2,3];
$payload = $automatedReportsService->getAskJiminnyGenerateReportPayload(
automatedReport: $automatedReport,
reportResult: $reportResult,
activityIds: $activityIds,
);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$payload ' . PHP_EOL . print_r($payload, true));
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
35
1
33
63
Previous Highlighted Error
Next Highlighted Error
SELECT * FROM teams WHERE name LIKE '%litify%'; # 1069, 994, 24993
SELECT * FROM users WHERE id = 25061;
SELECT * FROM crm_profiles WHERE crm_configuration_id = 994;
SELECT * FROM crm_profiles WHERE user_id = 25061;
select * from crm_configurations where id = 834;
SELECT * FROM teams WHERE id = 882;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 882 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal
SELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations WHERE provider = 'hubspot' and crm_provider_id = 7270388;
SELECT * FROM contacts where crm_configuration_id = 834;
SELECT * FROM opportunities WHERE team_id = 933
# AND crm_provider_id IN ('20131586060','46017317898','52543911090','53451356564','54101251892','54323768459');
AND id IN (8482561,18352941,19042734,19232139,19445140,19472541);
SELECT * FROM opportunity_contacts
WHERE opportunity_id IN (8482561,18352941,19042734,19232139,19445140,19472541);
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 485; #
SELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
select crm.provider, l.* from leads l join crm_configurations crm on l.crm_configuration_id = crm.id
where crm.provider NOT IN ('salesforce', 'integration-app', 'bullhorn', 'copper')
# and l.converted_at IS NOT NULL
;
# [PASSWORD_DOTS]
SELECT * FROM activities a WHERE type IN ('email-inbound', 'email-outbound')
and opportunity_id IS NULL
order by id desc;
SELECT * FROM teams WHERE id = 604; # 598
SELECT * FROM activities WHERE id = 74410828; # [EMAIL]
SELECT * FROM accounts WHERE id = 20068382;
SELECT * FROM accounts WHERE id = 35186038;
SELECT * FROM contacts WHERE team_id = 852 and updated_at > '2026-01-23 12:30:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 559 and sa.provider = 'hubspot';
SELECT * FROM activities WHERE uuid_to_bin('cb6342b6-a183-401c-b0af-ede92b2ae763') = uuid;
select * from sidekick_settings where team_id = 781;
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 26651871; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 7562435;
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8420347; # opflit 2100
SELECT * FROM crm_layouts WHERE crm_configuration_id = 711;
SELECT * FROM activities where crm_configuration_id = 711 and crm_provider_id IS NULL
and is_internal = 0 and status = 'completed'
order by id desc;
SELECT * FROM crm_layout_entities
WHERE crm_layout_id IN (2352, 2353);
;
SELECT * FROM crm_configurations where provider = 'hubspot' and id = 530;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 556 and sa.provider = 'hubspot';
SELECT * FROM activities WHERE uuid_to_bin('c6ca4b22-7738-4563-a95d-b8a9598924ae') = uuid;
SELECT * FROM activities WHERE uuid_to_bin('442abb2b-28bd-4be8-9c25-19e9bf02766d') = uuid;
select * from contacts
where crm_configuration_id = 530
and crm_provider_id = 872252;
select * from activities where crm_configuration_id = 530
and user_id = 14343 and type like '%softphone%'
and created_at between '2026-01-28 15:00:00' and '2026-01-28 15:10:00';
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 25666868; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8646335; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id IN (5933397);
SELECT t.name, t.id, t.owner_id, c.id, c.provider, c.crm_base_url FROM teams t
JOIN crm_configurations c ON t.id = c.team_id
WHERE t.status = 'active';
SELECT * FROM teams where id = 1091;
SELECT * FROM crm_configurations where team_id = 1091;
SELECT * FROM activity_providers where team_id = 1091;
SELECT * FROM activities where crm_configuration_id = 1024 and type IN ('softphone', 'softphone-outbound')
and provider NOT IN ('hubspot', 'aircall')
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by id desc;
SELECT * FROM teams WHERE name LIKE '%Leadventure%';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1091 and sa.provider = 'salesforce';
SELECT * FROM teams WHERE name LIKE '%Wilson%'; # 862, 812
SELECT * FROM teams where id = 862;
SELECT * FROM crm_configurations where team_id = 862;
SELECT * FROM activity_providers where team_id = 862;
SELECT * FROM activities where crm_configuration_id = 812 and type IN ('softphone', 'softphone-outbound')
and provider NOT IN ('hubspot', 'aircall')
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by id desc;
SELECT t.id, crm.id, crm.provider, ap.* FROM teams t
join crm_configurations crm on t.id = crm.team_id
join activity_providers ap on t.id = ap.team_id
where t.status = 'active' and ap.is_enabled = 1
and crm.provider = 'hubspot'
and ap.provider NOT IN ('hubspot', 'aircall', 'uploader', 'gong', 'twilio', 'zoom-bot', 'google-meet', 'ms-teams',
'outreach', 'close', 'ringcentral', 'dialpad', 'zoom-phone');
SELECT * FROM teams where id = 1068;
SELECT * FROM crm_configurations where team_id = 1068;
SELECT * FROM activity_providers where team_id = 1068;
SELECT * FROM activities a
where crm_configuration_id = 993 and type IN ('softphone', 'softphone-outbound')
and a.provider NOT IN ('hubspot', 'uploader', 'gong', 'twilio', 'google-meet', 'ms-teams','close'
)
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by a.id desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1068 and sa.provider = 'hubspot';
# [PASSWORD_DOTS]
# [PASSWORD_DOTS]
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal , portalId: 6017093
SELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-06 00:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 834; # 882 - AnyVan , portalId: 5468262
SELECT * FROM contacts WHERE crm_configuration_id = 834 and updated_at > '2026-03-30 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE crm_configuration_id = 834 and updated_at > '2026-03-04 08:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 882 and sa.provider = 'hubspot';
select * from crm_layouts where crm_configuration_id = 834;
select * from crm_layout_entities where crm_layout_id = 2780;
select * from crm_fields where id IN (321153,321192,321193,321194);
SELECT * FROM opportunities WHERE crm_configuration_id = 834 and id = 10993426;
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 988; # 1057 - Teya (543ce4f4-168c-4571-91ea-5b35c253f06f) , portalId: 26651871
SELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1057 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations where id = 533; # 559 - Connectd , portalId: 6710988
SELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 801; # 852 - Rise Vision , portalId: 2700250
SELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-04 00:00:00' order by updated_at desc; # 6th last
SELECT * FROM crm_configurations where id = 962; # 1034 - evergrowth.io , portalId: 143180990
SELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 1037; # 1102 - Jibble , portalId: 6649755
SELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 8
SELECT * FROM crm_configurations where id = 1015; # 1049 - Travefy , portalId: 48904401
SELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 20
SELECT * FROM crm_configurations where id = 64; # 70 - SalaryFinance , portalId: 3404115
SELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 6th last
SELECT * FROM crm_configurations where id = 802; # 853 - Street Group , portalId: 7658438
SELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 10
SELECT * FROM crm_configurations where id = 872; # 921 - In Professional Development , portalId: 9238273
SELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 2
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 550; # 576 - SeedLegals , portalId: 3028661
SELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 989; # 1058 - rtaoutdoor.com , portalId: 22371204
SELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 896; # 946 - Mintago , portalId: 6621281
SELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 617; # 641 - PCS , portalId: 5244937
SELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-05 14:00:00' order by updated_at desc; # 7th
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 649; # 670 - Eventeny , portalId: 4492849
SELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; #
SELECT * FROM crm_configurations where id = 48; # 51 - CleanCloud , portalId: 4373137
SELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-03-04 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-02-09 08:00:00' order by updated_at desc;
select * from users where team_id = 51; # 7783
SELECT * FROM groups WHERE uuid_to_bin('8a8d2cb6-8b55-4fa3-8b5c-5f0e3d8de59a') = uuid; # 1130
select * from activity_searches where user_id = 7783;
select * from activity_search_filters where activity_search_id IN (32291, 32292);
SELECT asf.activity_search_id, asf.id, asf.value
FROM activity_search_filters asf
WHERE asf.filter = 'group_id'
AND asf.value IN (
SELECT CONCAT(
HEX(SUBSTR(uuid, 5, 4)), '-',
HEX(SUBSTR(uuid, 3, 2)), '-',
HEX(SUBSTR(uuid, 1, 2)), '-',
HEX(SUBSTR(uuid, 9, 2)), '-',
HEX(SUBSTR(uuid, 11))
)
FROM groups
WHERE deleted_at IS NOT NULL
);
SELECT * FROM crm_configurations where id = 272; # 290 - Bonham & Brook , portalId: 5705856
SELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-05 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; # 6th
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where provider = 'hubspot';
SELECT * FROM crm_configurations where id = 1056; # 1119 - Chromatic , portalId: 45602133
SELECT * FROM opportunities WHERE team_id = 1119 and remotely_created_at > '2026-02-01 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1119 and updated_at > '2026-02-09 09:00:00' order by updated_at desc; # null
# [PASSWORD_DOTS]
select * from contacts where crm_provider_id = '003Uu00000ojD4NIAU';
select
cp.*
# DISTINCT t.id
# cp.id, cp.user_id, t.id, cp.crm_configuration_id, cp.contact_fields
FROM crm_profiles cp
JOIN crm_configurations crm on crm.id = cp.crm_configuration_id
JOIN users u on u.id = cp.user_id
JOIN teams t ON t.id = crm.team_id
WHERE crm.provider = 'salesforce' and t.status = 'active'
and cp.archived_at IS NULL and u.deleted_at IS NULL
and t.id NOT IN (1093)
and t.id = 2
and cp.contact_fields IS NULL;
# and c.crm_provider_id = '003Uu00000ojD4NIAU';
SELECT * FROM users WHERE id = 26484;
SELECT * FROM crm_profiles WHERE user_id = 26484;
SELECT * FROM social_accounts WHERE sociable_id = 26484;
SELECT * FROM crm_configurations where provider = 'salesforce';
select * from users where id IN (10022, 10403);
select * from users where team_id IN (526);
select * from teams where id IN (526, 532);
select * from crm_configurations where id IN (500, 516);
select * from crm_profiles where crm_configuration_id IN (500, 516) and user_id IN (10022, 10403);
select * from contacts where crm_configuration_id IN (500, 516) and crm_provider_id = '003Uu00000ojD4NIAU';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 526 and sa.provider = 'salesforce';
select * from team_settings where team_id IN (526, 532);
select * from users where id IN (22824);
select * from crm_profiles where crm_configuration_id IN (1026);
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1093 and sa.provider = 'salesforce';
select * from teams where id = 1099;
select * from users where id = 29643
select * from activity_processing_states;
SELECT * FROM teams where name LIKE '%Fare%'; # 233
SELECT * FROM opportunities where crm_configuration_id = 215
# and crm_provider_id = 'oppo_ogESZf2P50nDrd1nGPvKDXeA6sSaTN5v51Lp4ayVzKR'
;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1088 and sa.provider = 'hubspot';
SELECT * FROM teams order by updated_at DESC
SELECT * FROM crm_configurations WHERE id = 1019; # SimpleConsign 1088 - no social account
select * from crm_configurations where provider = 'pipedrive';
select * from teams where id = 957;
select * from crm_configurations where id = 957;
SELECT * FROM teams WHERE name LIKE '%Prolific%'; # 544, 518, 10743
SELECT * FROM opportunities where crm_configuration_id = 518 order by id desc;
select * from users where team_id = 1; # 26726 - Gabriela Dureva
SELECT * FROM opportunities where user_id = 26726; # 16834447 - Prolific
select * from activities where user_id = 26726 order by id desc;
select * from contacts where crm_configuration_id = 1
and email IN ('[EMAIL]', '[EMAIL]'); # 2094416, 2093620
SELECT * FROM contacts WHERE id = 6284931;
SELECT p.* FROM activities a JOIN participants p ON a.id = p.activity_id
WHERE a.user_id = 26726 and p.lead_id IN (2094416, 2093620) and a.created_at > '2026-01-01 00:00:00' order by p.email;
select * from activities where id IN (75509259,75509261,75509261,75511034,75026464,75517602,75517605);
select * from crm_configurations where id = 1;
43801692-1aeb-32ce-acba-5b80a479701a
44c3c9cf-6f5e-75f3-8179-bc9f75dd2b1b
405975c0-b3d0-7aaa-821f-09d59cae6dd1
4caf848d-4bed-2299-b248-7788d41f9fca
49bedc3f-f196-eef3-89c3-dea6a3b4aa63
43420989-a09d-b8f8-9806-c8bbf7a02aac
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1 and sa.provider = 'salesforce';
SELECT * FROM activities WHERE id = 75461988;
SELECT * FROM activities WHERE uuid_to_bin('d6c5052e-e972-49e9-8912-26f2f7d6c5f6') = uuid;
select * from contacts where id = 17900517;
select * from contact_roles cr join crm_configurations crm on cr.crm_configuration_id = crm.id
where crm.provider != 'salesforce';
select * from users where id = 21047;
SELECT * FROM crm_configurations WHERE id = 892;
SELECT * FROM teams WHERE id = 942;
select * from opportunities where team_id = 942 order by updated_at desc;
select * from contacts where team_id = 942 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 942 and sa.provider = 'hubspot';
SELECT * FROM opportunities where team_id = 1 and crm_provider_id IN ('006Pq00000NeH6XIAV', '006Pq000007z8kdIAA'); # 10697889, 6621430
SELECT * FROM crm_configurations WHERE id = 1;
SELECT * FROM teams WHERE crm_id = 1;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1 and sa.provider = 'salesforce';
select id, user_id, opportunity_fields from crm_profiles where crm_configuration_id = 1
SELECT * FROM opportunities where team_id = 1 order by updated_at desc; # 10697889, 6621430
select * from teams where id = 852;
select * from groups where id = 2286;
select * from sidekick_settings where team_id = 852;
select * from default_activity_types where team_id = 852;
SELECT cc.provider, cc.id, p.id, u.*
FROM users u
LEFT JOIN crm_profiles p ON u.id = p.user_id AND p.id IS NULL -- no profile
INNER JOIN teams t ON u.team_id = t.id AND t.status = 'active' -- team is active
INNER JOIN crm_configurations cc ON t.crm_id = cc.id
WHERE u.status = 1 AND u.deleted_at IS NULL
AND u.crm_required = 1
AND u.team_id = 1
ORDER BY u.team_id;
SELECT * FROM crm_profiles cp where cp.crm_configuration_id = 1 and cp.user_id IN (
18481
);
SELECT cc.provider, cc.id, p.id, u.*
FROM users u
LEFT JOIN crm_profiles p ON u.id = p.user_id
INNER JOIN teams t ON u.team_id = t.id AND t.status = 'active'
INNER JOIN crm_configurations cc ON t.crm_id = cc.id
WHERE u.status = 1
AND u.deleted_at IS NULL
AND u.crm_required = 1
# AND u.team_id = 1
AND p.id IS NULL -- Move this condition to WHERE clause
ORDER BY u.team_id;
SELECT * FROM opportunities WHERE id = 20002609;
select * from teams where id = 1122; # Velatir, 29953 - [EMAIL]
select * from crm_configurations where id = 1060;
select * from crm_layouts where crm_configuration_id = 1060;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 3596;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1122 and sa.provider = 'hubspot';
select * from opportunities where team_id = 1122 order by updated_at desc;
select * from crm_field_data where object_type = 'contact';
SELECT * FROM activities WHERE uuid_to_bin('374fc8ed-3315-4c9f-9b25-318b7fd2928f') = uuid; # 76584262
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 248 and sa.provider = 'salesforce';
SELECT * FROM crm_profiles where user_id = 24115; # 005QF000002CswMYAS
SELECT * FROM users where id = 24115;
SELECT * FROM accounts where id = 4002896;
SELECT * FROM teams WHERE name LIKE '%adswerve%';
SELECT * FROM opportunities where crm_configuration_id = 230 AND crm_provider_id IN ("0069N000003GIQ9QAO","0061r000019yGP9AAM","0066900001S2KWlAAN","0066900001TDpj2AAD","0066900001b8uEwAAI","0069N000001rQi0QAE","006QF00000KD40mYAD","006QF00000LzpRJYAZ","0069N000002uomtQAA","0069N000002xlMLQAY","0066900001NV6ubAAD","0061r00001HJp45AAD","006QF00000uTlUoYAK","006QF00000v0bZqYAI");
SELECT * FROM opportunities WHERE crm_configuration_id = 230 AND crm_provider_id = '0069N000003GIQ9QAO'; # 6272203
SELECT u.id, u.email, ac.name, a.* FROM activities a
JOIN users u ON a.user_id = u.id
JOIN accounts ac ON a.account_id = ac.id
WHERE
uuid_to_bin('e3269598-b562-44fb-b5e9-9d2694dc63e0') = a.uuid or
uuid_to_bin('66ddc3ab-4e15-45aa-af0c-248c1eece593') = a.uuid or
uuid_to_bin('826bd328-e1cc-4213-b8d8-572454cacc07') = a.uuid;
select * from users where id = 5825;
SELECT * FROM activities WHERE uuid_to_bin('e56aa2e8-231a-421b-ab1f-cb38ed2bf573') = uuid;
select * from activities where uuid_to_bin('91e13b2f-2d1b-45f8-b1fd-1141b6563782') = uuid;
19594, 862
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 862 and sa.provider = 'salesforce';
select * from automated_reports where id = 36;
select ar.frequency, r.*, ar.* from automated_report_results r
join automated_reports ar on r.report_id = ar.id
where ar.frequency != 'one_off';
select s.* from activity_searches s join users u ON s.user_id = u.id where u.team_id = 882;
select * from nudges n where n.activity_search_id
select * from teams where created_at > '2026-03-09';
SELECT * FROM crm_layouts WHERE crm_configuration_id = 1065; # 1065
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 3617;
select * from users where team_id = 1 and name like '%Lukas%'; # 7160
SELECT * FROM teams WHERE id = 575;
select * from opportunities where team_id = 575;
SELECT * FROM teams WHERE name LIKE '%Integrum ESG%'; # 1126, 1065,
select * from opportunities where team_id = 1126;
SELECT * FROM teams WHERE name LIKE '%Base%'; # 1125, 1063,
select * from opportunities where team_id = 1125;
select * from contacts c
where c.team_id = 882;
SELECT * FROM activities WHERE id = 76822967;
SELECT * FROM crm_profiles WHERE user_id = 15440;
SELECT * FROM crm_profiles WHERE crm_configuration_id = 555;
SELECT * FROM crm_configurations WHERE id = 555;
SELECT * FROM users WHERE id = 15440; # team. 581, gr. 15440, pl. 3911, act. field 162182
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 581 and sa.provider = 'salesforce';
SELECT * FROM automated_report_results order by id desc;
select * from features;
select * from team_features where feature_id = 40;
select * from teams where id = 556;
select * from automated_reports;
where id = 54; # 4fdd41f6-dcf0-30d0-b339-7345381b6044 , ["pdf","podcast"]
SELECT * FROM automated_report_results WHERE uuid_to_bin('822fa41b-afd3-43a9-a248-86b0e36f3131') = uuid;
select * from automated_report_results order by id desc;
SELECT * FROM automated_report_results WHERE id = 1919;
select * from automated_report_results WHERE report_id = 54;
select * from opportunities where id = 7594349;
SELECT * FROM teams WHERE name LIKE '%Les%'; # 711, 692, 16067 - [EMAIL]
select * from playbooks where team_id = 711; # event 226147
SELECT * FROM playbook_categories WHERE playbook_id = 5515;
SELECT * FROM crm_fields WHERE crm_configuration_id = 692 and object_type = 'event';
SELECT * FROM crm_fields WHERE id = 226147;
SELECT * FROM crm_field_values WHERE crm_field_id = 226147;
SELECT * FROM crm_configurations WHERE id = 692;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 711 and sa.provider = 'salesforce';
SELECT * FROM crm_profiles cp JOIN users u on u.id = cp.user_id WHERE u.team_id = 711;
select * from leads;
select * from calendars;
SELECT
t.id AS team_id,
t.name,
LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1)) AS calendar_domain
FROM teams t
JOIN users u ON u.team_id = t.id
JOIN calendars c ON c.user_id = u.id AND c.status = 'active' AND c.calendar_provider_id LIKE '%@%'
LEFT JOIN team_domains td
ON td.team_id = t.id
AND td.deleted_at IS NULL
AND td.domain = LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1))
GROUP BY t.id, t.name, calendar_domain
ORDER BY t.name, calendar_domain;
select * from users u join calendars c on c.user_id = u.id
where u.team_id = 882;
select * from activities where id = 74049485; # team 563 crm 537
select * from activities where id = 73272382; # team 563 crm 537
select * from activities where id = 64400389; # team 563 crm 537
select * from activities where id = 58081273; # team 563 crm 537
select * from activities where id = 54520297; # team 563 crm 537
select * from participants where activity_id = 58081273;
select * from activities where crm_configuration_id = 537 and provider = 'aircall'
and account_id = 19003658 order by updated_at desc;
select * from contacts where crm_configuration_id = 537 and id = 35957759;
select * from accounts where crm_configuration_id = 537 and id = 19003658;
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20157-AJ-report-not-send-notification, menu","depth":5,"help_text":"Git Branch: JY-20157-AJ-report-not-send-notification","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"role_description":"text"},{"role":"AXStaticText","text":"109","depth":4,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Console\\Commands;\n\nuse Carbon\\Carbon;\nuse Illuminate\\Console\\Command;\nuse InvalidArgumentException;\nuse Jiminny\\Jobs\\AutomatedReports\\RequestGenerateAskJiminnyReportJob;\nuse Jiminny\\Jobs\\AutomatedReports\\SendReportMailJob;\nuse Jiminny\\Jobs\\JobDispatcherInterface;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\AutomatedReportResult;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Services\\Activity\\CrmOwnerResolver;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService;\n\n/**\n * Class JiminnyDebugCommand\n *\n * @package Jiminny\\Console\\Commands\n */\nclass JiminnyDebugCommand extends Command\n{\n public const string FREQUENCY_DAILY = 'daily';\n public const string FREQUENCY_WEEKLY = 'weekly';\n public const string FREQUENCY_MONTHLY = 'monthly';\n public const string FREQUENCY_QUARTERLY = 'quarterly';\n public const string FREQUENCY_ONE_OFF = 'one_off';\n protected $signature = 'jiminny:debug';\n\n public function handle(JobDispatcherInterface $jobDispatcher, AutomatedReportsService $automatedReportsService): void\n {\n $report = AutomatedReportResult::find(275);\n \n $job = new RequestGenerateAskJiminnyReportJob($report->getUuid());\n $jobDispatcher->dispatch($job);\n \n \n // $this->formatDate($jobDispatcher);\n // $this->sendMail($jobDispatcher, $automatedReportsService);\n // $this->crmService();\n\n $this->getPayload($automatedReportsService);\n\n exit(1);\n }\n\n\n\n private function crmService()\n {\n $activity = Activity::find(418141);\n\n $team = Team::find(19);\n $config = $team->getCrmConfiguration();\n\n $crmResolver = app(CrmOwnerResolver::class, [\n 'team' => $team,\n 'integrationAdmin' => $team->getOwner(),\n 'providerSlug' => $config->getProviderName(),\n ]);\n\n $crmService = $crmResolver->prepareCrmService();\n\n $crmService->createTranscriptNotes($activity);\n }\n\n private function sendMail(JobDispatcherInterface $jobDispatcher, AutomatedReportsService $automatedReportsService)\n {\n $reportUuid = '';\n // $report = $automatedReportsService->getReportResult($reportUuid);\n $report = AutomatedReportResult::find(275);\n $validRecipients = $automatedReportsService->getValidRecipientUsers(\n $report->getReport(),\n includeJiminny: true,\n );\n\n $recipient = $validRecipients[0];\n\n $fileName = $automatedReportsService->getReportFileName($report);\n $typeName = $report->getReport()->getCustomName()\n ?? $automatedReportsService->getReportTypeName($report);\n $teamsName = $automatedReportsService->getReportTeamsName($report);\n $periodName = $automatedReportsService->getReportPeriodName($report);\n $s3Path = $automatedReportsService->getMediaPath($report);\n\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$fileName ' . PHP_EOL . print_r($fileName, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$typeName ' . PHP_EOL . print_r($typeName, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$teamsName ' . PHP_EOL . print_r($teamsName, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$periodName ' . PHP_EOL . print_r($periodName, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$s3Path ' . PHP_EOL . print_r($s3Path, true));\n\n $jobDispatcher->dispatch(\n new SendReportMailJob(\n reportUuid: $report->getUuid(),\n s3Path: $s3Path,\n recipientEmail: $recipient['email'],\n recipientName: $recipient['name'] ?? null,\n fileName: $fileName,\n typeName: $typeName,\n teamsName: $teamsName,\n periodName: $periodName,\n isAskJiminny: true,\n )\n );\n\n exit(1);\n }\n\n private function formatDate(JobDispatcherInterface $jobDispatcher): void\n {\n $customName = 'Custom report name';\n // $frequency = self::FREQUENCY_DAILY;\n // $frequency = self::FREQUENCY_WEEKLY;\n $frequency = self::FREQUENCY_MONTHLY;\n // $frequency = self::FREQUENCY_QUARTERLY;\n // $frequency = self::FREQUENCY_ONE_OFF;\n $period = $this->calculateFromAndToDatePeriod($frequency);\n $from = $period['fromDate'];\n $to = $period['toDate'];\n $periodName = $this->formatReportPeriodName($frequency, $from, $to);\n $filenameSuffix = null;\n\n if ($customName) {\n if ($filenameSuffix) {\n $customName .= \" {$filenameSuffix}\";\n }\n\n $result = $this->sanitizeFileName(\"{$customName} - {$periodName}\");\n }\n\n $this->info($result);\n }\n\n public function calculateFromAndToDatePeriod(\n string $frequency,\n ?Carbon $fromDate = null,\n ?Carbon $toDate = null\n ): array {\n if ($frequency === self::FREQUENCY_ONE_OFF) {\n return [\n 'fromDate' => $fromDate,\n 'toDate' => $toDate,\n ];\n }\n\n $now = Carbon::now();\n\n return match ($frequency) {\n self::FREQUENCY_DAILY => [\n 'fromDate' => $now->copy()->subDay()->startOfDay(),\n 'toDate' => $now->copy()->subDay()->endOfDay(),\n ],\n self::FREQUENCY_WEEKLY => [\n 'fromDate' => $now->copy()->subWeeks(1)->startOfDay(),\n 'toDate' => $now->copy()->subDay()->endOfDay(),\n ],\n self::FREQUENCY_MONTHLY => [\n 'fromDate' => $now->copy()->subMonths(1)->startOfDay(),\n 'toDate' => $now->copy()->subDay()->endOfDay(),\n ],\n self::FREQUENCY_QUARTERLY => [\n 'fromDate' => $now->copy()->subMonths(3)->startOfDay(),\n 'toDate' => $now->copy()->subDay()->endOfDay(),\n ],\n default => throw new InvalidArgumentException(\"Unsupported frequency: {$frequency}\"),\n };\n }\n\n private function formatReportPeriodName(string $frequency, Carbon $from, Carbon $to): string\n {\n $fromYear = $from->format('Y');\n $toYear = $to->format('Y');\n $differentYears = $fromYear !== $toYear;\n\n switch ($frequency) {\n case self::FREQUENCY_DAILY:\n return $from->format('j M Y');\n\n case self::FREQUENCY_QUARTERLY:\n // 'Jan-Mar 2025' or 'Nov 2024-Jan 2025' if years differ\n $startMonth = $from->format('M');\n $endMonth = $to->copy()->subMonth();\n $endMonthName = $endMonth->format('M');\n $endMonthYear = $endMonth->format('Y');\n\n if ($differentYears) {\n return \"{$startMonth} {$fromYear} - {$endMonthName} {$endMonthYear}\";\n }\n\n return \"{$startMonth} - {$endMonthName} {$toYear}\";\n\n case self::FREQUENCY_MONTHLY:\n // 'May 2025' - monthly reports are always within the same year\n return $from->format('M Y');\n\n case self::FREQUENCY_WEEKLY:\n // '4 - 8 Aug 2025', '27 Oct - 3 Nov 2025', or '28 Dec 2024 - 3 Jan 2025' if years differ\n $startDay = $from->format('j');\n $endDay = $to->format('j');\n $startMonth = $from->format('M');\n $endMonth = $to->format('M');\n\n if ($differentYears) {\n return \"{$startDay} {$startMonth} {$fromYear} - {$endDay} {$endMonth} {$toYear}\";\n }\n\n if ($startMonth !== $endMonth) {\n return \"{$startDay} {$startMonth} - {$endDay} {$endMonth} {$toYear}\";\n }\n\n return \"{$startDay} - {$endDay} {$endMonth} {$toYear}\";\n\n case self::FREQUENCY_ONE_OFF:\n // '2 May-31 May 2025' or '15 Dec 2024-15 Jan 2025' if years differ\n $startDay = $from->format('j');\n $startMonth = $from->format('M');\n $endDay = $to->format('j');\n $endMonth = $to->format('M');\n\n // If same month and year, use a format like '2-31 May 2025'\n if ($startMonth === $endMonth && ! $differentYears) {\n return \"{$startDay} - {$endDay} {$startMonth} {$toYear}\";\n }\n\n // If different years, include both years\n if ($differentYears) {\n return \"{$startDay} {$startMonth} {$fromYear} - {$endDay} {$endMonth} {$toYear}\";\n }\n\n // Same year but different months\n return \"{$startDay} {$startMonth} - {$endDay} {$endMonth} {$toYear}\";\n\n default:\n // Default format for unknown frequencies\n return $from->format('j M Y') . ' - ' . $to->format('j M Y');\n }\n }\n\n public function sanitizeFileName(string $fileName): string\n {\n return str_replace(['/', '\\\\'], '-', $fileName);\n }\n\n private function getPayload(AutomatedReportsService $automatedReportsService)\n {\n $reportResult = AutomatedReportResult::find(269);\n $automatedReport = $reportResult->getReport();\n $activityIds = [1,2,3];\n $payload = $automatedReportsService->getAskJiminnyGenerateReportPayload(\n automatedReport: $automatedReport,\n reportResult: $reportResult,\n activityIds: $activityIds,\n );\n\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$payload ' . PHP_EOL . print_r($payload, true));\n }\n}","depth":4,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Console\\Commands;\n\nuse Carbon\\Carbon;\nuse Illuminate\\Console\\Command;\nuse InvalidArgumentException;\nuse Jiminny\\Jobs\\AutomatedReports\\RequestGenerateAskJiminnyReportJob;\nuse Jiminny\\Jobs\\AutomatedReports\\SendReportMailJob;\nuse Jiminny\\Jobs\\JobDispatcherInterface;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\AutomatedReportResult;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Services\\Activity\\CrmOwnerResolver;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService;\n\n/**\n * Class JiminnyDebugCommand\n *\n * @package Jiminny\\Console\\Commands\n */\nclass JiminnyDebugCommand extends Command\n{\n public const string FREQUENCY_DAILY = 'daily';\n public const string FREQUENCY_WEEKLY = 'weekly';\n public const string FREQUENCY_MONTHLY = 'monthly';\n public const string FREQUENCY_QUARTERLY = 'quarterly';\n public const string FREQUENCY_ONE_OFF = 'one_off';\n protected $signature = 'jiminny:debug';\n\n public function handle(JobDispatcherInterface $jobDispatcher, AutomatedReportsService $automatedReportsService): void\n {\n $report = AutomatedReportResult::find(275);\n \n $job = new RequestGenerateAskJiminnyReportJob($report->getUuid());\n $jobDispatcher->dispatch($job);\n \n \n // $this->formatDate($jobDispatcher);\n // $this->sendMail($jobDispatcher, $automatedReportsService);\n // $this->crmService();\n\n $this->getPayload($automatedReportsService);\n\n exit(1);\n }\n\n\n\n private function crmService()\n {\n $activity = Activity::find(418141);\n\n $team = Team::find(19);\n $config = $team->getCrmConfiguration();\n\n $crmResolver = app(CrmOwnerResolver::class, [\n 'team' => $team,\n 'integrationAdmin' => $team->getOwner(),\n 'providerSlug' => $config->getProviderName(),\n ]);\n\n $crmService = $crmResolver->prepareCrmService();\n\n $crmService->createTranscriptNotes($activity);\n }\n\n private function sendMail(JobDispatcherInterface $jobDispatcher, AutomatedReportsService $automatedReportsService)\n {\n $reportUuid = '';\n // $report = $automatedReportsService->getReportResult($reportUuid);\n $report = AutomatedReportResult::find(275);\n $validRecipients = $automatedReportsService->getValidRecipientUsers(\n $report->getReport(),\n includeJiminny: true,\n );\n\n $recipient = $validRecipients[0];\n\n $fileName = $automatedReportsService->getReportFileName($report);\n $typeName = $report->getReport()->getCustomName()\n ?? $automatedReportsService->getReportTypeName($report);\n $teamsName = $automatedReportsService->getReportTeamsName($report);\n $periodName = $automatedReportsService->getReportPeriodName($report);\n $s3Path = $automatedReportsService->getMediaPath($report);\n\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$fileName ' . PHP_EOL . print_r($fileName, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$typeName ' . PHP_EOL . print_r($typeName, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$teamsName ' . PHP_EOL . print_r($teamsName, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$periodName ' . PHP_EOL . print_r($periodName, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$s3Path ' . PHP_EOL . print_r($s3Path, true));\n\n $jobDispatcher->dispatch(\n new SendReportMailJob(\n reportUuid: $report->getUuid(),\n s3Path: $s3Path,\n recipientEmail: $recipient['email'],\n recipientName: $recipient['name'] ?? null,\n fileName: $fileName,\n typeName: $typeName,\n teamsName: $teamsName,\n periodName: $periodName,\n isAskJiminny: true,\n )\n );\n\n exit(1);\n }\n\n private function formatDate(JobDispatcherInterface $jobDispatcher): void\n {\n $customName = 'Custom report name';\n // $frequency = self::FREQUENCY_DAILY;\n // $frequency = self::FREQUENCY_WEEKLY;\n $frequency = self::FREQUENCY_MONTHLY;\n // $frequency = self::FREQUENCY_QUARTERLY;\n // $frequency = self::FREQUENCY_ONE_OFF;\n $period = $this->calculateFromAndToDatePeriod($frequency);\n $from = $period['fromDate'];\n $to = $period['toDate'];\n $periodName = $this->formatReportPeriodName($frequency, $from, $to);\n $filenameSuffix = null;\n\n if ($customName) {\n if ($filenameSuffix) {\n $customName .= \" {$filenameSuffix}\";\n }\n\n $result = $this->sanitizeFileName(\"{$customName} - {$periodName}\");\n }\n\n $this->info($result);\n }\n\n public function calculateFromAndToDatePeriod(\n string $frequency,\n ?Carbon $fromDate = null,\n ?Carbon $toDate = null\n ): array {\n if ($frequency === self::FREQUENCY_ONE_OFF) {\n return [\n 'fromDate' => $fromDate,\n 'toDate' => $toDate,\n ];\n }\n\n $now = Carbon::now();\n\n return match ($frequency) {\n self::FREQUENCY_DAILY => [\n 'fromDate' => $now->copy()->subDay()->startOfDay(),\n 'toDate' => $now->copy()->subDay()->endOfDay(),\n ],\n self::FREQUENCY_WEEKLY => [\n 'fromDate' => $now->copy()->subWeeks(1)->startOfDay(),\n 'toDate' => $now->copy()->subDay()->endOfDay(),\n ],\n self::FREQUENCY_MONTHLY => [\n 'fromDate' => $now->copy()->subMonths(1)->startOfDay(),\n 'toDate' => $now->copy()->subDay()->endOfDay(),\n ],\n self::FREQUENCY_QUARTERLY => [\n 'fromDate' => $now->copy()->subMonths(3)->startOfDay(),\n 'toDate' => $now->copy()->subDay()->endOfDay(),\n ],\n default => throw new InvalidArgumentException(\"Unsupported frequency: {$frequency}\"),\n };\n }\n\n private function formatReportPeriodName(string $frequency, Carbon $from, Carbon $to): string\n {\n $fromYear = $from->format('Y');\n $toYear = $to->format('Y');\n $differentYears = $fromYear !== $toYear;\n\n switch ($frequency) {\n case self::FREQUENCY_DAILY:\n return $from->format('j M Y');\n\n case self::FREQUENCY_QUARTERLY:\n // 'Jan-Mar 2025' or 'Nov 2024-Jan 2025' if years differ\n $startMonth = $from->format('M');\n $endMonth = $to->copy()->subMonth();\n $endMonthName = $endMonth->format('M');\n $endMonthYear = $endMonth->format('Y');\n\n if ($differentYears) {\n return \"{$startMonth} {$fromYear} - {$endMonthName} {$endMonthYear}\";\n }\n\n return \"{$startMonth} - {$endMonthName} {$toYear}\";\n\n case self::FREQUENCY_MONTHLY:\n // 'May 2025' - monthly reports are always within the same year\n return $from->format('M Y');\n\n case self::FREQUENCY_WEEKLY:\n // '4 - 8 Aug 2025', '27 Oct - 3 Nov 2025', or '28 Dec 2024 - 3 Jan 2025' if years differ\n $startDay = $from->format('j');\n $endDay = $to->format('j');\n $startMonth = $from->format('M');\n $endMonth = $to->format('M');\n\n if ($differentYears) {\n return \"{$startDay} {$startMonth} {$fromYear} - {$endDay} {$endMonth} {$toYear}\";\n }\n\n if ($startMonth !== $endMonth) {\n return \"{$startDay} {$startMonth} - {$endDay} {$endMonth} {$toYear}\";\n }\n\n return \"{$startDay} - {$endDay} {$endMonth} {$toYear}\";\n\n case self::FREQUENCY_ONE_OFF:\n // '2 May-31 May 2025' or '15 Dec 2024-15 Jan 2025' if years differ\n $startDay = $from->format('j');\n $startMonth = $from->format('M');\n $endDay = $to->format('j');\n $endMonth = $to->format('M');\n\n // If same month and year, use a format like '2-31 May 2025'\n if ($startMonth === $endMonth && ! $differentYears) {\n return \"{$startDay} - {$endDay} {$startMonth} {$toYear}\";\n }\n\n // If different years, include both years\n if ($differentYears) {\n return \"{$startDay} {$startMonth} {$fromYear} - {$endDay} {$endMonth} {$toYear}\";\n }\n\n // Same year but different months\n return \"{$startDay} {$startMonth} - {$endDay} {$endMonth} {$toYear}\";\n\n default:\n // Default format for unknown frequencies\n return $from->format('j M Y') . ' - ' . $to->format('j M Y');\n }\n }\n\n public function sanitizeFileName(string $fileName): string\n {\n return str_replace(['/', '\\\\'], '-', $fileName);\n }\n\n private function getPayload(AutomatedReportsService $automatedReportsService)\n {\n $reportResult = AutomatedReportResult::find(269);\n $automatedReport = $reportResult->getReport();\n $activityIds = [1,2,3];\n $payload = $automatedReportsService->getAskJiminnyGenerateReportPayload(\n automatedReport: $automatedReport,\n reportResult: $reportResult,\n activityIds: $activityIds,\n );\n\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$payload ' . PHP_EOL . print_r($payload, true));\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"35","depth":4,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":4,"role_description":"text"},{"role":"AXStaticText","text":"33","depth":4,"role_description":"text"},{"role":"AXStaticText","text":"63","depth":4,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"SELECT * FROM teams WHERE name LIKE '%litify%'; # 1069, 994, 24993\nSELECT * FROM users WHERE id = 25061;\nSELECT * FROM crm_profiles WHERE crm_configuration_id = 994;\nSELECT * FROM crm_profiles WHERE user_id = 25061;\n\nselect * from crm_configurations where id = 834;\nSELECT * FROM teams WHERE id = 882;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 882 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal\nSELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations WHERE provider = 'hubspot' and crm_provider_id = 7270388;\n\nSELECT * FROM contacts where crm_configuration_id = 834;\nSELECT * FROM opportunities WHERE team_id = 933\n# AND crm_provider_id IN ('20131586060','46017317898','52543911090','53451356564','54101251892','54323768459');\nAND id IN (8482561,18352941,19042734,19232139,19445140,19472541);\nSELECT * FROM opportunity_contacts\nWHERE opportunity_id IN (8482561,18352941,19042734,19232139,19445140,19472541);\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 485; #\nSELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\nselect crm.provider, l.* from leads l join crm_configurations crm on l.crm_configuration_id = crm.id\nwhere crm.provider NOT IN ('salesforce', 'integration-app', 'bullhorn', 'copper')\n# and l.converted_at IS NOT NULL\n;\n\n# ********************************************************************\nSELECT * FROM activities a WHERE type IN ('email-inbound', 'email-outbound')\nand opportunity_id IS NULL\norder by id desc;\n\nSELECT * FROM teams WHERE id = 604; # 598\nSELECT * FROM activities WHERE id = 74410828; # chelseaw@allvoices.co\nSELECT * FROM accounts WHERE id = 20068382;\nSELECT * FROM accounts WHERE id = 35186038;\n\nSELECT * FROM contacts WHERE team_id = 852 and updated_at > '2026-01-23 12:30:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 559 and sa.provider = 'hubspot';\n\nSELECT * FROM activities WHERE uuid_to_bin('cb6342b6-a183-401c-b0af-ede92b2ae763') = uuid;\nselect * from sidekick_settings where team_id = 781;\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 26651871; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 7562435;\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8420347; # opflit 2100\n\nSELECT * FROM crm_layouts WHERE crm_configuration_id = 711;\nSELECT * FROM activities where crm_configuration_id = 711 and crm_provider_id IS NULL\nand is_internal = 0 and status = 'completed'\norder by id desc;\n\nSELECT * FROM crm_layout_entities\nWHERE crm_layout_id IN (2352, 2353);\n;\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and id = 530;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 556 and sa.provider = 'hubspot';\n\nSELECT * FROM activities WHERE uuid_to_bin('c6ca4b22-7738-4563-a95d-b8a9598924ae') = uuid;\nSELECT * FROM activities WHERE uuid_to_bin('442abb2b-28bd-4be8-9c25-19e9bf02766d') = uuid;\nselect * from contacts\nwhere crm_configuration_id = 530\nand crm_provider_id = 872252;\n\nselect * from activities where crm_configuration_id = 530\nand user_id = 14343 and type like '%softphone%'\nand created_at between '2026-01-28 15:00:00' and '2026-01-28 15:10:00';\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 25666868; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8646335; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id IN (5933397);\n\n\nSELECT t.name, t.id, t.owner_id, c.id, c.provider, c.crm_base_url FROM teams t\nJOIN crm_configurations c ON t.id = c.team_id\nWHERE t.status = 'active';\n\nSELECT * FROM teams where id = 1091;\nSELECT * FROM crm_configurations where team_id = 1091;\nSELECT * FROM activity_providers where team_id = 1091;\nSELECT * FROM activities where crm_configuration_id = 1024 and type IN ('softphone', 'softphone-outbound')\nand provider NOT IN ('hubspot', 'aircall')\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by id desc;\n\n\nSELECT * FROM teams WHERE name LIKE '%Leadventure%';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1091 and sa.provider = 'salesforce';\n\nSELECT * FROM teams WHERE name LIKE '%Wilson%'; # 862, 812\nSELECT * FROM teams where id = 862;\nSELECT * FROM crm_configurations where team_id = 862;\nSELECT * FROM activity_providers where team_id = 862;\nSELECT * FROM activities where crm_configuration_id = 812 and type IN ('softphone', 'softphone-outbound')\nand provider NOT IN ('hubspot', 'aircall')\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by id desc;\n\n\nSELECT t.id, crm.id, crm.provider, ap.* FROM teams t\njoin crm_configurations crm on t.id = crm.team_id\njoin activity_providers ap on t.id = ap.team_id\nwhere t.status = 'active' and ap.is_enabled = 1\nand crm.provider = 'hubspot'\nand ap.provider NOT IN ('hubspot', 'aircall', 'uploader', 'gong', 'twilio', 'zoom-bot', 'google-meet', 'ms-teams',\n 'outreach', 'close', 'ringcentral', 'dialpad', 'zoom-phone');\n\nSELECT * FROM teams where id = 1068;\nSELECT * FROM crm_configurations where team_id = 1068;\nSELECT * FROM activity_providers where team_id = 1068;\n\nSELECT * FROM activities a\nwhere crm_configuration_id = 993 and type IN ('softphone', 'softphone-outbound')\nand a.provider NOT IN ('hubspot', 'uploader', 'gong', 'twilio', 'google-meet', 'ms-teams','close'\n )\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by a.id desc;\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1068 and sa.provider = 'hubspot';\n\n# ********************************************************************\n# ********************************************************************\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal , portalId: 6017093\nSELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-06 00:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 834; # 882 - AnyVan , portalId: 5468262\nSELECT * FROM contacts WHERE crm_configuration_id = 834 and updated_at > '2026-03-30 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE crm_configuration_id = 834 and updated_at > '2026-03-04 08:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 882 and sa.provider = 'hubspot';\nselect * from crm_layouts where crm_configuration_id = 834;\nselect * from crm_layout_entities where crm_layout_id = 2780;\nselect * from crm_fields where id IN (321153,321192,321193,321194);\n\nSELECT * FROM opportunities WHERE crm_configuration_id = 834 and id = 10993426;\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 988; # 1057 - Teya (543ce4f4-168c-4571-91ea-5b35c253f06f) , portalId: 26651871\nSELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1057 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations where id = 533; # 559 - Connectd , portalId: 6710988\nSELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 801; # 852 - Rise Vision , portalId: 2700250\nSELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-04 00:00:00' order by updated_at desc; # 6th last\n\nSELECT * FROM crm_configurations where id = 962; # 1034 - evergrowth.io , portalId: 143180990\nSELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 1037; # 1102 - Jibble , portalId: 6649755\nSELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 8\n\nSELECT * FROM crm_configurations where id = 1015; # 1049 - Travefy , portalId: 48904401\nSELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 20\n\nSELECT * FROM crm_configurations where id = 64; # 70 - SalaryFinance , portalId: 3404115\nSELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 6th last\n\nSELECT * FROM crm_configurations where id = 802; # 853 - Street Group , portalId: 7658438\nSELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 10\n\nSELECT * FROM crm_configurations where id = 872; # 921 - In Professional Development , portalId: 9238273\nSELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 2\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 550; # 576 - SeedLegals , portalId: 3028661\nSELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 989; # 1058 - rtaoutdoor.com , portalId: 22371204\nSELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 896; # 946 - Mintago , portalId: 6621281\nSELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 617; # 641 - PCS , portalId: 5244937\nSELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-05 14:00:00' order by updated_at desc; # 7th\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 649; # 670 - Eventeny , portalId: 4492849\nSELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; #\n\nSELECT * FROM crm_configurations where id = 48; # 51 - CleanCloud , portalId: 4373137\nSELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-03-04 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-02-09 08:00:00' order by updated_at desc;\nselect * from users where team_id = 51; # 7783\nSELECT * FROM groups WHERE uuid_to_bin('8a8d2cb6-8b55-4fa3-8b5c-5f0e3d8de59a') = uuid; # 1130\nselect * from activity_searches where user_id = 7783;\nselect * from activity_search_filters where activity_search_id IN (32291, 32292);\n\nSELECT asf.activity_search_id, asf.id, asf.value\nFROM activity_search_filters asf\nWHERE asf.filter = 'group_id'\nAND asf.value IN (\n SELECT CONCAT(\n HEX(SUBSTR(uuid, 5, 4)), '-',\n HEX(SUBSTR(uuid, 3, 2)), '-',\n HEX(SUBSTR(uuid, 1, 2)), '-',\n HEX(SUBSTR(uuid, 9, 2)), '-',\n HEX(SUBSTR(uuid, 11))\n )\n FROM groups\n WHERE deleted_at IS NOT NULL\n);\n\nSELECT * FROM crm_configurations where id = 272; # 290 - Bonham & Brook , portalId: 5705856\nSELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-05 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; # 6th\n# ********************************************************************\nSELECT * FROM crm_configurations where provider = 'hubspot';\nSELECT * FROM crm_configurations where id = 1056; # 1119 - Chromatic , portalId: 45602133\nSELECT * FROM opportunities WHERE team_id = 1119 and remotely_created_at > '2026-02-01 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1119 and updated_at > '2026-02-09 09:00:00' order by updated_at desc; # null\n# ********************************************************************\n\nselect * from contacts where crm_provider_id = '003Uu00000ojD4NIAU';\nselect\n cp.*\n# DISTINCT t.id\n# cp.id, cp.user_id, t.id, cp.crm_configuration_id, cp.contact_fields\nFROM crm_profiles cp\nJOIN crm_configurations crm on crm.id = cp.crm_configuration_id\nJOIN users u on u.id = cp.user_id\nJOIN teams t ON t.id = crm.team_id\nWHERE crm.provider = 'salesforce' and t.status = 'active'\n and cp.archived_at IS NULL and u.deleted_at IS NULL\n and t.id NOT IN (1093)\n and t.id = 2\n and cp.contact_fields IS NULL;\n# and c.crm_provider_id = '003Uu00000ojD4NIAU';\n\nSELECT * FROM users WHERE id = 26484;\nSELECT * FROM crm_profiles WHERE user_id = 26484;\nSELECT * FROM social_accounts WHERE sociable_id = 26484;\nSELECT * FROM crm_configurations where provider = 'salesforce';\nselect * from users where id IN (10022, 10403);\nselect * from users where team_id IN (526);\nselect * from teams where id IN (526, 532);\nselect * from crm_configurations where id IN (500, 516);\nselect * from crm_profiles where crm_configuration_id IN (500, 516) and user_id IN (10022, 10403);\nselect * from contacts where crm_configuration_id IN (500, 516) and crm_provider_id = '003Uu00000ojD4NIAU';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 526 and sa.provider = 'salesforce';\nselect * from team_settings where team_id IN (526, 532);\n\nselect * from users where id IN (22824);\nselect * from crm_profiles where crm_configuration_id IN (1026);\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1093 and sa.provider = 'salesforce';\n\nselect * from teams where id = 1099;\nselect * from users where id = 29643\n\nselect * from activity_processing_states;\n\nSELECT * FROM teams where name LIKE '%Fare%'; # 233\nSELECT * FROM opportunities where crm_configuration_id = 215\n# and crm_provider_id = 'oppo_ogESZf2P50nDrd1nGPvKDXeA6sSaTN5v51Lp4ayVzKR'\n;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1088 and sa.provider = 'hubspot';\n\nSELECT * FROM teams order by updated_at DESC\nSELECT * FROM crm_configurations WHERE id = 1019; # SimpleConsign 1088 - no social account\n\nselect * from crm_configurations where provider = 'pipedrive';\n\nselect * from teams where id = 957;\nselect * from crm_configurations where id = 957;\n\nSELECT * FROM teams WHERE name LIKE '%Prolific%'; # 544, 518, 10743\nSELECT * FROM opportunities where crm_configuration_id = 518 order by id desc;\n\nselect * from users where team_id = 1; # 26726 - Gabriela Dureva\nSELECT * FROM opportunities where user_id = 26726; # 16834447 - Prolific\nselect * from activities where user_id = 26726 order by id desc;\nselect * from contacts where crm_configuration_id = 1\nand email IN ('charlotte.ward@prolific.com', 'frankie.bryant@prolific.com'); # 2094416, 2093620\nSELECT * FROM contacts WHERE id = 6284931;\n\nSELECT p.* FROM activities a JOIN participants p ON a.id = p.activity_id\nWHERE a.user_id = 26726 and p.lead_id IN (2094416, 2093620) and a.created_at > '2026-01-01 00:00:00' order by p.email;\n\nselect * from activities where id IN (75509259,75509261,75509261,75511034,75026464,75517602,75517605);\nselect * from crm_configurations where id = 1;\n\n43801692-1aeb-32ce-acba-5b80a479701a\n44c3c9cf-6f5e-75f3-8179-bc9f75dd2b1b\n405975c0-b3d0-7aaa-821f-09d59cae6dd1\n4caf848d-4bed-2299-b248-7788d41f9fca\n49bedc3f-f196-eef3-89c3-dea6a3b4aa63\n43420989-a09d-b8f8-9806-c8bbf7a02aac\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1 and sa.provider = 'salesforce';\n\nSELECT * FROM activities WHERE id = 75461988;\n\nSELECT * FROM activities WHERE uuid_to_bin('d6c5052e-e972-49e9-8912-26f2f7d6c5f6') = uuid;\n\nselect * from contacts where id = 17900517;\n\nselect * from contact_roles cr join crm_configurations crm on cr.crm_configuration_id = crm.id\nwhere crm.provider != 'salesforce';\n\nselect * from users where id = 21047;\nSELECT * FROM crm_configurations WHERE id = 892;\nSELECT * FROM teams WHERE id = 942;\nselect * from opportunities where team_id = 942 order by updated_at desc;\nselect * from contacts where team_id = 942 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 942 and sa.provider = 'hubspot';\n\nSELECT * FROM opportunities where team_id = 1 and crm_provider_id IN ('006Pq00000NeH6XIAV', '006Pq000007z8kdIAA'); # 10697889, 6621430\nSELECT * FROM crm_configurations WHERE id = 1;\nSELECT * FROM teams WHERE crm_id = 1;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1 and sa.provider = 'salesforce';\n\nselect id, user_id, opportunity_fields from crm_profiles where crm_configuration_id = 1\nSELECT * FROM opportunities where team_id = 1 order by updated_at desc; # 10697889, 6621430\n\nselect * from teams where id = 852;\nselect * from groups where id = 2286;\nselect * from sidekick_settings where team_id = 852;\nselect * from default_activity_types where team_id = 852;\n\n\nSELECT cc.provider, cc.id, p.id, u.*\nFROM users u\nLEFT JOIN crm_profiles p ON u.id = p.user_id AND p.id IS NULL -- no profile\nINNER JOIN teams t ON u.team_id = t.id AND t.status = 'active' -- team is active\nINNER JOIN crm_configurations cc ON t.crm_id = cc.id\nWHERE u.status = 1 AND u.deleted_at IS NULL\nAND u.crm_required = 1\nAND u.team_id = 1\nORDER BY u.team_id;\n\nSELECT * FROM crm_profiles cp where cp.crm_configuration_id = 1 and cp.user_id IN (\n18481\n );\n\nSELECT cc.provider, cc.id, p.id, u.*\nFROM users u\nLEFT JOIN crm_profiles p ON u.id = p.user_id\nINNER JOIN teams t ON u.team_id = t.id AND t.status = 'active'\nINNER JOIN crm_configurations cc ON t.crm_id = cc.id\nWHERE u.status = 1\n AND u.deleted_at IS NULL\n AND u.crm_required = 1\n# AND u.team_id = 1\n AND p.id IS NULL -- Move this condition to WHERE clause\nORDER BY u.team_id;\n\nSELECT * FROM opportunities WHERE id = 20002609;\nselect * from teams where id = 1122; # Velatir, 29953 - christian@velatir.com\nselect * from crm_configurations where id = 1060;\nselect * from crm_layouts where crm_configuration_id = 1060;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 3596;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1122 and sa.provider = 'hubspot';\nselect * from opportunities where team_id = 1122 order by updated_at desc;\n\nselect * from crm_field_data where object_type = 'contact';\n\nSELECT * FROM activities WHERE uuid_to_bin('374fc8ed-3315-4c9f-9b25-318b7fd2928f') = uuid; # 76584262\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 248 and sa.provider = 'salesforce';\n\nSELECT * FROM crm_profiles where user_id = 24115; # 005QF000002CswMYAS\nSELECT * FROM users where id = 24115;\nSELECT * FROM accounts where id = 4002896;\nSELECT * FROM teams WHERE name LIKE '%adswerve%';\nSELECT * FROM opportunities where crm_configuration_id = 230 AND crm_provider_id IN (\"0069N000003GIQ9QAO\",\"0061r000019yGP9AAM\",\"0066900001S2KWlAAN\",\"0066900001TDpj2AAD\",\"0066900001b8uEwAAI\",\"0069N000001rQi0QAE\",\"006QF00000KD40mYAD\",\"006QF00000LzpRJYAZ\",\"0069N000002uomtQAA\",\"0069N000002xlMLQAY\",\"0066900001NV6ubAAD\",\"0061r00001HJp45AAD\",\"006QF00000uTlUoYAK\",\"006QF00000v0bZqYAI\");\nSELECT * FROM opportunities WHERE crm_configuration_id = 230 AND crm_provider_id = '0069N000003GIQ9QAO'; # 6272203\n\nSELECT u.id, u.email, ac.name, a.* FROM activities a\nJOIN users u ON a.user_id = u.id\nJOIN accounts ac ON a.account_id = ac.id\nWHERE\nuuid_to_bin('e3269598-b562-44fb-b5e9-9d2694dc63e0') = a.uuid or\nuuid_to_bin('66ddc3ab-4e15-45aa-af0c-248c1eece593') = a.uuid or\nuuid_to_bin('826bd328-e1cc-4213-b8d8-572454cacc07') = a.uuid;\n\nselect * from users where id = 5825;\nSELECT * FROM activities WHERE uuid_to_bin('e56aa2e8-231a-421b-ab1f-cb38ed2bf573') = uuid;\n\nselect * from activities where uuid_to_bin('91e13b2f-2d1b-45f8-b1fd-1141b6563782') = uuid;\n19594, 862\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 862 and sa.provider = 'salesforce';\n\nselect * from automated_reports where id = 36;\nselect ar.frequency, r.*, ar.* from automated_report_results r\njoin automated_reports ar on r.report_id = ar.id\nwhere ar.frequency != 'one_off';\n\nselect s.* from activity_searches s join users u ON s.user_id = u.id where u.team_id = 882;\nselect * from nudges n where n.activity_search_id\n\nselect * from teams where created_at > '2026-03-09';\nSELECT * FROM crm_layouts WHERE crm_configuration_id = 1065; # 1065\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 3617;\n\nselect * from users where team_id = 1 and name like '%Lukas%'; # 7160\n\nSELECT * FROM teams WHERE id = 575;\nselect * from opportunities where team_id = 575;\nSELECT * FROM teams WHERE name LIKE '%Integrum ESG%'; # 1126, 1065,\nselect * from opportunities where team_id = 1126;\nSELECT * FROM teams WHERE name LIKE '%Base%'; # 1125, 1063,\nselect * from opportunities where team_id = 1125;\nselect * from contacts c\nwhere c.team_id = 882;\n\nSELECT * FROM activities WHERE id = 76822967;\nSELECT * FROM crm_profiles WHERE user_id = 15440;\nSELECT * FROM crm_profiles WHERE crm_configuration_id = 555;\nSELECT * FROM crm_configurations WHERE id = 555;\nSELECT * FROM users WHERE id = 15440; # team. 581, gr. 15440, pl. 3911, act. field 162182\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 581 and sa.provider = 'salesforce';\n\nSELECT * FROM automated_report_results order by id desc;\n\nselect * from features;\nselect * from team_features where feature_id = 40;\n\nselect * from teams where id = 556;\n\nselect * from automated_reports;\nwhere id = 54; # 4fdd41f6-dcf0-30d0-b339-7345381b6044 , [\"pdf\",\"podcast\"]\nSELECT * FROM automated_report_results WHERE uuid_to_bin('822fa41b-afd3-43a9-a248-86b0e36f3131') = uuid;\nselect * from automated_report_results order by id desc;\nSELECT * FROM automated_report_results WHERE id = 1919;\n\nselect * from automated_report_results WHERE report_id = 54;\n\nselect * from opportunities where id = 7594349;\n\nSELECT * FROM teams WHERE name LIKE '%Les%'; # 711, 692, 16067 - jiminnyintegration@lesmills.com\nselect * from playbooks where team_id = 711; # event 226147\nSELECT * FROM playbook_categories WHERE playbook_id = 5515;\nSELECT * FROM crm_fields WHERE crm_configuration_id = 692 and object_type = 'event';\nSELECT * FROM crm_fields WHERE id = 226147;\nSELECT * FROM crm_field_values WHERE crm_field_id = 226147;\n\nSELECT * FROM crm_configurations WHERE id = 692;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 711 and sa.provider = 'salesforce';\n\nSELECT * FROM crm_profiles cp JOIN users u on u.id = cp.user_id WHERE u.team_id = 711;\n\nselect * from leads;\n\nselect * from calendars;\n\nSELECT\n t.id AS team_id,\n t.name,\n LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1)) AS calendar_domain\nFROM teams t\nJOIN users u ON u.team_id = t.id\nJOIN calendars c ON c.user_id = u.id AND c.status = 'active' AND c.calendar_provider_id LIKE '%@%'\nLEFT JOIN team_domains td\n ON td.team_id = t.id\n AND td.deleted_at IS NULL\n AND td.domain = LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1))\nGROUP BY t.id, t.name, calendar_domain\nORDER BY t.name, calendar_domain;\n\nselect * from users u join calendars c on c.user_id = u.id\nwhere u.team_id = 882;\n\n\nselect * from activities where id = 74049485; # team 563 crm 537\nselect * from activities where id = 73272382; # team 563 crm 537\nselect * from activities where id = 64400389; # team 563 crm 537\nselect * from activities where id = 58081273; # team 563 crm 537\nselect * from activities where id = 54520297; # team 563 crm 537\nselect * from participants where activity_id = 58081273;\n\nselect * from activities where crm_configuration_id = 537 and provider = 'aircall'\nand account_id = 19003658 order by updated_at desc;\n\nselect * from contacts where crm_configuration_id = 537 and id = 35957759;\nselect * from accounts where crm_configuration_id = 537 and id = 19003658;","depth":4,"value":"SELECT * FROM teams WHERE name LIKE '%litify%'; # 1069, 994, 24993\nSELECT * FROM users WHERE id = 25061;\nSELECT * FROM crm_profiles WHERE crm_configuration_id = 994;\nSELECT * FROM crm_profiles WHERE user_id = 25061;\n\nselect * from crm_configurations where id = 834;\nSELECT * FROM teams WHERE id = 882;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 882 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal\nSELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations WHERE provider = 'hubspot' and crm_provider_id = 7270388;\n\nSELECT * FROM contacts where crm_configuration_id = 834;\nSELECT * FROM opportunities WHERE team_id = 933\n# AND crm_provider_id IN ('20131586060','46017317898','52543911090','53451356564','54101251892','54323768459');\nAND id IN (8482561,18352941,19042734,19232139,19445140,19472541);\nSELECT * FROM opportunity_contacts\nWHERE opportunity_id IN (8482561,18352941,19042734,19232139,19445140,19472541);\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 485; #\nSELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\nselect crm.provider, l.* from leads l join crm_configurations crm on l.crm_configuration_id = crm.id\nwhere crm.provider NOT IN ('salesforce', 'integration-app', 'bullhorn', 'copper')\n# and l.converted_at IS NOT NULL\n;\n\n# ********************************************************************\nSELECT * FROM activities a WHERE type IN ('email-inbound', 'email-outbound')\nand opportunity_id IS NULL\norder by id desc;\n\nSELECT * FROM teams WHERE id = 604; # 598\nSELECT * FROM activities WHERE id = 74410828; # chelseaw@allvoices.co\nSELECT * FROM accounts WHERE id = 20068382;\nSELECT * FROM accounts WHERE id = 35186038;\n\nSELECT * FROM contacts WHERE team_id = 852 and updated_at > '2026-01-23 12:30:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 559 and sa.provider = 'hubspot';\n\nSELECT * FROM activities WHERE uuid_to_bin('cb6342b6-a183-401c-b0af-ede92b2ae763') = uuid;\nselect * from sidekick_settings where team_id = 781;\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 26651871; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 7562435;\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8420347; # opflit 2100\n\nSELECT * FROM crm_layouts WHERE crm_configuration_id = 711;\nSELECT * FROM activities where crm_configuration_id = 711 and crm_provider_id IS NULL\nand is_internal = 0 and status = 'completed'\norder by id desc;\n\nSELECT * FROM crm_layout_entities\nWHERE crm_layout_id IN (2352, 2353);\n;\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and id = 530;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 556 and sa.provider = 'hubspot';\n\nSELECT * FROM activities WHERE uuid_to_bin('c6ca4b22-7738-4563-a95d-b8a9598924ae') = uuid;\nSELECT * FROM activities WHERE uuid_to_bin('442abb2b-28bd-4be8-9c25-19e9bf02766d') = uuid;\nselect * from contacts\nwhere crm_configuration_id = 530\nand crm_provider_id = 872252;\n\nselect * from activities where crm_configuration_id = 530\nand user_id = 14343 and type like '%softphone%'\nand created_at between '2026-01-28 15:00:00' and '2026-01-28 15:10:00';\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 25666868; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8646335; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id IN (5933397);\n\n\nSELECT t.name, t.id, t.owner_id, c.id, c.provider, c.crm_base_url FROM teams t\nJOIN crm_configurations c ON t.id = c.team_id\nWHERE t.status = 'active';\n\nSELECT * FROM teams where id = 1091;\nSELECT * FROM crm_configurations where team_id = 1091;\nSELECT * FROM activity_providers where team_id = 1091;\nSELECT * FROM activities where crm_configuration_id = 1024 and type IN ('softphone', 'softphone-outbound')\nand provider NOT IN ('hubspot', 'aircall')\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by id desc;\n\n\nSELECT * FROM teams WHERE name LIKE '%Leadventure%';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1091 and sa.provider = 'salesforce';\n\nSELECT * FROM teams WHERE name LIKE '%Wilson%'; # 862, 812\nSELECT * FROM teams where id = 862;\nSELECT * FROM crm_configurations where team_id = 862;\nSELECT * FROM activity_providers where team_id = 862;\nSELECT * FROM activities where crm_configuration_id = 812 and type IN ('softphone', 'softphone-outbound')\nand provider NOT IN ('hubspot', 'aircall')\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by id desc;\n\n\nSELECT t.id, crm.id, crm.provider, ap.* FROM teams t\njoin crm_configurations crm on t.id = crm.team_id\njoin activity_providers ap on t.id = ap.team_id\nwhere t.status = 'active' and ap.is_enabled = 1\nand crm.provider = 'hubspot'\nand ap.provider NOT IN ('hubspot', 'aircall', 'uploader', 'gong', 'twilio', 'zoom-bot', 'google-meet', 'ms-teams',\n 'outreach', 'close', 'ringcentral', 'dialpad', 'zoom-phone');\n\nSELECT * FROM teams where id = 1068;\nSELECT * FROM crm_configurations where team_id = 1068;\nSELECT * FROM activity_providers where team_id = 1068;\n\nSELECT * FROM activities a\nwhere crm_configuration_id = 993 and type IN ('softphone', 'softphone-outbound')\nand a.provider NOT IN ('hubspot', 'uploader', 'gong', 'twilio', 'google-meet', 'ms-teams','close'\n )\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by a.id desc;\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1068 and sa.provider = 'hubspot';\n\n# ********************************************************************\n# ********************************************************************\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal , portalId: 6017093\nSELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-06 00:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 834; # 882 - AnyVan , portalId: 5468262\nSELECT * FROM contacts WHERE crm_configuration_id = 834 and updated_at > '2026-03-30 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE crm_configuration_id = 834 and updated_at > '2026-03-04 08:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 882 and sa.provider = 'hubspot';\nselect * from crm_layouts where crm_configuration_id = 834;\nselect * from crm_layout_entities where crm_layout_id = 2780;\nselect * from crm_fields where id IN (321153,321192,321193,321194);\n\nSELECT * FROM opportunities WHERE crm_configuration_id = 834 and id = 10993426;\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 988; # 1057 - Teya (543ce4f4-168c-4571-91ea-5b35c253f06f) , portalId: 26651871\nSELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1057 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations where id = 533; # 559 - Connectd , portalId: 6710988\nSELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 801; # 852 - Rise Vision , portalId: 2700250\nSELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-04 00:00:00' order by updated_at desc; # 6th last\n\nSELECT * FROM crm_configurations where id = 962; # 1034 - evergrowth.io , portalId: 143180990\nSELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 1037; # 1102 - Jibble , portalId: 6649755\nSELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 8\n\nSELECT * FROM crm_configurations where id = 1015; # 1049 - Travefy , portalId: 48904401\nSELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 20\n\nSELECT * FROM crm_configurations where id = 64; # 70 - SalaryFinance , portalId: 3404115\nSELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 6th last\n\nSELECT * FROM crm_configurations where id = 802; # 853 - Street Group , portalId: 7658438\nSELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 10\n\nSELECT * FROM crm_configurations where id = 872; # 921 - In Professional Development , portalId: 9238273\nSELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 2\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 550; # 576 - SeedLegals , portalId: 3028661\nSELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 989; # 1058 - rtaoutdoor.com , portalId: 22371204\nSELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 896; # 946 - Mintago , portalId: 6621281\nSELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 617; # 641 - PCS , portalId: 5244937\nSELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-05 14:00:00' order by updated_at desc; # 7th\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 649; # 670 - Eventeny , portalId: 4492849\nSELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; #\n\nSELECT * FROM crm_configurations where id = 48; # 51 - CleanCloud , portalId: 4373137\nSELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-03-04 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-02-09 08:00:00' order by updated_at desc;\nselect * from users where team_id = 51; # 7783\nSELECT * FROM groups WHERE uuid_to_bin('8a8d2cb6-8b55-4fa3-8b5c-5f0e3d8de59a') = uuid; # 1130\nselect * from activity_searches where user_id = 7783;\nselect * from activity_search_filters where activity_search_id IN (32291, 32292);\n\nSELECT asf.activity_search_id, asf.id, asf.value\nFROM activity_search_filters asf\nWHERE asf.filter = 'group_id'\nAND asf.value IN (\n SELECT CONCAT(\n HEX(SUBSTR(uuid, 5, 4)), '-',\n HEX(SUBSTR(uuid, 3, 2)), '-',\n HEX(SUBSTR(uuid, 1, 2)), '-',\n HEX(SUBSTR(uuid, 9, 2)), '-',\n HEX(SUBSTR(uuid, 11))\n )\n FROM groups\n WHERE deleted_at IS NOT NULL\n);\n\nSELECT * FROM crm_configurations where id = 272; # 290 - Bonham & Brook , portalId: 5705856\nSELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-05 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; # 6th\n# ********************************************************************\nSELECT * FROM crm_configurations where provider = 'hubspot';\nSELECT * FROM crm_configurations where id = 1056; # 1119 - Chromatic , portalId: 45602133\nSELECT * FROM opportunities WHERE team_id = 1119 and remotely_created_at > '2026-02-01 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1119 and updated_at > '2026-02-09 09:00:00' order by updated_at desc; # null\n# ********************************************************************\n\nselect * from contacts where crm_provider_id = '003Uu00000ojD4NIAU';\nselect\n cp.*\n# DISTINCT t.id\n# cp.id, cp.user_id, t.id, cp.crm_configuration_id, cp.contact_fields\nFROM crm_profiles cp\nJOIN crm_configurations crm on crm.id = cp.crm_configuration_id\nJOIN users u on u.id = cp.user_id\nJOIN teams t ON t.id = crm.team_id\nWHERE crm.provider = 'salesforce' and t.status = 'active'\n and cp.archived_at IS NULL and u.deleted_at IS NULL\n and t.id NOT IN (1093)\n and t.id = 2\n and cp.contact_fields IS NULL;\n# and c.crm_provider_id = '003Uu00000ojD4NIAU';\n\nSELECT * FROM users WHERE id = 26484;\nSELECT * FROM crm_profiles WHERE user_id = 26484;\nSELECT * FROM social_accounts WHERE sociable_id = 26484;\nSELECT * FROM crm_configurations where provider = 'salesforce';\nselect * from users where id IN (10022, 10403);\nselect * from users where team_id IN (526);\nselect * from teams where id IN (526, 532);\nselect * from crm_configurations where id IN (500, 516);\nselect * from crm_profiles where crm_configuration_id IN (500, 516) and user_id IN (10022, 10403);\nselect * from contacts where crm_configuration_id IN (500, 516) and crm_provider_id = '003Uu00000ojD4NIAU';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 526 and sa.provider = 'salesforce';\nselect * from team_settings where team_id IN (526, 532);\n\nselect * from users where id IN (22824);\nselect * from crm_profiles where crm_configuration_id IN (1026);\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1093 and sa.provider = 'salesforce';\n\nselect * from teams where id = 1099;\nselect * from users where id = 29643\n\nselect * from activity_processing_states;\n\nSELECT * FROM teams where name LIKE '%Fare%'; # 233\nSELECT * FROM opportunities where crm_configuration_id = 215\n# and crm_provider_id = 'oppo_ogESZf2P50nDrd1nGPvKDXeA6sSaTN5v51Lp4ayVzKR'\n;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1088 and sa.provider = 'hubspot';\n\nSELECT * FROM teams order by updated_at DESC\nSELECT * FROM crm_configurations WHERE id = 1019; # SimpleConsign 1088 - no social account\n\nselect * from crm_configurations where provider = 'pipedrive';\n\nselect * from teams where id = 957;\nselect * from crm_configurations where id = 957;\n\nSELECT * FROM teams WHERE name LIKE '%Prolific%'; # 544, 518, 10743\nSELECT * FROM opportunities where crm_configuration_id = 518 order by id desc;\n\nselect * from users where team_id = 1; # 26726 - Gabriela Dureva\nSELECT * FROM opportunities where user_id = 26726; # 16834447 - Prolific\nselect * from activities where user_id = 26726 order by id desc;\nselect * from contacts where crm_configuration_id = 1\nand email IN ('charlotte.ward@prolific.com', 'frankie.bryant@prolific.com'); # 2094416, 2093620\nSELECT * FROM contacts WHERE id = 6284931;\n\nSELECT p.* FROM activities a JOIN participants p ON a.id = p.activity_id\nWHERE a.user_id = 26726 and p.lead_id IN (2094416, 2093620) and a.created_at > '2026-01-01 00:00:00' order by p.email;\n\nselect * from activities where id IN (75509259,75509261,75509261,75511034,75026464,75517602,75517605);\nselect * from crm_configurations where id = 1;\n\n43801692-1aeb-32ce-acba-5b80a479701a\n44c3c9cf-6f5e-75f3-8179-bc9f75dd2b1b\n405975c0-b3d0-7aaa-821f-09d59cae6dd1\n4caf848d-4bed-2299-b248-7788d41f9fca\n49bedc3f-f196-eef3-89c3-dea6a3b4aa63\n43420989-a09d-b8f8-9806-c8bbf7a02aac\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1 and sa.provider = 'salesforce';\n\nSELECT * FROM activities WHERE id = 75461988;\n\nSELECT * FROM activities WHERE uuid_to_bin('d6c5052e-e972-49e9-8912-26f2f7d6c5f6') = uuid;\n\nselect * from contacts where id = 17900517;\n\nselect * from contact_roles cr join crm_configurations crm on cr.crm_configuration_id = crm.id\nwhere crm.provider != 'salesforce';\n\nselect * from users where id = 21047;\nSELECT * FROM crm_configurations WHERE id = 892;\nSELECT * FROM teams WHERE id = 942;\nselect * from opportunities where team_id = 942 order by updated_at desc;\nselect * from contacts where team_id = 942 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 942 and sa.provider = 'hubspot';\n\nSELECT * FROM opportunities where team_id = 1 and crm_provider_id IN ('006Pq00000NeH6XIAV', '006Pq000007z8kdIAA'); # 10697889, 6621430\nSELECT * FROM crm_configurations WHERE id = 1;\nSELECT * FROM teams WHERE crm_id = 1;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1 and sa.provider = 'salesforce';\n\nselect id, user_id, opportunity_fields from crm_profiles where crm_configuration_id = 1\nSELECT * FROM opportunities where team_id = 1 order by updated_at desc; # 10697889, 6621430\n\nselect * from teams where id = 852;\nselect * from groups where id = 2286;\nselect * from sidekick_settings where team_id = 852;\nselect * from default_activity_types where team_id = 852;\n\n\nSELECT cc.provider, cc.id, p.id, u.*\nFROM users u\nLEFT JOIN crm_profiles p ON u.id = p.user_id AND p.id IS NULL -- no profile\nINNER JOIN teams t ON u.team_id = t.id AND t.status = 'active' -- team is active\nINNER JOIN crm_configurations cc ON t.crm_id = cc.id\nWHERE u.status = 1 AND u.deleted_at IS NULL\nAND u.crm_required = 1\nAND u.team_id = 1\nORDER BY u.team_id;\n\nSELECT * FROM crm_profiles cp where cp.crm_configuration_id = 1 and cp.user_id IN (\n18481\n );\n\nSELECT cc.provider, cc.id, p.id, u.*\nFROM users u\nLEFT JOIN crm_profiles p ON u.id = p.user_id\nINNER JOIN teams t ON u.team_id = t.id AND t.status = 'active'\nINNER JOIN crm_configurations cc ON t.crm_id = cc.id\nWHERE u.status = 1\n AND u.deleted_at IS NULL\n AND u.crm_required = 1\n# AND u.team_id = 1\n AND p.id IS NULL -- Move this condition to WHERE clause\nORDER BY u.team_id;\n\nSELECT * FROM opportunities WHERE id = 20002609;\nselect * from teams where id = 1122; # Velatir, 29953 - christian@velatir.com\nselect * from crm_configurations where id = 1060;\nselect * from crm_layouts where crm_configuration_id = 1060;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 3596;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1122 and sa.provider = 'hubspot';\nselect * from opportunities where team_id = 1122 order by updated_at desc;\n\nselect * from crm_field_data where object_type = 'contact';\n\nSELECT * FROM activities WHERE uuid_to_bin('374fc8ed-3315-4c9f-9b25-318b7fd2928f') = uuid; # 76584262\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 248 and sa.provider = 'salesforce';\n\nSELECT * FROM crm_profiles where user_id = 24115; # 005QF000002CswMYAS\nSELECT * FROM users where id = 24115;\nSELECT * FROM accounts where id = 4002896;\nSELECT * FROM teams WHERE name LIKE '%adswerve%';\nSELECT * FROM opportunities where crm_configuration_id = 230 AND crm_provider_id IN (\"0069N000003GIQ9QAO\",\"0061r000019yGP9AAM\",\"0066900001S2KWlAAN\",\"0066900001TDpj2AAD\",\"0066900001b8uEwAAI\",\"0069N000001rQi0QAE\",\"006QF00000KD40mYAD\",\"006QF00000LzpRJYAZ\",\"0069N000002uomtQAA\",\"0069N000002xlMLQAY\",\"0066900001NV6ubAAD\",\"0061r00001HJp45AAD\",\"006QF00000uTlUoYAK\",\"006QF00000v0bZqYAI\");\nSELECT * FROM opportunities WHERE crm_configuration_id = 230 AND crm_provider_id = '0069N000003GIQ9QAO'; # 6272203\n\nSELECT u.id, u.email, ac.name, a.* FROM activities a\nJOIN users u ON a.user_id = u.id\nJOIN accounts ac ON a.account_id = ac.id\nWHERE\nuuid_to_bin('e3269598-b562-44fb-b5e9-9d2694dc63e0') = a.uuid or\nuuid_to_bin('66ddc3ab-4e15-45aa-af0c-248c1eece593') = a.uuid or\nuuid_to_bin('826bd328-e1cc-4213-b8d8-572454cacc07') = a.uuid;\n\nselect * from users where id = 5825;\nSELECT * FROM activities WHERE uuid_to_bin('e56aa2e8-231a-421b-ab1f-cb38ed2bf573') = uuid;\n\nselect * from activities where uuid_to_bin('91e13b2f-2d1b-45f8-b1fd-1141b6563782') = uuid;\n19594, 862\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 862 and sa.provider = 'salesforce';\n\nselect * from automated_reports where id = 36;\nselect ar.frequency, r.*, ar.* from automated_report_results r\njoin automated_reports ar on r.report_id = ar.id\nwhere ar.frequency != 'one_off';\n\nselect s.* from activity_searches s join users u ON s.user_id = u.id where u.team_id = 882;\nselect * from nudges n where n.activity_search_id\n\nselect * from teams where created_at > '2026-03-09';\nSELECT * FROM crm_layouts WHERE crm_configuration_id = 1065; # 1065\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 3617;\n\nselect * from users where team_id = 1 and name like '%Lukas%'; # 7160\n\nSELECT * FROM teams WHERE id = 575;\nselect * from opportunities where team_id = 575;\nSELECT * FROM teams WHERE name LIKE '%Integrum ESG%'; # 1126, 1065,\nselect * from opportunities where team_id = 1126;\nSELECT * FROM teams WHERE name LIKE '%Base%'; # 1125, 1063,\nselect * from opportunities where team_id = 1125;\nselect * from contacts c\nwhere c.team_id = 882;\n\nSELECT * FROM activities WHERE id = 76822967;\nSELECT * FROM crm_profiles WHERE user_id = 15440;\nSELECT * FROM crm_profiles WHERE crm_configuration_id = 555;\nSELECT * FROM crm_configurations WHERE id = 555;\nSELECT * FROM users WHERE id = 15440; # team. 581, gr. 15440, pl. 3911, act. field 162182\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 581 and sa.provider = 'salesforce';\n\nSELECT * FROM automated_report_results order by id desc;\n\nselect * from features;\nselect * from team_features where feature_id = 40;\n\nselect * from teams where id = 556;\n\nselect * from automated_reports;\nwhere id = 54; # 4fdd41f6-dcf0-30d0-b339-7345381b6044 , [\"pdf\",\"podcast\"]\nSELECT * FROM automated_report_results WHERE uuid_to_bin('822fa41b-afd3-43a9-a248-86b0e36f3131') = uuid;\nselect * from automated_report_results order by id desc;\nSELECT * FROM automated_report_results WHERE id = 1919;\n\nselect * from automated_report_results WHERE report_id = 54;\n\nselect * from opportunities where id = 7594349;\n\nSELECT * FROM teams WHERE name LIKE '%Les%'; # 711, 692, 16067 - jiminnyintegration@lesmills.com\nselect * from playbooks where team_id = 711; # event 226147\nSELECT * FROM playbook_categories WHERE playbook_id = 5515;\nSELECT * FROM crm_fields WHERE crm_configuration_id = 692 and object_type = 'event';\nSELECT * FROM crm_fields WHERE id = 226147;\nSELECT * FROM crm_field_values WHERE crm_field_id = 226147;\n\nSELECT * FROM crm_configurations WHERE id = 692;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 711 and sa.provider = 'salesforce';\n\nSELECT * FROM crm_profiles cp JOIN users u on u.id = cp.user_id WHERE u.team_id = 711;\n\nselect * from leads;\n\nselect * from calendars;\n\nSELECT\n t.id AS team_id,\n t.name,\n LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1)) AS calendar_domain\nFROM teams t\nJOIN users u ON u.team_id = t.id\nJOIN calendars c ON c.user_id = u.id AND c.status = 'active' AND c.calendar_provider_id LIKE '%@%'\nLEFT JOIN team_domains td\n ON td.team_id = t.id\n AND td.deleted_at IS NULL\n AND td.domain = LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1))\nGROUP BY t.id, t.name, calendar_domain\nORDER BY t.name, calendar_domain;\n\nselect * from users u join calendars c on c.user_id = u.id\nwhere u.team_id = 882;\n\n\nselect * from activities where id = 74049485; # team 563 crm 537\nselect * from activities where id = 73272382; # team 563 crm 537\nselect * from activities where id = 64400389; # team 563 crm 537\nselect * from activities where id = 58081273; # team 563 crm 537\nselect * from activities where id = 54520297; # team 563 crm 537\nselect * from participants where activity_id = 58081273;\n\nselect * from activities where crm_configuration_id = 537 and provider = 'aircall'\nand account_id = 19003658 order by updated_at desc;\n\nselect * from contacts where crm_configuration_id = 537 and id = 35957759;\nselect * from accounts where crm_configuration_id = 537 and id = 19003658;","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8823020028941476329
|
2218916799156991821
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20157-AJ-report-not-se Project: faVsco.js, menu
JY-20157-AJ-report-not-send-notification, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
1
109
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Console\Commands;
use Carbon\Carbon;
use Illuminate\Console\Command;
use InvalidArgumentException;
use Jiminny\Jobs\AutomatedReports\RequestGenerateAskJiminnyReportJob;
use Jiminny\Jobs\AutomatedReports\SendReportMailJob;
use Jiminny\Jobs\JobDispatcherInterface;
use Jiminny\Models\Activity;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Services\Activity\CrmOwnerResolver;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
/**
* Class JiminnyDebugCommand
*
* @package Jiminny\Console\Commands
*/
class JiminnyDebugCommand extends Command
{
public const string FREQUENCY_DAILY = 'daily';
public const string FREQUENCY_WEEKLY = 'weekly';
public const string FREQUENCY_MONTHLY = 'monthly';
public const string FREQUENCY_QUARTERLY = 'quarterly';
public const string FREQUENCY_ONE_OFF = 'one_off';
protected $signature = 'jiminny:debug';
public function handle(JobDispatcherInterface $jobDispatcher, AutomatedReportsService $automatedReportsService): void
{
$report = AutomatedReportResult::find(275);
$job = new RequestGenerateAskJiminnyReportJob($report->getUuid());
$jobDispatcher->dispatch($job);
// $this->formatDate($jobDispatcher);
// $this->sendMail($jobDispatcher, $automatedReportsService);
// $this->crmService();
$this->getPayload($automatedReportsService);
exit(1);
}
private function crmService()
{
$activity = Activity::find(418141);
$team = Team::find(19);
$config = $team->getCrmConfiguration();
$crmResolver = app(CrmOwnerResolver::class, [
'team' => $team,
'integrationAdmin' => $team->getOwner(),
'providerSlug' => $config->getProviderName(),
]);
$crmService = $crmResolver->prepareCrmService();
$crmService->createTranscriptNotes($activity);
}
private function sendMail(JobDispatcherInterface $jobDispatcher, AutomatedReportsService $automatedReportsService)
{
$reportUuid = '';
// $report = $automatedReportsService->getReportResult($reportUuid);
$report = AutomatedReportResult::find(275);
$validRecipients = $automatedReportsService->getValidRecipientUsers(
$report->getReport(),
includeJiminny: true,
);
$recipient = $validRecipients[0];
$fileName = $automatedReportsService->getReportFileName($report);
$typeName = $report->getReport()->getCustomName()
?? $automatedReportsService->getReportTypeName($report);
$teamsName = $automatedReportsService->getReportTeamsName($report);
$periodName = $automatedReportsService->getReportPeriodName($report);
$s3Path = $automatedReportsService->getMediaPath($report);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$fileName ' . PHP_EOL . print_r($fileName, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$typeName ' . PHP_EOL . print_r($typeName, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$teamsName ' . PHP_EOL . print_r($teamsName, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$periodName ' . PHP_EOL . print_r($periodName, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$s3Path ' . PHP_EOL . print_r($s3Path, true));
$jobDispatcher->dispatch(
new SendReportMailJob(
reportUuid: $report->getUuid(),
s3Path: $s3Path,
recipientEmail: $recipient['email'],
recipientName: $recipient['name'] ?? null,
fileName: $fileName,
typeName: $typeName,
teamsName: $teamsName,
periodName: $periodName,
isAskJiminny: true,
)
);
exit(1);
}
private function formatDate(JobDispatcherInterface $jobDispatcher): void
{
$customName = 'Custom report name';
// $frequency = self::FREQUENCY_DAILY;
// $frequency = self::FREQUENCY_WEEKLY;
$frequency = self::FREQUENCY_MONTHLY;
// $frequency = self::FREQUENCY_QUARTERLY;
// $frequency = self::FREQUENCY_ONE_OFF;
$period = $this->calculateFromAndToDatePeriod($frequency);
$from = $period['fromDate'];
$to = $period['toDate'];
$periodName = $this->formatReportPeriodName($frequency, $from, $to);
$filenameSuffix = null;
if ($customName) {
if ($filenameSuffix) {
$customName .= " {$filenameSuffix}";
}
$result = $this->sanitizeFileName("{$customName} - {$periodName}");
}
$this->info($result);
}
public function calculateFromAndToDatePeriod(
string $frequency,
?Carbon $fromDate = null,
?Carbon $toDate = null
): array {
if ($frequency === self::FREQUENCY_ONE_OFF) {
return [
'fromDate' => $fromDate,
'toDate' => $toDate,
];
}
$now = Carbon::now();
return match ($frequency) {
self::FREQUENCY_DAILY => [
'fromDate' => $now->copy()->subDay()->startOfDay(),
'toDate' => $now->copy()->subDay()->endOfDay(),
],
self::FREQUENCY_WEEKLY => [
'fromDate' => $now->copy()->subWeeks(1)->startOfDay(),
'toDate' => $now->copy()->subDay()->endOfDay(),
],
self::FREQUENCY_MONTHLY => [
'fromDate' => $now->copy()->subMonths(1)->startOfDay(),
'toDate' => $now->copy()->subDay()->endOfDay(),
],
self::FREQUENCY_QUARTERLY => [
'fromDate' => $now->copy()->subMonths(3)->startOfDay(),
'toDate' => $now->copy()->subDay()->endOfDay(),
],
default => throw new InvalidArgumentException("Unsupported frequency: {$frequency}"),
};
}
private function formatReportPeriodName(string $frequency, Carbon $from, Carbon $to): string
{
$fromYear = $from->format('Y');
$toYear = $to->format('Y');
$differentYears = $fromYear !== $toYear;
switch ($frequency) {
case self::FREQUENCY_DAILY:
return $from->format('j M Y');
case self::FREQUENCY_QUARTERLY:
// 'Jan-Mar 2025' or 'Nov 2024-Jan 2025' if years differ
$startMonth = $from->format('M');
$endMonth = $to->copy()->subMonth();
$endMonthName = $endMonth->format('M');
$endMonthYear = $endMonth->format('Y');
if ($differentYears) {
return "{$startMonth} {$fromYear} - {$endMonthName} {$endMonthYear}";
}
return "{$startMonth} - {$endMonthName} {$toYear}";
case self::FREQUENCY_MONTHLY:
// 'May 2025' - monthly reports are always within the same year
return $from->format('M Y');
case self::FREQUENCY_WEEKLY:
// '4 - 8 Aug 2025', '27 Oct - 3 Nov 2025', or '28 Dec 2024 - 3 Jan 2025' if years differ
$startDay = $from->format('j');
$endDay = $to->format('j');
$startMonth = $from->format('M');
$endMonth = $to->format('M');
if ($differentYears) {
return "{$startDay} {$startMonth} {$fromYear} - {$endDay} {$endMonth} {$toYear}";
}
if ($startMonth !== $endMonth) {
return "{$startDay} {$startMonth} - {$endDay} {$endMonth} {$toYear}";
}
return "{$startDay} - {$endDay} {$endMonth} {$toYear}";
case self::FREQUENCY_ONE_OFF:
// '2 May-31 May 2025' or '15 Dec 2024-15 Jan 2025' if years differ
$startDay = $from->format('j');
$startMonth = $from->format('M');
$endDay = $to->format('j');
$endMonth = $to->format('M');
// If same month and year, use a format like '2-31 May 2025'
if ($startMonth === $endMonth && ! $differentYears) {
return "{$startDay} - {$endDay} {$startMonth} {$toYear}";
}
// If different years, include both years
if ($differentYears) {
return "{$startDay} {$startMonth} {$fromYear} - {$endDay} {$endMonth} {$toYear}";
}
// Same year but different months
return "{$startDay} {$startMonth} - {$endDay} {$endMonth} {$toYear}";
default:
// Default format for unknown frequencies
return $from->format('j M Y') . ' - ' . $to->format('j M Y');
}
}
public function sanitizeFileName(string $fileName): string
{
return str_replace(['/', '\\'], '-', $fileName);
}
private function getPayload(AutomatedReportsService $automatedReportsService)
{
$reportResult = AutomatedReportResult::find(269);
$automatedReport = $reportResult->getReport();
$activityIds = [1,2,3];
$payload = $automatedReportsService->getAskJiminnyGenerateReportPayload(
automatedReport: $automatedReport,
reportResult: $reportResult,
activityIds: $activityIds,
);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$payload ' . PHP_EOL . print_r($payload, true));
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
35
1
33
63
Previous Highlighted Error
Next Highlighted Error
SELECT * FROM teams WHERE name LIKE '%litify%'; # 1069, 994, 24993
SELECT * FROM users WHERE id = 25061;
SELECT * FROM crm_profiles WHERE crm_configuration_id = 994;
SELECT * FROM crm_profiles WHERE user_id = 25061;
select * from crm_configurations where id = 834;
SELECT * FROM teams WHERE id = 882;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 882 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal
SELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations WHERE provider = 'hubspot' and crm_provider_id = 7270388;
SELECT * FROM contacts where crm_configuration_id = 834;
SELECT * FROM opportunities WHERE team_id = 933
# AND crm_provider_id IN ('20131586060','46017317898','52543911090','53451356564','54101251892','54323768459');
AND id IN (8482561,18352941,19042734,19232139,19445140,19472541);
SELECT * FROM opportunity_contacts
WHERE opportunity_id IN (8482561,18352941,19042734,19232139,19445140,19472541);
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 485; #
SELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
select crm.provider, l.* from leads l join crm_configurations crm on l.crm_configuration_id = crm.id
where crm.provider NOT IN ('salesforce', 'integration-app', 'bullhorn', 'copper')
# and l.converted_at IS NOT NULL
;
# [PASSWORD_DOTS]
SELECT * FROM activities a WHERE type IN ('email-inbound', 'email-outbound')
and opportunity_id IS NULL
order by id desc;
SELECT * FROM teams WHERE id = 604; # 598
SELECT * FROM activities WHERE id = 74410828; # [EMAIL]
SELECT * FROM accounts WHERE id = 20068382;
SELECT * FROM accounts WHERE id = 35186038;
SELECT * FROM contacts WHERE team_id = 852 and updated_at > '2026-01-23 12:30:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 559 and sa.provider = 'hubspot';
SELECT * FROM activities WHERE uuid_to_bin('cb6342b6-a183-401c-b0af-ede92b2ae763') = uuid;
select * from sidekick_settings where team_id = 781;
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 26651871; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 7562435;
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8420347; # opflit 2100
SELECT * FROM crm_layouts WHERE crm_configuration_id = 711;
SELECT * FROM activities where crm_configuration_id = 711 and crm_provider_id IS NULL
and is_internal = 0 and status = 'completed'
order by id desc;
SELECT * FROM crm_layout_entities
WHERE crm_layout_id IN (2352, 2353);
;
SELECT * FROM crm_configurations where provider = 'hubspot' and id = 530;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 556 and sa.provider = 'hubspot';
SELECT * FROM activities WHERE uuid_to_bin('c6ca4b22-7738-4563-a95d-b8a9598924ae') = uuid;
SELECT * FROM activities WHERE uuid_to_bin('442abb2b-28bd-4be8-9c25-19e9bf02766d') = uuid;
select * from contacts
where crm_configuration_id = 530
and crm_provider_id = 872252;
select * from activities where crm_configuration_id = 530
and user_id = 14343 and type like '%softphone%'
and created_at between '2026-01-28 15:00:00' and '2026-01-28 15:10:00';
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 25666868; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8646335; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id IN (5933397);
SELECT t.name, t.id, t.owner_id, c.id, c.provider, c.crm_base_url FROM teams t
JOIN crm_configurations c ON t.id = c.team_id
WHERE t.status = 'active';
SELECT * FROM teams where id = 1091;
SELECT * FROM crm_configurations where team_id = 1091;
SELECT * FROM activity_providers where team_id = 1091;
SELECT * FROM activities where crm_configuration_id = 1024 and type IN ('softphone', 'softphone-outbound')
and provider NOT IN ('hubspot', 'aircall')
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by id desc;
SELECT * FROM teams WHERE name LIKE '%Leadventure%';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1091 and sa.provider = 'salesforce';
SELECT * FROM teams WHERE name LIKE '%Wilson%'; # 862, 812
SELECT * FROM teams where id = 862;
SELECT * FROM crm_configurations where team_id = 862;
SELECT * FROM activity_providers where team_id = 862;
SELECT * FROM activities where crm_configuration_id = 812 and type IN ('softphone', 'softphone-outbound')
and provider NOT IN ('hubspot', 'aircall')
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by id desc;
SELECT t.id, crm.id, crm.provider, ap.* FROM teams t
join crm_configurations crm on t.id = crm.team_id
join activity_providers ap on t.id = ap.team_id
where t.status = 'active' and ap.is_enabled = 1
and crm.provider = 'hubspot'
and ap.provider NOT IN ('hubspot', 'aircall', 'uploader', 'gong', 'twilio', 'zoom-bot', 'google-meet', 'ms-teams',
'outreach', 'close', 'ringcentral', 'dialpad', 'zoom-phone');
SELECT * FROM teams where id = 1068;
SELECT * FROM crm_configurations where team_id = 1068;
SELECT * FROM activity_providers where team_id = 1068;
SELECT * FROM activities a
where crm_configuration_id = 993 and type IN ('softphone', 'softphone-outbound')
and a.provider NOT IN ('hubspot', 'uploader', 'gong', 'twilio', 'google-meet', 'ms-teams','close'
)
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by a.id desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1068 and sa.provider = 'hubspot';
# [PASSWORD_DOTS]
# [PASSWORD_DOTS]
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal , portalId: 6017093
SELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-06 00:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 834; # 882 - AnyVan , portalId: 5468262
SELECT * FROM contacts WHERE crm_configuration_id = 834 and updated_at > '2026-03-30 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE crm_configuration_id = 834 and updated_at > '2026-03-04 08:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 882 and sa.provider = 'hubspot';
select * from crm_layouts where crm_configuration_id = 834;
select * from crm_layout_entities where crm_layout_id = 2780;
select * from crm_fields where id IN (321153,321192,321193,321194);
SELECT * FROM opportunities WHERE crm_configuration_id = 834 and id = 10993426;
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 988; # 1057 - Teya (543ce4f4-168c-4571-91ea-5b35c253f06f) , portalId: 26651871
SELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1057 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations where id = 533; # 559 - Connectd , portalId: 6710988
SELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 801; # 852 - Rise Vision , portalId: 2700250
SELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-04 00:00:00' order by updated_at desc; # 6th last
SELECT * FROM crm_configurations where id = 962; # 1034 - evergrowth.io , portalId: 143180990
SELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 1037; # 1102 - Jibble , portalId: 6649755
SELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 8
SELECT * FROM crm_configurations where id = 1015; # 1049 - Travefy , portalId: 48904401
SELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 20
SELECT * FROM crm_configurations where id = 64; # 70 - SalaryFinance , portalId: 3404115
SELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 6th last
SELECT * FROM crm_configurations where id = 802; # 853 - Street Group , portalId: 7658438
SELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 10
SELECT * FROM crm_configurations where id = 872; # 921 - In Professional Development , portalId: 9238273
SELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 2
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 550; # 576 - SeedLegals , portalId: 3028661
SELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 989; # 1058 - rtaoutdoor.com , portalId: 22371204
SELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 896; # 946 - Mintago , portalId: 6621281
SELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 617; # 641 - PCS , portalId: 5244937
SELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-05 14:00:00' order by updated_at desc; # 7th
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 649; # 670 - Eventeny , portalId: 4492849
SELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; #
SELECT * FROM crm_configurations where id = 48; # 51 - CleanCloud , portalId: 4373137
SELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-03-04 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-02-09 08:00:00' order by updated_at desc;
select * from users where team_id = 51; # 7783
SELECT * FROM groups WHERE uuid_to_bin('8a8d2cb6-8b55-4fa3-8b5c-5f0e3d8de59a') = uuid; # 1130
select * from activity_searches where user_id = 7783;
select * from activity_search_filters where activity_search_id IN (32291, 32292);
SELECT asf.activity_search_id, asf.id, asf.value
FROM activity_search_filters asf
WHERE asf.filter = 'group_id'
AND asf.value IN (
SELECT CONCAT(
HEX(SUBSTR(uuid, 5, 4)), '-',
HEX(SUBSTR(uuid, 3, 2)), '-',
HEX(SUBSTR(uuid, 1, 2)), '-',
HEX(SUBSTR(uuid, 9, 2)), '-',
HEX(SUBSTR(uuid, 11))
)
FROM groups
WHERE deleted_at IS NOT NULL
);
SELECT * FROM crm_configurations where id = 272; # 290 - Bonham & Brook , portalId: 5705856
SELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-05 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; # 6th
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where provider = 'hubspot';
SELECT * FROM crm_configurations where id = 1056; # 1119 - Chromatic , portalId: 45602133
SELECT * FROM opportunities WHERE team_id = 1119 and remotely_created_at > '2026-02-01 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1119 and updated_at > '2026-02-09 09:00:00' order by updated_at desc; # null
# [PASSWORD_DOTS]
select * from contacts where crm_provider_id = '003Uu00000ojD4NIAU';
select
cp.*
# DISTINCT t.id
# cp.id, cp.user_id, t.id, cp.crm_configuration_id, cp.contact_fields
FROM crm_profiles cp
JOIN crm_configurations crm on crm.id = cp.crm_configuration_id
JOIN users u on u.id = cp.user_id
JOIN teams t ON t.id = crm.team_id
WHERE crm.provider = 'salesforce' and t.status = 'active'
and cp.archived_at IS NULL and u.deleted_at IS NULL
and t.id NOT IN (1093)
and t.id = 2
and cp.contact_fields IS NULL;
# and c.crm_provider_id = '003Uu00000ojD4NIAU';
SELECT * FROM users WHERE id = 26484;
SELECT * FROM crm_profiles WHERE user_id = 26484;
SELECT * FROM social_accounts WHERE sociable_id = 26484;
SELECT * FROM crm_configurations where provider = 'salesforce';
select * from users where id IN (10022, 10403);
select * from users where team_id IN (526);
select * from teams where id IN (526, 532);
select * from crm_configurations where id IN (500, 516);
select * from crm_profiles where crm_configuration_id IN (500, 516) and user_id IN (10022, 10403);
select * from contacts where crm_configuration_id IN (500, 516) and crm_provider_id = '003Uu00000ojD4NIAU';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 526 and sa.provider = 'salesforce';
select * from team_settings where team_id IN (526, 532);
select * from users where id IN (22824);
select * from crm_profiles where crm_configuration_id IN (1026);
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1093 and sa.provider = 'salesforce';
select * from teams where id = 1099;
select * from users where id = 29643
select * from activity_processing_states;
SELECT * FROM teams where name LIKE '%Fare%'; # 233
SELECT * FROM opportunities where crm_configuration_id = 215
# and crm_provider_id = 'oppo_ogESZf2P50nDrd1nGPvKDXeA6sSaTN5v51Lp4ayVzKR'
;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1088 and sa.provider = 'hubspot';
SELECT * FROM teams order by updated_at DESC
SELECT * FROM crm_configurations WHERE id = 1019; # SimpleConsign 1088 - no social account
select * from crm_configurations where provider = 'pipedrive';
select * from teams where id = 957;
select * from crm_configurations where id = 957;
SELECT * FROM teams WHERE name LIKE '%Prolific%'; # 544, 518, 10743
SELECT * FROM opportunities where crm_configuration_id = 518 order by id desc;
select * from users where team_id = 1; # 26726 - Gabriela Dureva
SELECT * FROM opportunities where user_id = 26726; # 16834447 - Prolific
select * from activities where user_id = 26726 order by id desc;
select * from contacts where crm_configuration_id = 1
and email IN ('[EMAIL]', '[EMAIL]'); # 2094416, 2093620
SELECT * FROM contacts WHERE id = 6284931;
SELECT p.* FROM activities a JOIN participants p ON a.id = p.activity_id
WHERE a.user_id = 26726 and p.lead_id IN (2094416, 2093620) and a.created_at > '2026-01-01 00:00:00' order by p.email;
select * from activities where id IN (75509259,75509261,75509261,75511034,75026464,75517602,75517605);
select * from crm_configurations where id = 1;
43801692-1aeb-32ce-acba-5b80a479701a
44c3c9cf-6f5e-75f3-8179-bc9f75dd2b1b
405975c0-b3d0-7aaa-821f-09d59cae6dd1
4caf848d-4bed-2299-b248-7788d41f9fca
49bedc3f-f196-eef3-89c3-dea6a3b4aa63
43420989-a09d-b8f8-9806-c8bbf7a02aac
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1 and sa.provider = 'salesforce';
SELECT * FROM activities WHERE id = 75461988;
SELECT * FROM activities WHERE uuid_to_bin('d6c5052e-e972-49e9-8912-26f2f7d6c5f6') = uuid;
select * from contacts where id = 17900517;
select * from contact_roles cr join crm_configurations crm on cr.crm_configuration_id = crm.id
where crm.provider != 'salesforce';
select * from users where id = 21047;
SELECT * FROM crm_configurations WHERE id = 892;
SELECT * FROM teams WHERE id = 942;
select * from opportunities where team_id = 942 order by updated_at desc;
select * from contacts where team_id = 942 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 942 and sa.provider = 'hubspot';
SELECT * FROM opportunities where team_id = 1 and crm_provider_id IN ('006Pq00000NeH6XIAV', '006Pq000007z8kdIAA'); # 10697889, 6621430
SELECT * FROM crm_configurations WHERE id = 1;
SELECT * FROM teams WHERE crm_id = 1;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1 and sa.provider = 'salesforce';
select id, user_id, opportunity_fields from crm_profiles where crm_configuration_id = 1
SELECT * FROM opportunities where team_id = 1 order by updated_at desc; # 10697889, 6621430
select * from teams where id = 852;
select * from groups where id = 2286;
select * from sidekick_settings where team_id = 852;
select * from default_activity_types where team_id = 852;
SELECT cc.provider, cc.id, p.id, u.*
FROM users u
LEFT JOIN crm_profiles p ON u.id = p.user_id AND p.id IS NULL -- no profile
INNER JOIN teams t ON u.team_id = t.id AND t.status = 'active' -- team is active
INNER JOIN crm_configurations cc ON t.crm_id = cc.id
WHERE u.status = 1 AND u.deleted_at IS NULL
AND u.crm_required = 1
AND u.team_id = 1
ORDER BY u.team_id;
SELECT * FROM crm_profiles cp where cp.crm_configuration_id = 1 and cp.user_id IN (
18481
);
SELECT cc.provider, cc.id, p.id, u.*
FROM users u
LEFT JOIN crm_profiles p ON u.id = p.user_id
INNER JOIN teams t ON u.team_id = t.id AND t.status = 'active'
INNER JOIN crm_configurations cc ON t.crm_id = cc.id
WHERE u.status = 1
AND u.deleted_at IS NULL
AND u.crm_required = 1
# AND u.team_id = 1
AND p.id IS NULL -- Move this condition to WHERE clause
ORDER BY u.team_id;
SELECT * FROM opportunities WHERE id = 20002609;
select * from teams where id = 1122; # Velatir, 29953 - [EMAIL]
select * from crm_configurations where id = 1060;
select * from crm_layouts where crm_configuration_id = 1060;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 3596;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1122 and sa.provider = 'hubspot';
select * from opportunities where team_id = 1122 order by updated_at desc;
select * from crm_field_data where object_type = 'contact';
SELECT * FROM activities WHERE uuid_to_bin('374fc8ed-3315-4c9f-9b25-318b7fd2928f') = uuid; # 76584262
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 248 and sa.provider = 'salesforce';
SELECT * FROM crm_profiles where user_id = 24115; # 005QF000002CswMYAS
SELECT * FROM users where id = 24115;
SELECT * FROM accounts where id = 4002896;
SELECT * FROM teams WHERE name LIKE '%adswerve%';
SELECT * FROM opportunities where crm_configuration_id = 230 AND crm_provider_id IN ("0069N000003GIQ9QAO","0061r000019yGP9AAM","0066900001S2KWlAAN","0066900001TDpj2AAD","0066900001b8uEwAAI","0069N000001rQi0QAE","006QF00000KD40mYAD","006QF00000LzpRJYAZ","0069N000002uomtQAA","0069N000002xlMLQAY","0066900001NV6ubAAD","0061r00001HJp45AAD","006QF00000uTlUoYAK","006QF00000v0bZqYAI");
SELECT * FROM opportunities WHERE crm_configuration_id = 230 AND crm_provider_id = '0069N000003GIQ9QAO'; # 6272203
SELECT u.id, u.email, ac.name, a.* FROM activities a
JOIN users u ON a.user_id = u.id
JOIN accounts ac ON a.account_id = ac.id
WHERE
uuid_to_bin('e3269598-b562-44fb-b5e9-9d2694dc63e0') = a.uuid or
uuid_to_bin('66ddc3ab-4e15-45aa-af0c-248c1eece593') = a.uuid or
uuid_to_bin('826bd328-e1cc-4213-b8d8-572454cacc07') = a.uuid;
select * from users where id = 5825;
SELECT * FROM activities WHERE uuid_to_bin('e56aa2e8-231a-421b-ab1f-cb38ed2bf573') = uuid;
select * from activities where uuid_to_bin('91e13b2f-2d1b-45f8-b1fd-1141b6563782') = uuid;
19594, 862
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 862 and sa.provider = 'salesforce';
select * from automated_reports where id = 36;
select ar.frequency, r.*, ar.* from automated_report_results r
join automated_reports ar on r.report_id = ar.id
where ar.frequency != 'one_off';
select s.* from activity_searches s join users u ON s.user_id = u.id where u.team_id = 882;
select * from nudges n where n.activity_search_id
select * from teams where created_at > '2026-03-09';
SELECT * FROM crm_layouts WHERE crm_configuration_id = 1065; # 1065
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 3617;
select * from users where team_id = 1 and name like '%Lukas%'; # 7160
SELECT * FROM teams WHERE id = 575;
select * from opportunities where team_id = 575;
SELECT * FROM teams WHERE name LIKE '%Integrum ESG%'; # 1126, 1065,
select * from opportunities where team_id = 1126;
SELECT * FROM teams WHERE name LIKE '%Base%'; # 1125, 1063,
select * from opportunities where team_id = 1125;
select * from contacts c
where c.team_id = 882;
SELECT * FROM activities WHERE id = 76822967;
SELECT * FROM crm_profiles WHERE user_id = 15440;
SELECT * FROM crm_profiles WHERE crm_configuration_id = 555;
SELECT * FROM crm_configurations WHERE id = 555;
SELECT * FROM users WHERE id = 15440; # team. 581, gr. 15440, pl. 3911, act. field 162182
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 581 and sa.provider = 'salesforce';
SELECT * FROM automated_report_results order by id desc;
select * from features;
select * from team_features where feature_id = 40;
select * from teams where id = 556;
select * from automated_reports;
where id = 54; # 4fdd41f6-dcf0-30d0-b339-7345381b6044 , ["pdf","podcast"]
SELECT * FROM automated_report_results WHERE uuid_to_bin('822fa41b-afd3-43a9-a248-86b0e36f3131') = uuid;
select * from automated_report_results order by id desc;
SELECT * FROM automated_report_results WHERE id = 1919;
select * from automated_report_results WHERE report_id = 54;
select * from opportunities where id = 7594349;
SELECT * FROM teams WHERE name LIKE '%Les%'; # 711, 692, 16067 - [EMAIL]
select * from playbooks where team_id = 711; # event 226147
SELECT * FROM playbook_categories WHERE playbook_id = 5515;
SELECT * FROM crm_fields WHERE crm_configuration_id = 692 and object_type = 'event';
SELECT * FROM crm_fields WHERE id = 226147;
SELECT * FROM crm_field_values WHERE crm_field_id = 226147;
SELECT * FROM crm_configurations WHERE id = 692;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 711 and sa.provider = 'salesforce';
SELECT * FROM crm_profiles cp JOIN users u on u.id = cp.user_id WHERE u.team_id = 711;
select * from leads;
select * from calendars;
SELECT
t.id AS team_id,
t.name,
LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1)) AS calendar_domain
FROM teams t
JOIN users u ON u.team_id = t.id
JOIN calendars c ON c.user_id = u.id AND c.status = 'active' AND c.calendar_provider_id LIKE '%@%'
LEFT JOIN team_domains td
ON td.team_id = t.id
AND td.deleted_at IS NULL
AND td.domain = LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1))
GROUP BY t.id, t.name, calendar_domain
ORDER BY t.name, calendar_domain;
select * from users u join calendars c on c.user_id = u.id
where u.team_id = 882;
select * from activities where id = 74049485; # team 563 crm 537
select * from activities where id = 73272382; # team 563 crm 537
select * from activities where id = 64400389; # team 563 crm 537
select * from activities where id = 58081273; # team 563 crm 537
select * from activities where id = 54520297; # team 563 crm 537
select * from participants where activity_id = 58081273;
select * from activities where crm_configuration_id = 537 and provider = 'aircall'
and account_id = 19003658 order by updated_at desc;
select * from contacts where crm_configuration_id = 537 and id = 35957759;
select * from accounts where crm_configuration_id = 537 and id = 19003658;
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
70491
|
|
41218
|
876
|
59
|
2026-04-17T06:06:20.847004+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776405980847_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEoitViewHistoryBookmarksProfilesToolsWi FirefoxFileEoitViewHistoryBookmarksProfilesToolsWindowHelp, 0labl- Platform Sprint 2 Q2 - Platform TeIssuesjiminny.sentry.io/organizations/jiminny/issues/6873095751/?environment=production&environment=production-eu&project=82419Events v in this issueview more eventsy copyasvID: 26d2294b13 hours ago | JSONJumo to: hienilentsStack TraceWrdeevontext[SRD-6793] Les Mills activity type:Feedphp pNp 8.5.50LInux 6.1.141-155.222.amzn2023, aarch64 872394productionNew TablssuesSymfony|Component|DebuglE>Errors & Outagesv HighlightsBreached Metrics+ New Tabexplorehandledwalmailneslevel08uransactlonUser FeedbackDashboardsyeserrorrace: race ID0388ce431d4c468f8d35f77c3700008eAll Viewsv Stack Trace Display vU cooyas vmisigtieConfigureAicilssetungsSymfony\Component\Debug\Exception\FatalThrowableErrorLeague VFLysystem\F1lesystem:Hhas(D: Argument #1 (Slocation) must be of type string, nuil gaven, called in /home/Jiminny/vendor/Laravel/tramework/src/ITluminate/Filesystem/FilesystemAdapter.php on line 2T:mecnanismgenericcode/vendor/league/flysystem/src/Filesystem.php in League\Flysystem\Filesystem:haspublic function directoryExists(string $location): boolonow more tramereturn Sthis-›adapter-›directoryExists(Sthis->pathNormalizer->normalizePath($location));public function has(string Slocation): boolSpath = Sthis->pathNormalizer->normalizePath(Slocation);return Sthis->adapter-›fileExists(Spath) || Sthis-›adapter->directoryExists(Spath);locationnull/app/Jobs/AutomatedReports/SendReportJob.php:80 in Jiminny\Jobs\AutomatedReports\SendReportJob::handleIn Apoy]):$s3Path = SautomatedReportsService->getMediaPath(Sreport):// Verity the Tile exists in 53if (! Storage::disk('client-data-cloud')->exists(Ss3Path) ) {Slogger->error(self::LOG_PREFIXkeport tlle not tound in s5.'uuid' => Sthis->reportUuid,'s3Path' => $s3Path,1):automatedReportsServiceUbject Jimannyiservices (nlosk vAutomatedkeports vautoma tedkeporusservicejobDispatcherObject Jiminny\Jobs\JobDispatcher1o0gerObject Illuminate\Log\LogManagervendor/laravel/tramework/sre/muminate/concainer/bounamethoa.ong 1n llluminate contalner.bounamechoo.lluminace.concalnerclosureif (static::isCallableWithAtSign(Scallback) || $defaultMethod) {return static::callClass(Scontainer, Scallback, Sparameters, SdefaultMethod);Show 14 more frames(**)return static: :callBoundMethod(Scontainer, Scallback, function () use (Scontainer, Scallback, Sparameters) {return $callback(...array_values(static: :getMethodDependencies(Scontainer, Scallback, Sparameters))):7):100% C•Fri 17 Apr 9:06:20null S3 path to 'Storage:exists)*winout a nul cuaro, crasnine wnenAuromateo reoortresut nas no tieURL.n Uoenseerv Issue lracking• GitHub# JiraV ACUVITYAdd a comment• Marked as Ongoingautomaticallv ov SentryRegressedby Sentry in 757713.Resolvedby Martin PetkovView 3 morev PeopleMPIN participatingSOBSIK IN viewedSimilar IssuesMergea Issues5 months ago5 months ago5 months agoVIewView...
|
NULL
|
-8822620441479210549
|
NULL
|
visual_change
|
ocr
|
NULL
|
FirefoxFileEoitViewHistoryBookmarksProfilesToolsWi FirefoxFileEoitViewHistoryBookmarksProfilesToolsWindowHelp, 0labl- Platform Sprint 2 Q2 - Platform TeIssuesjiminny.sentry.io/organizations/jiminny/issues/6873095751/?environment=production&environment=production-eu&project=82419Events v in this issueview more eventsy copyasvID: 26d2294b13 hours ago | JSONJumo to: hienilentsStack TraceWrdeevontext[SRD-6793] Les Mills activity type:Feedphp pNp 8.5.50LInux 6.1.141-155.222.amzn2023, aarch64 872394productionNew TablssuesSymfony|Component|DebuglE>Errors & Outagesv HighlightsBreached Metrics+ New Tabexplorehandledwalmailneslevel08uransactlonUser FeedbackDashboardsyeserrorrace: race ID0388ce431d4c468f8d35f77c3700008eAll Viewsv Stack Trace Display vU cooyas vmisigtieConfigureAicilssetungsSymfony\Component\Debug\Exception\FatalThrowableErrorLeague VFLysystem\F1lesystem:Hhas(D: Argument #1 (Slocation) must be of type string, nuil gaven, called in /home/Jiminny/vendor/Laravel/tramework/src/ITluminate/Filesystem/FilesystemAdapter.php on line 2T:mecnanismgenericcode/vendor/league/flysystem/src/Filesystem.php in League\Flysystem\Filesystem:haspublic function directoryExists(string $location): boolonow more tramereturn Sthis-›adapter-›directoryExists(Sthis->pathNormalizer->normalizePath($location));public function has(string Slocation): boolSpath = Sthis->pathNormalizer->normalizePath(Slocation);return Sthis->adapter-›fileExists(Spath) || Sthis-›adapter->directoryExists(Spath);locationnull/app/Jobs/AutomatedReports/SendReportJob.php:80 in Jiminny\Jobs\AutomatedReports\SendReportJob::handleIn Apoy]):$s3Path = SautomatedReportsService->getMediaPath(Sreport):// Verity the Tile exists in 53if (! Storage::disk('client-data-cloud')->exists(Ss3Path) ) {Slogger->error(self::LOG_PREFIXkeport tlle not tound in s5.'uuid' => Sthis->reportUuid,'s3Path' => $s3Path,1):automatedReportsServiceUbject Jimannyiservices (nlosk vAutomatedkeports vautoma tedkeporusservicejobDispatcherObject Jiminny\Jobs\JobDispatcher1o0gerObject Illuminate\Log\LogManagervendor/laravel/tramework/sre/muminate/concainer/bounamethoa.ong 1n llluminate contalner.bounamechoo.lluminace.concalnerclosureif (static::isCallableWithAtSign(Scallback) || $defaultMethod) {return static::callClass(Scontainer, Scallback, Sparameters, SdefaultMethod);Show 14 more frames(**)return static: :callBoundMethod(Scontainer, Scallback, function () use (Scontainer, Scallback, Sparameters) {return $callback(...array_values(static: :getMethodDependencies(Scontainer, Scallback, Sparameters))):7):100% C•Fri 17 Apr 9:06:20null S3 path to 'Storage:exists)*winout a nul cuaro, crasnine wnenAuromateo reoortresut nas no tieURL.n Uoenseerv Issue lracking• GitHub# JiraV ACUVITYAdd a comment• Marked as Ongoingautomaticallv ov SentryRegressedby Sentry in 757713.Resolvedby Martin PetkovView 3 morev PeopleMPIN participatingSOBSIK IN viewedSimilar IssuesMergea Issues5 months ago5 months ago5 months agoVIewView...
|
NULL
|
|
71265
|
1694
|
11
|
2026-04-22T12:19:53.890955+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776860393890_m1.jpg...
|
PhpStorm
|
faVsco.js – ActivityAggregator.php
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20157-AJ-report-not-se Project: faVsco.js, menu
JY-20157-AJ-report-not-send-notification, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
4
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Component\DealInsights\Activity;
class ActivityAggregator implements ActivityAggregatorInterface
{
/**
* @var DatasourceInterface[]
*/
private array $datasources = [];
/**
* ActivityAggregator constructor.
*
* @param DatasourceInterface[] $datasources
*/
public function __construct(array $datasources)
{
foreach ($datasources as $datasource) {
if (! $datasource instanceof DatasourceInterface) {
throw new \InvalidArgumentException(sprintf('Invalid datasource provided: %s', print_r($datasource, true)));
}
$this->datasources[$datasource->getIdentifier()] = $datasource;
}
}
public function getAggregatedActivities(array $opportunityIds): array
{
$groupedActivities = $this->groupActivities($this->fetchActivities($opportunityIds));
$result = [];
foreach ($groupedActivities as $oppId => $activities) {
$dataset = [];
foreach ($activities as $activity) {
$date = new \DateTime($activity->getDate());
$aggregationKey = sprintf('%s::%s', $date->format('Y-m-d'), $activity->getOrigin());
if (! isset($dataset[$aggregationKey])) {
$dataset[$aggregationKey] = [
'date' => $date->format('Y-m-d'),
'total' => 0,
'origin' => $activity->getOrigin(),
'activities' => [],
];
}
// keep count on total activities
$dataset[$aggregationKey]['total']++;
// keep count on activities by type
if (! isset($dataset[$aggregationKey]['activities'][$activity->getType()])) {
$dataset[$aggregationKey]['activities'][$activity->getType()] = [
'type' => $activity->getType(),
'count' => 0,
];
}
$dataset[$aggregationKey]['activities'][$activity->getType()]['count']++;
}
// loose indexes on activity types
foreach ($dataset as $aggregationKey => $data) {
$dataset[$aggregationKey]['activities'] = array_values($data['activities']);
}
$result[$oppId] = [
'dataset' => array_values($dataset),
];
}
return $result;
}
/**
* @return RelatedActivityInterface[]
*/
private function fetchActivities(array $opportunityIds): array
{
if (empty($opportunityIds)) {
return [];
}
// Sanitize the input mostly to ensure we are working with IDs and not UUIDs
$ids = array_unique(array_map('intval', $opportunityIds));
sort($ids);
if ($ids[0] === 0) {
throw new \InvalidArgumentException(sprintf('Expected a list of positive integers, got: %s', implode(';', $opportunityIds)));
}
$activities = [];
foreach ($this->datasources as $datasource) {
$activities = array_merge($activities, $datasource->fetch($ids));
}
usort($activities, function (RelatedActivityInterface $a1, RelatedActivityInterface $a2) {
return $a1->getDate() <=> $a2->getDate();
});
return $activities;
}
/**
* @param RelatedActivityInterface[] $activities
*
* @return array<int:RelatedActivityInterface[]>
*/
private function groupActivities(array $activities): array
{
$result = [];
foreach ($activities as $activity) {
if (! isset($result[$activity->getOpportunityId()])) {
$result[$activity->getOpportunityId()] = [];
}
$result[$activity->getOpportunityId()][] = $activity;
}
return $result;
}
}
A
1
Select All
17009
17009
0
42ec35c8-7a66-3dff-b558-9c75866ecd68
42ec35c8-7a66-3dff-b558-9c75866ecd68
Editor
Galya Dimitrova
Galya Dimitrova
Editor
[EMAIL]
[EMAIL]
Editor
<null>
<null>
Editor
1
1
0
<null>
<null>
Editor
<null>
<null>
Editor
/5f0f4810-7e77-4086-8f69-93429ae4d70b/avatars/LuhbAIJTol7ULglNYZz1HQ7FBKgLS09FdeBgrUd4.jpg
/5f0f4810-7e77-4086-8f69-93429ae4d70b/avatars/LuhbAIJTol7ULglNYZz1HQ7FBKgLS09FdeBgrUd4.jpg
Editor
0
0
0
<null>
<null>
Editor
BG
BG
Editor
<null>
<null>
0
[PHONE]
[PHONE]
Editor
<null>
<null>
Editor...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20157-AJ-report-not-send-notification, menu","depth":5,"help_text":"Git Branch: JY-20157-AJ-report-not-send-notification","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"4","depth":4,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\DealInsights\\Activity;\n\nclass ActivityAggregator implements ActivityAggregatorInterface\n{\n /**\n * @var DatasourceInterface[]\n */\n private array $datasources = [];\n\n /**\n * ActivityAggregator constructor.\n *\n * @param DatasourceInterface[] $datasources\n */\n public function __construct(array $datasources)\n {\n foreach ($datasources as $datasource) {\n if (! $datasource instanceof DatasourceInterface) {\n throw new \\InvalidArgumentException(sprintf('Invalid datasource provided: %s', print_r($datasource, true)));\n }\n\n $this->datasources[$datasource->getIdentifier()] = $datasource;\n }\n }\n\n\n public function getAggregatedActivities(array $opportunityIds): array\n {\n $groupedActivities = $this->groupActivities($this->fetchActivities($opportunityIds));\n\n $result = [];\n foreach ($groupedActivities as $oppId => $activities) {\n $dataset = [];\n\n foreach ($activities as $activity) {\n $date = new \\DateTime($activity->getDate());\n\n $aggregationKey = sprintf('%s::%s', $date->format('Y-m-d'), $activity->getOrigin());\n\n if (! isset($dataset[$aggregationKey])) {\n $dataset[$aggregationKey] = [\n 'date' => $date->format('Y-m-d'),\n 'total' => 0,\n 'origin' => $activity->getOrigin(),\n 'activities' => [],\n ];\n }\n\n // keep count on total activities\n $dataset[$aggregationKey]['total']++;\n\n // keep count on activities by type\n if (! isset($dataset[$aggregationKey]['activities'][$activity->getType()])) {\n $dataset[$aggregationKey]['activities'][$activity->getType()] = [\n 'type' => $activity->getType(),\n 'count' => 0,\n ];\n }\n\n $dataset[$aggregationKey]['activities'][$activity->getType()]['count']++;\n }\n\n // loose indexes on activity types\n foreach ($dataset as $aggregationKey => $data) {\n $dataset[$aggregationKey]['activities'] = array_values($data['activities']);\n }\n\n $result[$oppId] = [\n 'dataset' => array_values($dataset),\n ];\n }\n\n return $result;\n }\n\n /**\n * @return RelatedActivityInterface[]\n */\n private function fetchActivities(array $opportunityIds): array\n {\n if (empty($opportunityIds)) {\n return [];\n }\n\n // Sanitize the input mostly to ensure we are working with IDs and not UUIDs\n $ids = array_unique(array_map('intval', $opportunityIds));\n sort($ids);\n\n if ($ids[0] === 0) {\n throw new \\InvalidArgumentException(sprintf('Expected a list of positive integers, got: %s', implode(';', $opportunityIds)));\n }\n\n $activities = [];\n foreach ($this->datasources as $datasource) {\n $activities = array_merge($activities, $datasource->fetch($ids));\n }\n\n usort($activities, function (RelatedActivityInterface $a1, RelatedActivityInterface $a2) {\n return $a1->getDate() <=> $a2->getDate();\n });\n\n return $activities;\n }\n\n /**\n * @param RelatedActivityInterface[] $activities\n *\n * @return array<int:RelatedActivityInterface[]>\n */\n private function groupActivities(array $activities): array\n {\n $result = [];\n\n foreach ($activities as $activity) {\n if (! isset($result[$activity->getOpportunityId()])) {\n $result[$activity->getOpportunityId()] = [];\n }\n\n $result[$activity->getOpportunityId()][] = $activity;\n }\n\n return $result;\n }\n}","depth":4,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\DealInsights\\Activity;\n\nclass ActivityAggregator implements ActivityAggregatorInterface\n{\n /**\n * @var DatasourceInterface[]\n */\n private array $datasources = [];\n\n /**\n * ActivityAggregator constructor.\n *\n * @param DatasourceInterface[] $datasources\n */\n public function __construct(array $datasources)\n {\n foreach ($datasources as $datasource) {\n if (! $datasource instanceof DatasourceInterface) {\n throw new \\InvalidArgumentException(sprintf('Invalid datasource provided: %s', print_r($datasource, true)));\n }\n\n $this->datasources[$datasource->getIdentifier()] = $datasource;\n }\n }\n\n\n public function getAggregatedActivities(array $opportunityIds): array\n {\n $groupedActivities = $this->groupActivities($this->fetchActivities($opportunityIds));\n\n $result = [];\n foreach ($groupedActivities as $oppId => $activities) {\n $dataset = [];\n\n foreach ($activities as $activity) {\n $date = new \\DateTime($activity->getDate());\n\n $aggregationKey = sprintf('%s::%s', $date->format('Y-m-d'), $activity->getOrigin());\n\n if (! isset($dataset[$aggregationKey])) {\n $dataset[$aggregationKey] = [\n 'date' => $date->format('Y-m-d'),\n 'total' => 0,\n 'origin' => $activity->getOrigin(),\n 'activities' => [],\n ];\n }\n\n // keep count on total activities\n $dataset[$aggregationKey]['total']++;\n\n // keep count on activities by type\n if (! isset($dataset[$aggregationKey]['activities'][$activity->getType()])) {\n $dataset[$aggregationKey]['activities'][$activity->getType()] = [\n 'type' => $activity->getType(),\n 'count' => 0,\n ];\n }\n\n $dataset[$aggregationKey]['activities'][$activity->getType()]['count']++;\n }\n\n // loose indexes on activity types\n foreach ($dataset as $aggregationKey => $data) {\n $dataset[$aggregationKey]['activities'] = array_values($data['activities']);\n }\n\n $result[$oppId] = [\n 'dataset' => array_values($dataset),\n ];\n }\n\n return $result;\n }\n\n /**\n * @return RelatedActivityInterface[]\n */\n private function fetchActivities(array $opportunityIds): array\n {\n if (empty($opportunityIds)) {\n return [];\n }\n\n // Sanitize the input mostly to ensure we are working with IDs and not UUIDs\n $ids = array_unique(array_map('intval', $opportunityIds));\n sort($ids);\n\n if ($ids[0] === 0) {\n throw new \\InvalidArgumentException(sprintf('Expected a list of positive integers, got: %s', implode(';', $opportunityIds)));\n }\n\n $activities = [];\n foreach ($this->datasources as $datasource) {\n $activities = array_merge($activities, $datasource->fetch($ids));\n }\n\n usort($activities, function (RelatedActivityInterface $a1, RelatedActivityInterface $a2) {\n return $a1->getDate() <=> $a2->getDate();\n });\n\n return $activities;\n }\n\n /**\n * @param RelatedActivityInterface[] $activities\n *\n * @return array<int:RelatedActivityInterface[]>\n */\n private function groupActivities(array $activities): array\n {\n $result = [];\n\n foreach ($activities as $activity) {\n if (! isset($result[$activity->getOpportunityId()])) {\n $result[$activity->getOpportunityId()] = [];\n }\n\n $result[$activity->getOpportunityId()][] = $activity;\n }\n\n return $result;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.008333334,"height":0.03},"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"17009","depth":6,"role_description":"cell"},{"role":"AXStaticText","text":"17009","depth":7,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.5048611,"height":0.024444444},"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"42ec35c8-7a66-3dff-b558-9c75866ecd68","depth":6,"role_description":"cell"},{"role":"AXStaticText","text":"42ec35c8-7a66-3dff-b558-9c75866ecd68","depth":7,"role_description":"text"},{"role":"AXTextArea","text":"Editor","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.5048611,"height":0.024444444},"role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"Galya Dimitrova","depth":6,"role_description":"cell"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":7,"role_description":"text"},{"role":"AXTextArea","text":"Editor","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.5048611,"height":0.024444444},"role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"galya.dimitrova@jiminny.com","depth":6,"role_description":"cell"},{"role":"AXStaticText","text":"galya.dimitrova@jiminny.com","depth":7,"role_description":"text"},{"role":"AXTextArea","text":"Editor","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.5048611,"height":0.024444444},"role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"role_description":"text"},{"role":"AXTextArea","text":"Editor","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.5048611,"height":0.024444444},"role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.5048611,"height":0.024444444},"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"role_description":"text"},{"role":"AXTextArea","text":"Editor","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.5048611,"height":0.024444444},"role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"role_description":"text"},{"role":"AXTextArea","text":"Editor","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.5048611,"height":0.024444444},"role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"/5f0f4810-7e77-4086-8f69-93429ae4d70b/avatars/LuhbAIJTol7ULglNYZz1HQ7FBKgLS09FdeBgrUd4.jpg","depth":6,"role_description":"cell"},{"role":"AXStaticText","text":"/5f0f4810-7e77-4086-8f69-93429ae4d70b/avatars/LuhbAIJTol7ULglNYZz1HQ7FBKgLS09FdeBgrUd4.jpg","depth":7,"role_description":"text"},{"role":"AXTextArea","text":"Editor","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.5048611,"height":0.024444444},"role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.5048611,"height":0.024444444},"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"role_description":"text"},{"role":"AXTextArea","text":"Editor","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.5048611,"height":0.024444444},"role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"BG","depth":6,"role_description":"cell"},{"role":"AXStaticText","text":"BG","depth":7,"role_description":"text"},{"role":"AXTextArea","text":"Editor","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.5048611,"height":0.024444444},"role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.5048611,"height":0.024444444},"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"+359899722322","depth":6,"role_description":"cell"},{"role":"AXStaticText","text":"+359899722322","depth":7,"role_description":"text"},{"role":"AXTextArea","text":"Editor","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.5048611,"height":0.024444444},"role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"role_description":"text"},{"role":"AXTextArea","text":"Editor","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.5048611,"height":0.024444444},"role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8822387091817097139
|
-3070103979909612986
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20157-AJ-report-not-se Project: faVsco.js, menu
JY-20157-AJ-report-not-send-notification, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
4
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Component\DealInsights\Activity;
class ActivityAggregator implements ActivityAggregatorInterface
{
/**
* @var DatasourceInterface[]
*/
private array $datasources = [];
/**
* ActivityAggregator constructor.
*
* @param DatasourceInterface[] $datasources
*/
public function __construct(array $datasources)
{
foreach ($datasources as $datasource) {
if (! $datasource instanceof DatasourceInterface) {
throw new \InvalidArgumentException(sprintf('Invalid datasource provided: %s', print_r($datasource, true)));
}
$this->datasources[$datasource->getIdentifier()] = $datasource;
}
}
public function getAggregatedActivities(array $opportunityIds): array
{
$groupedActivities = $this->groupActivities($this->fetchActivities($opportunityIds));
$result = [];
foreach ($groupedActivities as $oppId => $activities) {
$dataset = [];
foreach ($activities as $activity) {
$date = new \DateTime($activity->getDate());
$aggregationKey = sprintf('%s::%s', $date->format('Y-m-d'), $activity->getOrigin());
if (! isset($dataset[$aggregationKey])) {
$dataset[$aggregationKey] = [
'date' => $date->format('Y-m-d'),
'total' => 0,
'origin' => $activity->getOrigin(),
'activities' => [],
];
}
// keep count on total activities
$dataset[$aggregationKey]['total']++;
// keep count on activities by type
if (! isset($dataset[$aggregationKey]['activities'][$activity->getType()])) {
$dataset[$aggregationKey]['activities'][$activity->getType()] = [
'type' => $activity->getType(),
'count' => 0,
];
}
$dataset[$aggregationKey]['activities'][$activity->getType()]['count']++;
}
// loose indexes on activity types
foreach ($dataset as $aggregationKey => $data) {
$dataset[$aggregationKey]['activities'] = array_values($data['activities']);
}
$result[$oppId] = [
'dataset' => array_values($dataset),
];
}
return $result;
}
/**
* @return RelatedActivityInterface[]
*/
private function fetchActivities(array $opportunityIds): array
{
if (empty($opportunityIds)) {
return [];
}
// Sanitize the input mostly to ensure we are working with IDs and not UUIDs
$ids = array_unique(array_map('intval', $opportunityIds));
sort($ids);
if ($ids[0] === 0) {
throw new \InvalidArgumentException(sprintf('Expected a list of positive integers, got: %s', implode(';', $opportunityIds)));
}
$activities = [];
foreach ($this->datasources as $datasource) {
$activities = array_merge($activities, $datasource->fetch($ids));
}
usort($activities, function (RelatedActivityInterface $a1, RelatedActivityInterface $a2) {
return $a1->getDate() <=> $a2->getDate();
});
return $activities;
}
/**
* @param RelatedActivityInterface[] $activities
*
* @return array<int:RelatedActivityInterface[]>
*/
private function groupActivities(array $activities): array
{
$result = [];
foreach ($activities as $activity) {
if (! isset($result[$activity->getOpportunityId()])) {
$result[$activity->getOpportunityId()] = [];
}
$result[$activity->getOpportunityId()][] = $activity;
}
return $result;
}
}
A
1
Select All
17009
17009
0
42ec35c8-7a66-3dff-b558-9c75866ecd68
42ec35c8-7a66-3dff-b558-9c75866ecd68
Editor
Galya Dimitrova
Galya Dimitrova
Editor
[EMAIL]
[EMAIL]
Editor
<null>
<null>
Editor
1
1
0
<null>
<null>
Editor
<null>
<null>
Editor
/5f0f4810-7e77-4086-8f69-93429ae4d70b/avatars/LuhbAIJTol7ULglNYZz1HQ7FBKgLS09FdeBgrUd4.jpg
/5f0f4810-7e77-4086-8f69-93429ae4d70b/avatars/LuhbAIJTol7ULglNYZz1HQ7FBKgLS09FdeBgrUd4.jpg
Editor
0
0
0
<null>
<null>
Editor
BG
BG
Editor
<null>
<null>
0
[PHONE]
[PHONE]
Editor
<null>
<null>
Editor...
|
71262
|
|
32745
|
662
|
36
|
2026-04-16T07:18:58.483475+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776323938483_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpla6lSupport Daily - in 4h 42 m100% 4DEV (-zsh)ec2-user@ip-10-30-...₴4DOCKER• 881DEV (-zsh)882APP (-zsh)• *3create report result• find child result• get generate report payload with weekly frequency usesfull days• get generate report payload with monthly frequency uses full days• getgenerate reportpayload with quarterly frequency uses full days• get generate report payload one off includescalls on final day• update result namesiscalled whencustom name changes• update result names is notcalled when custom name unchanged• update result names rollback to no custom name includes teams-zsh• ₴5|-zsh86Symfony \Component \Process \Exception \ProcessSignaledExceptionTheprocess has been signaled with signal "9".at vendor/symfony/process/Process.php:473469470usleep(1000);471472→ 473474475476return Sthis->exitcode;477}if (Sthis->processInformation['signaled'] && Sthis->processInformation['termsig'] !== $this->latestSignal) {throw new ProcessSignaledException(Sthis);+15 vendor frames16artisan: 13Illuminate\Foundation \Application: :handleCommand(Object(Symfony\Component\Console\Input\ArgvInput))root@docker_lamp_1:/home/jiminny#What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ O-zsh®O &78Thu 16 Apr 10:18:58T₴1* Unable to acce...DEO 880.30s0.35s0.27s0.27s0.31s0.49s0.6650.45s0.62s...
|
NULL
|
-8822296107739171529
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpla6lSupport Daily - in 4h 42 m100% 4DEV (-zsh)ec2-user@ip-10-30-...₴4DOCKER• 881DEV (-zsh)882APP (-zsh)• *3create report result• find child result• get generate report payload with weekly frequency usesfull days• get generate report payload with monthly frequency uses full days• getgenerate reportpayload with quarterly frequency uses full days• get generate report payload one off includescalls on final day• update result namesiscalled whencustom name changes• update result names is notcalled when custom name unchanged• update result names rollback to no custom name includes teams-zsh• ₴5|-zsh86Symfony \Component \Process \Exception \ProcessSignaledExceptionTheprocess has been signaled with signal "9".at vendor/symfony/process/Process.php:473469470usleep(1000);471472→ 473474475476return Sthis->exitcode;477}if (Sthis->processInformation['signaled'] && Sthis->processInformation['termsig'] !== $this->latestSignal) {throw new ProcessSignaledException(Sthis);+15 vendor frames16artisan: 13Illuminate\Foundation \Application: :handleCommand(Object(Symfony\Component\Console\Input\ArgvInput))root@docker_lamp_1:/home/jiminny#What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ O-zsh®O &78Thu 16 Apr 10:18:58T₴1* Unable to acce...DEO 880.30s0.35s0.27s0.27s0.31s0.49s0.6650.45s0.62s...
|
NULL
|
|
29892
|
609
|
20
|
2026-04-15T14:50:28.186215+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776264628186_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
158012075636641935175/200VImperial Age1 kovalikluk 158012075636641935175/200VImperial Age1 kovaliklukas: 42783/42783NV5 Magnus Olafsson: 41271/41271IV8 Almish Yiltawar: 34032/34032IVRajyapala: 23275/23275NV6 LÁsz16 I: 12424/12424/7 Maximilian ef Habsburg: 6531/6531 W3 Huscár: 5931/5231NV4 Lowig VI: 5792/5702IV...
|
NULL
|
-8821988569362407595
|
NULL
|
click
|
ocr
|
NULL
|
158012075636641935175/200VImperial Age1 kovalikluk 158012075636641935175/200VImperial Age1 kovaliklukas: 42783/42783NV5 Magnus Olafsson: 41271/41271IV8 Almish Yiltawar: 34032/34032IVRajyapala: 23275/23275NV6 LÁsz16 I: 12424/12424/7 Maximilian ef Habsburg: 6531/6531 W3 Huscár: 5931/5231NV4 Lowig VI: 5792/5702IV...
|
29890
|
|
49320
|
1051
|
9
|
2026-04-17T13:35:15.182844+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776432915182_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEoitViewHistory••Developers | HubSpotM& FirefoxFileEoitViewHistory••Developers | HubSpotM'inbox (1,576) - lukas.kovalik@jiminM 120216 is your HubSpot Log In CorFal CloudWatch | eu-west-1New TabZ Configure SSH access to multiple. fix-cache-for-business-processesDashboard • Jiminny • MembraneApp "4oho CRM" • Jiminny • MembJY-20692 change confirmation par( JY-20543 add AJ reports User pilca Jiminnv@ Jiminny) Jiminny\Exceptions|HttpBadReque@ Jiminny+ New TabBookmarksProfilesO JIMINNYToolsWindow Helpjiminny.atlassian.net/ira/servicedesk/projects/SRD/queues/custom/37/SRD-6793® For you• RecentZ Starred09 Apps0, SpacesRecent(Y Service-DeskQueuesv Team PriorityE All open tic... 13@ Unassigne... 3Support te...Raised by ...y Assigned t...E Service re...1 E Platform te... 2Processing... 9@ Site reliabil...oNew featur... OEj InfoSec is... 0E Ready Tor ….. 1Resolve.. 999+= View all que... >E Service requestsA Incidentsul ReportsC OperationsKnowledge Base& Customers@ ChannelsEmail logs‹› Developer escalati...il Slack integration& Reporting Center[ Add shortcutE Archived work itemsJiminny (New)= More spaces= FiltersDashboardsC Operations< BackK SRD-6793Stoyan Tomov raised this request via JiraView reauest in portaDescriotionHey team,While testing something on Les Mills's instance, I saw that vI tried creating "LMUS CX Playbook test" Playbook (ID 5515When I tried reproducing the same on our Jiminny instanceCan someone please check why we are not pulling the activData CentreSteps to reproduceCreate a new playbook in Les Mills's instanceCustomer typeActual outcomeExpected outcomeSeverity levelImpactNoneRoot causeNoneLinkee work temsis blocked bySearch for work items+ Create linked work itemActivityAllComments HistoryWork log ApprovalsAdd internal note / Reply to customerPro tib: oress Mito commentStoyan Tomov yesterday & Internal noteFYI, Pulsar Group (EU) is facing the same issue.© • Edit • DeleteQ Search+ Create< 40 ll 1 Tech Day Review • in 25 mA100% C•8 Fri 17 Apr 16:35:14Ask RovoHide detailsCreate linked issueImport issuesProjectJiminny (New) (JY)Issue Type*• Service RequestSome issue types are unavailable due to incompatible field configuration and/or workflow associations.Created issuerelates toLinked Issues(SRD-6793xSearch for issues to link to from the one you're creating.+Summary*Les Mills activity types not pulling inDescriptionstyler BlUAardWEEo.EHey team,While testing something on Les Mill's instance, I saw that we are not pulling in their activity types when anew Playbook is created.I tried creating "LMUS CX Playbook test" Playbook (ID 5515), but no activity types got pulled in.When I tried reproducing the same on our Jiminny instance, the activity types appeared.Ea eamanne nlasa chack whu wa are not aulia the actiwitu tunas for l as Millk?CreateCancelLink Cancel• Summarise comments =In Progressvv DetailsAssigneeO Lukas KovalikReporterStoyan TomovRequest TypeReport a bugKnowledge base( View related a...Priority level(P2 MediumDev TeamPlatform team]OrganizationLes MillsCanny LinksOpen Canny Links> More fields Labels, Time tracking, Type of Infos...> Automation 4 Rule executions> featureOS Open featureOSv IntercomShowing 1 out of 1 linked conversations& Christopher Wiltonл0... >> Sentry all Linked IssuesCreated yesterdayUpdated 1 second agoLộ Configure...
|
NULL
|
-8821940021896231151
|
NULL
|
click
|
ocr
|
NULL
|
FirefoxFileEoitViewHistory••Developers | HubSpotM& FirefoxFileEoitViewHistory••Developers | HubSpotM'inbox (1,576) - lukas.kovalik@jiminM 120216 is your HubSpot Log In CorFal CloudWatch | eu-west-1New TabZ Configure SSH access to multiple. fix-cache-for-business-processesDashboard • Jiminny • MembraneApp "4oho CRM" • Jiminny • MembJY-20692 change confirmation par( JY-20543 add AJ reports User pilca Jiminnv@ Jiminny) Jiminny\Exceptions|HttpBadReque@ Jiminny+ New TabBookmarksProfilesO JIMINNYToolsWindow Helpjiminny.atlassian.net/ira/servicedesk/projects/SRD/queues/custom/37/SRD-6793® For you• RecentZ Starred09 Apps0, SpacesRecent(Y Service-DeskQueuesv Team PriorityE All open tic... 13@ Unassigne... 3Support te...Raised by ...y Assigned t...E Service re...1 E Platform te... 2Processing... 9@ Site reliabil...oNew featur... OEj InfoSec is... 0E Ready Tor ….. 1Resolve.. 999+= View all que... >E Service requestsA Incidentsul ReportsC OperationsKnowledge Base& Customers@ ChannelsEmail logs‹› Developer escalati...il Slack integration& Reporting Center[ Add shortcutE Archived work itemsJiminny (New)= More spaces= FiltersDashboardsC Operations< BackK SRD-6793Stoyan Tomov raised this request via JiraView reauest in portaDescriotionHey team,While testing something on Les Mills's instance, I saw that vI tried creating "LMUS CX Playbook test" Playbook (ID 5515When I tried reproducing the same on our Jiminny instanceCan someone please check why we are not pulling the activData CentreSteps to reproduceCreate a new playbook in Les Mills's instanceCustomer typeActual outcomeExpected outcomeSeverity levelImpactNoneRoot causeNoneLinkee work temsis blocked bySearch for work items+ Create linked work itemActivityAllComments HistoryWork log ApprovalsAdd internal note / Reply to customerPro tib: oress Mito commentStoyan Tomov yesterday & Internal noteFYI, Pulsar Group (EU) is facing the same issue.© • Edit • DeleteQ Search+ Create< 40 ll 1 Tech Day Review • in 25 mA100% C•8 Fri 17 Apr 16:35:14Ask RovoHide detailsCreate linked issueImport issuesProjectJiminny (New) (JY)Issue Type*• Service RequestSome issue types are unavailable due to incompatible field configuration and/or workflow associations.Created issuerelates toLinked Issues(SRD-6793xSearch for issues to link to from the one you're creating.+Summary*Les Mills activity types not pulling inDescriptionstyler BlUAardWEEo.EHey team,While testing something on Les Mill's instance, I saw that we are not pulling in their activity types when anew Playbook is created.I tried creating "LMUS CX Playbook test" Playbook (ID 5515), but no activity types got pulled in.When I tried reproducing the same on our Jiminny instance, the activity types appeared.Ea eamanne nlasa chack whu wa are not aulia the actiwitu tunas for l as Millk?CreateCancelLink Cancel• Summarise comments =In Progressvv DetailsAssigneeO Lukas KovalikReporterStoyan TomovRequest TypeReport a bugKnowledge base( View related a...Priority level(P2 MediumDev TeamPlatform team]OrganizationLes MillsCanny LinksOpen Canny Links> More fields Labels, Time tracking, Type of Infos...> Automation 4 Rule executions> featureOS Open featureOSv IntercomShowing 1 out of 1 linked conversations& Christopher Wiltonл0... >> Sentry all Linked IssuesCreated yesterdayUpdated 1 second agoLộ Configure...
|
49318
|
|
16154
|
359
|
7
|
2026-04-14T15:09:27.549643+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776179367549_m1.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
+SlackFileEditViewGoHistoryWindowHelpEDHomeDMsActi +SlackFileEditViewGoHistoryWindowHelpEDHomeDMsActivityFilesLater..•More+→CSearch Jiminny IncJiminny ...# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesAneliya Angelova, ...Vasil VasilevSteliyan GeorgievAdelina Petrova, Ili...P. Adelina Petrova% Galya DimitrovaRs Nikolay Nikolov "2Galya Dimitrova, Ni...2 Galya Dimitrova, Ni...i: AppsJira CloudToastGoogle Cale...# generalDo426 0MessagesMore v@ Files• BookmarksDetraction Cor4 3Today ~SD 1Salesforce for Slack APP5:19 PMPetko Kashinski just closed a renewal withViewz - Renewal (08/06/2026). Nice Work!Amount: USD 3,276ARR: USD 3,276Close Date: April 14, 2026Start Date: June 3, 2026Number of Salespeople:Detraction? falseDetraction Reason:Detraction Context:H1Salesforce for Slack APP5:59 PMPetko Kashinski just closed a renewal withgrape- - Renewal (27/06/2026). Nice Work!Amount: USD 6,274.8ARR: USD 6,274.8Close Date: April 14, 2026Start Date: June 13, 2026Number of Salespeople:Detraction? falseDetraction Reason:Detraction Context:SD1Message #general++New0Retro - Platform • 6 m leftActivity MonitorAll ProcessesProcess NameBoosteroidFirefoxCP Isolated Web ContentWindowServerFirefoxFirefoxCP Isolated Web ContentFirefoxFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentCursorUlViewService (Not Responding)Notion Calendar Helper (Renderer)VTDecoderXPCServiceSlack Helper (Renderer)Firefox GPU HelperFirefox GPU HelperNotion Helper (Renderer)FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentclaudeMEMORY PRESSUREMem...2,00 GB1,18 GB995,4 MB884,3 MB775,1 MB761,5 MB736,0 MB719,9 MB636,2 MB603,2 MB591,4 MB547,9 MB547,2 MB541,7 MB533,2 MB483,0 MB475,0 MB456,8 MB417,5 MB388,2 MB382,9 MB372,1 MB371,9 MB346,6 MB335,4 MB321,1 MB278,6 MB276.4 MBPhysical Memory:Memory Used:Cached Files:Swap Used:100% C4Tue 14 Apr 18:09:27CPUMemoryDiskThreads382523823075252515111526262128232425282327242824232513EnergyPorts59912416 14394012671312212516 41217216617922723633312911911912212811912412212612411912272PID248351470040714664600358014500478484984226548248432427380191467311487087349623340701479128246508911334328931710951120232249278005091016,00 GB13,75 GB<2,12 GB3,49 GBApp Memory:Wired Memory:Compressed:NetworkUserlukaslukas_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas3,88 GB3,05 GB6,27 GB...
|
NULL
|
-8821559982034486764
|
NULL
|
click
|
ocr
|
NULL
|
+SlackFileEditViewGoHistoryWindowHelpEDHomeDMsActi +SlackFileEditViewGoHistoryWindowHelpEDHomeDMsActivityFilesLater..•More+→CSearch Jiminny IncJiminny ...# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesAneliya Angelova, ...Vasil VasilevSteliyan GeorgievAdelina Petrova, Ili...P. Adelina Petrova% Galya DimitrovaRs Nikolay Nikolov "2Galya Dimitrova, Ni...2 Galya Dimitrova, Ni...i: AppsJira CloudToastGoogle Cale...# generalDo426 0MessagesMore v@ Files• BookmarksDetraction Cor4 3Today ~SD 1Salesforce for Slack APP5:19 PMPetko Kashinski just closed a renewal withViewz - Renewal (08/06/2026). Nice Work!Amount: USD 3,276ARR: USD 3,276Close Date: April 14, 2026Start Date: June 3, 2026Number of Salespeople:Detraction? falseDetraction Reason:Detraction Context:H1Salesforce for Slack APP5:59 PMPetko Kashinski just closed a renewal withgrape- - Renewal (27/06/2026). Nice Work!Amount: USD 6,274.8ARR: USD 6,274.8Close Date: April 14, 2026Start Date: June 13, 2026Number of Salespeople:Detraction? falseDetraction Reason:Detraction Context:SD1Message #general++New0Retro - Platform • 6 m leftActivity MonitorAll ProcessesProcess NameBoosteroidFirefoxCP Isolated Web ContentWindowServerFirefoxFirefoxCP Isolated Web ContentFirefoxFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentCursorUlViewService (Not Responding)Notion Calendar Helper (Renderer)VTDecoderXPCServiceSlack Helper (Renderer)Firefox GPU HelperFirefox GPU HelperNotion Helper (Renderer)FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentclaudeMEMORY PRESSUREMem...2,00 GB1,18 GB995,4 MB884,3 MB775,1 MB761,5 MB736,0 MB719,9 MB636,2 MB603,2 MB591,4 MB547,9 MB547,2 MB541,7 MB533,2 MB483,0 MB475,0 MB456,8 MB417,5 MB388,2 MB382,9 MB372,1 MB371,9 MB346,6 MB335,4 MB321,1 MB278,6 MB276.4 MBPhysical Memory:Memory Used:Cached Files:Swap Used:100% C4Tue 14 Apr 18:09:27CPUMemoryDiskThreads382523823075252515111526262128232425282327242824232513EnergyPorts59912416 14394012671312212516 41217216617922723633312911911912212811912412212612411912272PID248351470040714664600358014500478484984226548248432427380191467311487087349623340701479128246508911334328931710951120232249278005091016,00 GB13,75 GB<2,12 GB3,49 GBApp Memory:Wired Memory:Compressed:NetworkUserlukaslukas_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas3,88 GB3,05 GB6,27 GB...
|
NULL
|
|
51971
|
1123
|
50
|
2026-04-20T06:30:17.287850+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776666617287_m2.jpg...
|
Slack
|
Galya Dimitrova (DM) - Jiminny Inc - Slack
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Galya Dimitrova
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Aneliya Angelova
Ves
Steliyan Georgiev
Jira Cloud
Toast
Messages
Messages
Files...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Jiminny Inc","depth":12,"bounds":{"left":0.004654255,"top":0.06304868,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Jiminny (Staging)","depth":12,"bounds":{"left":0.004654255,"top":0.10454908,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Add workspaces","depth":12,"bounds":{"left":0.004654255,"top":0.14604948,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"bounds":{"left":0.022938829,"top":0.05586592,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.009973404,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.022938829,"top":0.110135674,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"bounds":{"left":0.027593086,"top":0.14764565,"width":0.007978723,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.022938829,"top":0.16440542,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"bounds":{"left":0.025265958,"top":0.2019154,"width":0.012965426,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.022938829,"top":0.21867518,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"bounds":{"left":0.027925532,"top":0.25618514,"width":0.0076462766,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.022938829,"top":0.27294493,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"bounds":{"left":0.027260639,"top":0.3104549,"width":0.008643617,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.022938829,"top":0.3272147,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"bounds":{"left":0.027260639,"top":0.36472467,"width":0.008976064,"height":0.0103751},"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":21,"bounds":{"left":0.056848403,"top":0.10055866,"width":0.01861702,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.056848403,"top":0.12290503,"width":0.01761968,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.056848403,"top":0.1452514,"width":0.017952127,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.056848403,"top":0.16759777,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.056848403,"top":0.18994413,"width":0.023936171,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":23,"bounds":{"left":0.06216755,"top":0.28411812,"width":0.043882977,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":23,"bounds":{"left":0.06216755,"top":0.3064645,"width":0.044215426,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"bounds":{"left":0.06216755,"top":0.35913807,"width":0.022273935,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"bounds":{"left":0.06216755,"top":0.38148445,"width":0.011968086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"bounds":{"left":0.06216755,"top":0.4038308,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"bounds":{"left":0.06216755,"top":0.42617717,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"bounds":{"left":0.06216755,"top":0.44852355,"width":0.027593086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"bounds":{"left":0.06216755,"top":0.4708699,"width":0.026595745,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"frontend","depth":23,"bounds":{"left":0.06216755,"top":0.49321628,"width":0.018949468,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"bounds":{"left":0.06216755,"top":0.51556265,"width":0.015957447,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":23,"bounds":{"left":0.06216755,"top":0.53790903,"width":0.029587766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"bounds":{"left":0.06216755,"top":0.5602554,"width":0.022938829,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"bounds":{"left":0.06216755,"top":0.5826017,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"bounds":{"left":0.06216755,"top":0.6049481,"width":0.03856383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"bounds":{"left":0.06216755,"top":0.6272945,"width":0.01662234,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"bounds":{"left":0.06216755,"top":0.64964086,"width":0.01761968,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"bounds":{"left":0.06216755,"top":0.67198724,"width":0.016954787,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"bounds":{"left":0.06216755,"top":0.6943336,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"bounds":{"left":0.06216755,"top":0.71668,"width":0.04488032,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.76935357,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.09940159,"top":0.76935357,"width":0.0063164895,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"bounds":{"left":0.10206117,"top":0.76935357,"width":0.014295213,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.116023935,"top":0.7869114,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"bounds":{"left":0.116023935,"top":0.7869114,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":23,"bounds":{"left":0.06216755,"top":0.79169995,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.06216755,"top":0.81404626,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"bounds":{"left":0.06216755,"top":0.83639264,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"bounds":{"left":0.06216755,"top":0.858739,"width":0.026263298,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"bounds":{"left":0.06216755,"top":0.8810854,"width":0.031914894,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.9034318,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"bounds":{"left":0.06216755,"top":0.92577815,"width":0.0076462766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"bounds":{"left":0.06216755,"top":0.9481245,"width":0.038231384,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":23,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.021609042,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":23,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.011635638,"height":0.0007980846},"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":17,"bounds":{"left":0.12200798,"top":0.09177973,"width":0.030585106,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":19,"bounds":{"left":0.13131648,"top":0.10055866,"width":0.01861702,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":17,"bounds":{"left":0.15392287,"top":0.09177973,"width":0.020944148,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8820835394436727383
|
-4095892146349106167
|
visual_change
|
hybrid
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Galya Dimitrova
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Aneliya Angelova
Ves
Steliyan Georgiev
Jira Cloud
Toast
Messages
Messages
Files
slack000 EIActivityVIewMistonWindowJiminny ...— Unreads@ Threads6 HuddlesDrafts & sent8) Directories9b External connections# Starred8 jiminny-x-integrati...& platform-inner-team* Channels# ai-chapterw alerts# backend# confusion-clinici curiosity lal# engineering# frontend# general# infra-changes# jiminny-bg# platform-ticketsa oroduct launches# randomi releases# support# thank-yous* the neonle of timi...^ Direct messages3 Aneliya Angelova, ...P. Nikolay NikolovP. Galya Dimitrova2. Stoyan TanevB. Vasil Vasilev. Nikolay Ivanov. Aneliya Angelovae. Ves. Steliyan Georgiev =:: AppsHelpQ Search Ji % Galya Dimitrova• Messagesr Filesвот да то го има вечеUntitledWednesday. April 15thGalya Dimitrova 11:.58 AMПриветкогато стигнеш до това стори https://jiminny.atlassian.net/browse/JY-20372JY-20372 Al Reports > Empty page design and promotionStatus: BacklogR Type: StoryNY Assignee: Nikolay YankovT Priority: MediumChange status*AISummariseahodwhrselounrПетко е направил някакво доо поле на ниво юзьо което ла сетваме на truе когато юзъоа кликне бутонаimage 1).ongама като стигнеш ло там може би най лобое ла вилиш с него за всеки случайLukas Kovalik 12:01 PMздрасти. добре ще го видяGalya Dimitrova 5:34 PMнещо за като се върнеш - https://jiminny.atlassian.net/browse/JY-20543 - тук трябваше да има отделен евент за AJ Report и отделен за Ехес Report. А в UPв момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кодаJY-20543 AJ Renorts > TrackingStatus: ClosedType: Story(LK) Assienee: Lukas KovalitT Priority: Medium+ Al SummariseMessage Galya Dimitrova+ Дạ.filtersE REVIEW 4uation tor Al Activity TvoesO-DETECTED ACTIVITY TYPEe keview1 88 •000 = 0ays in CRM SyncTFORM STABILITYlle ReviewY-205532 % .00=0le with reconnecting ZohoY-20692₽ =0Mills activity types not pullingPORT TICKETSe ReviewY-20698BLOCKED40 l o"Dally - Platrorm • In 7om+ CreateloymentsPO ACCEPTANCEQA 1Part2. Automated revorts withAsk Jiminny CAJ REPORTSIn QAAI) (BE) (FE) QANJY-189095 82 •0=1100% L2Mon 20 Apr 9:30:18Ask Rovo# Archived work items© PagesMore 3Complete sprintGroup: QueriesDEPLOY 4Prevare tallback with email torSSO for 'persistent'name id tormatREDUCE CHURNClosedNJY-206321œee—A.l Panorama> Don't show internalerrors to customersASK ANYTHING ON ANYTHINGDeployedProphet** JY-20278110 •=₴Upgrade Python and libraries - AprMAINTENANCEDeployedJY-19967110•=2CLONE - [Team insights] Filtergets reset automaticallysupPOrt TICKETSDeolovedY.IV-206810.5 12 000 g...
|
51969
|