|
21771
|
NULL
|
0
|
2026-04-15T10:18:41.909101+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776248321909_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
19052713020021/25Dark AgeGame Paused (P)Click and 19052713020021/25Dark AgeGame Paused (P)Click and drag where you want to build the wall.1 kovaliklukas: 546/5466 Mindaugas: 536/5364 Siddhraj Jaisingh: 534/5345 Honorius: 517/5173 Bird Jaguar: 516/516Anceu Hualloc: 503/5037 Basil the Macedonian: 493/4938 Ashikaga Takauji: 468/468kovalfklukas (Britons)25/25...
|
NULL
|
9120188336583759421
|
NULL
|
visual_change
|
ocr
|
NULL
|
19052713020021/25Dark AgeGame Paused (P)Click and 19052713020021/25Dark AgeGame Paused (P)Click and drag where you want to build the wall.1 kovaliklukas: 546/5466 Mindaugas: 536/5364 Siddhraj Jaisingh: 534/5345 Honorius: 517/5173 Bird Jaguar: 516/516Anceu Hualloc: 503/5037 Basil the Macedonian: 493/4938 Ashikaga Takauji: 468/468kovalfklukas (Britons)25/25...
|
21769
|
|
36690
|
NULL
|
0
|
2026-04-16T10:53:31.876754+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776336811876_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhoStormEditViewNavigateCodelaravellRefactonRunlTo PhoStormEditViewNavigateCodelaravellRefactonRunlToolsWindowHeloDMsAchivityFilesMoreJiminny ...= Unreadse) Threads6d Huddles012• Drafts & sent:8 DirectoriesEh External connections* Starred@ liminny-x-integrati..platform-inner-team(# Channels# ai-chapten# alerts# backends contlicion-clnid# curiosity lab# engineering# frontendi# general# infra-changes#: liminny-bg# platrorm-uckets#: product launchesac random#: releases# sofa-ofhce# supportac thank-vous# the people of iimi....Direct messages• Nikolay Nikolov€. Vasil.... Galva DimitrovaNikolay Ivanov0 Aneliva Angelova3 Aneliya Angelova, ..Stoyan Tanev5- VegStelivan Georgiev3 Adelina Petrova, Ili..Adelina Petrova#:Apps6 d Huddle with Vasil VasilevSearch Jiminny Inc0. Nikolay NikolovMessages4P FilesChanges:~ 4 new messages• Return talse to skip remote engagement update with a secondary activity dataComments•jiminny/app|Apr 8th Added by GitHubThursday, April 9thvNikolay Nikolov 10:50 AMOautha mi изгърмя: [URL_WITH_CREDENTIALS] в дооде с негоИзкарва ми бутон за Recoverrelo he ree caraneMessage Nikolay NikolovAaQV- Al Notes: OfiLukas KovalikScreen shareAl Notes: OffLeave&Suooort Dailv. in 1h7m100% 4• Thu 16 Aor 13:53:31nd Huddle with Vasil Vasiley• Hep L: →0 4 Support Daily « in 1h7m A 5Leave...
|
NULL
|
9120005509710671579
|
NULL
|
click
|
ocr
|
NULL
|
PhoStormEditViewNavigateCodelaravellRefactonRunlTo PhoStormEditViewNavigateCodelaravellRefactonRunlToolsWindowHeloDMsAchivityFilesMoreJiminny ...= Unreadse) Threads6d Huddles012• Drafts & sent:8 DirectoriesEh External connections* Starred@ liminny-x-integrati..platform-inner-team(# Channels# ai-chapten# alerts# backends contlicion-clnid# curiosity lab# engineering# frontendi# general# infra-changes#: liminny-bg# platrorm-uckets#: product launchesac random#: releases# sofa-ofhce# supportac thank-vous# the people of iimi....Direct messages• Nikolay Nikolov€. Vasil.... Galva DimitrovaNikolay Ivanov0 Aneliva Angelova3 Aneliya Angelova, ..Stoyan Tanev5- VegStelivan Georgiev3 Adelina Petrova, Ili..Adelina Petrova#:Apps6 d Huddle with Vasil VasilevSearch Jiminny Inc0. Nikolay NikolovMessages4P FilesChanges:~ 4 new messages• Return talse to skip remote engagement update with a secondary activity dataComments•jiminny/app|Apr 8th Added by GitHubThursday, April 9thvNikolay Nikolov 10:50 AMOautha mi изгърмя: [URL_WITH_CREDENTIALS] в дооде с негоИзкарва ми бутон за Recoverrelo he ree caraneMessage Nikolay NikolovAaQV- Al Notes: OfiLukas KovalikScreen shareAl Notes: OffLeave&Suooort Dailv. in 1h7m100% 4• Thu 16 Aor 13:53:31nd Huddle with Vasil Vasiley• Hep L: →0 4 Support Daily « in 1h7m A 5Leave...
|
36688
|
|
68154
|
1538
|
17
|
2026-04-21T16:37:04.790450+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776789424790_m1.jpg...
|
Firefox
|
SevenShores\Hubspot\Exceptions\BadRequest: Client 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 — Work...
|
True
|
jiminny.sentry.io/issues/7007366572/events/b67f396 jiminny.sentry.io/issues/7007366572/events/b67f39639ce745319a0cddb956bbe2af/...
|
monitor_1
|
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
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
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to main content
Skip to main content
Toggle organization menu
Issues
Issues
Explore
Explore
Dashboards
Dashboards
Monitors
Monitors
Settings
Settings
Try Business
What's New
Help
[EMAIL]
Issues
Expand
Feed
Feed
Errors & Outages
Errors & Outages
Breached Metrics
Breached Metrics
Warnings
Warnings
User Feedback
User Feedback
All Views
All Views
Configure
Alerts Moved
Alerts
Moved
Issues
Issues
View Project Details
APP-1EED
SevenShores\Hubspot\Exceptions\BadRequest
View events
Events (total)
Users (90d)
Level: Error
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","correlationId":"019db0d4-8 (truncated...)
6.2K
0
Ongoing
/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php in Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::executeSearchRequest
Resolve
Resolve
More resolve options
Archive
Archive
Archive options
Subscribe
Share
More Actions
Priority
Modify issue priority
High
Assignee
Modify issue assignee
Lukas Kovalik
All Envs
All Envs
90D
90D
Add a search term
Add a search term
Close sidebar
Toggle graph series - Events
Events
5.9K
Toggle graph series - Users
Users
0
release 64% 874599
release
64%
874599
environment 82% production
environment
82%
production
os 100% Linux 6.1.141-155.222.amzn2023.aarch64
os
100%
Linux 6.1.141-155.222.amzn2023.aarch64
os.name 100% Linux
os.name
100%
Linux
View all tags
View all tags
Select issue content
Events
Previous Event
Next Event
First
First
First
Latest
Latest
Latest
Recommended
Recommended
Recommended
View More Events
View More Events
Copy as
Copy as
ID: b67f3963
19 minutes ago
JSON
JSON
Highlights
Highlights
Stack Trace
Stack Trace
Trace
Trace
Tags
Tags
Context
Context
php
8.3.30
Linux
6.1.141-155.222.amzn2023.aarch64
874599
874599
production
Collapse Highlights Section
Highlights
Edit
Edit
handled
yes
level
error
transaction
--
url
--
Trace: Trace ID
8ff885cce91340aaa411571eaebb85a1
8ff885cce91340aaa411571eaebb85a1
Collapse Stack Trace Section
Stack Trace
Display options
Display
Copy as
Copy as
There are 2 chained exceptions in this event.
SevenShores\Hubspot\Exceptions\BadRequest
SevenShores\Hubspot\Exceptions\BadRequest
SevenShores\Hubspot\Exceptions\BadRequest
Client error: `POST
https://api.hubapi.com/crm/v3/objects/contact/search
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","correlationId":"019db0d4-8 (truncated...)
mechanism
generic
handled
true
code
429
Crashed in non-app
:
/vendor/hubspot/hubspot-php/src/Exceptions/HubspotException.php
in
SevenShores\Hubspot\Exceptions\HubspotException::create
Show 1 more frame
Show 1 more frame
/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
:163
in
Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::executeSearchRequest
Copy file path
Open this line in GitHub
In App
158
}
159
160
private
function
executeSearchRequest
(
Client
$client
,
string
$endpoint
,
array
$payload
,
PaginationState
$state
)
:
array
161
{
162
try
{
163
$response
=
$client
->
getInstance
(
)
->
getClient
(
)
->
request
(
'POST'
,
$endpoint
,
[
'json'
=>
$payload
]
)
;
164
165
return
$response
->
toArray
(
)
;
166
}
catch
(
\
Exception
$e
)
{
167
if
(
$client
->
isUnauthorizedException
(
$e
)
)
{
168
$this
->
logger
->
warning
(
'[Hubspot] Got 401 during pagination, attempting token refresh'
,
[
client
Object Jiminny\Services\Crm\Hubspot\Client
endpoint
https://api.hubapi.com/crm/v3/objects/contact/search
Open link
payload
Collapse
{
Collapse
filterGroups
:
[
Expand
{
1 item
1 item
}
,
Expand
{
1 item
1 item
}
]
,
Expand
properties
:
[
14 items
14 items
]
,
Collapse
sorts
:
[
Expand
{
2 items
2 items
}
]
}
state
Object Jiminny\Services\Crm\Hubspot\Pagination\PaginationState
/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
:51
in
Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::getPaginatedDataGenerator
In App
/app/Services/Crm/Hubspot/Client.php
:94
in
Jiminny\Services\Crm\Hubspot\Client::getPaginatedData
In App
/app/Services/Crm/Hubspot/Service.php
:1235
in
Jiminny\Services\Crm\Hubspot\Service::Jiminny\Services\Crm\Hubspot\{closure}
In App
Called from
:
/vendor/laravel/framework/src/Illuminate/Cache/Repository.php
in
Illuminate\Cache\Repository::remember
Show 2 more frames
Show 2 more frames
/app/Services/Crm/Hubspot/Service.php
:1229
in
Jiminny\Services\Crm\Hubspot\Service::matchByName
In App
/app/Services/Crm/CachedCrmServiceDecorator.php
:167
in
Jiminny\Services\Crm\CachedCrmServiceDecorator::matchByName
In App
/app/Services/Crm/CrmActivityService.php
:227
in
Jiminny\Services\Crm\CrmActivityService::findCrmRecords
In App
/app/Services/Crm/CrmActivityService.php
:139
in
Jiminny\Services\Crm\CrmActivityService::updateParticipantsCrmData
In App
/app/Services/Crm/CrmActivityService.php
:81
in
Jiminny\Services\Crm\CrmActivityService::updateCrmData
Copy file path
Open this line in GitHub
In App
76
'team_id'
=>
$team
->
getId
(
)
,
77
]
)
;
78
}
79
}
80
81
$records
=
$this
->
updateParticipantsCrmData
(
82
team
:
$team
,
83
activity
:
$activity
,
84
participants
:
$participants
,...
|
[{"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":"Project Phoenix – Figma","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Project Phoenix – Figma","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":"Project Phoenix – Figma","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Project Phoenix – Figma","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Project Phoenix – Figma","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Project Phoenix – Figma","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Project Phoenix – Figma","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Project Phoenix – Figma","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":"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":"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":"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":true},{"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":"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":"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 main content","depth":8,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to main content","depth":9,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Toggle organization menu","depth":11,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Explore","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Explore","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Dashboards","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Dashboards","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Monitors","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Monitors","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":"AXButton","text":"Try Business","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"What's New","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Help","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"lukas.kovalik@jiminny.com","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Issues","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Expand","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Feed","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Feed","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Errors & Outages","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Errors & Outages","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Breached Metrics","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Breached Metrics","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Warnings","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Warnings","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"User Feedback","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"User Feedback","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"All Views","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"All Views","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Configure","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Alerts Moved","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Alerts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Moved","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"View Project Details","depth":13,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"APP-1EED","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"View events","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Events (total)","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Users (90d)","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Level: Error","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"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\",\"correlationId\":\"019db0d4-8 (truncated...)","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"6.2K","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ongoing","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php in Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::executeSearchRequest","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Resolve","depth":11,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Resolve","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"More resolve options","depth":11,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Archive","depth":11,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Archive","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Archive options","depth":11,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Subscribe","depth":11,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Share","depth":11,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"More Actions","depth":11,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Priority","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Modify issue priority","depth":11,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"High","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Assignee","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Modify issue assignee","depth":12,"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":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"All Envs","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"All Envs","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"90D","depth":12,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"90D","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Add a search term","depth":15,"help_text":"","placeholder":"Filter events…","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXComboBox","text":"Add a search term","depth":15,"help_text":"","placeholder":"Filter events…","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close sidebar","depth":12,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Toggle graph series - Events","depth":11,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Events","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"5.9K","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Toggle graph series - Users","depth":11,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Users","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"release 64% 874599","depth":11,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"release","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"64%","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"874599","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"environment 82% production","depth":11,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"environment","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"82%","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"production","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"os 100% Linux 6.1.141-155.222.amzn2023.aarch64","depth":11,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"os","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"100%","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Linux 6.1.141-155.222.amzn2023.aarch64","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"os.name 100% Linux","depth":11,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"os.name","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"100%","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Linux","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"View all tags","depth":11,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"View all tags","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Select issue content","depth":12,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Events","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Previous Event","depth":12,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Next Event","depth":12,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"First","depth":13,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"First","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"First","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Latest","depth":13,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Latest","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Latest","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Recommended","depth":13,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Recommended","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Recommended","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"View More Events","depth":12,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"View More Events","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy as","depth":12,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Copy as","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ID: b67f3963","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"19 minutes ago","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JSON","depth":13,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JSON","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Highlights","depth":16,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Highlights","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Stack Trace","depth":16,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Stack Trace","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Trace","depth":16,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Trace","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Tags","depth":16,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Tags","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Context","depth":16,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Context","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"php","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8.3.30","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Linux","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"6.1.141-155.222.amzn2023.aarch64","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"874599","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"874599","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"production","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Collapse Highlights Section","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"Highlights","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Edit","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"handled","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"yes","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"level","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"error","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"transaction","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"--","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"url","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"--","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Trace: Trace ID","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"8ff885cce91340aaa411571eaebb85a1","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"8ff885cce91340aaa411571eaebb85a1","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Collapse Stack Trace Section","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"Stack Trace","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Display options","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Display","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy as","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Copy as","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"There are 2 chained exceptions in this event.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXHeading","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest","depth":16,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Client error: `POST","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"https://api.hubapi.com/crm/v3/objects/contact/search","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"https://api.hubapi.com/crm/v3/objects/contact/search","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"` resulted in a `429 Too Many Requests` response:\n{\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\":\"019db0d4-8 (truncated...)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mechanism","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"generic","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"handled","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"true","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"code","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"429","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crashed in non-app","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/vendor/hubspot/hubspot-php/src/Exceptions/HubspotException.php","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"in","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\HubspotException::create","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Show 1 more frame","depth":17,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Show 1 more frame","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":163","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"in","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::executeSearchRequest","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy file path","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open this line in GitHub","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"In App","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"158","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"159","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"160","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"private","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":"executeSearchRequest","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Client","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$client","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"string","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$endpoint","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"array","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$payload","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"PaginationState","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$state","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":"array","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"161","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"162","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"try","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"163","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$response","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"=","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$client","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"getInstance","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":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"getClient","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":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"request","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'POST'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$endpoint","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":"'json'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"=>","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$payload","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":";","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"164","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"165","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"return","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$response","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"toArray","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":";","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"166","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"catch","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":"Exception","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$e","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":"167","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":"$client","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"isUnauthorizedException","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$e","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":"{","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"168","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":"logger","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"warning","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'[Hubspot] Got 401 during pagination, attempting token refresh'","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":"client","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Object Jiminny\\Services\\Crm\\Hubspot\\Client","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"endpoint","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"https://api.hubapi.com/crm/v3/objects/contact/search","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Open link","depth":19,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"payload","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Collapse","depth":20,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"{","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Collapse","depth":22,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"filterGroups","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"[","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Expand","depth":24,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"{","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"1 item","depth":24,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1 item","depth":26,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Expand","depth":24,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"{","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"1 item","depth":24,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1 item","depth":26,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"]","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Expand","depth":22,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"properties","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"[","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"14 items","depth":22,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"14 items","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"]","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Collapse","depth":22,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sorts","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"[","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Expand","depth":24,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"{","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"2 items","depth":24,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"2 items","depth":26,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"]","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"state","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Object Jiminny\\Services\\Crm\\Hubspot\\Pagination\\PaginationState","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":51","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"in","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"In App","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/app/Services/Crm/Hubspot/Client.php","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":94","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"in","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny\\Services\\Crm\\Hubspot\\Client::getPaginatedData","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"In App","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/app/Services/Crm/Hubspot/Service.php","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":1235","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"in","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny\\Services\\Crm\\Hubspot\\Service::Jiminny\\Services\\Crm\\Hubspot\\{closure}","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"In App","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Called from","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/vendor/laravel/framework/src/Illuminate/Cache/Repository.php","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"in","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Illuminate\\Cache\\Repository::remember","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Show 2 more frames","depth":17,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Show 2 more frames","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/app/Services/Crm/Hubspot/Service.php","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":1229","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"in","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny\\Services\\Crm\\Hubspot\\Service::matchByName","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"In App","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/app/Services/Crm/CachedCrmServiceDecorator.php","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":167","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"in","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny\\Services\\Crm\\CachedCrmServiceDecorator::matchByName","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"In App","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/app/Services/Crm/CrmActivityService.php","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":227","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"in","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny\\Services\\Crm\\CrmActivityService::findCrmRecords","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"In App","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/app/Services/Crm/CrmActivityService.php","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":139","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"in","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny\\Services\\Crm\\CrmActivityService::updateParticipantsCrmData","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"In App","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/app/Services/Crm/CrmActivityService.php","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":81","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"in","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny\\Services\\Crm\\CrmActivityService::updateCrmData","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy file path","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open this line in GitHub","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"In App","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"76","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'team_id'","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":"getId","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":",","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"77","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":";","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"78","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"79","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"80","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"81","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$records","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":"updateParticipantsCrmData","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"82","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":"$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":"83","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"activity","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$activity","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"84","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"participants","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$participants","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
9119936326508936296
|
-2380738150001881919
|
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
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
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to main content
Skip to main content
Toggle organization menu
Issues
Issues
Explore
Explore
Dashboards
Dashboards
Monitors
Monitors
Settings
Settings
Try Business
What's New
Help
[EMAIL]
Issues
Expand
Feed
Feed
Errors & Outages
Errors & Outages
Breached Metrics
Breached Metrics
Warnings
Warnings
User Feedback
User Feedback
All Views
All Views
Configure
Alerts Moved
Alerts
Moved
Issues
Issues
View Project Details
APP-1EED
SevenShores\Hubspot\Exceptions\BadRequest
View events
Events (total)
Users (90d)
Level: Error
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","correlationId":"019db0d4-8 (truncated...)
6.2K
0
Ongoing
/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php in Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::executeSearchRequest
Resolve
Resolve
More resolve options
Archive
Archive
Archive options
Subscribe
Share
More Actions
Priority
Modify issue priority
High
Assignee
Modify issue assignee
Lukas Kovalik
All Envs
All Envs
90D
90D
Add a search term
Add a search term
Close sidebar
Toggle graph series - Events
Events
5.9K
Toggle graph series - Users
Users
0
release 64% 874599
release
64%
874599
environment 82% production
environment
82%
production
os 100% Linux 6.1.141-155.222.amzn2023.aarch64
os
100%
Linux 6.1.141-155.222.amzn2023.aarch64
os.name 100% Linux
os.name
100%
Linux
View all tags
View all tags
Select issue content
Events
Previous Event
Next Event
First
First
First
Latest
Latest
Latest
Recommended
Recommended
Recommended
View More Events
View More Events
Copy as
Copy as
ID: b67f3963
19 minutes ago
JSON
JSON
Highlights
Highlights
Stack Trace
Stack Trace
Trace
Trace
Tags
Tags
Context
Context
php
8.3.30
Linux
6.1.141-155.222.amzn2023.aarch64
874599
874599
production
Collapse Highlights Section
Highlights
Edit
Edit
handled
yes
level
error
transaction
--
url
--
Trace: Trace ID
8ff885cce91340aaa411571eaebb85a1
8ff885cce91340aaa411571eaebb85a1
Collapse Stack Trace Section
Stack Trace
Display options
Display
Copy as
Copy as
There are 2 chained exceptions in this event.
SevenShores\Hubspot\Exceptions\BadRequest
SevenShores\Hubspot\Exceptions\BadRequest
SevenShores\Hubspot\Exceptions\BadRequest
Client error: `POST
https://api.hubapi.com/crm/v3/objects/contact/search
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","correlationId":"019db0d4-8 (truncated...)
mechanism
generic
handled
true
code
429
Crashed in non-app
:
/vendor/hubspot/hubspot-php/src/Exceptions/HubspotException.php
in
SevenShores\Hubspot\Exceptions\HubspotException::create
Show 1 more frame
Show 1 more frame
/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
:163
in
Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::executeSearchRequest
Copy file path
Open this line in GitHub
In App
158
}
159
160
private
function
executeSearchRequest
(
Client
$client
,
string
$endpoint
,
array
$payload
,
PaginationState
$state
)
:
array
161
{
162
try
{
163
$response
=
$client
->
getInstance
(
)
->
getClient
(
)
->
request
(
'POST'
,
$endpoint
,
[
'json'
=>
$payload
]
)
;
164
165
return
$response
->
toArray
(
)
;
166
}
catch
(
\
Exception
$e
)
{
167
if
(
$client
->
isUnauthorizedException
(
$e
)
)
{
168
$this
->
logger
->
warning
(
'[Hubspot] Got 401 during pagination, attempting token refresh'
,
[
client
Object Jiminny\Services\Crm\Hubspot\Client
endpoint
https://api.hubapi.com/crm/v3/objects/contact/search
Open link
payload
Collapse
{
Collapse
filterGroups
:
[
Expand
{
1 item
1 item
}
,
Expand
{
1 item
1 item
}
]
,
Expand
properties
:
[
14 items
14 items
]
,
Collapse
sorts
:
[
Expand
{
2 items
2 items
}
]
}
state
Object Jiminny\Services\Crm\Hubspot\Pagination\PaginationState
/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
:51
in
Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::getPaginatedDataGenerator
In App
/app/Services/Crm/Hubspot/Client.php
:94
in
Jiminny\Services\Crm\Hubspot\Client::getPaginatedData
In App
/app/Services/Crm/Hubspot/Service.php
:1235
in
Jiminny\Services\Crm\Hubspot\Service::Jiminny\Services\Crm\Hubspot\{closure}
In App
Called from
:
/vendor/laravel/framework/src/Illuminate/Cache/Repository.php
in
Illuminate\Cache\Repository::remember
Show 2 more frames
Show 2 more frames
/app/Services/Crm/Hubspot/Service.php
:1229
in
Jiminny\Services\Crm\Hubspot\Service::matchByName
In App
/app/Services/Crm/CachedCrmServiceDecorator.php
:167
in
Jiminny\Services\Crm\CachedCrmServiceDecorator::matchByName
In App
/app/Services/Crm/CrmActivityService.php
:227
in
Jiminny\Services\Crm\CrmActivityService::findCrmRecords
In App
/app/Services/Crm/CrmActivityService.php
:139
in
Jiminny\Services\Crm\CrmActivityService::updateParticipantsCrmData
In App
/app/Services/Crm/CrmActivityService.php
:81
in
Jiminny\Services\Crm\CrmActivityService::updateCrmData
Copy file path
Open this line in GitHub
In App
76
'team_id'
=>
$team
->
getId
(
)
,
77
]
)
;
78
}
79
}
80
81
$records
=
$this
->
updateParticipantsCrmData
(
82
team
:
$team
,
83
activity
:
$activity
,
84
participants
:
$participants
,...
|
68152
|
|
69354
|
1593
|
14
|
2026-04-22T07:58:32.753762+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776844712753_m2.jpg...
|
Slack
|
engineering (Channel) - Jiminny Inc - 2 new items engineering (Channel) - Jiminny Inc - 2 new items - Slack...
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
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
c-learning-people
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
people-with-copilot-licences
people-with-zoom-phone-licences
platform-team
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Yankov
Nikolay Nikolov
Aneliya Angelova
Mario Georgiev
Todor Stamatov
Gabriela Dureva
Petko Kashinski
Vasil Vasilev
Galya Dimitrova
Stefka Stoyanova
Stoyan Tomov
Stoyan Tanev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Google Calendar
Unread mentions
Messages
Messages
Canvas
Canvas
Files
Files
More
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":14,"bounds":{"left":0.0056515955,"top":0.058260176,"width":0.011968086,"height":0.028731046},"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.0029920214,"top":0.10055866,"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.0066489363,"top":0.13806863,"width":0.009973404,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.0029920214,"top":0.15482841,"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.0076462766,"top":0.19233839,"width":0.007978723,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.0029920214,"top":0.20909816,"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.004986702,"top":0.24660814,"width":0.012965426,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.0029920214,"top":0.26336792,"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.0076462766,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.0029920214,"top":0.31763768,"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.00731383,"top":0.35514766,"width":0.008643617,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.0029920214,"top":0.3719074,"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.006981383,"top":0.4094174,"width":0.008976064,"height":0.0103751},"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":21,"bounds":{"left":0.036901597,"top":0.10055866,"width":0.01861702,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.036901597,"top":0.12290503,"width":0.01761968,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.036901597,"top":0.1452514,"width":0.017952127,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.036901597,"top":0.16759777,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.036901597,"top":0.18994413,"width":0.023936171,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":23,"bounds":{"left":0.042220745,"top":0.28411812,"width":0.043882977,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":23,"bounds":{"left":0.042220745,"top":0.3064645,"width":0.044215426,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"bounds":{"left":0.042220745,"top":0.35913807,"width":0.022273935,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"bounds":{"left":0.042220745,"top":0.38148445,"width":0.011968086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"bounds":{"left":0.042220745,"top":0.4038308,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"c-learning-people","depth":23,"bounds":{"left":0.042220745,"top":0.42617717,"width":0.038231384,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"bounds":{"left":0.042220745,"top":0.44852355,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"bounds":{"left":0.042220745,"top":0.4708699,"width":0.027593086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"bounds":{"left":0.042220745,"top":0.49321628,"width":0.025598405,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"frontend","depth":23,"bounds":{"left":0.042220745,"top":0.51556265,"width":0.018949468,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"bounds":{"left":0.042220745,"top":0.53790903,"width":0.015957447,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":23,"bounds":{"left":0.042220745,"top":0.5602554,"width":0.029587766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"bounds":{"left":0.042220745,"top":0.5826017,"width":0.022938829,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"people-with-copilot-licences","depth":23,"bounds":{"left":0.042220745,"top":0.6049481,"width":0.045212764,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"people-with-zoom-phone-licences","depth":23,"bounds":{"left":0.042220745,"top":0.6272945,"width":0.045877658,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":23,"bounds":{"left":0.042220745,"top":0.64964086,"width":0.03125,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"bounds":{"left":0.042220745,"top":0.67198724,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"bounds":{"left":0.042220745,"top":0.6943336,"width":0.03856383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.01662234,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.01761968,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.024268618,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.016954787,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.024268618,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.04488032,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.03756649,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.07945479,"top":0.7086991,"width":0.0063164895,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"bounds":{"left":0.08211436,"top":0.7086991,"width":0.014295213,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.09607713,"top":0.7086991,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"bounds":{"left":0.09607713,"top":0.7086991,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.032912236,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.034242023,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.03756649,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Mario Georgiev","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.033909574,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.034242023,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Gabriela Dureva","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.03523936,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.034242023,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.026263298,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.034906916,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.03756649,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.030585106,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.028922873,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.031914894,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.0076462766,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.011968086,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.021609042,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":23,"bounds":{"left":0.042220745,"top":0.7086991,"width":0.03025266,"height":0.0007980846},"role_description":"text"},{"role":"AXButton","text":"Unread mentions","depth":17,"bounds":{"left":0.035904255,"top":0.68076617,"width":0.048204787,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Messages","depth":18,"bounds":{"left":0.10206117,"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":20,"bounds":{"left":0.111369684,"top":0.10055866,"width":0.01861702,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Canvas","depth":18,"bounds":{"left":0.13397606,"top":0.09177973,"width":0.025930852,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":20,"bounds":{"left":0.14328457,"top":0.10055866,"width":0.013962766,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":18,"bounds":{"left":0.16090426,"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},{"role":"AXStaticText","text":"Files","depth":20,"bounds":{"left":0.17021276,"top":0.10055866,"width":0.008976064,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"More","depth":19,"bounds":{"left":0.18317819,"top":0.09177973,"width":0.020279255,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":18,"bounds":{"left":0.203125,"top":0.09177973,"width":0.010970744,"height":0.030327214},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":18,"bounds":{"left":0.096409574,"top":0.0518755,"width":0.015625,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"List","depth":18,"bounds":{"left":0.096409574,"top":0.0518755,"width":0.0076462766,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":18,"bounds":{"left":0.096409574,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.15026596,"top":0.12689546,"width":0.025265958,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
9119666353615140361
|
-1747999051558766048
|
visual_change
|
hybrid
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
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
c-learning-people
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
people-with-copilot-licences
people-with-zoom-phone-licences
platform-team
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Yankov
Nikolay Nikolov
Aneliya Angelova
Mario Georgiev
Todor Stamatov
Gabriela Dureva
Petko Kashinski
Vasil Vasilev
Galya Dimitrova
Stefka Stoyanova
Stoyan Tomov
Stoyan Tanev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Google Calendar
Unread mentions
Messages
Messages
Canvas
Canvas
Files
Files
More
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
ActivityMoreSlackcalVIewMistonWindowHelp@ Describe what you are looking forJiminny...y# engineering9 24— UnreadsMessagest Canvase Files@ Threads60 Huddles• Drafts & sent8) DirectoriesAb External connections* Starred8 fiminny-x-integrati...nlatform-inner-team() Channels# ai-chapteru alerts# backend# c-learning-peoplei confusion-clinic# curiosity lab# engineering# frontend# generall# infra-changes# jiminny-bgA neonle-with-conilo…MoreToday ~ @Cf1x/npm-20260416)99llian nylHas there been any changes related toHubspot?The following Todav neen escalating overthe nignt with 14k events.https://fiminny.sentry.io/issues/7007366572/?SevenShores\Hubspot\Exceptions\BadRequJaon/Services/Crm/Hubspot/Pagination/HubsootPaginationService. nho inliminnvlSoniceciCrm|thfhcnot|PaeinationlHuhenotPaginationService:.executeSearchRequestClient erron: "POSThttns./lanibubani com/crm/2/ohiocts)elationid":"019db2b6-c (truncated...Events: 14202 State: Ongoing First Seen: 2025-people-with-zoom-…..Message #engineering# platform-team+ Aal••• D→ CPlatform Sprint 2 Q2 - Platform Te4 [JY-20372] Al Reports > Empty paJiminny MCP Connector - ProductJiminny Maill(JY-20500] Batch initial sync for S) Feed — jiminny - Sentry8) JiminnyPipelines - /appFormalizelT (SRD-6793] Les Mills activity type8 Search results: calendar I Jiminny8 Jiminny8 Jiminny9 liminny* Edit - Engineering - Confluence7 1wy-189091 (Part21 Automated rerSevenShores|Hubspot\Exceptions'CloudWatch | us-east-2w Usage | WindsurfACovonSharoclHuhenntlGyeantinneWorkers | DatadodAck liminnv Renorts bv nikolav-val•• Al reports promotion pages by nik'+ New TabRookmarksQ Search bookmarksv a bookmarks looldaSprint Board• SRD QueueGithub8 Jiminny DEVAsk Jiminny Reports by nikolay-yankov • ...O Circle Cl& PROD US8 Staging… Sentry> # Bookmarks Menu| Other BookmarksIssues08DashboardsFeedwappvproduction-eu, productionv1H Vis unresoivee xIecme• Jiminny\Exceptions\SocialAccountTokenInvalidExceptionsocial account tor Hubspot cannot be round. Please login to Jiminny to connect.• Jiminny\Component\MediaPipeline\Exceptions\MediaPipelineExceptionActivity should be completed. (6aad3aab-7eef-4b57-b643-8695ccb1cc20)APP-trts /app/Co• Jiminny\Exceptions\SocialAccountTokenInvalidExceptiorYour Salesforce account has become disconnected. Please login to Jiminny to reconnect.8e App-1FT5 1 lann/Services/Crm/RacoService nhn in Jiminnv|Services\Crm\RacoServico-validatelIcer/ccountFyictsl• Jiminny\ Exceptions\ HttpBadRequestWithErrorReasonException•Allast Call Summarv data value too larce: Call ParticinantsBedhou(Customer <br> Ansh Aswal - Head Manader lcustomer contte App-15K8 | laon/Services/Crm/Salesforce/Client.nhn in Jiminnv|Services\ Crm\ Salesforce\ Client-reauest• JiminnyExceptions\SocialAccountTokenInvalidExceptionAPP-1F3R|lapp/Services/Activity/ActivitvProviderService.oho in Jiminnv ServicesActivityActivityProviderService.setSocialAccount• Symfony\Component\Debug\Exception\FatalThrowableErrorCall to a memoer tunction tormatu on StrinolAPP-1E50 /app/Notincations/ActivityLiveCoy Notihcations closure @ Quick Fix• Jiminny\Component\Transcription\TranscriptionProcessor\Gladia\Exceptions \InvalidTranslationResponseException1Invalid translation response88 APP-1CGE | /app/Component/Transcription/Service/TranslationService.php in Jiminny\Component\Transcription\Service\TranslationService.:getTransla• Twilio\Exceptions\RestexceptionHTTP 404] Unable to fetch page: The requested resource /2010-04-01/Accounts/AC65f9382da35c183f6ddbac9807eb952b/Avail.te App-1857|lann/Services/Telenhonv/NumberAllocator.nhn inJiminnv|Services|Telenhonv|NumberAllocator«fetchNumbersJiminny\Exceptions\SocialAccountTokenInvalidExceptionSocial account for HubSoot cannot be found. Please loain to Jiminny to connectiCumfonvlComnonontl Dohudl Evcontion|CotolThrowcbloGrrol1 Leaque\Fivsvstem\Filesvstem:has0: Arqument #1 (Slocation) must be of type strina, null aiven, called in /home/iiminny/vendor/la.……APP-1DTF/app/Jobs/AutomatedReports/SendReportJob.ohpin Jiminny JobsAutomatedReports|SendReportJob:handle& Quick Fix• Illuminate\Database\UniqueConstraintViolationExceptionI SOLSTATE[230001: Integrity constraint violation: 1062 Duplicate entry '218-003Va000001pYDriAM' for key 'contacts crm. confiaau.....Sumfonv Comnonent.Dehua.Sxcention.SatalThrowableFtroi1Jiminny\Services\Calendar\OfficeCalendarService:gueryCalendarEventByld0: Return value must be of type Jiminny\Services\Ca....8eApp-1016 |lann/Servicos/Calendar/0ffceCalendarService nhn in Jiminnv|ServiceclCalendar\OffceCalendarServicovauervCalendarFventRvldLast Seen23hr ago23hr agoZshr ago23hr ago23hr ago2ahr adoishr adoisnr ado23hr ago23hr ago23hr addAge3mo4mo2wk2molomo2yr1yr7molomo23hr agd10mo1 CRM issues • 32m leftA]Trendn.IП.OngoingOnaoinaOngoingUngoingOngoingOnaoina24h 1h1 19---=:2I. 140Evente177-ЕееоооолеЕесоооОллЕЕ- 2ongoingOnaoina100% S2Wea zz Aor 10:00.30UsersLast Seen vPriorityalval val vail vhil val vail vail vSave ASAssigneePC VNN +...
|
69353
|
|
1432
|
32
|
1
|
2026-04-11T17:27:18.683634+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775928438683_m1.jpg...
|
Code
|
Build screenpipe data UI… — screenpipe [SSH: 100.7 Build screenpipe data UI… — screenpipe [SSH: 100.73.206.126]...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Source Control (⌃⇧G)
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: [IP_ADDRESS]]
Explorer Section: screenpipe [SSH: [IP_ADDRESS]]
SCREENPIPE [SSH: [IP_ADDRESS]]
#recycle
app
consumers
static
.env
cli.py
db.py
docker-compose.yml
Dockerfile
main.py
requirements.txt
data
pipes
ai-habits
pipe.md
day-recap
meeting-summary
standup-update
time-breakdown
video-export
db.sqlite
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
pipe.md, Editor Group 1
#!/bin/bash • Untitled-1, Editor Group 1
#!/bin/bash
DB="/volume1/Test/screenpipe/db.sqlite"
DATE=${1:-$(date -d "yesterday" '+%Y-%m-%d')}
echo "═══════════════════════════════════════"
echo " SCREENPIPE REPORT — $DATE"
echo "═══════════════════════════════════════"
echo -e "\n📱 APP USAGE (frames + estimated time)"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-30s %5d frames ~%5.1f min', app_name, COUNT(*), ROUND(COUNT(*) * 4.5 / 60.0, 1))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY app_name ORDER BY COUNT(*) DESC;"
echo -e "\n⌨️ ACTIVITY TYPE PER APP"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-25s clicks:%-5d keys:%-5d switches:%-4d',
app_name,
SUM(CASE WHEN event_type='click' THEN 1 ELSE 0 END),
SUM(CASE WHEN event_type='key' THEN 1 ELSE 0 END),
SUM(CASE WHEN event_type='app_switch' THEN 1 ELSE 0 END))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY app_name ORDER BY COUNT(*) DESC;"
echo -e "\n🌐 BROWSER URLS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%4d frames %s', COUNT(*), browser_url)
FROM frames
WHERE date(timestamp) = '$DATE' AND browser_url IS NOT NULL
GROUP BY browser_url ORDER BY COUNT(*) DESC LIMIT 20;"
echo -e "\n🪟 WINDOW TITLES (top 20)"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %3d %s', app_name, COUNT(*), SUBSTR(window_name,1,60))
FROM frames
WHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL
GROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;"
echo -e "\n🕐 HOURLY TIMELINE"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY strftime('%H', timestamp), app_name
ORDER BY strftime('%H', timestamp), COUNT(*) DESC;"
echo -e "\n📋 CLIPBOARD"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL
ORDER BY timestamp LIMIT 20;"
echo -e "\n🔢 TOTALS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "SELECT 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';"
sqlite3 "$DB" "SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';"
#!/bin/bash
DB="/volume1/Test/screenpipe/db.sqlite"
DATE=${1:-$(date -d "yesterday" '+%Y-%m-%d')}
echo "═══════════════════════════════════════"
echo " SCREENPIPE REPORT — $DATE"
echo "═══════════════════════════════════════"
echo -e "\n📱 APP USAGE (frames + estimated time)"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-30s %5d frames ~%5.1f min', app_name, COUNT(*), ROUND(COUNT(*) * 4.5 / 60.0, 1))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY app_name ORDER BY COUNT(*) DESC;"
echo -e "\n⌨️ ACTIVITY TYPE PER APP"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-25s clicks:%-5d keys:%-5d switches:%-4d',
app_name,
SUM(CASE WHEN event_type='click' THEN 1 ELSE 0 END),
SUM(CASE WHEN event_type='key' THEN 1 ELSE 0 END),
SUM(CASE WHEN event_type='app_switch' THEN 1 ELSE 0 END))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY app_name ORDER BY COUNT(*) DESC;"
echo -e "\n🌐 BROWSER URLS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%4d frames %s', COUNT(*), browser_url)
FROM frames
WHERE date(timestamp) = '$DATE' AND browser_url IS NOT NULL
GROUP BY browser_url ORDER BY COUNT(*) DESC LIMIT 20;"
echo -e "\n🪟 WINDOW TITLES (top 20)"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %3d %s', app_name, COUNT(*), SUBSTR(window_name,1,60))
FROM frames
WHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL
GROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;"
echo -e "\n🕐 HOURLY TIMELINE"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY strftime('%H', timestamp), app_name
ORDER BY strftime('%H', timestamp), COUNT(*) DESC;"
echo -e "\n📋 CLIPBOARD"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL
ORDER BY timestamp LIMIT 20;"
echo -e "\n🔢 TOTALS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "SELECT 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';"
sqlite3 "$DB" "SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';"
Build screenpipe data UI…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports
PORTS
remote SSH: [IP_ADDRESS]
SSH: [IP_ADDRESS]
No Problems
0
0
No Ports Forwarded
0
Update is ready, click to restart.
Update is ready, click to restart.
Notifications
Sign In
Sign In
Screen Reader Optimized
Info: Setting up SSH Host [IP_ADDRESS]: Setting up SSH tunnel
Build screenpipe data UI and summary app
Session history
New session
Message actions
lets build app around screenpipe data and db. THe idea is to have ui and data consumers. So I can run regular commands at the end ot the day (or on demand) and create soem summary.
Thinking
Thinking
Let me explore the screenpipe directory to understand what we're working with.
Bash
List screenpipe directory contents
IN
ls /volume1/screenpipe/
Copy code to clipboard
OUT
data
db.sqlite
pipes
#recycle
[rerun: b1]
Bash
List data and pipes directories
IN
ls /volume1/screenpipe/data/ | head -20 && ls /volume1/screenpipe/pipes/
Copy code to clipboard
OUT
2026-04-09
2026-04-11
ai-habits
day-recap
meeting-summary
standup-update
time-breakdown
video-export
[rerun: b2]
Bash
List tables in screenpipe SQLite database
IN
sqlite3 /volume1/screenpipe/db.sqlite ".tables"
Copy code to clipboard
OUT
_sqlx_migrations meetings
audio_chunks memories
audio_tags memories_fts
audio_transcriptions memories_fts_config
audio_transcriptions_fts memories_fts_data
audio_transcriptions_fts_config memories_fts_docsize
audio_transcriptions_fts_data memories_fts_idx
audio_transcriptions_fts_docsize ocr_text
audio_transcriptions_fts_idx pipe_executions
elements pipe_scheduler_state
elements_fts speaker_embeddings
elements_fts_config speakers
elements_fts_data tags
elements_fts_docsize ui_events
elements_fts_idx ui_events_fts
frames ui_events_fts_config
frames_fts ui_events_fts_data
frames_fts_config ui_events_fts_docsize
frames_fts_content ui_events_fts_idx
frames_fts_data video_chunks
frames_fts_docsize vision_tags
frames_fts_idx
[rerun: b3]
Bash
Get ocr_text table schema
IN
sqlite3 /volume1/screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
Copy code to clipboard
OUT
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
[rerun: b4]
Bash
Get audio_transcriptions table schema
IN
sqlite3 /volume1/screenpipe/db.sqlite "PRAGMA table_info(audio_transcriptions);"
Copy code to clipboard
OUT
0|id|INTEGER|0||1
1|audio_chunk_id|INTEGER|1||0
2|offset_index|INTEGER|1||0
3|timestamp|TIMESTAMP|1||0
4|transcription|TEXT|1||0
5|device|TEXT|1|''|0
6|is_input_device|BOOLEAN|1|TRUE|0
7|speaker_id|INTEGER|0||0
8|transcription_engine|TEXT|1|'Whisper'|0
9|start_time|REAL|0||0
10|end_time|REAL|0||0
11|text_length|INTEGER|0||0
12|sync_id|TEXT|0||0
13|synced_at|DATETIME|0||0
[rerun: b5]
Bash
Get frames, ui_events, video_chunks schemas
IN
sqlite3 /volume1/screenpipe/db.sqlite "PRAGMA table_info(frames); PRAGMA table_info(ui_events); PRAGMA table_info(video_chunks);"
Copy code to clipboard
OUT
0|id|INTEGER|0||1
1|video_chunk_id|INTEGER|0|NULL|0
2|offset_index|INTEGER|1|0|0
3|timestamp|TIMESTAMP|1||0
4|name|TEXT|0||0
5|app_name|TEXT|0|NULL|0
6|window_name|TEXT|0|NULL|0
7|focused|BOOLEAN|0|NULL|0
8|browser_url|TEXT|0|NULL|0
9|device_name|TEXT|1|''|0
10|sync_id|TEXT|0||0
11|machine_id|TEXT|0||0
12|synced_at|DATETIME|0||0
13|snapshot_path|TEXT|0|NULL|0
14|accessibility_text|TEXT|0|NULL|0
15|accessibility_tree_json|TEXT|0|NULL|0
16|content_hash|INTEGER|0|NULL|0
17|simhash|INTEGER|0|NULL|0
18|capture_trigger|TEXT|0|NULL|0
19|text_source|TEXT|0|NULL|0
20|cloud_blob_id|TEXT|0|NULL|0
21|full_text|TEXT|0|NULL|0
22|elements_ref_frame_id|INTEGER|0|NULL|0
0|id|INTEGER|0||1
1|timestamp|DATETIME|1|CURRENT_TIMESTAMP|0
2|session_id|TEXT|0||0
3|relative_ms|INTEGER|1|0|0
4|event_type|TEXT|1||0
5|x|INTEGER|0||0
6|y|INTEGER|0||0
7|delta_x|INTEGER|0||0
8|delta_y|INTEGER|0||0
9|button|INTEGER|0||0
10|click_count|INTEGER|0||0
11|key_code|INTEGER|0||0
12|modifiers|INTEGER|0||0
13|text_content|TEXT|0||0
14|text_length|INTEGER|0||0
15|app_name|TEXT|0||0
16|app_pid|INTEGER|0||0
17|window_title|TEXT|0||0
18|browser_url|TEXT|0||0
19|element_role|TEXT|0||0
20|element_name|TEXT|0||0
21|element_value|TEXT|0||0
22|element_description|TEXT|0||0
23|element_automation_id|TEXT|0||0
24|element_bounds|TEXT|0||0
25|frame_id|INTEGER|0||0
26|sync_id|TEXT|0||0
27|machine_id|TEXT|0||0
28|synced_at|DATETIME|0||0
0|id|INTEGER|0||1
1|file_path|TEXT|1||0
2|device_name|TEXT|1|''|0
3|sync_id|TEXT|0||0
4|machine_id|TEXT|0||0
5|synced_at|DATETIME|0||0
6|fps|REAL|1|0.5|0
7|cloud_blob_id|TEXT|0|NULL|0
[rerun: b6]
Bash
Check data counts and date ranges
IN
sqlite3 /volume1/screenpipe/db.sqlite "SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames;" 2>/dev/null
sqlite3 /volume1/screenpipe/db.sqlite "SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM audio_transcriptions;" 2>/dev/null
sqlite3 /volume1/screenpipe/db.sqlite "SELECT COUNT(*) FROM ocr_text;" 2>/dev/null
Copy code to clipboard
OUT
1135|2026-04-09T16:53:09.043761+00:00|2026-04-11T12:54:42.597794+00:00
3|2026-04-09T16:53:20+00:00|2026-04-09T17:02:52+00:00
666
[rerun: b7]
Bash
Explore existing pipes for patterns
IN
ls /volume1/screenpipe/pipes/day-recap/ 2>/dev/null && cat /volume1/screenpipe/pipes/day-recap/*.js 2>/dev/null | head -50
Copy code to clipboard
OUT
pipe.md
[rerun: b8]
Bash
Read day-recap pipe documentation
IN
cat /volume1/screenpipe/pipes/day-recap/pipe.md
Copy code to clipboard
OUT
---
schedule: manual
enabled: true
template: true
title: Day Recap
description: "Today's accomplishments, key moments, and unfinished work"
icon: "📋"
featured: true
---
Analyze my screen and audio recordings from today (last 16 hours only).
Read screenpipe skill first.
Use this exact format:
## Summary
One sentence: what I mainly did today.
## Accomplishments
- Top 3 things I finished, with timestamps (e.g. "2:30 PM")
- Name specific apps, files, or projects
## Key Moments
- Important things I saw, said, or heard — with timestamps
## Unfinished Work
- What I should continue tomorrow — name the app/file/task
## Patterns
- Apps I used most, topics that came up repeatedly
Only report what you can verify from the data. End with: "**Next step:** [most important thing to continue]"
[rerun: b9]
Bash
Sample app names from frames
IN
sqlite3 /volume1/screenpipe/db.sqlite "SELECT DISTINCT app_name FROM frames WHERE app_name != '' LIMIT 20;"
Copy code to clipboard
OUT
Safari
Activity Monitor
Dia
iTerm2
Control Centre
UserNotificationCenter
Finder
Claude
Slack
Firefox
Raycast
NetAuthAgent
QuickTime Player
[rerun: b10]
Bash
Sample joined frame+ocr data for today
IN
sqlite3 /volume1/screenpipe/db.sqlite "SELECT f.timestamp, o.app_name, o.window_name, substr(o.text, 1, 100) as text FROM frames f JOIN ocr_text o ON f.id = o.frame_id WHERE DATE(f.timestamp) = '2026-04-11' LIMIT 5;"
Copy code to clipboard
OUT
2026-04-11T11:53:00.627698+00:00|||iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA-zsh100% <47H5Sat 11 Apr 14:53:00-zshDOCKE
2026-04-11T11:53:02.005967+00:00|||iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA-zsh100% <7H5Sat 11 Apr 14:53:01-zshDOCKER
2026-04-11T11:53:03.627468+00:00|||iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA100% <47Sat 11 Apr 14:53:03-zshDOCKERuse p
2026-04-11T11:53:05.528794+00:00|||iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA100% <47Sat 11 Apr 14:53:05-zshDOCKERuse p
2026-04-11T11:53:07.662098+00:00|||iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA100% <7Sat 11 Apr 14:53:07-zshDOCKERuse pi
[rerun: b11]
Bash
Sample recent audio transcriptions
IN
sqlite3 /volume1/screenpipe/db.sqlite "SELECT timestamp, substr(transcription,1,100) as text, device FROM audio_transcriptions ORDER BY timestamp DESC LIMIT 5;"
Copy code to clipboard
OUT
2026-04-09T17:02:52+00:00|.|System Audio
2026-04-09T16:59:22+00:00|Class is technically...|System Audio
2026-04-09T16:53:20+00:00|I do for you. Run the credit check. Deal apartment. Okay.|System Audio
[rerun: b12]
Thinking
Thinking
Good data to work with. Here's what we have:
frames
+
ocr_text
: Screen captures with OCR text, app name, window name (1135 frames so far)
audio_transcriptions
: Voice/system audio transcripts
ui_events
: Mouse/keyboard events with app context
video_chunks
: Raw video files
Before I start building, a few quick questions:
Tech stack
— Python OK? (FastAPI for the web UI backend, Click for CLI commands, HTMX for the frontend to keep it simple)
AI summaries
— Do you have a Claude API key to use for generating the actual summaries? Or should I integrate with a local model / skip AI for now?
What summaries matter most?
Day recap (what apps/windows you used, key text seen)
App time breakdown (time per app)
Audio/conversation recap
Custom searchable timeline
Here's the architecture I'm thinking:
Copy code to clipboard
/volume1/screenpipe/app/
├── main.py # FastAPI web UI
├── cli.py # Click CLI: `python cli.py day-recap`
├── db.py # Read-only queries against db.sqlite
├── consumers/
│ ├── activity.py # App usage, time per window
│ ├── ocr.py # OCR text aggregation + search
│ ├── audio.py # Transcription queries
│ └── summary.py # AI summary builder
└── static/
└── index.html # Single-page UI
CLI commands would look like:
Copy code to clipboard
python cli.py day-recap # EOD summary
python cli.py activity --date today # App time breakdown
python cli.py search "docker" # Search OCR/audio text
python cli.py serve # Launch web UI
Does this direction work? Any preferences on the stack or which summaries to prioritize?
Message actions
seesm ok
Thinking
Thinking
Bash
Check Python and available packages
IN
python3 --version && pip3 list 2>/dev/null | grep -E "fastapi|uvicorn|click|anthropic|httpx|jinja"
Copy code to clipboard
OUT
Python 3.11.2
[rerun: b1]
Bash
Verify join works for today's data
IN
sqlite3 /volume1/screenpipe/db.sqlite "
SELECT f.timestamp, o.app_name, o.window_name, length(o.text) as txt_len
FROM frames f JOIN ocr_text o ON f.id = o.frame_id
WHERE DATE(f.timestamp) = '2026-04-11'
ORDER BY f.timestamp DESC LIMIT 3;
"
Copy code to clipboard
OUT
2026-04-11T12:54:42.597794+00:00|||2111
2026-04-11T12:54:41.915916+00:00|||2110
2026-04-11T12:54:39.912712+00:00|||2111
[rerun: b2]
Bash
Install required packages
IN
pip3 install fastapi uvicorn click anthropic python-dotenv 2>&1 | tail -5
Copy code to clipboard
OUT
/bin/bash: line 1: pip3: command not found
[rerun: b3]
Bash
Find pip
IN
which pip || which pip3 || python3 -m pip --version 2>/dev/null
Copy code to clipboard
OUT
Exit code 1
[rerun: b4]
Bash
Bootstrap pip then install packages
IN
python3 -m ensurepip --upgrade 2>&1 && python3 -m pip install fastapi uvicorn click anthropic python-dotenv 2>&1 | tail -10
Copy code to clipboard
OUT
Exit code 1
/usr/bin/python3: No module named ensurepip
[rerun: b5]
Bash
Install pip via apt
IN
apt-get install -y python3-pip python3-venv 2>&1 | tail -5
Copy code to clipboard
OUT
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
[rerun: b6]
Bash
Install pip with sudo
Reason:
lets make it in docker, not to install it in nas directly
IN
sudo apt-get install -y python3-pip python3-venv 2>&1 | tail -5
Copy code to clipboard
Good call. Let me check what Docker setup you already have and build a proper containerized app.
Bash
Check existing docker-compose for reference
IN
ls /volume2/docker/paperlessngx/ && cat /volume2/docker/paperlessngx/docker-compose.yml 2>/dev/null | head -30
Copy code to clipboard
OUT
consume
data
db
docker-compose.yml
export
mcp-server
media
redis
trash
services:
redis:
image: redis:8
command:
- /bin/sh
- -c
- redis-server --requirepass redispass
container_name: PaperlessNGX-REDIS
hostname: paper-redis
security_opt:
- no-new-privileges:true
read_only: true
user: 1000:10
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
volumes:
- /volume2/docker/paperlessngx/redis:/data:rw
environment:
TZ: Europe/Sofia
restart: always
db:
image: postgres:17
container_name: PaperlessNGX-DB
hostname: paper-db
mem_limit: 1g
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "paperless", "-U", "paperlessuser"]
[rerun: b7]
Bash
Check Docker availability
IN
docker --version && docker compose version 2>/dev/null
Copy code to clipboard
OUT
Docker version 26.1.0, build 9714adc
Docker Compose version v2.26.1
[rerun: b8]
Bash
Create app directory structure
IN
mkdir -p /volume1/screenpipe/app/consumers /volume1/screenpipe/app/static
Copy code to clipboard
OUT
[rerun: b9]
Now let me build everything. I'll create all the files:
Write
requirements.txt
requirements.txt
6 lines
fastapi==0.115.12
uvicorn[standard]==0.34.0
click==8.1.8
anthropic==0.49.0
python-dotenv==1.1.0
Write
Dockerfile
Dockerfile
13 lines
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "[IP_ADDRESS]", "--port", "8000"]
Write
db.py
db.py
28 lines
import sqlite3
from contextlib import contextmanager
from datetime import date, datetime, timedelta, timezone
from typing import Generator
DB_PATH = "/data/db.sqlite"
@contextmanager
def get_conn() -> Generator[sqlite3.Connection, None, None]:
conn = sqlite3.connect(f"file:{DB_PATH}?mode=ro", uri=True)
conn.row_factory = sqlite3.Row
try:
yield conn
finally:
conn.close()
def date_range(for_date: date) -> tuple[str, str]:
"""Return ISO timestamps for start/end of a given date (UTC)."""
start = datetime(for_date.year, for_date.month, for_date.day, tzinfo=timezone.utc)
end = start + timedelta(days=1)
return start.isoformat(), end.isoformat()
def today() -> date:
return datetime.now(timezone.utc).date()
Write
__init__.py
__init__.py
1 line
Write
activity.py
activity.py
123 lines
"""App usage and window focus time consumer."""
from datetime import date
from typing import Any
from db import get_conn, date_range, today as _today
def app_time(for_date: date | None = None) -> list[dict[str, Any]]:
"""Return minutes spent per app for a given date, sorted descending."""
d = for_date or _today()
start, end = date_range(d)
with get_conn() as conn:
rows = conn.execute(
"""
SELECT
o.app_name,
COUNT(*) as frame_count,
-- each frame ~ 2s at 0.5fps; convert to minutes
ROUND(COUNT(*) * 2.0 / 60, 1) as minutes
FROM frames f
JOIN ocr_text o ON f.id = o.frame_id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND o.app_name != ''
GROUP BY o.app_name
ORDER BY frame_count DESC
""",
(start, end),
).fetchall()
return [dict(r) for r in rows]
def window_time(for_date: date | None = None, app: str | None = None) -> list[dict[str, Any]]:
"""Return minutes spent per window/tab, optionally filtered by app."""
d = for_date or _today()
start, end = date_range(d)
query = """
SELECT
o.app_name,
o.window_name,
COUNT(*) as frame_count,
ROUND(COUNT(*) * 2.0 / 60, 1) as minutes
FROM frames f
JOIN ocr_text o ON f.id = o.frame_id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND o.app_name != ''
"""
params: list = [start, end]
if app:
query += " AND o.app_name = ?"
params.append(app)
query += " GROUP BY o.app_name, o.window_name ORDER BY frame_count DESC LIMIT 50"
with get_conn() as conn:
rows = conn.execute(query, params).fetchall()
return [dict(r) for r in rows]
def timeline(for_date: date | None = None, interval_minutes: int = 15) -> list[dict[str, Any]]:
"""Return activity bucketed into N-minute intervals."""
d = for_date or _today()
start, end = date_range(d)
interval_sec = interval_minutes * 60
with get_conn() as conn:
rows = conn.execute(
f"""
SELECT
datetime(
(strftime('%s', f.timestamp) / {interval_sec}) * {interval_sec},
'unixepoch'
) as bucket,
o.app_name,
COUNT(*) as frames
FROM frames f
JOIN ocr_text o ON f.id = o.frame_id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND o.app_name != ''
GROUP BY bucket, o.app_name
ORDER BY bucket, frames DESC
""",
(start, end),
).fetchall()
return [dict(r) for r in rows]
def summary_stats(for_date: date | None = None) -> dict[str, Any]:
"""Return high-level stats for a date."""
d = for_date or _today()
start, end = date_range(d)
with get_conn() as conn:
frames_row = conn.execute(
"SELECT COUNT(*) as n, MIN(timestamp) as first, MAX(timestamp) as last "
"FROM frames WHERE timestamp >= ? AND timestamp < ?",
(start, end),
).fetchone()
app_count = conn.execute(
"""
SELECT COUNT(DISTINCT o.app_name) as n
FROM frames f JOIN ocr_text o ON f.id = o.frame_id
WHERE f.timestamp >= ? AND f.timestamp < ? AND o.app_name != ''
""",
(start, end),
).fetchone()
audio_count = conn.execute(
"SELECT COUNT(*) as n FROM audio_transcriptions "
"WHERE timestamp >= ? AND timestamp < ?",
(start, end),
).fetchone()
return {
"date": str(d),
"total_frames": frames_row["n"],
"first_seen": frames_row["first"],
"last_seen": frames_row["last"],
"unique_apps": app_count["n"],
"audio_segments": audio_count["n"],
}
Write
ocr.py
ocr.py
92 lines
"""OCR text search and aggregation consumer."""
from datetime import date
from typing import Any
from db import get_conn, date_range, today as _today
def search(query: str, for_date: date | None = None, limit: int = 50) -> list[dict[str, Any]]:
"""Full-text search OCR content."""
d = for_date or _today()
start, end = date_range(d)
with get_conn() as conn:
rows = conn.execute(
"""
SELECT
f.timestamp,
o.app_name,
o.window_name,
snippet(ocr_text_fts, 0, '[', ']', '...', 20) as snippet
FROM ocr_text_fts
JOIN ocr_text o ON ocr_text_fts.rowid = o.rowid
JOIN frames f ON o.frame_id = f.id
WHERE ocr_text_fts MATCH ?
AND f.timestamp >= ? AND f.timestamp < ?
ORDER BY rank
LIMIT ?
""",
(query, start, end, limit),
).fetchall()
return [dict(r) for r in rows]
def text_for_date(for_date: date | None = None, focused_only: bool = True) -> list[dict[str, Any]]:
"""Return all OCR text for a date, optionally only focused windows."""
d = for_date or _today()
start, end = date_range(d)
query = """
SELECT
f.timestamp,
o.app_name,
o.window_name,
o.text
FROM frames f
JOIN ocr_text o ON f.id = o.frame_id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND o.app_name != ''
AND length(o.text) > 20
"""
params: list = [start, end]
if focused_only:
query += " AND o.focused = TRUE"
query += " ORDER BY f.timestamp"
with get_conn() as conn:
rows = conn.execute(query, params).fetchall()
return [dict(r) for r in rows]
def deduplicated_text(for_date: date | None = None, chunk_minutes: int = 5) -> list[dict[str, Any]]:
"""
Return OCR text deduplicated by time chunk + app to reduce LLM token usage.
Groups frames into N-minute buckets and returns one representative text per app per bucket.
"""
d = for_date or _today()
start, end = date_range(d)
interval_sec = chunk_minutes * 60
with get_conn() as conn:
rows = conn.execute(
f"""
SELECT
datetime(
(strftime('%s', f.timestamp) / {interval_sec}) * {interval_sec},
'unixepoch'
) as bucket,
o.app_name,
o.window_name,
substr(o.text, 1, 500) as text
FROM frames f
JOIN ocr_text o ON f.id = o.frame_id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND o.app_name != ''
AND length(o.text) > 20
GROUP BY bucket, o.app_name
ORDER BY bucket
""",
(start, end),
).fetchall()
return [dict(r) for r in rows]
Write
audio.py
audio.py
61 lines
"""Audio transcription consumer."""
from datetime import date
from typing import Any
from db import get_conn, date_range, today as _today
def transcriptions(for_date: date | None = None) -> list[dict[str, Any]]:
"""Return all audio transcriptions for a date."""
d = for_date or _today()
start, end = date_range(d)
with get_conn() as conn:
rows = conn.execute(
"""
SELECT timestamp, transcription, device, is_input_device, speaker_id
FROM audio_transcriptions
WHERE timestamp >= ? AND timestamp < ?
AND length(transcription) > 2
ORDER BY timestamp
""",
(start, end),
).fetchall()
return [dict(r) for r in rows]
def search(query: str, for_date: date | None = None, limit: int = 30) -> list[dict[str, Any]]:
"""Search audio transcriptions."""
d = for_date or _today()
start, end = date_range(d)
with get_conn() as conn:
rows = conn.execute(
"""
SELECT
a.timestamp,
a.device,
snippet(audio_transcriptions_fts, 0, '[', ']', '...', 20) as snippet
FROM audio_transcriptions_fts
JOIN audio_transcriptions a ON audio_transcriptions_fts.rowid = a.id
WHERE audio_transcriptions_fts MATCH ?
AND a.timestamp >= ? AND a.timestamp < ?
ORDER BY rank
LIMIT ?
""",
(query, start, end, limit),
).fetchall()
return [dict(r) for r in rows]
def formatted_transcript(for_date: date | None = None) -> str:
"""Return audio as a readable transcript string."""
rows = transcriptions(for_date)
if not rows:
return "(no audio transcriptions)"
lines = []
for r in rows:
label = "MIC" if r["is_input_device"] else "SYS"
lines.append(f"[{r['timestamp']}] [{label}] {r['transcription']}")
return "\n".join(lines)
Write
summary.py
summary.py
162 lines
"""AI summary generator using Claude."""
import os
from datetime import date
from typing import Any
from consumers.activity import app_time, summary_stats
from consumers.ocr import deduplicated_text
from consumers.audio import formatted_transcript
SUMMARY_TYPES = {
"day_recap": {
"title": "Day Recap",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Screen content (sampled every 5 minutes):
{ocr_text}
## Audio/speech:
{audio}
Write a concise day recap using EXACTLY this format:
## Summary
One sentence: what I mainly worked on today.
## Accomplishments
- Top 3 things I finished, with approximate times
- Name specific apps, files, or projects
## Key Moments
- Important things seen or heard, with timestamps
## Unfinished Work
- What to continue tomorrow
## Patterns
- Apps used most, topics that came up repeatedly
Only report what you can verify from the data. End with:
**Next step:** [most important thing to continue]""",
},
"standup": {
"title": "Standup Update",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Screen content (sampled every 5 minutes):
{ocr_text}
## Audio/speech:
{audio}
Write a brief standup update:
**Yesterday:** What I worked on (2-3 bullets)
**Today:** What I plan to continue (1-2 bullets)
**Blockers:** Any issues observed (or "None")
Keep it under 150 words. Only report what's verifiable from the data.""",
},
"focus_time": {
"title": "Focus & Distraction Analysis",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Screen content (sampled every 5 minutes):
{ocr_text}
Analyze focus vs distraction patterns:
## Deep Work Periods
- When and how long were sustained focus sessions?
- What was being worked on?
## Distractions
- Which apps/sites were used recreationally?
- How much time was lost to context switching?
## Recommendations
- 2-3 concrete suggestions to improve focus tomorrow
Be specific with times and app names.""",
},
}
def _build_context(for_date: date) -> dict[str, str]:
apps = app_time(for_date)
app_lines = "\n".join(f"- {a['app_name']}: {a['minutes']} min" for a in apps[:20])
ocr_rows = deduplicated_text(for_date, chunk_minutes=5)
ocr_lines = "\n".join(
f"[{r['bucket']}] {r['app_name']} / {r['window_name'] or ''}: {r['text'][:200]}"
for r in ocr_rows[:100]
)
audio = formatted_transcript(for_date)
return {
"app_time": app_lines or "(no app data)",
"ocr_text": ocr_lines or "(no screen data)",
"audio": audio[:3000] if len(audio) > 3000 else audio,
}
def generate(
summary_type: str = "day_recap",
for_date: date | None = None,
api_key: str | None = None,
) -> dict[str, Any]:
"""Generate an AI summary. Returns dict with 'title', 'content', 'date'."""
import anthropic
d = for_date or date.today()
key = api_key or os.environ.get("ANTHROPIC_API_KEY", "")
if not key:
return {
"title": "Error",
"content": "ANTHROPIC_API_KEY not set. Add it to your .env file.",
"date": str(d),
}
spec = SUMMARY_TYPES.get(summary_type)
if not spec:
return {"title": "Error", "content": f"Unknown summary type: {summary_type}", "date": str(d)}
stats = summary_stats(d)
if stats["total_frames"] == 0:
return {
"title": spec["title"],
"content": f"No screen data found for {d}.",
"date": str(d),
}
ctx = _build_context(d)
prompt = spec["prompt"].format(**ctx)
client = anthropic.Anthropic(api_key=key)
message = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": prompt}],
)
return {
"title": spec["title"],
"content": message.content[0].text,
"date": str(d),
"stats": stats,
}
Now the FastAPI backend and CLI:
Write
main.py
main.py
89 lines
"""Screenpipe dashboard — FastAPI web UI."""
import os
from datetime import date, datetime
from typing import Any
from dotenv import load_dotenv
from fastapi import FastAPI, Query
from fastapi.responses import HTMLResponse, JSONResponse
from fastapi.staticfiles import StaticFiles
load_dotenv()
from consumers.activity import app_time, window_time, timeline, summary_stats
from consumers.ocr import search as ocr_search
from consumers.audio import transcriptions, search as audio_search
from consumers.summary import generate as gen_summary, SUMMARY_TYPES
app = FastAPI(title="Screenpipe Dashboard")
app.mount("/static", StaticFiles(directory="static"), name="static")
def _parse_date(d: str | None) -> date | None:
if not d:
return None
try:
return date.fromisoformat(d)
except ValueError:
return None
@app.get("/", response_class=HTMLResponse)
async def index():
with open("static/index.html") as f:
return f.read()
# ── Activity ──────────────────────────────────────────────────────────────────
@app.get("/api/stats")
async def stats(d: str | None = Query(None)):
return summary_stats(_parse_date(d))
@app.get("/api/activity/apps")
async def activity_apps(d: str | None = Query(None)):
return app_time(_parse_date(d))
@app.get("/api/activity/windows")
async def activity_windows(d: str | None = Query(None), app_name: str | None = Query(None)):
return window_time(_parse_date(d), app_name)
@app.get("/api/activity/timeline")
async def activity_timeline(d: str | None = Query(None), interval: int = Query(15)):
return timeline(_parse_date(d), interval)
# ── Search ───────────────────────────────────────────────────────────────────
@app.get("/api/search/ocr")
async def search_ocr(q: str, d: str | None = Query(None), limit: int = 50):
return ocr_search(q, _parse_date(d), limit)
@app.get("/api/search/audio")
async def search_audio_endpoint(q: str, d: str | None = Query(None), limit: int = 30):
return audio_search(q, _parse_date(d), limit)
# ── Audio ─────────────────────────────────────────────────────────────────────
@app.get("/api/audio")
async def audio(d: str | None = Query(None)):
return transcriptions(_parse_date(d))
# ── Summaries ─────────────────────────────────────────────────────────────────
@app.get("/api/summary/types")
async def summary_types():
return [{"id": k, "title": v["title"]} for k, v in SUMMARY_TYPES.items()]
@app.post("/api/summary/generate")
async def generate_summary(type: str = "day_recap", d: str | None = None):
result = gen_summary(type, _parse_date(d))
return result
Write
cli.py
cli.py
131 lines
#!/usr/bin/env python3
"""Screenpipe CLI — run summaries and reports on demand."""
import os
import sys
from datetime import date, timedelta
import click
from dotenv import load_dotenv
load_dotenv()
sys.path.insert(0, os.path.dirname(__file__))
from consumers.activity import app_time, window_time, summary_stats
from consumers.ocr import search as ocr_search
from consumers.audio import transcriptions
from consumers.summary import generate as gen_summary, SUMMARY_TYPES
def _resolve_date(d_str: str | None) -> date | None:
if not d_str:
return None
if d_str == "yesterday":
return date.today() - timedelta(days=1)
if d_str == "today":
return date.today()
return date.fromisoformat(d_str)
@click.group()
def cli():
"""Screenpipe data explorer and summariser."""
@cli.command()
@click.option("--date", "-d", "d", default=None, help="Date (YYYY-MM-DD, today, yesterday)")
@click.option("--type", "-t", "summary_type", default="day_recap",
type=click.Choice(list(SUMMARY_TYPES.keys())), show_default=True)
def summary(d, summary_type):
"""Generate an AI summary for a date (default: today)."""
target = _resolve_date(d)
click.echo(f"Generating {SUMMARY_TYPES[summary_type]['title']} for {target or date.today()}...")
result = gen_summary(summary_type, target)
click.echo(f"\n{'─'*60}")
click.echo(f" {result['title']} — {result['date']}")
click.echo(f"{'─'*60}\n")
click.echo(result["content"])
if "stats" in result:
s = result["stats"]
click.echo(f"\n[data: {s['total_frames']} frames, {s['unique_apps']} apps, "
f"{s['audio_segments']} audio segments]")
@cli.command()
@click.option("--date", "-d", "d", default=None, help="Date (YYYY-MM-DD, today, yesterday)")
@click.option("--app", "-a", default=None, help="Filter by app name")
@click.option("--windows", "-w", is_flag=True, help="Show window breakdown instead of apps")
def activity(d, app, windows):
"""Show time spent per app or window."""
target = _resolve_date(d)
label = str(target or date.today())
if windows or app:
rows = window_time(target, app)
click.echo(f"\nWindow time — {label}" + (f" [{app}]" if app else ""))
click.echo(f"{'App':<25} {'Window':<40} {'Min':>6}")
click.echo("─" * 75)
for r in rows:
click.echo(f"{r['app_name']:<25} {(r['window_name'] or '')[:40]:<40} {r['minutes']:>6}")
else:
rows = app_time(target)
stats = summary_stats(target)
click.echo(f"\nApp time — {label}")
click.echo(f"{'App':<30} {'Minutes':>8}")
click.echo("─" * 40)
for r in rows:
click.echo(f"{r['app_name']:<30} {r['minutes']:>8}")
click.echo(f"\nTotal frames: {stats['total_frames']} | "
f"Active: {stats['first_seen']} → {stats['last_seen']}")
@cli.command()
@click.argument("query")
@click.option("--date", "-d", "d", default=None, help="Date (YYYY-MM-DD, today, yesterday)")
@click.option("--audio", is_flag=True, help="Search audio instead of screen text")
@click.option("--limit", "-n", default=20, show_default=True)
def search(query, d, audio, limit):
"""Search OCR screen text or audio transcriptions."""
from consumers.audio import search as audio_search_fn
target = _resolve_date(d)
if audio:
rows = audio_search_fn(query, target, limit)
click.echo(f"\nAudio results for '{query}':")
for r in rows:
click.echo(f" [{r['timestamp']}] {r['snippet']}")
else:
rows = ocr_search(query, target, limit)
click.echo(f"\nOCR results for '{query}':")
for r in rows:
click.echo(f" [{r['timestamp']}] {r['app_name']} / {r['window_name'] or ''}")
click.echo(f" {r['snippet']}")
@cli.command()
@click.option("--date", "-d", "d", default=None, help="Date (YYYY-MM-DD, today, yesterday)")
def audio(d):
"""Show audio transcriptions for a date."""
target = _resolve_date(d)
rows = transcriptions(target)
if not rows:
click.echo("No audio transcriptions found.")
return
click.echo(f"\nAudio transcriptions — {target or date.today()}")
click.echo("─" * 60)
for r in rows:
label = "MIC" if r["is_input_device"] else "SYS"
click.echo(f"[{r['timestamp']}] [{label}] {r['transcription']}")
@cli.command()
def serve():
"""Start the web UI (runs uvicorn on port 8000)."""
import uvicorn
click.echo("Starting Screenpipe dashboard at http://localhost:8000")
uvicorn.run("main:app", host="[IP_ADDRESS]", port=8000, reload=False)
if __name__ == "__main__":
cli()
Now the frontend:
Write...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E) - 1 unsaved file","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G)","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update, 1 requires restart","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Containers","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: screenpipe [SSH: 100.73.206.126]","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: screenpipe [SSH: 100.73.206.126]","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"SCREENPIPE [SSH: 100.73.206.126]","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"#recycle","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"consumers","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"static","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":".env","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"cli.py","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"db.py","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"docker-compose.yml","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"Dockerfile","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"main.py","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"requirements.txt","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"data","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"pipes","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"ai-habits","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"pipe.md","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"day-recap","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"meeting-summary","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"standup-update","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"time-breakdown","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"video-export","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"db.sqlite","depth":27,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"role_description":"text"},{"role":"AXRadioButton","text":"pipe.md, Editor Group 1","depth":28,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"#!/bin/bash • Untitled-1, Editor Group 1","depth":28,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXTextArea","text":"#!/bin/bash\nDB=\"/volume1/Test/screenpipe/db.sqlite\"\nDATE=${1:-$(date -d \"yesterday\" '+%Y-%m-%d')}\n\necho \"═══════════════════════════════════════\"\necho \" SCREENPIPE REPORT — $DATE\"\necho \"═══════════════════════════════════════\"\n\necho -e \"\\n📱 APP USAGE (frames + estimated time)\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-30s %5d frames ~%5.1f min', app_name, COUNT(*), ROUND(COUNT(*) * 4.5 / 60.0, 1))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY app_name ORDER BY COUNT(*) DESC;\"\n\necho -e \"\\n⌨️ ACTIVITY TYPE PER APP\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-25s clicks:%-5d keys:%-5d switches:%-4d',\n app_name,\n SUM(CASE WHEN event_type='click' THEN 1 ELSE 0 END),\n SUM(CASE WHEN event_type='key' THEN 1 ELSE 0 END),\n SUM(CASE WHEN event_type='app_switch' THEN 1 ELSE 0 END))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY app_name ORDER BY COUNT(*) DESC;\"\n\necho -e \"\\n🌐 BROWSER URLS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%4d frames %s', COUNT(*), browser_url)\nFROM frames\nWHERE date(timestamp) = '$DATE' AND browser_url IS NOT NULL\nGROUP BY browser_url ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho -e \"\\n🪟 WINDOW TITLES (top 20)\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %3d %s', app_name, COUNT(*), SUBSTR(window_name,1,60))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL\nGROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho -e \"\\n🕐 HOURLY TIMELINE\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY strftime('%H', timestamp), app_name\nORDER BY strftime('%H', timestamp), COUNT(*) DESC;\"\n\necho -e \"\\n📋 CLIPBOARD\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL\nORDER BY timestamp LIMIT 20;\"\n\necho -e \"\\n🔢 TOTALS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"SELECT 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';\"\nsqlite3 \"$DB\" \"SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';\"","depth":28,"value":"#!/bin/bash\nDB=\"/volume1/Test/screenpipe/db.sqlite\"\nDATE=${1:-$(date -d \"yesterday\" '+%Y-%m-%d')}\n\necho \"═══════════════════════════════════════\"\necho \" SCREENPIPE REPORT — $DATE\"\necho \"═══════════════════════════════════════\"\n\necho -e \"\\n📱 APP USAGE (frames + estimated time)\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-30s %5d frames ~%5.1f min', app_name, COUNT(*), ROUND(COUNT(*) * 4.5 / 60.0, 1))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY app_name ORDER BY COUNT(*) DESC;\"\n\necho -e \"\\n⌨️ ACTIVITY TYPE PER APP\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-25s clicks:%-5d keys:%-5d switches:%-4d',\n app_name,\n SUM(CASE WHEN event_type='click' THEN 1 ELSE 0 END),\n SUM(CASE WHEN event_type='key' THEN 1 ELSE 0 END),\n SUM(CASE WHEN event_type='app_switch' THEN 1 ELSE 0 END))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY app_name ORDER BY COUNT(*) DESC;\"\n\necho -e \"\\n🌐 BROWSER URLS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%4d frames %s', COUNT(*), browser_url)\nFROM frames\nWHERE date(timestamp) = '$DATE' AND browser_url IS NOT NULL\nGROUP BY browser_url ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho -e \"\\n🪟 WINDOW TITLES (top 20)\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %3d %s', app_name, COUNT(*), SUBSTR(window_name,1,60))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL\nGROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho -e \"\\n🕐 HOURLY TIMELINE\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY strftime('%H', timestamp), app_name\nORDER BY strftime('%H', timestamp), COUNT(*) DESC;\"\n\necho -e \"\\n📋 CLIPBOARD\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL\nORDER BY timestamp LIMIT 20;\"\n\necho -e \"\\n🔢 TOTALS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"SELECT 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';\"\nsqlite3 \"$DB\" \"SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';\"","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"#!/bin/bash\nDB=\"/volume1/Test/screenpipe/db.sqlite\"\nDATE=${1:-$(date -d \"yesterday\" '+%Y-%m-%d')}\n\necho \"═══════════════════════════════════════\"\necho \" SCREENPIPE REPORT — $DATE\"\necho \"═══════════════════════════════════════\"\n\necho -e \"\\n📱 APP USAGE (frames + estimated time)\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-30s %5d frames ~%5.1f min', app_name, COUNT(*), ROUND(COUNT(*) * 4.5 / 60.0, 1))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY app_name ORDER BY COUNT(*) DESC;\"\n\necho -e \"\\n⌨️ ACTIVITY TYPE PER APP\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-25s clicks:%-5d keys:%-5d switches:%-4d',\n app_name,\n SUM(CASE WHEN event_type='click' THEN 1 ELSE 0 END),\n SUM(CASE WHEN event_type='key' THEN 1 ELSE 0 END),\n SUM(CASE WHEN event_type='app_switch' THEN 1 ELSE 0 END))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY app_name ORDER BY COUNT(*) DESC;\"\n\necho -e \"\\n🌐 BROWSER URLS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%4d frames %s', COUNT(*), browser_url)\nFROM frames\nWHERE date(timestamp) = '$DATE' AND browser_url IS NOT NULL\nGROUP BY browser_url ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho -e \"\\n🪟 WINDOW TITLES (top 20)\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %3d %s', app_name, COUNT(*), SUBSTR(window_name,1,60))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL\nGROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho -e \"\\n🕐 HOURLY TIMELINE\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY strftime('%H', timestamp), app_name\nORDER BY strftime('%H', timestamp), COUNT(*) DESC;\"\n\necho -e \"\\n📋 CLIPBOARD\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL\nORDER BY timestamp LIMIT 20;\"\n\necho -e \"\\n🔢 TOTALS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"SELECT 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';\"\nsqlite3 \"$DB\" \"SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';\"","depth":29,"role_description":"text"},{"role":"AXRadioButton","text":"Build screenpipe data UI…, Editor Group 2","depth":28,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Problems (⇧⌘M)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PROBLEMS","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Output (⇧⌘U)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUTPUT","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Debug Console (⇧⌘Y)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DEBUG CONSOLE","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Terminal (⌃`)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"TERMINAL","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Ports","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PORTS","depth":24,"role_description":"text"},{"role":"AXButton","text":"remote SSH: 100.73.206.126","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"SSH: 100.73.206.126","depth":17,"role_description":"text"},{"role":"AXButton","text":"No Problems","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"role_description":"text"},{"role":"AXButton","text":"No Ports Forwarded","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"role_description":"text"},{"role":"AXButton","text":"Update is ready, click to restart.","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"Update is ready, click to restart.","depth":17,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"role_description":"text"},{"role":"AXButton","text":"Screen Reader Optimized","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Info: Setting up SSH Host 100.73.206.126: Setting up SSH tunnel","depth":12,"role_description":"text"},{"role":"AXButton","text":"Build screenpipe data UI and summary app","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":18,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":18,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":23,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"lets build app around screenpipe data and db. THe idea is to have ui and data consumers. So I can run regular commands at the end ot the day (or on demand) and create soem summary.","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":22,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Let me explore the screenpipe directory to understand what we're working with.","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"List screenpipe directory contents","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"ls /volume1/screenpipe/","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"data\ndb.sqlite\npipes\n#recycle\n[rerun: b1]","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"List data and pipes directories","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"ls /volume1/screenpipe/data/ | head -20 && ls /volume1/screenpipe/pipes/","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"2026-04-09\n2026-04-11\nai-habits\nday-recap\nmeeting-summary\nstandup-update\ntime-breakdown\nvideo-export\n[rerun: b2]","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"List tables in screenpipe SQLite database","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 /volume1/screenpipe/db.sqlite \".tables\"","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"_sqlx_migrations meetings \naudio_chunks memories \naudio_tags memories_fts \naudio_transcriptions memories_fts_config \naudio_transcriptions_fts memories_fts_data \naudio_transcriptions_fts_config memories_fts_docsize \naudio_transcriptions_fts_data memories_fts_idx \naudio_transcriptions_fts_docsize ocr_text \naudio_transcriptions_fts_idx pipe_executions \nelements pipe_scheduler_state \nelements_fts speaker_embeddings \nelements_fts_config speakers \nelements_fts_data tags \nelements_fts_docsize ui_events \nelements_fts_idx ui_events_fts \nframes ui_events_fts_config \nframes_fts ui_events_fts_data \nframes_fts_config ui_events_fts_docsize \nframes_fts_content ui_events_fts_idx \nframes_fts_data video_chunks \nframes_fts_docsize vision_tags \nframes_fts_idx\n[rerun: b3]","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Get ocr_text table schema","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 /volume1/screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n[rerun: b4]","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Get audio_transcriptions table schema","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 /volume1/screenpipe/db.sqlite \"PRAGMA table_info(audio_transcriptions);\"","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"0|id|INTEGER|0||1\n1|audio_chunk_id|INTEGER|1||0\n2|offset_index|INTEGER|1||0\n3|timestamp|TIMESTAMP|1||0\n4|transcription|TEXT|1||0\n5|device|TEXT|1|''|0\n6|is_input_device|BOOLEAN|1|TRUE|0\n7|speaker_id|INTEGER|0||0\n8|transcription_engine|TEXT|1|'Whisper'|0\n9|start_time|REAL|0||0\n10|end_time|REAL|0||0\n11|text_length|INTEGER|0||0\n12|sync_id|TEXT|0||0\n13|synced_at|DATETIME|0||0\n[rerun: b5]","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Get frames, ui_events, video_chunks schemas","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 /volume1/screenpipe/db.sqlite \"PRAGMA table_info(frames); PRAGMA table_info(ui_events); PRAGMA table_info(video_chunks);\"","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"0|id|INTEGER|0||1\n1|video_chunk_id|INTEGER|0|NULL|0\n2|offset_index|INTEGER|1|0|0\n3|timestamp|TIMESTAMP|1||0\n4|name|TEXT|0||0\n5|app_name|TEXT|0|NULL|0\n6|window_name|TEXT|0|NULL|0\n7|focused|BOOLEAN|0|NULL|0\n8|browser_url|TEXT|0|NULL|0\n9|device_name|TEXT|1|''|0\n10|sync_id|TEXT|0||0\n11|machine_id|TEXT|0||0\n12|synced_at|DATETIME|0||0\n13|snapshot_path|TEXT|0|NULL|0\n14|accessibility_text|TEXT|0|NULL|0\n15|accessibility_tree_json|TEXT|0|NULL|0\n16|content_hash|INTEGER|0|NULL|0\n17|simhash|INTEGER|0|NULL|0\n18|capture_trigger|TEXT|0|NULL|0\n19|text_source|TEXT|0|NULL|0\n20|cloud_blob_id|TEXT|0|NULL|0\n21|full_text|TEXT|0|NULL|0\n22|elements_ref_frame_id|INTEGER|0|NULL|0\n0|id|INTEGER|0||1\n1|timestamp|DATETIME|1|CURRENT_TIMESTAMP|0\n2|session_id|TEXT|0||0\n3|relative_ms|INTEGER|1|0|0\n4|event_type|TEXT|1||0\n5|x|INTEGER|0||0\n6|y|INTEGER|0||0\n7|delta_x|INTEGER|0||0\n8|delta_y|INTEGER|0||0\n9|button|INTEGER|0||0\n10|click_count|INTEGER|0||0\n11|key_code|INTEGER|0||0\n12|modifiers|INTEGER|0||0\n13|text_content|TEXT|0||0\n14|text_length|INTEGER|0||0\n15|app_name|TEXT|0||0\n16|app_pid|INTEGER|0||0\n17|window_title|TEXT|0||0\n18|browser_url|TEXT|0||0\n19|element_role|TEXT|0||0\n20|element_name|TEXT|0||0\n21|element_value|TEXT|0||0\n22|element_description|TEXT|0||0\n23|element_automation_id|TEXT|0||0\n24|element_bounds|TEXT|0||0\n25|frame_id|INTEGER|0||0\n26|sync_id|TEXT|0||0\n27|machine_id|TEXT|0||0\n28|synced_at|DATETIME|0||0\n0|id|INTEGER|0||1\n1|file_path|TEXT|1||0\n2|device_name|TEXT|1|''|0\n3|sync_id|TEXT|0||0\n4|machine_id|TEXT|0||0\n5|synced_at|DATETIME|0||0\n6|fps|REAL|1|0.5|0\n7|cloud_blob_id|TEXT|0|NULL|0\n[rerun: b6]","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Check data counts and date ranges","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 /volume1/screenpipe/db.sqlite \"SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames;\" 2>/dev/null\nsqlite3 /volume1/screenpipe/db.sqlite \"SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM audio_transcriptions;\" 2>/dev/null\nsqlite3 /volume1/screenpipe/db.sqlite \"SELECT COUNT(*) FROM ocr_text;\" 2>/dev/null","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"1135|2026-04-09T16:53:09.043761+00:00|2026-04-11T12:54:42.597794+00:00\n3|2026-04-09T16:53:20+00:00|2026-04-09T17:02:52+00:00\n666\n[rerun: b7]","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Explore existing pipes for patterns","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"ls /volume1/screenpipe/pipes/day-recap/ 2>/dev/null && cat /volume1/screenpipe/pipes/day-recap/*.js 2>/dev/null | head -50","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"pipe.md\n[rerun: b8]","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Read day-recap pipe documentation","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"cat /volume1/screenpipe/pipes/day-recap/pipe.md","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"---\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \"📋\"\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today.\n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM\")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard — with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow — name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n[rerun: b9]","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Sample app names from frames","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 /volume1/screenpipe/db.sqlite \"SELECT DISTINCT app_name FROM frames WHERE app_name != '' LIMIT 20;\"","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Safari\nActivity Monitor\nDia\niTerm2\nControl Centre\nUserNotificationCenter\nFinder\nClaude\nSlack\nFirefox\nRaycast\nNetAuthAgent\nQuickTime Player\n[rerun: b10]","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Sample joined frame+ocr data for today","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 /volume1/screenpipe/db.sqlite \"SELECT f.timestamp, o.app_name, o.window_name, substr(o.text, 1, 100) as text FROM frames f JOIN ocr_text o ON f.id = o.frame_id WHERE DATE(f.timestamp) = '2026-04-11' LIMIT 5;\"","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"2026-04-11T11:53:00.627698+00:00|||iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA-zsh100% <47H5Sat 11 Apr 14:53:00-zshDOCKE\n2026-04-11T11:53:02.005967+00:00|||iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA-zsh100% <7H5Sat 11 Apr 14:53:01-zshDOCKER\n2026-04-11T11:53:03.627468+00:00|||iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA100% <47Sat 11 Apr 14:53:03-zshDOCKERuse p\n2026-04-11T11:53:05.528794+00:00|||iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA100% <47Sat 11 Apr 14:53:05-zshDOCKERuse p\n2026-04-11T11:53:07.662098+00:00|||iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA100% <7Sat 11 Apr 14:53:07-zshDOCKERuse pi\n[rerun: b11]","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Sample recent audio transcriptions","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 /volume1/screenpipe/db.sqlite \"SELECT timestamp, substr(transcription,1,100) as text, device FROM audio_transcriptions ORDER BY timestamp DESC LIMIT 5;\"","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"2026-04-09T17:02:52+00:00|.|System Audio\n2026-04-09T16:59:22+00:00|Class is technically...|System Audio\n2026-04-09T16:53:20+00:00|I do for you. Run the credit check. Deal apartment. Okay.|System Audio\n[rerun: b12]","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":22,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Good data to work with. Here's what we have:","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"frames","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"+","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"ocr_text","depth":24,"role_description":"text"},{"role":"AXStaticText","text":": Screen captures with OCR text, app name, window name (1135 frames so far)","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"audio_transcriptions","depth":24,"role_description":"text"},{"role":"AXStaticText","text":": Voice/system audio transcripts","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"ui_events","depth":24,"role_description":"text"},{"role":"AXStaticText","text":": Mouse/keyboard events with app context","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"video_chunks","depth":24,"role_description":"text"},{"role":"AXStaticText","text":": Raw video files","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Before I start building, a few quick questions:","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"Tech stack","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"— Python OK? (FastAPI for the web UI backend, Click for CLI commands, HTMX for the frontend to keep it simple)","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"AI summaries","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"— Do you have a Claude API key to use for generating the actual summaries? Or should I integrate with a local model / skip AI for now?","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"What summaries matter most?","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Day recap (what apps/windows you used, key text seen)","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"App time breakdown (time per app)","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Audio/conversation recap","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Custom searchable timeline","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Here's the architecture I'm thinking:","depth":22,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":22,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"/volume1/screenpipe/app/\n├── main.py # FastAPI web UI\n├── cli.py # Click CLI: `python cli.py day-recap`\n├── db.py # Read-only queries against db.sqlite\n├── consumers/\n│ ├── activity.py # App usage, time per window\n│ ├── ocr.py # OCR text aggregation + search\n│ ├── audio.py # Transcription queries\n│ └── summary.py # AI summary builder\n└── static/\n └── index.html # Single-page UI","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"CLI commands would look like:","depth":22,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":22,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"python cli.py day-recap # EOD summary\npython cli.py activity --date today # App time breakdown\npython cli.py search \"docker\" # Search OCR/audio text\npython cli.py serve # Launch web UI","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Does this direction work? Any preferences on the stack or which summaries to prioritize?","depth":22,"role_description":"text"},{"role":"AXButton","text":"Message actions","depth":23,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"seesm ok","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":22,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Check Python and available packages","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"python3 --version && pip3 list 2>/dev/null | grep -E \"fastapi|uvicorn|click|anthropic|httpx|jinja\"","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Python 3.11.2\n[rerun: b1]","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Verify join works for today's data","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 /volume1/screenpipe/db.sqlite \"\nSELECT f.timestamp, o.app_name, o.window_name, length(o.text) as txt_len\nFROM frames f JOIN ocr_text o ON f.id = o.frame_id\nWHERE DATE(f.timestamp) = '2026-04-11'\nORDER BY f.timestamp DESC LIMIT 3;\n\"","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"2026-04-11T12:54:42.597794+00:00|||2111\n2026-04-11T12:54:41.915916+00:00|||2110\n2026-04-11T12:54:39.912712+00:00|||2111\n[rerun: b2]","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Install required packages","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"pip3 install fastapi uvicorn click anthropic python-dotenv 2>&1 | tail -5","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"/bin/bash: line 1: pip3: command not found\n[rerun: b3]","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Find pip","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"which pip || which pip3 || python3 -m pip --version 2>/dev/null","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Exit code 1\n[rerun: b4]","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Bootstrap pip then install packages","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"python3 -m ensurepip --upgrade 2>&1 && python3 -m pip install fastapi uvicorn click anthropic python-dotenv 2>&1 | tail -10","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Exit code 1\n/usr/bin/python3: No module named ensurepip\n[rerun: b5]","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Install pip via apt","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"apt-get install -y python3-pip python3-venv 2>&1 | tail -5","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)\nE: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?\n[rerun: b6]","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Install pip with sudo","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Reason:","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"lets make it in docker, not to install it in nas directly","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sudo apt-get install -y python3-pip python3-venv 2>&1 | tail -5","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Good call. Let me check what Docker setup you already have and build a proper containerized app.","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Check existing docker-compose for reference","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"ls /volume2/docker/paperlessngx/ && cat /volume2/docker/paperlessngx/docker-compose.yml 2>/dev/null | head -30","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"consume\ndata\ndb\ndocker-compose.yml\nexport\nmcp-server\nmedia\nredis\ntrash\nservices:\n redis:\n image: redis:8\n command:\n - /bin/sh\n - -c\n - redis-server --requirepass redispass\n container_name: PaperlessNGX-REDIS\n hostname: paper-redis\n security_opt:\n - no-new-privileges:true\n read_only: true\n user: 1000:10\n healthcheck:\n test: [\"CMD-SHELL\", \"redis-cli ping || exit 1\"]\n volumes:\n - /volume2/docker/paperlessngx/redis:/data:rw\n environment:\n TZ: Europe/Sofia\n restart: always\n\n db:\n image: postgres:17\n container_name: PaperlessNGX-DB\n hostname: paper-db\n mem_limit: 1g\n security_opt:\n - no-new-privileges:true\n healthcheck:\n test: [\"CMD\", \"pg_isready\", \"-q\", \"-d\", \"paperless\", \"-U\", \"paperlessuser\"]\n[rerun: b7]","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Check Docker availability","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"docker --version && docker compose version 2>/dev/null","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Docker version 26.1.0, build 9714adc\nDocker Compose version v2.26.1\n[rerun: b8]","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Create app directory structure","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"mkdir -p /volume1/screenpipe/app/consumers /volume1/screenpipe/app/static","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"[rerun: b9]","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Now let me build everything. I'll create all the files:","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"Write","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXLink","text":"requirements.txt","depth":23,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"requirements.txt","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"6 lines","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"fastapi==0.115.12\nuvicorn[standard]==0.34.0\nclick==8.1.8\nanthropic==0.49.0\npython-dotenv==1.1.0","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Write","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXLink","text":"Dockerfile","depth":23,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Dockerfile","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"13 lines","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"FROM python:3.12-slim\n\nWORKDIR /app\n\nCOPY requirements.txt .\nRUN pip install --no-cache-dir -r requirements.txt\n\nCOPY . .\n\nEXPOSE 8000\n\nCMD [\"uvicorn\", \"main:app\", \"--host\", \"0.0.0.0\", \"--port\", \"8000\"]","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Write","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXLink","text":"db.py","depth":23,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"db.py","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"28 lines","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"import sqlite3\nfrom contextlib import contextmanager\nfrom datetime import date, datetime, timedelta, timezone\nfrom typing import Generator\n\nDB_PATH = \"/data/db.sqlite\"\n\n\n@contextmanager\ndef get_conn() -> Generator[sqlite3.Connection, None, None]:\n conn = sqlite3.connect(f\"file:{DB_PATH}?mode=ro\", uri=True)\n conn.row_factory = sqlite3.Row\n try:\n yield conn\n finally:\n conn.close()\n\n\ndef date_range(for_date: date) -> tuple[str, str]:\n \"\"\"Return ISO timestamps for start/end of a given date (UTC).\"\"\"\n start = datetime(for_date.year, for_date.month, for_date.day, tzinfo=timezone.utc)\n end = start + timedelta(days=1)\n return start.isoformat(), end.isoformat()\n\n\ndef today() -> date:\n return datetime.now(timezone.utc).date()","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Write","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXLink","text":"__init__.py","depth":23,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"__init__.py","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"1 line","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Write","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXLink","text":"activity.py","depth":23,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"activity.py","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"123 lines","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"\"\"\"App usage and window focus time consumer.\"\"\"\nfrom datetime import date\nfrom typing import Any\n\nfrom db import get_conn, date_range, today as _today\n\n\ndef app_time(for_date: date | None = None) -> list[dict[str, Any]]:\n \"\"\"Return minutes spent per app for a given date, sorted descending.\"\"\"\n d = for_date or _today()\n start, end = date_range(d)\n\n with get_conn() as conn:\n rows = conn.execute(\n \"\"\"\n SELECT\n o.app_name,\n COUNT(*) as frame_count,\n -- each frame ~ 2s at 0.5fps; convert to minutes\n ROUND(COUNT(*) * 2.0 / 60, 1) as minutes\n FROM frames f\n JOIN ocr_text o ON f.id = o.frame_id\n WHERE f.timestamp >= ? AND f.timestamp < ?\n AND o.app_name != ''\n GROUP BY o.app_name\n ORDER BY frame_count DESC\n \"\"\",\n (start, end),\n ).fetchall()\n return [dict(r) for r in rows]\n\n\ndef window_time(for_date: date | None = None, app: str | None = None) -> list[dict[str, Any]]:\n \"\"\"Return minutes spent per window/tab, optionally filtered by app.\"\"\"\n d = for_date or _today()\n start, end = date_range(d)\n\n query = \"\"\"\n SELECT\n o.app_name,\n o.window_name,\n COUNT(*) as frame_count,\n ROUND(COUNT(*) * 2.0 / 60, 1) as minutes\n FROM frames f\n JOIN ocr_text o ON f.id = o.frame_id\n WHERE f.timestamp >= ? AND f.timestamp < ?\n AND o.app_name != ''\n \"\"\"\n params: list = [start, end]\n if app:\n query += \" AND o.app_name = ?\"\n params.append(app)\n query += \" GROUP BY o.app_name, o.window_name ORDER BY frame_count DESC LIMIT 50\"\n\n with get_conn() as conn:\n rows = conn.execute(query, params).fetchall()\n return [dict(r) for r in rows]\n\n\ndef timeline(for_date: date | None = None, interval_minutes: int = 15) -> list[dict[str, Any]]:\n \"\"\"Return activity bucketed into N-minute intervals.\"\"\"\n d = for_date or _today()\n start, end = date_range(d)\n interval_sec = interval_minutes * 60\n\n with get_conn() as conn:\n rows = conn.execute(\n f\"\"\"\n SELECT\n datetime(\n (strftime('%s', f.timestamp) / {interval_sec}) * {interval_sec},\n 'unixepoch'\n ) as bucket,\n o.app_name,\n COUNT(*) as frames\n FROM frames f\n JOIN ocr_text o ON f.id = o.frame_id\n WHERE f.timestamp >= ? AND f.timestamp < ?\n AND o.app_name != ''\n GROUP BY bucket, o.app_name\n ORDER BY bucket, frames DESC\n \"\"\",\n (start, end),\n ).fetchall()\n return [dict(r) for r in rows]\n\n\ndef summary_stats(for_date: date | None = None) -> dict[str, Any]:\n \"\"\"Return high-level stats for a date.\"\"\"\n d = for_date or _today()\n start, end = date_range(d)\n\n with get_conn() as conn:\n frames_row = conn.execute(\n \"SELECT COUNT(*) as n, MIN(timestamp) as first, MAX(timestamp) as last \"\n \"FROM frames WHERE timestamp >= ? AND timestamp < ?\",\n (start, end),\n ).fetchone()\n\n app_count = conn.execute(\n \"\"\"\n SELECT COUNT(DISTINCT o.app_name) as n\n FROM frames f JOIN ocr_text o ON f.id = o.frame_id\n WHERE f.timestamp >= ? AND f.timestamp < ? AND o.app_name != ''\n \"\"\",\n (start, end),\n ).fetchone()\n\n audio_count = conn.execute(\n \"SELECT COUNT(*) as n FROM audio_transcriptions \"\n \"WHERE timestamp >= ? AND timestamp < ?\",\n (start, end),\n ).fetchone()\n\n return {\n \"date\": str(d),\n \"total_frames\": frames_row[\"n\"],\n \"first_seen\": frames_row[\"first\"],\n \"last_seen\": frames_row[\"last\"],\n \"unique_apps\": app_count[\"n\"],\n \"audio_segments\": audio_count[\"n\"],\n }","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Write","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXLink","text":"ocr.py","depth":23,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"ocr.py","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"92 lines","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"\"\"\"OCR text search and aggregation consumer.\"\"\"\nfrom datetime import date\nfrom typing import Any\n\nfrom db import get_conn, date_range, today as _today\n\n\ndef search(query: str, for_date: date | None = None, limit: int = 50) -> list[dict[str, Any]]:\n \"\"\"Full-text search OCR content.\"\"\"\n d = for_date or _today()\n start, end = date_range(d)\n\n with get_conn() as conn:\n rows = conn.execute(\n \"\"\"\n SELECT\n f.timestamp,\n o.app_name,\n o.window_name,\n snippet(ocr_text_fts, 0, '[', ']', '...', 20) as snippet\n FROM ocr_text_fts\n JOIN ocr_text o ON ocr_text_fts.rowid = o.rowid\n JOIN frames f ON o.frame_id = f.id\n WHERE ocr_text_fts MATCH ?\n AND f.timestamp >= ? AND f.timestamp < ?\n ORDER BY rank\n LIMIT ?\n \"\"\",\n (query, start, end, limit),\n ).fetchall()\n return [dict(r) for r in rows]\n\n\ndef text_for_date(for_date: date | None = None, focused_only: bool = True) -> list[dict[str, Any]]:\n \"\"\"Return all OCR text for a date, optionally only focused windows.\"\"\"\n d = for_date or _today()\n start, end = date_range(d)\n\n query = \"\"\"\n SELECT\n f.timestamp,\n o.app_name,\n o.window_name,\n o.text\n FROM frames f\n JOIN ocr_text o ON f.id = o.frame_id\n WHERE f.timestamp >= ? AND f.timestamp < ?\n AND o.app_name != ''\n AND length(o.text) > 20\n \"\"\"\n params: list = [start, end]\n if focused_only:\n query += \" AND o.focused = TRUE\"\n query += \" ORDER BY f.timestamp\"\n\n with get_conn() as conn:\n rows = conn.execute(query, params).fetchall()\n return [dict(r) for r in rows]\n\n\ndef deduplicated_text(for_date: date | None = None, chunk_minutes: int = 5) -> list[dict[str, Any]]:\n \"\"\"\n Return OCR text deduplicated by time chunk + app to reduce LLM token usage.\n Groups frames into N-minute buckets and returns one representative text per app per bucket.\n \"\"\"\n d = for_date or _today()\n start, end = date_range(d)\n interval_sec = chunk_minutes * 60\n\n with get_conn() as conn:\n rows = conn.execute(\n f\"\"\"\n SELECT\n datetime(\n (strftime('%s', f.timestamp) / {interval_sec}) * {interval_sec},\n 'unixepoch'\n ) as bucket,\n o.app_name,\n o.window_name,\n substr(o.text, 1, 500) as text\n FROM frames f\n JOIN ocr_text o ON f.id = o.frame_id\n WHERE f.timestamp >= ? AND f.timestamp < ?\n AND o.app_name != ''\n AND length(o.text) > 20\n GROUP BY bucket, o.app_name\n ORDER BY bucket\n \"\"\",\n (start, end),\n ).fetchall()\n return [dict(r) for r in rows]","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Write","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXLink","text":"audio.py","depth":23,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"audio.py","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"61 lines","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"\"\"\"Audio transcription consumer.\"\"\"\nfrom datetime import date\nfrom typing import Any\n\nfrom db import get_conn, date_range, today as _today\n\n\ndef transcriptions(for_date: date | None = None) -> list[dict[str, Any]]:\n \"\"\"Return all audio transcriptions for a date.\"\"\"\n d = for_date or _today()\n start, end = date_range(d)\n\n with get_conn() as conn:\n rows = conn.execute(\n \"\"\"\n SELECT timestamp, transcription, device, is_input_device, speaker_id\n FROM audio_transcriptions\n WHERE timestamp >= ? AND timestamp < ?\n AND length(transcription) > 2\n ORDER BY timestamp\n \"\"\",\n (start, end),\n ).fetchall()\n return [dict(r) for r in rows]\n\n\ndef search(query: str, for_date: date | None = None, limit: int = 30) -> list[dict[str, Any]]:\n \"\"\"Search audio transcriptions.\"\"\"\n d = for_date or _today()\n start, end = date_range(d)\n\n with get_conn() as conn:\n rows = conn.execute(\n \"\"\"\n SELECT\n a.timestamp,\n a.device,\n snippet(audio_transcriptions_fts, 0, '[', ']', '...', 20) as snippet\n FROM audio_transcriptions_fts\n JOIN audio_transcriptions a ON audio_transcriptions_fts.rowid = a.id\n WHERE audio_transcriptions_fts MATCH ?\n AND a.timestamp >= ? AND a.timestamp < ?\n ORDER BY rank\n LIMIT ?\n \"\"\",\n (query, start, end, limit),\n ).fetchall()\n return [dict(r) for r in rows]\n\n\ndef formatted_transcript(for_date: date | None = None) -> str:\n \"\"\"Return audio as a readable transcript string.\"\"\"\n rows = transcriptions(for_date)\n if not rows:\n return \"(no audio transcriptions)\"\n lines = []\n for r in rows:\n label = \"MIC\" if r[\"is_input_device\"] else \"SYS\"\n lines.append(f\"[{r['timestamp']}] [{label}] {r['transcription']}\")\n return \"\\n\".join(lines)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Write","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXLink","text":"summary.py","depth":23,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"summary.py","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"162 lines","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"\"\"\"AI summary generator using Claude.\"\"\"\nimport os\nfrom datetime import date\nfrom typing import Any\n\nfrom consumers.activity import app_time, summary_stats\nfrom consumers.ocr import deduplicated_text\nfrom consumers.audio import formatted_transcript\n\n\nSUMMARY_TYPES = {\n \"day_recap\": {\n \"title\": \"Day Recap\",\n \"prompt\": \"\"\"\\\nYou are analyzing a person's computer activity for the day.\n\n## App usage (minutes per app):\n{app_time}\n\n## Screen content (sampled every 5 minutes):\n{ocr_text}\n\n## Audio/speech:\n{audio}\n\nWrite a concise day recap using EXACTLY this format:\n\n## Summary\nOne sentence: what I mainly worked on today.\n\n## Accomplishments\n- Top 3 things I finished, with approximate times\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things seen or heard, with timestamps\n\n## Unfinished Work\n- What to continue tomorrow\n\n## Patterns\n- Apps used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with:\n**Next step:** [most important thing to continue]\"\"\",\n },\n \"standup\": {\n \"title\": \"Standup Update\",\n \"prompt\": \"\"\"\\\nYou are analyzing a person's computer activity for the day.\n\n## App usage (minutes per app):\n{app_time}\n\n## Screen content (sampled every 5 minutes):\n{ocr_text}\n\n## Audio/speech:\n{audio}\n\nWrite a brief standup update:\n\n**Yesterday:** What I worked on (2-3 bullets)\n**Today:** What I plan to continue (1-2 bullets)\n**Blockers:** Any issues observed (or \"None\")\n\nKeep it under 150 words. Only report what's verifiable from the data.\"\"\",\n },\n \"focus_time\": {\n \"title\": \"Focus & Distraction Analysis\",\n \"prompt\": \"\"\"\\\nYou are analyzing a person's computer activity for the day.\n\n## App usage (minutes per app):\n{app_time}\n\n## Screen content (sampled every 5 minutes):\n{ocr_text}\n\nAnalyze focus vs distraction patterns:\n\n## Deep Work Periods\n- When and how long were sustained focus sessions?\n- What was being worked on?\n\n## Distractions\n- Which apps/sites were used recreationally?\n- How much time was lost to context switching?\n\n## Recommendations\n- 2-3 concrete suggestions to improve focus tomorrow\n\nBe specific with times and app names.\"\"\",\n },\n}\n\n\ndef _build_context(for_date: date) -> dict[str, str]:\n apps = app_time(for_date)\n app_lines = \"\\n\".join(f\"- {a['app_name']}: {a['minutes']} min\" for a in apps[:20])\n\n ocr_rows = deduplicated_text(for_date, chunk_minutes=5)\n ocr_lines = \"\\n\".join(\n f\"[{r['bucket']}] {r['app_name']} / {r['window_name'] or ''}: {r['text'][:200]}\"\n for r in ocr_rows[:100]\n )\n\n audio = formatted_transcript(for_date)\n\n return {\n \"app_time\": app_lines or \"(no app data)\",\n \"ocr_text\": ocr_lines or \"(no screen data)\",\n \"audio\": audio[:3000] if len(audio) > 3000 else audio,\n }\n\n\ndef generate(\n summary_type: str = \"day_recap\",\n for_date: date | None = None,\n api_key: str | None = None,\n) -> dict[str, Any]:\n \"\"\"Generate an AI summary. Returns dict with 'title', 'content', 'date'.\"\"\"\n import anthropic\n\n d = for_date or date.today()\n key = api_key or os.environ.get(\"ANTHROPIC_API_KEY\", \"\")\n if not key:\n return {\n \"title\": \"Error\",\n \"content\": \"ANTHROPIC_API_KEY not set. Add it to your .env file.\",\n \"date\": str(d),\n }\n\n spec = SUMMARY_TYPES.get(summary_type)\n if not spec:\n return {\"title\": \"Error\", \"content\": f\"Unknown summary type: {summary_type}\", \"date\": str(d)}\n\n stats = summary_stats(d)\n if stats[\"total_frames\"] == 0:\n return {\n \"title\": spec[\"title\"],\n \"content\": f\"No screen data found for {d}.\",\n \"date\": str(d),\n }\n\n ctx = _build_context(d)\n prompt = spec[\"prompt\"].format(**ctx)\n\n client = anthropic.Anthropic(api_key=key)\n message = client.messages.create(\n model=\"claude-opus-4-6\",\n max_tokens=1024,\n messages=[{\"role\": \"user\", \"content\": prompt}],\n )\n\n return {\n \"title\": spec[\"title\"],\n \"content\": message.content[0].text,\n \"date\": str(d),\n \"stats\": stats,\n }","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Now the FastAPI backend and CLI:","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"Write","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXLink","text":"main.py","depth":23,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main.py","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"89 lines","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"\"\"\"Screenpipe dashboard — FastAPI web UI.\"\"\"\nimport os\nfrom datetime import date, datetime\nfrom typing import Any\n\nfrom dotenv import load_dotenv\nfrom fastapi import FastAPI, Query\nfrom fastapi.responses import HTMLResponse, JSONResponse\nfrom fastapi.staticfiles import StaticFiles\n\nload_dotenv()\n\nfrom consumers.activity import app_time, window_time, timeline, summary_stats\nfrom consumers.ocr import search as ocr_search\nfrom consumers.audio import transcriptions, search as audio_search\nfrom consumers.summary import generate as gen_summary, SUMMARY_TYPES\n\napp = FastAPI(title=\"Screenpipe Dashboard\")\napp.mount(\"/static\", StaticFiles(directory=\"static\"), name=\"static\")\n\n\ndef _parse_date(d: str | None) -> date | None:\n if not d:\n return None\n try:\n return date.fromisoformat(d)\n except ValueError:\n return None\n\n\n@app.get(\"/\", response_class=HTMLResponse)\nasync def index():\n with open(\"static/index.html\") as f:\n return f.read()\n\n\n# ── Activity ──────────────────────────────────────────────────────────────────\n\n@app.get(\"/api/stats\")\nasync def stats(d: str | None = Query(None)):\n return summary_stats(_parse_date(d))\n\n\n@app.get(\"/api/activity/apps\")\nasync def activity_apps(d: str | None = Query(None)):\n return app_time(_parse_date(d))\n\n\n@app.get(\"/api/activity/windows\")\nasync def activity_windows(d: str | None = Query(None), app_name: str | None = Query(None)):\n return window_time(_parse_date(d), app_name)\n\n\n@app.get(\"/api/activity/timeline\")\nasync def activity_timeline(d: str | None = Query(None), interval: int = Query(15)):\n return timeline(_parse_date(d), interval)\n\n\n# ── Search ───────────────────────────────────────────────────────────────────\n\n@app.get(\"/api/search/ocr\")\nasync def search_ocr(q: str, d: str | None = Query(None), limit: int = 50):\n return ocr_search(q, _parse_date(d), limit)\n\n\n@app.get(\"/api/search/audio\")\nasync def search_audio_endpoint(q: str, d: str | None = Query(None), limit: int = 30):\n return audio_search(q, _parse_date(d), limit)\n\n\n# ── Audio ─────────────────────────────────────────────────────────────────────\n\n@app.get(\"/api/audio\")\nasync def audio(d: str | None = Query(None)):\n return transcriptions(_parse_date(d))\n\n\n# ── Summaries ─────────────────────────────────────────────────────────────────\n\n@app.get(\"/api/summary/types\")\nasync def summary_types():\n return [{\"id\": k, \"title\": v[\"title\"]} for k, v in SUMMARY_TYPES.items()]\n\n\n@app.post(\"/api/summary/generate\")\nasync def generate_summary(type: str = \"day_recap\", d: str | None = None):\n result = gen_summary(type, _parse_date(d))\n return result","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Write","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXLink","text":"cli.py","depth":23,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"cli.py","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"131 lines","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"#!/usr/bin/env python3\n\"\"\"Screenpipe CLI — run summaries and reports on demand.\"\"\"\nimport os\nimport sys\nfrom datetime import date, timedelta\n\nimport click\nfrom dotenv import load_dotenv\n\nload_dotenv()\n\nsys.path.insert(0, os.path.dirname(__file__))\n\nfrom consumers.activity import app_time, window_time, summary_stats\nfrom consumers.ocr import search as ocr_search\nfrom consumers.audio import transcriptions\nfrom consumers.summary import generate as gen_summary, SUMMARY_TYPES\n\n\ndef _resolve_date(d_str: str | None) -> date | None:\n if not d_str:\n return None\n if d_str == \"yesterday\":\n return date.today() - timedelta(days=1)\n if d_str == \"today\":\n return date.today()\n return date.fromisoformat(d_str)\n\n\n@click.group()\ndef cli():\n \"\"\"Screenpipe data explorer and summariser.\"\"\"\n\n\n@cli.command()\n@click.option(\"--date\", \"-d\", \"d\", default=None, help=\"Date (YYYY-MM-DD, today, yesterday)\")\n@click.option(\"--type\", \"-t\", \"summary_type\", default=\"day_recap\",\n type=click.Choice(list(SUMMARY_TYPES.keys())), show_default=True)\ndef summary(d, summary_type):\n \"\"\"Generate an AI summary for a date (default: today).\"\"\"\n target = _resolve_date(d)\n click.echo(f\"Generating {SUMMARY_TYPES[summary_type]['title']} for {target or date.today()}...\")\n result = gen_summary(summary_type, target)\n click.echo(f\"\\n{'─'*60}\")\n click.echo(f\" {result['title']} — {result['date']}\")\n click.echo(f\"{'─'*60}\\n\")\n click.echo(result[\"content\"])\n if \"stats\" in result:\n s = result[\"stats\"]\n click.echo(f\"\\n[data: {s['total_frames']} frames, {s['unique_apps']} apps, \"\n f\"{s['audio_segments']} audio segments]\")\n\n\n@cli.command()\n@click.option(\"--date\", \"-d\", \"d\", default=None, help=\"Date (YYYY-MM-DD, today, yesterday)\")\n@click.option(\"--app\", \"-a\", default=None, help=\"Filter by app name\")\n@click.option(\"--windows\", \"-w\", is_flag=True, help=\"Show window breakdown instead of apps\")\ndef activity(d, app, windows):\n \"\"\"Show time spent per app or window.\"\"\"\n target = _resolve_date(d)\n label = str(target or date.today())\n\n if windows or app:\n rows = window_time(target, app)\n click.echo(f\"\\nWindow time — {label}\" + (f\" [{app}]\" if app else \"\"))\n click.echo(f\"{'App':<25} {'Window':<40} {'Min':>6}\")\n click.echo(\"─\" * 75)\n for r in rows:\n click.echo(f\"{r['app_name']:<25} {(r['window_name'] or '')[:40]:<40} {r['minutes']:>6}\")\n else:\n rows = app_time(target)\n stats = summary_stats(target)\n click.echo(f\"\\nApp time — {label}\")\n click.echo(f\"{'App':<30} {'Minutes':>8}\")\n click.echo(\"─\" * 40)\n for r in rows:\n click.echo(f\"{r['app_name']:<30} {r['minutes']:>8}\")\n click.echo(f\"\\nTotal frames: {stats['total_frames']} | \"\n f\"Active: {stats['first_seen']} → {stats['last_seen']}\")\n\n\n@cli.command()\n@click.argument(\"query\")\n@click.option(\"--date\", \"-d\", \"d\", default=None, help=\"Date (YYYY-MM-DD, today, yesterday)\")\n@click.option(\"--audio\", is_flag=True, help=\"Search audio instead of screen text\")\n@click.option(\"--limit\", \"-n\", default=20, show_default=True)\ndef search(query, d, audio, limit):\n \"\"\"Search OCR screen text or audio transcriptions.\"\"\"\n from consumers.audio import search as audio_search_fn\n\n target = _resolve_date(d)\n if audio:\n rows = audio_search_fn(query, target, limit)\n click.echo(f\"\\nAudio results for '{query}':\")\n for r in rows:\n click.echo(f\" [{r['timestamp']}] {r['snippet']}\")\n else:\n rows = ocr_search(query, target, limit)\n click.echo(f\"\\nOCR results for '{query}':\")\n for r in rows:\n click.echo(f\" [{r['timestamp']}] {r['app_name']} / {r['window_name'] or ''}\")\n click.echo(f\" {r['snippet']}\")\n\n\n@cli.command()\n@click.option(\"--date\", \"-d\", \"d\", default=None, help=\"Date (YYYY-MM-DD, today, yesterday)\")\ndef audio(d):\n \"\"\"Show audio transcriptions for a date.\"\"\"\n target = _resolve_date(d)\n rows = transcriptions(target)\n if not rows:\n click.echo(\"No audio transcriptions found.\")\n return\n click.echo(f\"\\nAudio transcriptions — {target or date.today()}\")\n click.echo(\"─\" * 60)\n for r in rows:\n label = \"MIC\" if r[\"is_input_device\"] else \"SYS\"\n click.echo(f\"[{r['timestamp']}] [{label}] {r['transcription']}\")\n\n\n@cli.command()\ndef serve():\n \"\"\"Start the web UI (runs uvicorn on port 8000).\"\"\"\n import uvicorn\n click.echo(\"Starting Screenpipe dashboard at http://localhost:8000\")\n uvicorn.run(\"main:app\", host=\"0.0.0.0\", port=8000, reload=False)\n\n\nif __name__ == \"__main__\":\n cli()","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Now the frontend:","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"Write","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"}]...
|
9119589316943796240
|
-8191624847160147962
|
app_switch
|
accessibility
|
NULL
|
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Source Control (⌃⇧G)
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: [IP_ADDRESS]]
Explorer Section: screenpipe [SSH: [IP_ADDRESS]]
SCREENPIPE [SSH: [IP_ADDRESS]]
#recycle
app
consumers
static
.env
cli.py
db.py
docker-compose.yml
Dockerfile
main.py
requirements.txt
data
pipes
ai-habits
pipe.md
day-recap
meeting-summary
standup-update
time-breakdown
video-export
db.sqlite
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
pipe.md, Editor Group 1
#!/bin/bash • Untitled-1, Editor Group 1
#!/bin/bash
DB="/volume1/Test/screenpipe/db.sqlite"
DATE=${1:-$(date -d "yesterday" '+%Y-%m-%d')}
echo "═══════════════════════════════════════"
echo " SCREENPIPE REPORT — $DATE"
echo "═══════════════════════════════════════"
echo -e "\n📱 APP USAGE (frames + estimated time)"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-30s %5d frames ~%5.1f min', app_name, COUNT(*), ROUND(COUNT(*) * 4.5 / 60.0, 1))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY app_name ORDER BY COUNT(*) DESC;"
echo -e "\n⌨️ ACTIVITY TYPE PER APP"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-25s clicks:%-5d keys:%-5d switches:%-4d',
app_name,
SUM(CASE WHEN event_type='click' THEN 1 ELSE 0 END),
SUM(CASE WHEN event_type='key' THEN 1 ELSE 0 END),
SUM(CASE WHEN event_type='app_switch' THEN 1 ELSE 0 END))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY app_name ORDER BY COUNT(*) DESC;"
echo -e "\n🌐 BROWSER URLS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%4d frames %s', COUNT(*), browser_url)
FROM frames
WHERE date(timestamp) = '$DATE' AND browser_url IS NOT NULL
GROUP BY browser_url ORDER BY COUNT(*) DESC LIMIT 20;"
echo -e "\n🪟 WINDOW TITLES (top 20)"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %3d %s', app_name, COUNT(*), SUBSTR(window_name,1,60))
FROM frames
WHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL
GROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;"
echo -e "\n🕐 HOURLY TIMELINE"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY strftime('%H', timestamp), app_name
ORDER BY strftime('%H', timestamp), COUNT(*) DESC;"
echo -e "\n📋 CLIPBOARD"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL
ORDER BY timestamp LIMIT 20;"
echo -e "\n🔢 TOTALS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "SELECT 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';"
sqlite3 "$DB" "SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';"
#!/bin/bash
DB="/volume1/Test/screenpipe/db.sqlite"
DATE=${1:-$(date -d "yesterday" '+%Y-%m-%d')}
echo "═══════════════════════════════════════"
echo " SCREENPIPE REPORT — $DATE"
echo "═══════════════════════════════════════"
echo -e "\n📱 APP USAGE (frames + estimated time)"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-30s %5d frames ~%5.1f min', app_name, COUNT(*), ROUND(COUNT(*) * 4.5 / 60.0, 1))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY app_name ORDER BY COUNT(*) DESC;"
echo -e "\n⌨️ ACTIVITY TYPE PER APP"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-25s clicks:%-5d keys:%-5d switches:%-4d',
app_name,
SUM(CASE WHEN event_type='click' THEN 1 ELSE 0 END),
SUM(CASE WHEN event_type='key' THEN 1 ELSE 0 END),
SUM(CASE WHEN event_type='app_switch' THEN 1 ELSE 0 END))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY app_name ORDER BY COUNT(*) DESC;"
echo -e "\n🌐 BROWSER URLS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%4d frames %s', COUNT(*), browser_url)
FROM frames
WHERE date(timestamp) = '$DATE' AND browser_url IS NOT NULL
GROUP BY browser_url ORDER BY COUNT(*) DESC LIMIT 20;"
echo -e "\n🪟 WINDOW TITLES (top 20)"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %3d %s', app_name, COUNT(*), SUBSTR(window_name,1,60))
FROM frames
WHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL
GROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;"
echo -e "\n🕐 HOURLY TIMELINE"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY strftime('%H', timestamp), app_name
ORDER BY strftime('%H', timestamp), COUNT(*) DESC;"
echo -e "\n📋 CLIPBOARD"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL
ORDER BY timestamp LIMIT 20;"
echo -e "\n🔢 TOTALS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "SELECT 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';"
sqlite3 "$DB" "SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';"
Build screenpipe data UI…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports
PORTS
remote SSH: [IP_ADDRESS]
SSH: [IP_ADDRESS]
No Problems
0
0
No Ports Forwarded
0
Update is ready, click to restart.
Update is ready, click to restart.
Notifications
Sign In
Sign In
Screen Reader Optimized
Info: Setting up SSH Host [IP_ADDRESS]: Setting up SSH tunnel
Build screenpipe data UI and summary app
Session history
New session
Message actions
lets build app around screenpipe data and db. THe idea is to have ui and data consumers. So I can run regular commands at the end ot the day (or on demand) and create soem summary.
Thinking
Thinking
Let me explore the screenpipe directory to understand what we're working with.
Bash
List screenpipe directory contents
IN
ls /volume1/screenpipe/
Copy code to clipboard
OUT
data
db.sqlite
pipes
#recycle
[rerun: b1]
Bash
List data and pipes directories
IN
ls /volume1/screenpipe/data/ | head -20 && ls /volume1/screenpipe/pipes/
Copy code to clipboard
OUT
2026-04-09
2026-04-11
ai-habits
day-recap
meeting-summary
standup-update
time-breakdown
video-export
[rerun: b2]
Bash
List tables in screenpipe SQLite database
IN
sqlite3 /volume1/screenpipe/db.sqlite ".tables"
Copy code to clipboard
OUT
_sqlx_migrations meetings
audio_chunks memories
audio_tags memories_fts
audio_transcriptions memories_fts_config
audio_transcriptions_fts memories_fts_data
audio_transcriptions_fts_config memories_fts_docsize
audio_transcriptions_fts_data memories_fts_idx
audio_transcriptions_fts_docsize ocr_text
audio_transcriptions_fts_idx pipe_executions
elements pipe_scheduler_state
elements_fts speaker_embeddings
elements_fts_config speakers
elements_fts_data tags
elements_fts_docsize ui_events
elements_fts_idx ui_events_fts
frames ui_events_fts_config
frames_fts ui_events_fts_data
frames_fts_config ui_events_fts_docsize
frames_fts_content ui_events_fts_idx
frames_fts_data video_chunks
frames_fts_docsize vision_tags
frames_fts_idx
[rerun: b3]
Bash
Get ocr_text table schema
IN
sqlite3 /volume1/screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
Copy code to clipboard
OUT
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
[rerun: b4]
Bash
Get audio_transcriptions table schema
IN
sqlite3 /volume1/screenpipe/db.sqlite "PRAGMA table_info(audio_transcriptions);"
Copy code to clipboard
OUT
0|id|INTEGER|0||1
1|audio_chunk_id|INTEGER|1||0
2|offset_index|INTEGER|1||0
3|timestamp|TIMESTAMP|1||0
4|transcription|TEXT|1||0
5|device|TEXT|1|''|0
6|is_input_device|BOOLEAN|1|TRUE|0
7|speaker_id|INTEGER|0||0
8|transcription_engine|TEXT|1|'Whisper'|0
9|start_time|REAL|0||0
10|end_time|REAL|0||0
11|text_length|INTEGER|0||0
12|sync_id|TEXT|0||0
13|synced_at|DATETIME|0||0
[rerun: b5]
Bash
Get frames, ui_events, video_chunks schemas
IN
sqlite3 /volume1/screenpipe/db.sqlite "PRAGMA table_info(frames); PRAGMA table_info(ui_events); PRAGMA table_info(video_chunks);"
Copy code to clipboard
OUT
0|id|INTEGER|0||1
1|video_chunk_id|INTEGER|0|NULL|0
2|offset_index|INTEGER|1|0|0
3|timestamp|TIMESTAMP|1||0
4|name|TEXT|0||0
5|app_name|TEXT|0|NULL|0
6|window_name|TEXT|0|NULL|0
7|focused|BOOLEAN|0|NULL|0
8|browser_url|TEXT|0|NULL|0
9|device_name|TEXT|1|''|0
10|sync_id|TEXT|0||0
11|machine_id|TEXT|0||0
12|synced_at|DATETIME|0||0
13|snapshot_path|TEXT|0|NULL|0
14|accessibility_text|TEXT|0|NULL|0
15|accessibility_tree_json|TEXT|0|NULL|0
16|content_hash|INTEGER|0|NULL|0
17|simhash|INTEGER|0|NULL|0
18|capture_trigger|TEXT|0|NULL|0
19|text_source|TEXT|0|NULL|0
20|cloud_blob_id|TEXT|0|NULL|0
21|full_text|TEXT|0|NULL|0
22|elements_ref_frame_id|INTEGER|0|NULL|0
0|id|INTEGER|0||1
1|timestamp|DATETIME|1|CURRENT_TIMESTAMP|0
2|session_id|TEXT|0||0
3|relative_ms|INTEGER|1|0|0
4|event_type|TEXT|1||0
5|x|INTEGER|0||0
6|y|INTEGER|0||0
7|delta_x|INTEGER|0||0
8|delta_y|INTEGER|0||0
9|button|INTEGER|0||0
10|click_count|INTEGER|0||0
11|key_code|INTEGER|0||0
12|modifiers|INTEGER|0||0
13|text_content|TEXT|0||0
14|text_length|INTEGER|0||0
15|app_name|TEXT|0||0
16|app_pid|INTEGER|0||0
17|window_title|TEXT|0||0
18|browser_url|TEXT|0||0
19|element_role|TEXT|0||0
20|element_name|TEXT|0||0
21|element_value|TEXT|0||0
22|element_description|TEXT|0||0
23|element_automation_id|TEXT|0||0
24|element_bounds|TEXT|0||0
25|frame_id|INTEGER|0||0
26|sync_id|TEXT|0||0
27|machine_id|TEXT|0||0
28|synced_at|DATETIME|0||0
0|id|INTEGER|0||1
1|file_path|TEXT|1||0
2|device_name|TEXT|1|''|0
3|sync_id|TEXT|0||0
4|machine_id|TEXT|0||0
5|synced_at|DATETIME|0||0
6|fps|REAL|1|0.5|0
7|cloud_blob_id|TEXT|0|NULL|0
[rerun: b6]
Bash
Check data counts and date ranges
IN
sqlite3 /volume1/screenpipe/db.sqlite "SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames;" 2>/dev/null
sqlite3 /volume1/screenpipe/db.sqlite "SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM audio_transcriptions;" 2>/dev/null
sqlite3 /volume1/screenpipe/db.sqlite "SELECT COUNT(*) FROM ocr_text;" 2>/dev/null
Copy code to clipboard
OUT
1135|2026-04-09T16:53:09.043761+00:00|2026-04-11T12:54:42.597794+00:00
3|2026-04-09T16:53:20+00:00|2026-04-09T17:02:52+00:00
666
[rerun: b7]
Bash
Explore existing pipes for patterns
IN
ls /volume1/screenpipe/pipes/day-recap/ 2>/dev/null && cat /volume1/screenpipe/pipes/day-recap/*.js 2>/dev/null | head -50
Copy code to clipboard
OUT
pipe.md
[rerun: b8]
Bash
Read day-recap pipe documentation
IN
cat /volume1/screenpipe/pipes/day-recap/pipe.md
Copy code to clipboard
OUT
---
schedule: manual
enabled: true
template: true
title: Day Recap
description: "Today's accomplishments, key moments, and unfinished work"
icon: "📋"
featured: true
---
Analyze my screen and audio recordings from today (last 16 hours only).
Read screenpipe skill first.
Use this exact format:
## Summary
One sentence: what I mainly did today.
## Accomplishments
- Top 3 things I finished, with timestamps (e.g. "2:30 PM")
- Name specific apps, files, or projects
## Key Moments
- Important things I saw, said, or heard — with timestamps
## Unfinished Work
- What I should continue tomorrow — name the app/file/task
## Patterns
- Apps I used most, topics that came up repeatedly
Only report what you can verify from the data. End with: "**Next step:** [most important thing to continue]"
[rerun: b9]
Bash
Sample app names from frames
IN
sqlite3 /volume1/screenpipe/db.sqlite "SELECT DISTINCT app_name FROM frames WHERE app_name != '' LIMIT 20;"
Copy code to clipboard
OUT
Safari
Activity Monitor
Dia
iTerm2
Control Centre
UserNotificationCenter
Finder
Claude
Slack
Firefox
Raycast
NetAuthAgent
QuickTime Player
[rerun: b10]
Bash
Sample joined frame+ocr data for today
IN
sqlite3 /volume1/screenpipe/db.sqlite "SELECT f.timestamp, o.app_name, o.window_name, substr(o.text, 1, 100) as text FROM frames f JOIN ocr_text o ON f.id = o.frame_id WHERE DATE(f.timestamp) = '2026-04-11' LIMIT 5;"
Copy code to clipboard
OUT
2026-04-11T11:53:00.627698+00:00|||iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA-zsh100% <47H5Sat 11 Apr 14:53:00-zshDOCKE
2026-04-11T11:53:02.005967+00:00|||iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA-zsh100% <7H5Sat 11 Apr 14:53:01-zshDOCKER
2026-04-11T11:53:03.627468+00:00|||iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA100% <47Sat 11 Apr 14:53:03-zshDOCKERuse p
2026-04-11T11:53:05.528794+00:00|||iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA100% <47Sat 11 Apr 14:53:05-zshDOCKERuse p
2026-04-11T11:53:07.662098+00:00|||iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA100% <7Sat 11 Apr 14:53:07-zshDOCKERuse pi
[rerun: b11]
Bash
Sample recent audio transcriptions
IN
sqlite3 /volume1/screenpipe/db.sqlite "SELECT timestamp, substr(transcription,1,100) as text, device FROM audio_transcriptions ORDER BY timestamp DESC LIMIT 5;"
Copy code to clipboard
OUT
2026-04-09T17:02:52+00:00|.|System Audio
2026-04-09T16:59:22+00:00|Class is technically...|System Audio
2026-04-09T16:53:20+00:00|I do for you. Run the credit check. Deal apartment. Okay.|System Audio
[rerun: b12]
Thinking
Thinking
Good data to work with. Here's what we have:
frames
+
ocr_text
: Screen captures with OCR text, app name, window name (1135 frames so far)
audio_transcriptions
: Voice/system audio transcripts
ui_events
: Mouse/keyboard events with app context
video_chunks
: Raw video files
Before I start building, a few quick questions:
Tech stack
— Python OK? (FastAPI for the web UI backend, Click for CLI commands, HTMX for the frontend to keep it simple)
AI summaries
— Do you have a Claude API key to use for generating the actual summaries? Or should I integrate with a local model / skip AI for now?
What summaries matter most?
Day recap (what apps/windows you used, key text seen)
App time breakdown (time per app)
Audio/conversation recap
Custom searchable timeline
Here's the architecture I'm thinking:
Copy code to clipboard
/volume1/screenpipe/app/
├── main.py # FastAPI web UI
├── cli.py # Click CLI: `python cli.py day-recap`
├── db.py # Read-only queries against db.sqlite
├── consumers/
│ ├── activity.py # App usage, time per window
│ ├── ocr.py # OCR text aggregation + search
│ ├── audio.py # Transcription queries
│ └── summary.py # AI summary builder
└── static/
└── index.html # Single-page UI
CLI commands would look like:
Copy code to clipboard
python cli.py day-recap # EOD summary
python cli.py activity --date today # App time breakdown
python cli.py search "docker" # Search OCR/audio text
python cli.py serve # Launch web UI
Does this direction work? Any preferences on the stack or which summaries to prioritize?
Message actions
seesm ok
Thinking
Thinking
Bash
Check Python and available packages
IN
python3 --version && pip3 list 2>/dev/null | grep -E "fastapi|uvicorn|click|anthropic|httpx|jinja"
Copy code to clipboard
OUT
Python 3.11.2
[rerun: b1]
Bash
Verify join works for today's data
IN
sqlite3 /volume1/screenpipe/db.sqlite "
SELECT f.timestamp, o.app_name, o.window_name, length(o.text) as txt_len
FROM frames f JOIN ocr_text o ON f.id = o.frame_id
WHERE DATE(f.timestamp) = '2026-04-11'
ORDER BY f.timestamp DESC LIMIT 3;
"
Copy code to clipboard
OUT
2026-04-11T12:54:42.597794+00:00|||2111
2026-04-11T12:54:41.915916+00:00|||2110
2026-04-11T12:54:39.912712+00:00|||2111
[rerun: b2]
Bash
Install required packages
IN
pip3 install fastapi uvicorn click anthropic python-dotenv 2>&1 | tail -5
Copy code to clipboard
OUT
/bin/bash: line 1: pip3: command not found
[rerun: b3]
Bash
Find pip
IN
which pip || which pip3 || python3 -m pip --version 2>/dev/null
Copy code to clipboard
OUT
Exit code 1
[rerun: b4]
Bash
Bootstrap pip then install packages
IN
python3 -m ensurepip --upgrade 2>&1 && python3 -m pip install fastapi uvicorn click anthropic python-dotenv 2>&1 | tail -10
Copy code to clipboard
OUT
Exit code 1
/usr/bin/python3: No module named ensurepip
[rerun: b5]
Bash
Install pip via apt
IN
apt-get install -y python3-pip python3-venv 2>&1 | tail -5
Copy code to clipboard
OUT
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
[rerun: b6]
Bash
Install pip with sudo
Reason:
lets make it in docker, not to install it in nas directly
IN
sudo apt-get install -y python3-pip python3-venv 2>&1 | tail -5
Copy code to clipboard
Good call. Let me check what Docker setup you already have and build a proper containerized app.
Bash
Check existing docker-compose for reference
IN
ls /volume2/docker/paperlessngx/ && cat /volume2/docker/paperlessngx/docker-compose.yml 2>/dev/null | head -30
Copy code to clipboard
OUT
consume
data
db
docker-compose.yml
export
mcp-server
media
redis
trash
services:
redis:
image: redis:8
command:
- /bin/sh
- -c
- redis-server --requirepass redispass
container_name: PaperlessNGX-REDIS
hostname: paper-redis
security_opt:
- no-new-privileges:true
read_only: true
user: 1000:10
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
volumes:
- /volume2/docker/paperlessngx/redis:/data:rw
environment:
TZ: Europe/Sofia
restart: always
db:
image: postgres:17
container_name: PaperlessNGX-DB
hostname: paper-db
mem_limit: 1g
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "paperless", "-U", "paperlessuser"]
[rerun: b7]
Bash
Check Docker availability
IN
docker --version && docker compose version 2>/dev/null
Copy code to clipboard
OUT
Docker version 26.1.0, build 9714adc
Docker Compose version v2.26.1
[rerun: b8]
Bash
Create app directory structure
IN
mkdir -p /volume1/screenpipe/app/consumers /volume1/screenpipe/app/static
Copy code to clipboard
OUT
[rerun: b9]
Now let me build everything. I'll create all the files:
Write
requirements.txt
requirements.txt
6 lines
fastapi==0.115.12
uvicorn[standard]==0.34.0
click==8.1.8
anthropic==0.49.0
python-dotenv==1.1.0
Write
Dockerfile
Dockerfile
13 lines
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "[IP_ADDRESS]", "--port", "8000"]
Write
db.py
db.py
28 lines
import sqlite3
from contextlib import contextmanager
from datetime import date, datetime, timedelta, timezone
from typing import Generator
DB_PATH = "/data/db.sqlite"
@contextmanager
def get_conn() -> Generator[sqlite3.Connection, None, None]:
conn = sqlite3.connect(f"file:{DB_PATH}?mode=ro", uri=True)
conn.row_factory = sqlite3.Row
try:
yield conn
finally:
conn.close()
def date_range(for_date: date) -> tuple[str, str]:
"""Return ISO timestamps for start/end of a given date (UTC)."""
start = datetime(for_date.year, for_date.month, for_date.day, tzinfo=timezone.utc)
end = start + timedelta(days=1)
return start.isoformat(), end.isoformat()
def today() -> date:
return datetime.now(timezone.utc).date()
Write
__init__.py
__init__.py
1 line
Write
activity.py
activity.py
123 lines
"""App usage and window focus time consumer."""
from datetime import date
from typing import Any
from db import get_conn, date_range, today as _today
def app_time(for_date: date | None = None) -> list[dict[str, Any]]:
"""Return minutes spent per app for a given date, sorted descending."""
d = for_date or _today()
start, end = date_range(d)
with get_conn() as conn:
rows = conn.execute(
"""
SELECT
o.app_name,
COUNT(*) as frame_count,
-- each frame ~ 2s at 0.5fps; convert to minutes
ROUND(COUNT(*) * 2.0 / 60, 1) as minutes
FROM frames f
JOIN ocr_text o ON f.id = o.frame_id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND o.app_name != ''
GROUP BY o.app_name
ORDER BY frame_count DESC
""",
(start, end),
).fetchall()
return [dict(r) for r in rows]
def window_time(for_date: date | None = None, app: str | None = None) -> list[dict[str, Any]]:
"""Return minutes spent per window/tab, optionally filtered by app."""
d = for_date or _today()
start, end = date_range(d)
query = """
SELECT
o.app_name,
o.window_name,
COUNT(*) as frame_count,
ROUND(COUNT(*) * 2.0 / 60, 1) as minutes
FROM frames f
JOIN ocr_text o ON f.id = o.frame_id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND o.app_name != ''
"""
params: list = [start, end]
if app:
query += " AND o.app_name = ?"
params.append(app)
query += " GROUP BY o.app_name, o.window_name ORDER BY frame_count DESC LIMIT 50"
with get_conn() as conn:
rows = conn.execute(query, params).fetchall()
return [dict(r) for r in rows]
def timeline(for_date: date | None = None, interval_minutes: int = 15) -> list[dict[str, Any]]:
"""Return activity bucketed into N-minute intervals."""
d = for_date or _today()
start, end = date_range(d)
interval_sec = interval_minutes * 60
with get_conn() as conn:
rows = conn.execute(
f"""
SELECT
datetime(
(strftime('%s', f.timestamp) / {interval_sec}) * {interval_sec},
'unixepoch'
) as bucket,
o.app_name,
COUNT(*) as frames
FROM frames f
JOIN ocr_text o ON f.id = o.frame_id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND o.app_name != ''
GROUP BY bucket, o.app_name
ORDER BY bucket, frames DESC
""",
(start, end),
).fetchall()
return [dict(r) for r in rows]
def summary_stats(for_date: date | None = None) -> dict[str, Any]:
"""Return high-level stats for a date."""
d = for_date or _today()
start, end = date_range(d)
with get_conn() as conn:
frames_row = conn.execute(
"SELECT COUNT(*) as n, MIN(timestamp) as first, MAX(timestamp) as last "
"FROM frames WHERE timestamp >= ? AND timestamp < ?",
(start, end),
).fetchone()
app_count = conn.execute(
"""
SELECT COUNT(DISTINCT o.app_name) as n
FROM frames f JOIN ocr_text o ON f.id = o.frame_id
WHERE f.timestamp >= ? AND f.timestamp < ? AND o.app_name != ''
""",
(start, end),
).fetchone()
audio_count = conn.execute(
"SELECT COUNT(*) as n FROM audio_transcriptions "
"WHERE timestamp >= ? AND timestamp < ?",
(start, end),
).fetchone()
return {
"date": str(d),
"total_frames": frames_row["n"],
"first_seen": frames_row["first"],
"last_seen": frames_row["last"],
"unique_apps": app_count["n"],
"audio_segments": audio_count["n"],
}
Write
ocr.py
ocr.py
92 lines
"""OCR text search and aggregation consumer."""
from datetime import date
from typing import Any
from db import get_conn, date_range, today as _today
def search(query: str, for_date: date | None = None, limit: int = 50) -> list[dict[str, Any]]:
"""Full-text search OCR content."""
d = for_date or _today()
start, end = date_range(d)
with get_conn() as conn:
rows = conn.execute(
"""
SELECT
f.timestamp,
o.app_name,
o.window_name,
snippet(ocr_text_fts, 0, '[', ']', '...', 20) as snippet
FROM ocr_text_fts
JOIN ocr_text o ON ocr_text_fts.rowid = o.rowid
JOIN frames f ON o.frame_id = f.id
WHERE ocr_text_fts MATCH ?
AND f.timestamp >= ? AND f.timestamp < ?
ORDER BY rank
LIMIT ?
""",
(query, start, end, limit),
).fetchall()
return [dict(r) for r in rows]
def text_for_date(for_date: date | None = None, focused_only: bool = True) -> list[dict[str, Any]]:
"""Return all OCR text for a date, optionally only focused windows."""
d = for_date or _today()
start, end = date_range(d)
query = """
SELECT
f.timestamp,
o.app_name,
o.window_name,
o.text
FROM frames f
JOIN ocr_text o ON f.id = o.frame_id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND o.app_name != ''
AND length(o.text) > 20
"""
params: list = [start, end]
if focused_only:
query += " AND o.focused = TRUE"
query += " ORDER BY f.timestamp"
with get_conn() as conn:
rows = conn.execute(query, params).fetchall()
return [dict(r) for r in rows]
def deduplicated_text(for_date: date | None = None, chunk_minutes: int = 5) -> list[dict[str, Any]]:
"""
Return OCR text deduplicated by time chunk + app to reduce LLM token usage.
Groups frames into N-minute buckets and returns one representative text per app per bucket.
"""
d = for_date or _today()
start, end = date_range(d)
interval_sec = chunk_minutes * 60
with get_conn() as conn:
rows = conn.execute(
f"""
SELECT
datetime(
(strftime('%s', f.timestamp) / {interval_sec}) * {interval_sec},
'unixepoch'
) as bucket,
o.app_name,
o.window_name,
substr(o.text, 1, 500) as text
FROM frames f
JOIN ocr_text o ON f.id = o.frame_id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND o.app_name != ''
AND length(o.text) > 20
GROUP BY bucket, o.app_name
ORDER BY bucket
""",
(start, end),
).fetchall()
return [dict(r) for r in rows]
Write
audio.py
audio.py
61 lines
"""Audio transcription consumer."""
from datetime import date
from typing import Any
from db import get_conn, date_range, today as _today
def transcriptions(for_date: date | None = None) -> list[dict[str, Any]]:
"""Return all audio transcriptions for a date."""
d = for_date or _today()
start, end = date_range(d)
with get_conn() as conn:
rows = conn.execute(
"""
SELECT timestamp, transcription, device, is_input_device, speaker_id
FROM audio_transcriptions
WHERE timestamp >= ? AND timestamp < ?
AND length(transcription) > 2
ORDER BY timestamp
""",
(start, end),
).fetchall()
return [dict(r) for r in rows]
def search(query: str, for_date: date | None = None, limit: int = 30) -> list[dict[str, Any]]:
"""Search audio transcriptions."""
d = for_date or _today()
start, end = date_range(d)
with get_conn() as conn:
rows = conn.execute(
"""
SELECT
a.timestamp,
a.device,
snippet(audio_transcriptions_fts, 0, '[', ']', '...', 20) as snippet
FROM audio_transcriptions_fts
JOIN audio_transcriptions a ON audio_transcriptions_fts.rowid = a.id
WHERE audio_transcriptions_fts MATCH ?
AND a.timestamp >= ? AND a.timestamp < ?
ORDER BY rank
LIMIT ?
""",
(query, start, end, limit),
).fetchall()
return [dict(r) for r in rows]
def formatted_transcript(for_date: date | None = None) -> str:
"""Return audio as a readable transcript string."""
rows = transcriptions(for_date)
if not rows:
return "(no audio transcriptions)"
lines = []
for r in rows:
label = "MIC" if r["is_input_device"] else "SYS"
lines.append(f"[{r['timestamp']}] [{label}] {r['transcription']}")
return "\n".join(lines)
Write
summary.py
summary.py
162 lines
"""AI summary generator using Claude."""
import os
from datetime import date
from typing import Any
from consumers.activity import app_time, summary_stats
from consumers.ocr import deduplicated_text
from consumers.audio import formatted_transcript
SUMMARY_TYPES = {
"day_recap": {
"title": "Day Recap",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Screen content (sampled every 5 minutes):
{ocr_text}
## Audio/speech:
{audio}
Write a concise day recap using EXACTLY this format:
## Summary
One sentence: what I mainly worked on today.
## Accomplishments
- Top 3 things I finished, with approximate times
- Name specific apps, files, or projects
## Key Moments
- Important things seen or heard, with timestamps
## Unfinished Work
- What to continue tomorrow
## Patterns
- Apps used most, topics that came up repeatedly
Only report what you can verify from the data. End with:
**Next step:** [most important thing to continue]""",
},
"standup": {
"title": "Standup Update",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Screen content (sampled every 5 minutes):
{ocr_text}
## Audio/speech:
{audio}
Write a brief standup update:
**Yesterday:** What I worked on (2-3 bullets)
**Today:** What I plan to continue (1-2 bullets)
**Blockers:** Any issues observed (or "None")
Keep it under 150 words. Only report what's verifiable from the data.""",
},
"focus_time": {
"title": "Focus & Distraction Analysis",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Screen content (sampled every 5 minutes):
{ocr_text}
Analyze focus vs distraction patterns:
## Deep Work Periods
- When and how long were sustained focus sessions?
- What was being worked on?
## Distractions
- Which apps/sites were used recreationally?
- How much time was lost to context switching?
## Recommendations
- 2-3 concrete suggestions to improve focus tomorrow
Be specific with times and app names.""",
},
}
def _build_context(for_date: date) -> dict[str, str]:
apps = app_time(for_date)
app_lines = "\n".join(f"- {a['app_name']}: {a['minutes']} min" for a in apps[:20])
ocr_rows = deduplicated_text(for_date, chunk_minutes=5)
ocr_lines = "\n".join(
f"[{r['bucket']}] {r['app_name']} / {r['window_name'] or ''}: {r['text'][:200]}"
for r in ocr_rows[:100]
)
audio = formatted_transcript(for_date)
return {
"app_time": app_lines or "(no app data)",
"ocr_text": ocr_lines or "(no screen data)",
"audio": audio[:3000] if len(audio) > 3000 else audio,
}
def generate(
summary_type: str = "day_recap",
for_date: date | None = None,
api_key: str | None = None,
) -> dict[str, Any]:
"""Generate an AI summary. Returns dict with 'title', 'content', 'date'."""
import anthropic
d = for_date or date.today()
key = api_key or os.environ.get("ANTHROPIC_API_KEY", "")
if not key:
return {
"title": "Error",
"content": "ANTHROPIC_API_KEY not set. Add it to your .env file.",
"date": str(d),
}
spec = SUMMARY_TYPES.get(summary_type)
if not spec:
return {"title": "Error", "content": f"Unknown summary type: {summary_type}", "date": str(d)}
stats = summary_stats(d)
if stats["total_frames"] == 0:
return {
"title": spec["title"],
"content": f"No screen data found for {d}.",
"date": str(d),
}
ctx = _build_context(d)
prompt = spec["prompt"].format(**ctx)
client = anthropic.Anthropic(api_key=key)
message = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": prompt}],
)
return {
"title": spec["title"],
"content": message.content[0].text,
"date": str(d),
"stats": stats,
}
Now the FastAPI backend and CLI:
Write
main.py
main.py
89 lines
"""Screenpipe dashboard — FastAPI web UI."""
import os
from datetime import date, datetime
from typing import Any
from dotenv import load_dotenv
from fastapi import FastAPI, Query
from fastapi.responses import HTMLResponse, JSONResponse
from fastapi.staticfiles import StaticFiles
load_dotenv()
from consumers.activity import app_time, window_time, timeline, summary_stats
from consumers.ocr import search as ocr_search
from consumers.audio import transcriptions, search as audio_search
from consumers.summary import generate as gen_summary, SUMMARY_TYPES
app = FastAPI(title="Screenpipe Dashboard")
app.mount("/static", StaticFiles(directory="static"), name="static")
def _parse_date(d: str | None) -> date | None:
if not d:
return None
try:
return date.fromisoformat(d)
except ValueError:
return None
@app.get("/", response_class=HTMLResponse)
async def index():
with open("static/index.html") as f:
return f.read()
# ── Activity ──────────────────────────────────────────────────────────────────
@app.get("/api/stats")
async def stats(d: str | None = Query(None)):
return summary_stats(_parse_date(d))
@app.get("/api/activity/apps")
async def activity_apps(d: str | None = Query(None)):
return app_time(_parse_date(d))
@app.get("/api/activity/windows")
async def activity_windows(d: str | None = Query(None), app_name: str | None = Query(None)):
return window_time(_parse_date(d), app_name)
@app.get("/api/activity/timeline")
async def activity_timeline(d: str | None = Query(None), interval: int = Query(15)):
return timeline(_parse_date(d), interval)
# ── Search ───────────────────────────────────────────────────────────────────
@app.get("/api/search/ocr")
async def search_ocr(q: str, d: str | None = Query(None), limit: int = 50):
return ocr_search(q, _parse_date(d), limit)
@app.get("/api/search/audio")
async def search_audio_endpoint(q: str, d: str | None = Query(None), limit: int = 30):
return audio_search(q, _parse_date(d), limit)
# ── Audio ─────────────────────────────────────────────────────────────────────
@app.get("/api/audio")
async def audio(d: str | None = Query(None)):
return transcriptions(_parse_date(d))
# ── Summaries ─────────────────────────────────────────────────────────────────
@app.get("/api/summary/types")
async def summary_types():
return [{"id": k, "title": v["title"]} for k, v in SUMMARY_TYPES.items()]
@app.post("/api/summary/generate")
async def generate_summary(type: str = "day_recap", d: str | None = None):
result = gen_summary(type, _parse_date(d))
return result
Write
cli.py
cli.py
131 lines
#!/usr/bin/env python3
"""Screenpipe CLI — run summaries and reports on demand."""
import os
import sys
from datetime import date, timedelta
import click
from dotenv import load_dotenv
load_dotenv()
sys.path.insert(0, os.path.dirname(__file__))
from consumers.activity import app_time, window_time, summary_stats
from consumers.ocr import search as ocr_search
from consumers.audio import transcriptions
from consumers.summary import generate as gen_summary, SUMMARY_TYPES
def _resolve_date(d_str: str | None) -> date | None:
if not d_str:
return None
if d_str == "yesterday":
return date.today() - timedelta(days=1)
if d_str == "today":
return date.today()
return date.fromisoformat(d_str)
@click.group()
def cli():
"""Screenpipe data explorer and summariser."""
@cli.command()
@click.option("--date", "-d", "d", default=None, help="Date (YYYY-MM-DD, today, yesterday)")
@click.option("--type", "-t", "summary_type", default="day_recap",
type=click.Choice(list(SUMMARY_TYPES.keys())), show_default=True)
def summary(d, summary_type):
"""Generate an AI summary for a date (default: today)."""
target = _resolve_date(d)
click.echo(f"Generating {SUMMARY_TYPES[summary_type]['title']} for {target or date.today()}...")
result = gen_summary(summary_type, target)
click.echo(f"\n{'─'*60}")
click.echo(f" {result['title']} — {result['date']}")
click.echo(f"{'─'*60}\n")
click.echo(result["content"])
if "stats" in result:
s = result["stats"]
click.echo(f"\n[data: {s['total_frames']} frames, {s['unique_apps']} apps, "
f"{s['audio_segments']} audio segments]")
@cli.command()
@click.option("--date", "-d", "d", default=None, help="Date (YYYY-MM-DD, today, yesterday)")
@click.option("--app", "-a", default=None, help="Filter by app name")
@click.option("--windows", "-w", is_flag=True, help="Show window breakdown instead of apps")
def activity(d, app, windows):
"""Show time spent per app or window."""
target = _resolve_date(d)
label = str(target or date.today())
if windows or app:
rows = window_time(target, app)
click.echo(f"\nWindow time — {label}" + (f" [{app}]" if app else ""))
click.echo(f"{'App':<25} {'Window':<40} {'Min':>6}")
click.echo("─" * 75)
for r in rows:
click.echo(f"{r['app_name']:<25} {(r['window_name'] or '')[:40]:<40} {r['minutes']:>6}")
else:
rows = app_time(target)
stats = summary_stats(target)
click.echo(f"\nApp time — {label}")
click.echo(f"{'App':<30} {'Minutes':>8}")
click.echo("─" * 40)
for r in rows:
click.echo(f"{r['app_name']:<30} {r['minutes']:>8}")
click.echo(f"\nTotal frames: {stats['total_frames']} | "
f"Active: {stats['first_seen']} → {stats['last_seen']}")
@cli.command()
@click.argument("query")
@click.option("--date", "-d", "d", default=None, help="Date (YYYY-MM-DD, today, yesterday)")
@click.option("--audio", is_flag=True, help="Search audio instead of screen text")
@click.option("--limit", "-n", default=20, show_default=True)
def search(query, d, audio, limit):
"""Search OCR screen text or audio transcriptions."""
from consumers.audio import search as audio_search_fn
target = _resolve_date(d)
if audio:
rows = audio_search_fn(query, target, limit)
click.echo(f"\nAudio results for '{query}':")
for r in rows:
click.echo(f" [{r['timestamp']}] {r['snippet']}")
else:
rows = ocr_search(query, target, limit)
click.echo(f"\nOCR results for '{query}':")
for r in rows:
click.echo(f" [{r['timestamp']}] {r['app_name']} / {r['window_name'] or ''}")
click.echo(f" {r['snippet']}")
@cli.command()
@click.option("--date", "-d", "d", default=None, help="Date (YYYY-MM-DD, today, yesterday)")
def audio(d):
"""Show audio transcriptions for a date."""
target = _resolve_date(d)
rows = transcriptions(target)
if not rows:
click.echo("No audio transcriptions found.")
return
click.echo(f"\nAudio transcriptions — {target or date.today()}")
click.echo("─" * 60)
for r in rows:
label = "MIC" if r["is_input_device"] else "SYS"
click.echo(f"[{r['timestamp']}] [{label}] {r['transcription']}")
@cli.command()
def serve():
"""Start the web UI (runs uvicorn on port 8000)."""
import uvicorn
click.echo("Starting Screenpipe dashboard at http://localhost:8000")
uvicorn.run("main:app", host="[IP_ADDRESS]", port=8000, reload=False)
if __name__ == "__main__":
cli()
Now the frontend:
Write...
|
NULL
|
|
10819
|
215
|
21
|
2026-04-14T08:59:59.814008+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776157199814_m2.jpg...
|
Firefox
|
Jiminny — Work
|
True
|
app.staging.jiminny.com/ai-reports
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
JY-20543 add AJ reports User pilot tracking by Lak JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Console Home | Console Home | us-east-2
Console Home | Console Home | us-east-2
SecurityGroup | EC2 | us-east-2
SecurityGroup | EC2 | us-east-2
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jiminny
Jiminny
Close tab
Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf
Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
CloudWatch | us-east-2
CloudWatch | us-east-2
New Tab
New Tab
CloudWatch | us-east-2
CloudWatch | us-east-2
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
JY-18909-automated-reports-ask-jiminny ■ 869720
28
28
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
No reports have been created yet
You are currently impersonating Nikolay Yankov
Clear
Filter URLs
Pause/Resume recording network log
New Request
Search
Request Blocking
Disable Cache
Disable Cache
No Throttling
Network Settings
All
HTML
CSS
JS
XHR
Fonts
Images
Media
WS
Other
Status
Status
Method
Method
Domain
Domain
File
File
Initiator
Initiator
Type
Type
Transferred
Transferred
Size
Size
0 ms 2.56 s
0 ms
2.56 s
POST
jmny.report-uri.com
reportOnly
csp
plain
NS_BINDING_ABORTED
0 B
13 ms
POST
r.logr-in.com
i?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7d1d-91e5-1c598b541c05&t=14f86387-75a7-4913-84ea-8564cbf50ebc&s=0&hr=t&u=c4fb084a-b33a-46fe-904b-351b592a4b0f&is=IDENTIFIED&rs=0,t
xhr
NS_BINDING_ABORTED
0 B
0 ms
200
GET
app.staging.jiminny.com
ai-reports
document
html
service worker
16.67 kB
0 ms
200
GET...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app","depth":4,"bounds":{"left":0.00234375,"top":0.045138888,"width":0.0890625,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0,"top":0.08263889,"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":"Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira","depth":5,"bounds":{"left":0.015625,"top":0.09236111,"width":0.11796875,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app","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":"JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app","depth":5,"bounds":{"left":0.015625,"top":0.12083333,"width":0.18710938,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Configure SSH access to multiple environment - Engineering - Confluence","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":"Configure SSH access to multiple environment - Engineering - Confluence","depth":5,"bounds":{"left":0.015625,"top":0.14930555,"width":0.1515625,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Console Home | Console Home | us-east-2","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":"Console Home | Console Home | us-east-2","depth":5,"bounds":{"left":0.015625,"top":0.17777778,"width":0.08671875,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"SecurityGroup | EC2 | us-east-2","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":"SecurityGroup | EC2 | us-east-2","depth":5,"bounds":{"left":0.015625,"top":0.20625,"width":0.06484375,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · 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":"JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app","depth":5,"bounds":{"left":0.015625,"top":0.23472223,"width":0.18710938,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app","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":"SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app","depth":5,"bounds":{"left":0.015625,"top":0.26319444,"width":0.23476562,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet","depth":4,"bounds":{"left":0.0,"top":0.28194445,"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":"Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet","depth":5,"bounds":{"left":0.015625,"top":0.29166666,"width":0.1984375,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.31041667,"width":0.09375,"height":0.028472222},"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.015625,"top":0.3201389,"width":0.015625,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.07890625,"top":0.31666666,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf","depth":4,"bounds":{"left":0.0,"top":0.33888888,"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":"Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf","depth":5,"bounds":{"left":0.015625,"top":0.34861112,"width":0.1640625,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Service-Desk - Queues - Platform team - Service space - Jira","depth":4,"bounds":{"left":0.0,"top":0.3673611,"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":"Service-Desk - Queues - Platform team - Service space - Jira","depth":5,"bounds":{"left":0.015625,"top":0.37708333,"width":0.12617187,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.39583334,"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":"JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app","depth":5,"bounds":{"left":0.015625,"top":0.40555555,"width":0.18710938,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Configure SSH access to multiple environment - Engineering - Confluence","depth":4,"bounds":{"left":0.0,"top":0.42430556,"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":"Configure SSH access to multiple environment - Engineering - Confluence","depth":5,"bounds":{"left":0.015625,"top":0.4340278,"width":0.1515625,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.0,"top":0.45277777,"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":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.015625,"top":0.4625,"width":0.0484375,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"New Tab","depth":4,"bounds":{"left":0.0,"top":0.48125,"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":"New Tab","depth":5,"bounds":{"left":0.015625,"top":0.49097222,"width":0.017578125,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.0,"top":0.50972223,"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":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.015625,"top":0.51944447,"width":0.0484375,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.003125,"top":0.5395833,"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":"JY-18909-automated-reports-ask-jiminny ■ 869720","depth":9,"bounds":{"left":0.09453125,"top":0.9875,"width":0.11796875,"height":0.011111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"28","depth":12,"bounds":{"left":0.096875,"top":0.925,"width":0.01875,"height":0.030555556},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"28","depth":14,"bounds":{"left":0.10664062,"top":0.9284722,"width":0.00546875,"height":0.010416667},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"AI Reports","depth":13,"bounds":{"left":0.128125,"top":0.060416665,"width":0.037109375,"height":0.017361112},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"AI Reports","depth":14,"bounds":{"left":0.128125,"top":0.060416665,"width":0.037109375,"height":0.017361112},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Ask Jiminny reports","depth":13,"bounds":{"left":0.54609376,"top":0.05625,"width":0.06992187,"height":0.025},"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.56210935,"top":0.063194446,"width":0.0484375,"height":0.011805556},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Report name","depth":17,"bounds":{"left":0.14257812,"top":0.09513889,"width":0.068359375,"height":0.017361112},"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.234375,"top":0.1,"width":0.01484375,"height":0.011111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Report Type Report Type","depth":16,"bounds":{"left":0.31640625,"top":0.09513889,"width":0.07773437,"height":0.017361112},"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.31640625,"top":0.09861111,"width":0.027734375,"height":0.011111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Clear all","depth":13,"bounds":{"left":0.4015625,"top":0.09791667,"width":0.033203125,"height":0.013888889},"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.12773438,"top":0.14583333,"width":0.015234375,"height":0.011111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"FREQUENCY","depth":16,"bounds":{"left":0.33984375,"top":0.14583333,"width":0.030859375,"height":0.011111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SHARED","depth":16,"bounds":{"left":0.41054687,"top":0.14583333,"width":0.020703126,"height":0.011111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"DATE","depth":16,"bounds":{"left":0.48125,"top":0.14583333,"width":0.012890625,"height":0.011111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ACTIONS","depth":16,"bounds":{"left":0.55195314,"top":0.14583333,"width":0.02265625,"height":0.011111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No reports have been created yet","depth":13,"bounds":{"left":0.30429688,"top":0.26458332,"width":0.1375,"height":0.020833334},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"You are currently impersonating Nikolay Yankov","depth":11,"bounds":{"left":0.29921874,"top":0.046527777,"width":0.10859375,"height":0.011111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Clear","depth":16,"bounds":{"left":0.6269531,"top":0.068055555,"width":0.01015625,"height":0.013888889},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXTextField","text":"Filter URLs","depth":16,"bounds":{"left":0.6390625,"top":0.065972224,"width":0.2125,"height":0.018055556},"help_text":"","role_description":"search text field","subrole":"AXSearchField","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Pause/Resume recording network log","depth":16,"bounds":{"left":0.86757815,"top":0.068055555,"width":0.01015625,"height":0.014583333},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"New Request","depth":16,"bounds":{"left":0.8785156,"top":0.068055555,"width":0.01015625,"height":0.013888889},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Search","depth":16,"bounds":{"left":0.8894531,"top":0.068055555,"width":0.01015625,"height":0.013888889},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Request Blocking","depth":16,"bounds":{"left":0.9003906,"top":0.068055555,"width":0.01015625,"height":0.013888889},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Disable Cache","depth":17,"bounds":{"left":0.91445315,"top":0.06944445,"width":0.00546875,"height":0.009722223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Disable Cache","depth":17,"bounds":{"left":0.92109376,"top":0.07013889,"width":0.029296875,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"No Throttling","depth":16,"bounds":{"left":0.9546875,"top":0.06875,"width":0.031640626,"height":0.0125},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Network Settings","depth":16,"bounds":{"left":0.98828125,"top":0.068055555,"width":0.01015625,"height":0.013888889},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"All","depth":17,"bounds":{"left":0.6296875,"top":0.088194445,"width":0.009765625,"height":0.013888889},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"HTML","depth":17,"bounds":{"left":0.64023435,"top":0.088194445,"width":0.016796876,"height":0.013888889},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"CSS","depth":17,"bounds":{"left":0.6578125,"top":0.088194445,"width":0.01328125,"height":0.013888889},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"JS","depth":17,"bounds":{"left":0.671875,"top":0.088194445,"width":0.009765625,"height":0.013888889},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"XHR","depth":17,"bounds":{"left":0.68242186,"top":0.088194445,"width":0.0140625,"height":0.013888889},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Fonts","depth":17,"bounds":{"left":0.6972656,"top":0.088194445,"width":0.016015625,"height":0.013888889},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Images","depth":17,"bounds":{"left":0.7140625,"top":0.088194445,"width":0.019140625,"height":0.013888889},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Media","depth":17,"bounds":{"left":0.73398435,"top":0.088194445,"width":0.0171875,"height":0.013888889},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"WS","depth":17,"bounds":{"left":0.7519531,"top":0.088194445,"width":0.01171875,"height":0.013888889},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Other","depth":17,"bounds":{"left":0.7644531,"top":0.088194445,"width":0.01640625,"height":0.013888889},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Status","depth":24,"bounds":{"left":0.62539065,"top":0.10555556,"width":0.021484375,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Status","depth":26,"bounds":{"left":0.6273438,"top":0.10972222,"width":0.01328125,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Method","depth":24,"bounds":{"left":0.6472656,"top":0.10555556,"width":0.020703126,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Method","depth":26,"bounds":{"left":0.64921874,"top":0.10972222,"width":0.015625,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Domain","depth":24,"bounds":{"left":0.6683594,"top":0.10555556,"width":0.042578124,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Domain","depth":26,"bounds":{"left":0.6703125,"top":0.10972222,"width":0.015625,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"File","depth":24,"bounds":{"left":0.71132815,"top":0.10555556,"width":0.10625,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"File","depth":26,"bounds":{"left":0.7132813,"top":0.10972222,"width":0.00703125,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Initiator","depth":24,"bounds":{"left":0.8179687,"top":0.10555556,"width":0.042578124,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initiator","depth":26,"bounds":{"left":0.81992185,"top":0.10972222,"width":0.015625,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Type","depth":24,"bounds":{"left":0.8609375,"top":0.10555556,"width":0.02109375,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":26,"bounds":{"left":0.8628906,"top":0.10972222,"width":0.009765625,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Transferred","depth":24,"bounds":{"left":0.88242185,"top":0.10555556,"width":0.0421875,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Transferred","depth":26,"bounds":{"left":0.884375,"top":0.10972222,"width":0.0234375,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Size","depth":24,"bounds":{"left":0.925,"top":0.10555556,"width":0.02109375,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Size","depth":26,"bounds":{"left":0.92695314,"top":0.10972222,"width":0.00859375,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"0 ms 2.56 s","depth":24,"bounds":{"left":0.9464844,"top":0.10555556,"width":0.04765625,"height":0.016666668},"help_text":"Timeline","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0 ms","depth":27,"bounds":{"left":0.94804686,"top":0.11180556,"width":0.007421875,"height":0.0069444445},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2.56 s","depth":27,"bounds":{"left":0.9722656,"top":0.11180556,"width":0.01015625,"height":0.0069444445},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"POST","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"jmny.report-uri.com","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"reportOnly","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"csp","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"plain","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"NS_BINDING_ABORTED","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0 B","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"13 ms","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"POST","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"r.logr-in.com","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"i?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7d1d-91e5-1c598b541c05&t=14f86387-75a7-4913-84ea-8564cbf50ebc&s=0&hr=t&u=c4fb084a-b33a-46fe-904b-351b592a4b0f&is=IDENTIFIED&rs=0,t","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"xhr","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"NS_BINDING_ABORTED","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0 B","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0 ms","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"200","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"GET","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app.staging.jiminny.com","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ai-reports","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"document","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"html","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"service worker","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"16.67 kB","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0 ms","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"200","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"GET","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
9119530695416450857
|
-7846020823674916114
|
visual_change
|
accessibility
|
NULL
|
JY-20543 add AJ reports User pilot tracking by Lak JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Console Home | Console Home | us-east-2
Console Home | Console Home | us-east-2
SecurityGroup | EC2 | us-east-2
SecurityGroup | EC2 | us-east-2
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jiminny
Jiminny
Close tab
Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf
Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
CloudWatch | us-east-2
CloudWatch | us-east-2
New Tab
New Tab
CloudWatch | us-east-2
CloudWatch | us-east-2
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
JY-18909-automated-reports-ask-jiminny ■ 869720
28
28
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
No reports have been created yet
You are currently impersonating Nikolay Yankov
Clear
Filter URLs
Pause/Resume recording network log
New Request
Search
Request Blocking
Disable Cache
Disable Cache
No Throttling
Network Settings
All
HTML
CSS
JS
XHR
Fonts
Images
Media
WS
Other
Status
Status
Method
Method
Domain
Domain
File
File
Initiator
Initiator
Type
Type
Transferred
Transferred
Size
Size
0 ms 2.56 s
0 ms
2.56 s
POST
jmny.report-uri.com
reportOnly
csp
plain
NS_BINDING_ABORTED
0 B
13 ms
POST
r.logr-in.com
i?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7d1d-91e5-1c598b541c05&t=14f86387-75a7-4913-84ea-8564cbf50ebc&s=0&hr=t&u=c4fb084a-b33a-46fe-904b-351b592a4b0f&is=IDENTIFIED&rs=0,t
xhr
NS_BINDING_ABORTED
0 B
0 ms
200
GET
app.staging.jiminny.com
ai-reports
document
html
service worker
16.67 kB
0 ms
200
GET...
|
10818
|
|
65925
|
1474
|
6
|
2026-04-21T13:15:31.393295+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776777331393_m2.jpg...
|
PhpStorm
|
faVsco.js – AutomatedReportsRepository.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormFV faVsco.jsVIewINavigarecodeLaravel#11894 PhostormFV faVsco.jsVIewINavigarecodeLaravel#11894 on JY-18909-automated-reports-askWindowProledeyservice.gnp© AiPromptRepository.php© Field.php© AskJiminnyReportActivityService.php© ASKAnytIngkepository.ongAutomateakeporskepository.on:calllmponkepository.onp©TrackProviderinstalledevent.phpC UserPilotActivityListener.php© ActivityLogged.php©CoachingFeedbackRepository.ph|c cim.emolateriterkeposicorv.one© CrmTemplateRepository.php© RequestGenerateAskJiminnyReportJobTest.php(C) RequestGenerateReportJob.php(c) AutomatedReportResult.phgC) AutomatedReport.phpc) crmTemplateRunRepositorv.php© DeviceRepository.phpQ- whereHasxP Cc W .*T.T:© ElasticActivityRepository.phpclass Aucomacedkeporcskeposicory©EmailMessageRepository.phpc) GenericAiPromptRepositorv.php© GroupRepository.phpL usdgesCnoox=mailBatchReoositorv.onopublic function countUserReports(User $user): int©InboxRepository.php© InvitationRepository.php©JobRepository.php© LanguageRepository.php© MomentRepository.php276return AutomatedReportResult: :query()->whereNotNull( colur'generated_at')->whereNotNul1/d colum'sent_at')->whereHas( relation: 'report', fn (Builder $q) => $this->appLyUserAccessScope($q, $user))->count();© NotificationRepository.php©ParticipantRepository.php278©ParticipantSpeechRepository.php©ParticipantStatsRepository.php©PlaybookCategoryRepository.php* Restrict a query on the automated reports table to reports the given user is allowed to see.© PlaybookRepository.php© PlaylistActivityRepository.phpPlaylistRepository.php© PlaylistShareRepository.php* Marches the customer-racino audzence.- expLicit user recipzents (recipzents.users)- the report creator (Ask Jiminny reports)- members of anu of the report's qroups ASk Jiminnu reports© QuestionRepository.php© RoleChangeEventRepository.php© RoleRepository.php© SearchRepository.php* Jaminnu internal reczozents 7zminnu reczozents.users) qre intentzonauu excuudedhere; they receive the email but should not see reports in the customer list.© SnapshotRepository.php© SocialAccountRepository.phporivate function aoplvuserAccessScooe(Builder Sauery. User Suser): voidc stagerenositorv.onr© SubscriptionSetRepository.phpLocal Changesv Changes 12 filesE .env.local app© ActivityController.php app/Http/Controllers/APIc) AutomatedReportsRepositorv.oho app/Repositories@ AutomatedReportsRepositorvTest.pho tests/Unit/Renositories©JiminnyDebugCommand.php app/Console/Commandsphp l0ddina.ohd confidSide-by-side viewerDo not ignore+Highlight words → X13 t?8724fdb09 app/Repositories/AutomatedReportsRepository.php->whereNotNulL('generated_at')->whereNotNull('sent at')ction ($a) use (Suser) {So->where('team_id'. susen->aetteamido0l->where.isoncontains@recinients-susenst Susen->aettdionr© PlaybackService.php app/Services(C) RequestGenerateAsk.JiminnvReoort.lob.oho aoo.lobs/AutomatedReoorts->countOb© RequestGenerateAskJiminnyReportJobTest.php tests/Unit/Jobs/AutomatedRel@ SvncTolntercom.pho app/.Jobs/Teamc) UcerAutomatedPenortcController nhn ann/Hittn/Controllerc/AP|/UlcerAutomatepho weh nhn routes* Get report IDs for a specific team>Unversioned Files 11 filesTests ignored: 4, passed: 17 (5 minutes ago)100% SzTue 21 Apr 16:15:31UAutomatedReportsRepositoryTestvAutomated ReportsCalendar Multi-Domal+0 ..116 V9 11 л V 164-166=167-274175F175177_178181T182183184—186—187E custom.logE laravel.log4 SF [iminny@localhost] XA console [PROD]A console [EU]© ReportNotGenerated.phpA HS_local [jiminny@localhost]# report-not-generated.blade.php© SendReportNotGeneratedMailJob.phpconsole [STAGING]D6 9Tx: AutovPlaygroundd8 jiminny~SELECT * FROM activity_searches where id = 1982; # 1981018 A14 X2 24 A VSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;SELECT * FROM automated_reports where id = 68;UPDATE automated_reports set playbook categories = NULL where id = 68;SELECT * FROM automated report results where id = 275;seltll * rkon aucomaced reporus order by 10 deschSELECT * FROM automated_report_results order by id desc;select * trom accivicy searches where user 10 = 1451select * fromSELECT * FROM qrouDs WHERE 10 = 1459sELEC * FROM usersWHERE arOUD 10 = 1439:1select * from permissions: # 15:select * from roles;select * from permission roleselect * from teams where id = 1;select * from groups g JOIN playbooks p 1.n<->1: on g.playbook_id = p.id where g.teolect * From arnuns whenp 1d = 28•lect * from playbooks where team id = 1:select * from playbooks where id = 179;select * from playbook_categories where id = 1391;select * from users where id = 143:select * from crm_profiles where user_id = 143;select * from activities where crm_configuration_id = 39 and type = 'conference'=and crm_provider_id IS NOT NULL ORDER by id desc;select * from activities where id = 422003; # 00U0400000pB6fpMACSELECT ar.i.Current versionCascadeReview Planhat IntearD salSELECTu.ld AS user 1d,u, name.wLOWER(SUBSTRING_ INDEX(c. calendar_provider_id, '@', -1)) AS calendar_domain,c.provider.FROM users uJOIN calendars c ON c.user_id = u.idWHERE u. team_id = iteam_idAND u.deleted at IS NULLAND c.status =AND c.calendar_provider_id LIKE '40%'ORDER BY calendar_domain, u.name;Notes• calendars.status = 'active' excludes deleted/hidden/refresh-required calendars. Drop that filter if you want to include disconnected ones• Google users can have multiple calendars (primary + shared/resource), so the same user may appear with different calendar_provider_iddomains that aren't really "their" domain (e a., shared resource calendars). If vou want to reduce that noise, add a filter like AND c.calendar onovider_id = u.email or join only on the user's primary calendar - but you'll miss legitimate multi-domain cases. For an initial audit, thecurrent query is the most inclusive.•compare the result agalnst team domains to see it any alscovered comain is not rec istered (that's the real fisk sumacen salSELECTtid AS team dhLOWER (SUBSTRING INDEX(c.calendar provider id. 'a'. -1)) AS calendar domainFROM teams tJOIN users u ON u. team id = t.id AND u.deleted at IS NULL+ <>Code Claude Opus 4.7 Medium3 differences->whereNotNull('generated at')->whereNotNull('sent_at')->whereHas('report', fn (Builder $q) => Sthis->applyUserAccessScope($d, $user))->counTo** Restrict a queru on the automated revorts table to renorts the qrven user is allowed to see.* Matches the customer-facina audience:- explicit user recipients (recipients.users)W Windsurf Teams 276:23 (8 chars) UTF-8f?4 spaces...
|
NULL
|
9119188390008329768
|
NULL
|
click
|
ocr
|
NULL
|
PhostormFV faVsco.jsVIewINavigarecodeLaravel#11894 PhostormFV faVsco.jsVIewINavigarecodeLaravel#11894 on JY-18909-automated-reports-askWindowProledeyservice.gnp© AiPromptRepository.php© Field.php© AskJiminnyReportActivityService.php© ASKAnytIngkepository.ongAutomateakeporskepository.on:calllmponkepository.onp©TrackProviderinstalledevent.phpC UserPilotActivityListener.php© ActivityLogged.php©CoachingFeedbackRepository.ph|c cim.emolateriterkeposicorv.one© CrmTemplateRepository.php© RequestGenerateAskJiminnyReportJobTest.php(C) RequestGenerateReportJob.php(c) AutomatedReportResult.phgC) AutomatedReport.phpc) crmTemplateRunRepositorv.php© DeviceRepository.phpQ- whereHasxP Cc W .*T.T:© ElasticActivityRepository.phpclass Aucomacedkeporcskeposicory©EmailMessageRepository.phpc) GenericAiPromptRepositorv.php© GroupRepository.phpL usdgesCnoox=mailBatchReoositorv.onopublic function countUserReports(User $user): int©InboxRepository.php© InvitationRepository.php©JobRepository.php© LanguageRepository.php© MomentRepository.php276return AutomatedReportResult: :query()->whereNotNull( colur'generated_at')->whereNotNul1/d colum'sent_at')->whereHas( relation: 'report', fn (Builder $q) => $this->appLyUserAccessScope($q, $user))->count();© NotificationRepository.php©ParticipantRepository.php278©ParticipantSpeechRepository.php©ParticipantStatsRepository.php©PlaybookCategoryRepository.php* Restrict a query on the automated reports table to reports the given user is allowed to see.© PlaybookRepository.php© PlaylistActivityRepository.phpPlaylistRepository.php© PlaylistShareRepository.php* Marches the customer-racino audzence.- expLicit user recipzents (recipzents.users)- the report creator (Ask Jiminny reports)- members of anu of the report's qroups ASk Jiminnu reports© QuestionRepository.php© RoleChangeEventRepository.php© RoleRepository.php© SearchRepository.php* Jaminnu internal reczozents 7zminnu reczozents.users) qre intentzonauu excuudedhere; they receive the email but should not see reports in the customer list.© SnapshotRepository.php© SocialAccountRepository.phporivate function aoplvuserAccessScooe(Builder Sauery. User Suser): voidc stagerenositorv.onr© SubscriptionSetRepository.phpLocal Changesv Changes 12 filesE .env.local app© ActivityController.php app/Http/Controllers/APIc) AutomatedReportsRepositorv.oho app/Repositories@ AutomatedReportsRepositorvTest.pho tests/Unit/Renositories©JiminnyDebugCommand.php app/Console/Commandsphp l0ddina.ohd confidSide-by-side viewerDo not ignore+Highlight words → X13 t?8724fdb09 app/Repositories/AutomatedReportsRepository.php->whereNotNulL('generated_at')->whereNotNull('sent at')ction ($a) use (Suser) {So->where('team_id'. susen->aetteamido0l->where.isoncontains@recinients-susenst Susen->aettdionr© PlaybackService.php app/Services(C) RequestGenerateAsk.JiminnvReoort.lob.oho aoo.lobs/AutomatedReoorts->countOb© RequestGenerateAskJiminnyReportJobTest.php tests/Unit/Jobs/AutomatedRel@ SvncTolntercom.pho app/.Jobs/Teamc) UcerAutomatedPenortcController nhn ann/Hittn/Controllerc/AP|/UlcerAutomatepho weh nhn routes* Get report IDs for a specific team>Unversioned Files 11 filesTests ignored: 4, passed: 17 (5 minutes ago)100% SzTue 21 Apr 16:15:31UAutomatedReportsRepositoryTestvAutomated ReportsCalendar Multi-Domal+0 ..116 V9 11 л V 164-166=167-274175F175177_178181T182183184—186—187E custom.logE laravel.log4 SF [iminny@localhost] XA console [PROD]A console [EU]© ReportNotGenerated.phpA HS_local [jiminny@localhost]# report-not-generated.blade.php© SendReportNotGeneratedMailJob.phpconsole [STAGING]D6 9Tx: AutovPlaygroundd8 jiminny~SELECT * FROM activity_searches where id = 1982; # 1981018 A14 X2 24 A VSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;SELECT * FROM automated_reports where id = 68;UPDATE automated_reports set playbook categories = NULL where id = 68;SELECT * FROM automated report results where id = 275;seltll * rkon aucomaced reporus order by 10 deschSELECT * FROM automated_report_results order by id desc;select * trom accivicy searches where user 10 = 1451select * fromSELECT * FROM qrouDs WHERE 10 = 1459sELEC * FROM usersWHERE arOUD 10 = 1439:1select * from permissions: # 15:select * from roles;select * from permission roleselect * from teams where id = 1;select * from groups g JOIN playbooks p 1.n<->1: on g.playbook_id = p.id where g.teolect * From arnuns whenp 1d = 28•lect * from playbooks where team id = 1:select * from playbooks where id = 179;select * from playbook_categories where id = 1391;select * from users where id = 143:select * from crm_profiles where user_id = 143;select * from activities where crm_configuration_id = 39 and type = 'conference'=and crm_provider_id IS NOT NULL ORDER by id desc;select * from activities where id = 422003; # 00U0400000pB6fpMACSELECT ar.i.Current versionCascadeReview Planhat IntearD salSELECTu.ld AS user 1d,u, name.wLOWER(SUBSTRING_ INDEX(c. calendar_provider_id, '@', -1)) AS calendar_domain,c.provider.FROM users uJOIN calendars c ON c.user_id = u.idWHERE u. team_id = iteam_idAND u.deleted at IS NULLAND c.status =AND c.calendar_provider_id LIKE '40%'ORDER BY calendar_domain, u.name;Notes• calendars.status = 'active' excludes deleted/hidden/refresh-required calendars. Drop that filter if you want to include disconnected ones• Google users can have multiple calendars (primary + shared/resource), so the same user may appear with different calendar_provider_iddomains that aren't really "their" domain (e a., shared resource calendars). If vou want to reduce that noise, add a filter like AND c.calendar onovider_id = u.email or join only on the user's primary calendar - but you'll miss legitimate multi-domain cases. For an initial audit, thecurrent query is the most inclusive.•compare the result agalnst team domains to see it any alscovered comain is not rec istered (that's the real fisk sumacen salSELECTtid AS team dhLOWER (SUBSTRING INDEX(c.calendar provider id. 'a'. -1)) AS calendar domainFROM teams tJOIN users u ON u. team id = t.id AND u.deleted at IS NULL+ <>Code Claude Opus 4.7 Medium3 differences->whereNotNull('generated at')->whereNotNull('sent_at')->whereHas('report', fn (Builder $q) => Sthis->applyUserAccessScope($d, $user))->counTo** Restrict a queru on the automated revorts table to renorts the qrven user is allowed to see.* Matches the customer-facina audience:- explicit user recipients (recipients.users)W Windsurf Teams 276:23 (8 chars) UTF-8f?4 spaces...
|
65923
|
|
24835
|
536
|
53
|
2026-04-15T12:34:06.157192+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776256446157_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
22614510020019/30Dark Age--Villager Created-Game P 22614510020019/30Dark Age--Villager Created-Game Paused (P)RepairOrder your villager(s) to repair a building,ship, or siege weapon to its full HP. Therepair cost is deducted from your stockpile.(Hotkey: E)Villagerkovalfklukas (Britons)1 kovaliklukas: 464/4643 Huascár: 437/4375 Magnus Olafsson: 416/4164 Louis VI: 414/4146 László I: 411/4112 Rajyapala: 400/4008 Almish Yiltawar: 394/3947 Maximilian of Habsburg: 390/390...
|
NULL
|
9119127661856746109
|
NULL
|
click
|
ocr
|
NULL
|
22614510020019/30Dark Age--Villager Created-Game P 22614510020019/30Dark Age--Villager Created-Game Paused (P)RepairOrder your villager(s) to repair a building,ship, or siege weapon to its full HP. Therepair cost is deducted from your stockpile.(Hotkey: E)Villagerkovalfklukas (Britons)1 kovaliklukas: 464/4643 Huascár: 437/4375 Magnus Olafsson: 416/4164 Louis VI: 414/4146 László I: 411/4112 Rajyapala: 400/4008 Almish Yiltawar: 394/3947 Maximilian of Habsburg: 390/390...
|
NULL
|
|
6202
|
112
|
80
|
2026-04-13T13:43:33.733878+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-13/1776 /Users/lukas/.screenpipe/data/data/2026-04-13/1776087813733_m1.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
OrionFileEditViewHistoryBookmarksToolsDevelopWindo OrionFileEditViewHistoryBookmarksToolsDevelopWindowHelp•Activity MonitorAll ProcessesProcess NameWardaSynthesizer_arm64cameracapturedMacinTalkAUSPvoicebankingddeletedcom.apple.geodtrialdASConfigurationSubscriberASConfigurationSubscriberAppSSODaemonIsdappstoredLegacyProfilesSubscriberzshScreenSharingSubscribergamepolicydmediaremotedzshPasscodeSettingsSubscriberInteractiveLegacyProfilesSubscriberSoftwareUpdateSubscriberaudiomxdSoftwareUpdateSubscriberInteractiveLegacyProfilesSubscriberzshmapssyncdAccountSubscriberzshMEMORY PRESSURElthlMem..v,u mo6,0 MB6,0 MB6,0 MB6,0 MB6,0 MB6,0 MB6,0 MB6,0 MB6,0 MB5,9 MB5,9 MB5,9 MB5,9 MB5,8 MB5,8 MB5,8 MB5,8 MB5,8 MB5,8 MB5,8 MB5,8 MB5,8 MB5,7 MB5,7 MB5,7 MB5,7 MB5,6 MB5,6 MBPhysical Memory:Memory Used:Cached Files:Swap Used:100% [CPUMemoryEnergyThreads2262Ports20U65627072694588313713366174312234872522228283156262522832522PID908105499081690817906708915088968921199212390761687906849209551509207658534350119211192074921101075921179207248918914892112489416,00 GB12,98 GB3,20 GB1,38 GBApp Memory:Wired Memory:Compressed:Mon 13 Apr 16:43:33DiskNetworkUserrunaslukas_cmiodalassistlukaslukaslukas_locationdlukas_rmdlukasrootlukas_appstorelukaslukaslukasrootrootlukaslukaslukas_rmd_audiomxdlukas_rmdlukaslukas_rmdlukas5,10 GB2,57 GB4,53 GB...
|
NULL
|
9118968463590310966
|
NULL
|
visual_change
|
ocr
|
NULL
|
OrionFileEditViewHistoryBookmarksToolsDevelopWindo OrionFileEditViewHistoryBookmarksToolsDevelopWindowHelp•Activity MonitorAll ProcessesProcess NameWardaSynthesizer_arm64cameracapturedMacinTalkAUSPvoicebankingddeletedcom.apple.geodtrialdASConfigurationSubscriberASConfigurationSubscriberAppSSODaemonIsdappstoredLegacyProfilesSubscriberzshScreenSharingSubscribergamepolicydmediaremotedzshPasscodeSettingsSubscriberInteractiveLegacyProfilesSubscriberSoftwareUpdateSubscriberaudiomxdSoftwareUpdateSubscriberInteractiveLegacyProfilesSubscriberzshmapssyncdAccountSubscriberzshMEMORY PRESSURElthlMem..v,u mo6,0 MB6,0 MB6,0 MB6,0 MB6,0 MB6,0 MB6,0 MB6,0 MB6,0 MB5,9 MB5,9 MB5,9 MB5,9 MB5,8 MB5,8 MB5,8 MB5,8 MB5,8 MB5,8 MB5,8 MB5,8 MB5,8 MB5,7 MB5,7 MB5,7 MB5,7 MB5,6 MB5,6 MBPhysical Memory:Memory Used:Cached Files:Swap Used:100% [CPUMemoryEnergyThreads2262Ports20U65627072694588313713366174312234872522228283156262522832522PID908105499081690817906708915088968921199212390761687906849209551509207658534350119211192074921101075921179207248918914892112489416,00 GB12,98 GB3,20 GB1,38 GBApp Memory:Wired Memory:Compressed:Mon 13 Apr 16:43:33DiskNetworkUserrunaslukas_cmiodalassistlukaslukaslukas_locationdlukas_rmdlukasrootlukas_appstorelukaslukaslukasrootrootlukaslukaslukas_rmd_audiomxdlukas_rmdlukaslukas_rmdlukas5,10 GB2,57 GB4,53 GB...
|
6201
|
|
21010
|
463
|
43
|
2026-04-15T09:45:30.588482+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776246330588_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
BoosteroidHomeDMs++Jiminny ... ~# curiosity_laD# e 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:30CPUMemoryDiskThreads3621268874251026152529242425262523152113282315272459EnergyPorts59418 563125121172612418 908166250186127242120122122123124120174327721261181 789207124119718PID73364407429741466480144203084273372146734186336713801935480352763583143652430164817326548114850910358333689848786051956138728316049116,00 GB14,11 GB <1,84 GB4,69 GBApp Memory:Wired Memory:Compressed:NetworkUserlukas_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas7,92 GB2,97 GB2,63 GB...
|
NULL
|
9118890172869814542
|
NULL
|
visual_change
|
ocr
|
NULL
|
BoosteroidHomeDMs++Jiminny ... ~# curiosity_laD# e 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:30CPUMemoryDiskThreads3621268874251026152529242425262523152113282315272459EnergyPorts59418 563125121172612418 908166250186127242120122122123124120174327721261181 789207124119718PID73364407429741466480144203084273372146734186336713801935480352763583143652430164817326548114850910358333689848786051956138728316049116,00 GB14,11 GB <1,84 GB4,69 GBApp Memory:Wired Memory:Compressed:NetworkUserlukas_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas7,92 GB2,97 GB2,63 GB...
|
21009
|
|
73498
|
1812
|
10
|
2026-04-23T07:48:54.462955+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-23/1776 /Users/lukas/.screenpipe/data/data/2026-04-23/1776930534462_m1.jpg...
|
iTerm2
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Notion CalendarEditViewWindowHelp‹ > 0 • { User Notion CalendarEditViewWindowHelp‹ > 0 • { Userpilot Introducti... in 42m ≥• =@ meet.google.com/landing?authuser=lukas.kovalik@jiminny.com100% & 8 Thu 23 Apr 10:48:56= [1 Google Meet10:48 AM • Thu, Apr 23+MeetingsD* CallsSecure video conferencingfor everyoneConnect, collaborate, and celebrate from anywhere withGoogle MeetEx New meetingEnter a code or nicknameJoin|11:30 AMUserpilot Introduction3:00 PMSupport Daily5:30 PMLukas/Stefka 121From your Google Calendar account: [EMAIL] more about Google Meet...
|
NULL
|
9118264802502057211
|
NULL
|
click
|
ocr
|
NULL
|
Notion CalendarEditViewWindowHelp‹ > 0 • { User Notion CalendarEditViewWindowHelp‹ > 0 • { Userpilot Introducti... in 42m ≥• =@ meet.google.com/landing?authuser=lukas.kovalik@jiminny.com100% & 8 Thu 23 Apr 10:48:56= [1 Google Meet10:48 AM • Thu, Apr 23+MeetingsD* CallsSecure video conferencingfor everyoneConnect, collaborate, and celebrate from anywhere withGoogle MeetEx New meetingEnter a code or nicknameJoin|11:30 AMUserpilot Introduction3:00 PMSupport Daily5:30 PMLukas/Stefka 121From your Google Calendar account: [EMAIL] more about Google Meet...
|
NULL
|
|
67291
|
1515
|
18
|
2026-04-21T15:31:20.989810+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776785480989_m2.jpg...
|
Firefox
|
Jiminny — Work
|
True
|
app.staging.jiminny.com/kiosk/automated-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 - Engineering - Confluence
Edit - 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 ■ 874667
75
75
Kiosk
Organizations
Organizations
Setup Account
Setup Account
Users
Users
Activities
Activities
Automated Reports
Automated Reports
Mobile version
Mobile version
Automated Reports
Automated Reports
Create
ORGANIZATION
Select Select
Select
Select
TEAM
Select Select
Select
Select
REPORT TYPE
Select Select
Select
Select
STATUS
Select All
Select
All
ORGANIZATION
TYPE
TEAMS
FREQUENCY
RECIPIENTS
CREATOR
CREATED AT
Hubspot Staging Renamed
Exec Summary
Weekly
20/03/2026
Hubspot Staging Renamed
Exec Summary
Sales Team
Weekly
17/12/2025
Jiminny Staging
Exec Summary
Engineering, Client Success, Client Success - ENT
One-Off
21/04/2026
Jiminny Staging
Exec Summary
One-Off
20/04/2026
Jiminny Staging
Exec Summary
One-Off
15/04/2026
Jiminny Staging
Exec Summary
Engineering
One-Off
31/03/2026
Jiminny Staging
Exec Summary
Weekly
31/03/2026
Jiminny Staging
Coaching Profiles
Weekly
31/03/2026
Jiminny Staging
Exec Summary
One-Off
31/03/2026
Jiminny Staging
Exec Summary
One-Off
27/03/2026
Jiminny Staging
Exec Summary
One-Off
26/03/2026
Jiminny Staging
Exec Summary
One-Off
26/03/2026
Jiminny Staging
Product Feedback
One-Off
27/02/2026
Jiminny Staging
Product Feedback
UK Sales, Engineering
One-Off
27/02/2026
Jiminny Staging
Exec Summary
One-Off
26/02/2026
Create Report
Save
1. Organization details
1. Organization details
ORGANIZATION
Select Jiminny Staging
Select
Jiminny Staging
*
TEAM
Client Success × Engineering × Enablement × Select
Client Success
×
Engineering
×
Enablement
×
Select
2. Report settings
2. Report settings
REPORT TYPE
Select Exec Summary
Select
Exec Summary
*
EXPORT AS
PDF × Select option
PDF
×
Select option
*
CUSTOM REPORT NAME
Test Automated Reports
Clear
FREQUENCY
Select Weekly
Select
Weekly
*
3. Report parameters
3. Report parameters
DEAL STAGE AT CALL
Closed Lost
Select
CURRENT DEAL STAGE
Select Select
Select
Select
DEAL VALUE MIN
DEAL VALUE MAX
ACTIVITY TYPE
Select Select
Select
Select
CALL TYPE
Conference × Dialer × Select option
Conference
×
Dialer
×
Select option
*
CALL DURATION MIN
CALL DURATION MAX
RECIPIENTS
Start typing to search users Start typing to search users
Start typing to search users
Start typing to search users
JIMINNY RECIPIENTS
Start typing to search users Start typing to search users
Start typing to search users
Start typing to search users
SPECIAL REQUIREMENTS
SPECIAL REQUIREMENTS
The best reports contain between 20-50 activities. For best case scenario estimate activities count from the button bellow an make amends.
Estimate activities count
Open Intercom Messenger
Clear All Apply
Clear All
Apply
Clear
Filter URLs
Pause/Resume recording network log
New Request
Search
Request Blocking
Disable Cache
Disable Cache
No Throttling
Network Settings
All
HTML
CSS
JS
XHR
Fonts
Images
Media
WS
Other
Status
Status
Method
Method
Domain
Domain
File
File
Initiator
Initiator
Type
Type
Transferred
Transferred
Size
Size
0 ms
0 ms
POST
r.logr-in.com
i?a=ponxaf/platform-staging&r=6-019db076-935d-752f-a86a-815df5ba66f7&t=acafc3b4-a7db-4547-8fb4-64f393c9c62e&s=0&hr=t&u=c4fb084a-b33a-46fe-904b-351b592a4b0f&is=IDENTIFIED&rs=0,t
xhr
200...
|
[{"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 - 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 - Engineering - Confluence","depth":5,"bounds":{"left":0.013297873,"top":0.62968874,"width":0.054853722,"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 ■ 874667","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":"AXStaticText","text":"Kiosk","depth":14,"bounds":{"left":0.107546546,"top":0.06384677,"width":0.016954787,"height":0.019553073},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Organizations","depth":14,"bounds":{"left":0.1008976,"top":0.08938547,"width":0.09142287,"height":0.031923383},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Organizations","depth":15,"bounds":{"left":0.107546546,"top":0.0981644,"width":0.031416222,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Setup Account","depth":14,"bounds":{"left":0.1008976,"top":0.121308856,"width":0.09142287,"height":0.031923383},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Setup Account","depth":15,"bounds":{"left":0.107546546,"top":0.1300878,"width":0.032413565,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Users","depth":14,"bounds":{"left":0.1008976,"top":0.15323225,"width":0.09142287,"height":0.031923383},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Users","depth":15,"bounds":{"left":0.107546546,"top":0.16201118,"width":0.012799202,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Activities","depth":14,"bounds":{"left":0.1008976,"top":0.18515563,"width":0.09142287,"height":0.031923383},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Activities","depth":15,"bounds":{"left":0.107546546,"top":0.19393456,"width":0.021110373,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Automated Reports","depth":14,"bounds":{"left":0.1008976,"top":0.21707901,"width":0.09142287,"height":0.031923383},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Automated Reports","depth":15,"bounds":{"left":0.107546546,"top":0.22585794,"width":0.04488032,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Mobile version","depth":14,"bounds":{"left":0.1008976,"top":0.2490024,"width":0.09142287,"height":0.031923383},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Mobile version","depth":15,"bounds":{"left":0.107546546,"top":0.25778133,"width":0.032912236,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Automated Reports","depth":13,"bounds":{"left":0.19896941,"top":0.070231445,"width":0.053690158,"height":0.017557861},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Automated Reports","depth":14,"bounds":{"left":0.19896941,"top":0.070231445,"width":0.053690158,"height":0.017557861},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create","depth":13,"bounds":{"left":0.66422874,"top":0.06464485,"width":0.023271276,"height":0.028731046},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"ORGANIZATION","depth":15,"bounds":{"left":0.20329122,"top":0.11572227,"width":0.025764627,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select Select","depth":13,"bounds":{"left":0.20329122,"top":0.12529927,"width":0.06615692,"height":0.019952115},"value":"Select Select","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":14,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Select","depth":15,"bounds":{"left":0.20329122,"top":0.12889066,"width":0.011801862,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"TEAM","depth":15,"bounds":{"left":0.27742687,"top":0.11572227,"width":0.009474734,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select Select","depth":13,"bounds":{"left":0.27742687,"top":0.12529927,"width":0.06615692,"height":0.019952115},"value":"Select Select","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":14,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Select","depth":15,"bounds":{"left":0.27742687,"top":0.12889066,"width":0.011801862,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"REPORT TYPE","depth":15,"bounds":{"left":0.3515625,"top":0.11572227,"width":0.021941489,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select Select","depth":13,"bounds":{"left":0.3515625,"top":0.12529927,"width":0.06615692,"height":0.019952115},"value":"Select Select","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":14,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Select","depth":15,"bounds":{"left":0.3515625,"top":0.12889066,"width":0.011801862,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"STATUS","depth":15,"bounds":{"left":0.42569813,"top":0.11572227,"width":0.011968086,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select All","depth":13,"bounds":{"left":0.42569813,"top":0.12529927,"width":0.06615692,"height":0.019952115},"value":"Select All","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":14,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"All","depth":15,"bounds":{"left":0.42569813,"top":0.12889066,"width":0.005319149,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ORGANIZATION","depth":15,"bounds":{"left":0.20162898,"top":0.1819633,"width":0.03357713,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"TYPE","depth":15,"bounds":{"left":0.26263297,"top":0.1819633,"width":0.010804521,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"TEAMS","depth":15,"bounds":{"left":0.3238032,"top":0.1819633,"width":0.01462766,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"FREQUENCY","depth":15,"bounds":{"left":0.38480717,"top":0.1819633,"width":0.026263298,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"RECIPIENTS","depth":15,"bounds":{"left":0.44581118,"top":0.1819633,"width":0.024767287,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"CREATOR","depth":15,"bounds":{"left":0.5069814,"top":0.1819633,"width":0.019946808,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"CREATED AT","depth":15,"bounds":{"left":0.56798536,"top":0.1819633,"width":0.025930852,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Hubspot Staging Renamed","depth":17,"bounds":{"left":0.20162898,"top":0.22426178,"width":0.051695477,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Exec Summary","depth":17,"bounds":{"left":0.26263297,"top":0.22426178,"width":0.028590426,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Weekly","depth":17,"bounds":{"left":0.38480717,"top":0.22426178,"width":0.014960106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"20/03/2026","depth":17,"bounds":{"left":0.56798536,"top":0.22426178,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Hubspot Staging Renamed","depth":17,"bounds":{"left":0.20162898,"top":0.26296887,"width":0.051695477,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Exec Summary","depth":17,"bounds":{"left":0.26263297,"top":0.26296887,"width":0.028590426,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Sales Team","depth":17,"bounds":{"left":0.3238032,"top":0.26296887,"width":0.021276595,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Weekly","depth":17,"bounds":{"left":0.38480717,"top":0.26296887,"width":0.014960106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"17/12/2025","depth":17,"bounds":{"left":0.56798536,"top":0.26296887,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Staging","depth":17,"bounds":{"left":0.20162898,"top":0.30885875,"width":0.030585106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Exec Summary","depth":17,"bounds":{"left":0.26263297,"top":0.30885875,"width":0.028590426,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Engineering, Client Success, Client Success - ENT","depth":17,"bounds":{"left":0.3238032,"top":0.30127692,"width":0.05418883,"height":0.028332002},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"One-Off","depth":17,"bounds":{"left":0.38480717,"top":0.30885875,"width":0.01662234,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"21/04/2026","depth":17,"bounds":{"left":0.56798536,"top":0.30885875,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Staging","depth":17,"bounds":{"left":0.20162898,"top":0.35514766,"width":0.030585106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Exec Summary","depth":17,"bounds":{"left":0.26263297,"top":0.35514766,"width":0.028590426,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"One-Off","depth":17,"bounds":{"left":0.38480717,"top":0.35514766,"width":0.01662234,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"20/04/2026","depth":17,"bounds":{"left":0.56798536,"top":0.35514766,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Staging","depth":17,"bounds":{"left":0.20162898,"top":0.3934557,"width":0.030585106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Exec Summary","depth":17,"bounds":{"left":0.26263297,"top":0.3934557,"width":0.028590426,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"One-Off","depth":17,"bounds":{"left":0.38480717,"top":0.3934557,"width":0.01662234,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"15/04/2026","depth":17,"bounds":{"left":0.56798536,"top":0.3934557,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Staging","depth":17,"bounds":{"left":0.20162898,"top":0.43176377,"width":0.030585106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Exec Summary","depth":17,"bounds":{"left":0.26263297,"top":0.43176377,"width":0.028590426,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Engineering","depth":17,"bounds":{"left":0.3238032,"top":0.43176377,"width":0.0234375,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"One-Off","depth":17,"bounds":{"left":0.38480717,"top":0.43176377,"width":0.01662234,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"31/03/2026","depth":17,"bounds":{"left":0.56798536,"top":0.43176377,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Staging","depth":17,"bounds":{"left":0.20162898,"top":0.47047088,"width":0.030585106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Exec Summary","depth":17,"bounds":{"left":0.26263297,"top":0.47047088,"width":0.028590426,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Weekly","depth":17,"bounds":{"left":0.38480717,"top":0.47047088,"width":0.014960106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"31/03/2026","depth":17,"bounds":{"left":0.56798536,"top":0.47047088,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Staging","depth":17,"bounds":{"left":0.20162898,"top":0.5087789,"width":0.030585106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Coaching Profiles","depth":17,"bounds":{"left":0.26263297,"top":0.5087789,"width":0.034408245,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Weekly","depth":17,"bounds":{"left":0.38480717,"top":0.5087789,"width":0.014960106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"31/03/2026","depth":17,"bounds":{"left":0.56798536,"top":0.5087789,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Staging","depth":17,"bounds":{"left":0.20162898,"top":0.547087,"width":0.030585106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Exec Summary","depth":17,"bounds":{"left":0.26263297,"top":0.547087,"width":0.028590426,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"One-Off","depth":17,"bounds":{"left":0.38480717,"top":0.547087,"width":0.01662234,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"31/03/2026","depth":17,"bounds":{"left":0.56798536,"top":0.547087,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Staging","depth":17,"bounds":{"left":0.20162898,"top":0.5857941,"width":0.030585106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Exec Summary","depth":17,"bounds":{"left":0.26263297,"top":0.5857941,"width":0.028590426,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"One-Off","depth":17,"bounds":{"left":0.38480717,"top":0.5857941,"width":0.01662234,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"27/03/2026","depth":17,"bounds":{"left":0.56798536,"top":0.5857941,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Staging","depth":17,"bounds":{"left":0.20162898,"top":0.6241022,"width":0.030585106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Exec Summary","depth":17,"bounds":{"left":0.26263297,"top":0.6241022,"width":0.028590426,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"One-Off","depth":17,"bounds":{"left":0.38480717,"top":0.6241022,"width":0.01662234,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"26/03/2026","depth":17,"bounds":{"left":0.56798536,"top":0.6241022,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Staging","depth":17,"bounds":{"left":0.20162898,"top":0.6624102,"width":0.030585106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Exec Summary","depth":17,"bounds":{"left":0.26263297,"top":0.6624102,"width":0.028590426,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"One-Off","depth":17,"bounds":{"left":0.38480717,"top":0.6624102,"width":0.01662234,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"26/03/2026","depth":17,"bounds":{"left":0.56798536,"top":0.6624102,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Staging","depth":17,"bounds":{"left":0.20162898,"top":0.70111734,"width":0.030585106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Product Feedback","depth":17,"bounds":{"left":0.26263297,"top":0.70111734,"width":0.035405584,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"One-Off","depth":17,"bounds":{"left":0.38480717,"top":0.70111734,"width":0.01662234,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"27/02/2026","depth":17,"bounds":{"left":0.56798536,"top":0.70111734,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Staging","depth":17,"bounds":{"left":0.20162898,"top":0.73942536,"width":0.030585106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Product Feedback","depth":17,"bounds":{"left":0.26263297,"top":0.73942536,"width":0.035405584,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UK Sales, Engineering","depth":17,"bounds":{"left":0.3238032,"top":0.73942536,"width":0.042386968,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"One-Off","depth":17,"bounds":{"left":0.38480717,"top":0.73942536,"width":0.01662234,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"27/02/2026","depth":17,"bounds":{"left":0.56798536,"top":0.73942536,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Staging","depth":17,"bounds":{"left":0.20162898,"top":0.77773345,"width":0.030585106,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Exec Summary","depth":17,"bounds":{"left":0.26263297,"top":0.77773345,"width":0.028590426,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"One-Off","depth":17,"bounds":{"left":0.38480717,"top":0.77773345,"width":0.01662234,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"26/02/2026","depth":17,"bounds":{"left":0.56798536,"top":0.77773345,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Create Report","depth":14,"bounds":{"left":0.49468085,"top":0.06943336,"width":0.043550532,"height":0.019553073},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Save","depth":13,"bounds":{"left":0.654754,"top":0.06464485,"width":0.018783245,"height":0.028731046},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"1. Organization details","depth":12,"bounds":{"left":0.49468085,"top":0.12609737,"width":0.19414894,"height":0.031923383},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1. Organization details","depth":13,"bounds":{"left":0.49468085,"top":0.13248204,"width":0.054521278,"height":0.01556265},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ORGANIZATION","depth":14,"bounds":{"left":0.49900267,"top":0.16759777,"width":0.025764627,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select Jiminny Staging","depth":12,"bounds":{"left":0.49900267,"top":0.17717478,"width":0.09042553,"height":0.019952115},"value":"Select Jiminny Staging","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":13,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny Staging","depth":14,"bounds":{"left":0.49900267,"top":0.18076617,"width":0.030086435,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"*","depth":13,"bounds":{"left":0.58477396,"top":0.16360734,"width":0.0026595744,"height":0.019553073},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"TEAM","depth":14,"bounds":{"left":0.5980718,"top":0.16759777,"width":0.009474734,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Client Success × Engineering × Enablement × Select","depth":12,"bounds":{"left":0.5980718,"top":0.17717478,"width":0.09042553,"height":0.049481247},"value":"Client Success × Engineering × Enablement × Select","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client Success","depth":15,"bounds":{"left":0.60039896,"top":0.18475658,"width":0.029753989,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"×","depth":16,"bounds":{"left":0.63248,"top":0.18435754,"width":0.0026595744,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Engineering","depth":15,"bounds":{"left":0.60039896,"top":0.20550679,"width":0.024767287,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"×","depth":16,"bounds":{"left":0.6274933,"top":0.20510775,"width":0.0028257978,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Enablement","depth":15,"bounds":{"left":0.6384641,"top":0.20550679,"width":0.024933511,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"×","depth":16,"bounds":{"left":0.66572475,"top":0.20510775,"width":0.0028257978,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Select","depth":13,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"2. Report settings","depth":12,"bounds":{"left":0.49468085,"top":0.2386273,"width":0.19414894,"height":0.031923383},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2. Report settings","depth":13,"bounds":{"left":0.49468085,"top":0.24501197,"width":0.04255319,"height":0.01556265},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"REPORT TYPE","depth":14,"bounds":{"left":0.49900267,"top":0.2801277,"width":0.021941489,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select Exec Summary","depth":12,"bounds":{"left":0.49900267,"top":0.2897047,"width":0.09042553,"height":0.019952115},"value":"Select Exec Summary","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":13,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Exec Summary","depth":14,"bounds":{"left":0.49900267,"top":0.2932961,"width":0.028091755,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"*","depth":13,"bounds":{"left":0.58477396,"top":0.27613726,"width":0.0026595744,"height":0.019553073},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"EXPORT AS","depth":14,"bounds":{"left":0.5980718,"top":0.2801277,"width":0.017785905,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"PDF × Select option","depth":12,"bounds":{"left":0.5980718,"top":0.2897047,"width":0.09042553,"height":0.028731046},"value":"PDF × Select option","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PDF","depth":15,"bounds":{"left":0.60039896,"top":0.2972865,"width":0.009142287,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"×","depth":16,"bounds":{"left":0.6118683,"top":0.29688746,"width":0.0026595744,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Select option","depth":13,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"*","depth":13,"bounds":{"left":0.6838431,"top":0.27613726,"width":0.0026595744,"height":0.019553073},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"CUSTOM REPORT NAME","depth":14,"bounds":{"left":0.49900267,"top":0.34397447,"width":0.03856383,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Test Automated Reports","depth":13,"bounds":{"left":0.49900267,"top":0.35355148,"width":0.078457445,"height":0.019952115},"value":"Test Automated Reports","help_text":"","placeholder":"Enter custom name","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Clear","depth":13,"bounds":{"left":0.5774601,"top":0.35395053,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"FREQUENCY","depth":14,"bounds":{"left":0.5980718,"top":0.34397447,"width":0.020279255,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select Weekly","depth":12,"bounds":{"left":0.5980718,"top":0.35355148,"width":0.09042553,"height":0.019952115},"value":"Select Weekly","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":13,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Weekly","depth":14,"bounds":{"left":0.5980718,"top":0.35714287,"width":0.014793883,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"*","depth":13,"bounds":{"left":0.6838431,"top":0.33998403,"width":0.0026595744,"height":0.019553073},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"3. Report parameters","depth":12,"bounds":{"left":0.49468085,"top":0.38946527,"width":0.19414894,"height":0.031923383},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3. Report parameters","depth":13,"bounds":{"left":0.49468085,"top":0.39584997,"width":0.05119681,"height":0.01556265},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"DEAL STAGE AT CALL","depth":14,"bounds":{"left":0.49900267,"top":0.4309657,"width":0.03307846,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Closed Lost","depth":12,"bounds":{"left":0.49900267,"top":0.4405427,"width":0.09042553,"height":0.019952115},"value":"Closed Lost","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXTextField","text":"Select","depth":13,"bounds":{"left":0.49900267,"top":0.4425379,"width":0.08045213,"height":0.015961692},"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CURRENT DEAL STAGE","depth":14,"bounds":{"left":0.5980718,"top":0.4309657,"width":0.035904255,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select Select","depth":12,"bounds":{"left":0.5980718,"top":0.4405427,"width":0.09042553,"height":0.019952115},"value":"Select Select","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":13,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Select","depth":14,"bounds":{"left":0.5980718,"top":0.4441341,"width":0.011801862,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"DEAL VALUE MIN","depth":14,"bounds":{"left":0.49900267,"top":0.48603353,"width":0.027260639,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"DEAL VALUE MAX","depth":14,"bounds":{"left":0.5482048,"top":0.48603353,"width":0.028091755,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ACTIVITY TYPE","depth":14,"bounds":{"left":0.5980718,"top":0.48603353,"width":0.023936171,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select Select","depth":12,"bounds":{"left":0.5980718,"top":0.49561054,"width":0.09042553,"height":0.019952115},"value":"Select Select","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":13,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Select","depth":14,"bounds":{"left":0.5980718,"top":0.49920192,"width":0.011801862,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"CALL TYPE","depth":14,"bounds":{"left":0.49900267,"top":0.54110134,"width":0.016954787,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Conference × Dialer × Select option","depth":12,"bounds":{"left":0.49900267,"top":0.5506784,"width":0.09042553,"height":0.028731046},"value":"Conference × Dialer × Select option","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Conference","depth":15,"bounds":{"left":0.5013298,"top":0.5582602,"width":0.024268618,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"×","depth":16,"bounds":{"left":0.52792555,"top":0.55786115,"width":0.0028257978,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Dialer","depth":15,"bounds":{"left":0.53889626,"top":0.5582602,"width":0.012965426,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"×","depth":16,"bounds":{"left":0.5540226,"top":0.55786115,"width":0.0028257978,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Select option","depth":13,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"*","depth":13,"bounds":{"left":0.58477396,"top":0.5371109,"width":0.0026595744,"height":0.019553073},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"CALL DURATION MIN","depth":14,"bounds":{"left":0.5980718,"top":0.54110134,"width":0.033909574,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"CALL DURATION MAX","depth":14,"bounds":{"left":0.64727396,"top":0.54110134,"width":0.03474069,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"RECIPIENTS","depth":14,"bounds":{"left":0.49900267,"top":0.6049481,"width":0.019115692,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Start typing to search users Start typing to search users","depth":12,"bounds":{"left":0.49900267,"top":0.61452514,"width":0.18949468,"height":0.019952115},"value":"Start typing to search users Start typing to search users","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Start typing to search users","depth":13,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Start typing to search users","depth":14,"bounds":{"left":0.49900267,"top":0.6181165,"width":0.05269282,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JIMINNY RECIPIENTS","depth":14,"bounds":{"left":0.49900267,"top":0.66001594,"width":0.03374335,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Start typing to search users Start typing to search users","depth":12,"bounds":{"left":0.49900267,"top":0.669593,"width":0.18949468,"height":0.019952115},"value":"Start typing to search users Start typing to search users","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Start typing to search users","depth":13,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Start typing to search users","depth":14,"bounds":{"left":0.49900267,"top":0.67318434,"width":0.05269282,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SPECIAL REQUIREMENTS","depth":14,"bounds":{"left":0.49900267,"top":0.7150838,"width":0.040059842,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextArea","text":"SPECIAL REQUIREMENTS","depth":13,"bounds":{"left":0.49900267,"top":0.7278532,"width":0.18550532,"height":0.054269753},"help_text":"","placeholder":"What should be the focus of the report?","role_description":"text entry area","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"The best reports contain between 20-50 activities. For best case scenario estimate activities count from the button bellow an make amends.","depth":13,"bounds":{"left":0.50731385,"top":0.80606544,"width":0.1740359,"height":0.023942538},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Estimate activities count","depth":12,"bounds":{"left":0.49468085,"top":0.8539505,"width":0.059175532,"height":0.028731046},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"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":"AXComboBox","text":"Clear All Apply","depth":8,"bounds":{"left":0.49900267,"top":0.4668795,"width":0.09042553,"height":0.23942538},"value":"Clear All Apply","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Clear All","depth":10,"bounds":{"left":0.53889626,"top":0.6687949,"width":0.023271276,"height":0.028731046},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Apply","depth":10,"bounds":{"left":0.56482714,"top":0.6687949,"width":0.020944148,"height":0.028731046},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Clear","depth":16,"bounds":{"left":0.69547874,"top":0.07821229,"width":0.008643617,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXTextField","text":"Filter URLs","depth":16,"bounds":{"left":0.70578456,"top":0.07581804,"width":0.16771941,"height":0.0207502},"help_text":"","role_description":"search text field","subrole":"AXSearchField","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Pause/Resume recording network log","depth":16,"bounds":{"left":0.8871343,"top":0.077813245,"width":0.008643617,"height":0.016759777},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"New Request","depth":16,"bounds":{"left":0.89644283,"top":0.07821229,"width":0.008643617,"height":0.015961692},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Search","depth":16,"bounds":{"left":0.90575135,"top":0.07821229,"width":0.008643617,"height":0.015961692},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Request Blocking","depth":16,"bounds":{"left":0.91505986,"top":0.07821229,"width":0.008643617,"height":0.015961692},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Disable Cache","depth":17,"bounds":{"left":0.92702794,"top":0.080207504,"width":0.004654255,"height":0.011173184},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Disable Cache","depth":17,"bounds":{"left":0.93267953,"top":0.08100559,"width":0.024933511,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"No Throttling","depth":16,"bounds":{"left":0.96127,"top":0.07940942,"width":0.027094414,"height":0.01396648},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Network Settings","depth":16,"bounds":{"left":0.9900266,"top":0.07821229,"width":0.008643617,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"All","depth":17,"bounds":{"left":0.6978058,"top":0.10175578,"width":0.00831117,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"HTML","depth":17,"bounds":{"left":0.7067819,"top":0.10175578,"width":0.014461436,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"CSS","depth":17,"bounds":{"left":0.7219083,"top":0.10175578,"width":0.011303191,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"JS","depth":17,"bounds":{"left":0.73387635,"top":0.10175578,"width":0.00831117,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"XHR","depth":17,"bounds":{"left":0.7428524,"top":0.10175578,"width":0.011635638,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Fonts","depth":17,"bounds":{"left":0.75515294,"top":0.10175578,"width":0.013630319,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Images","depth":17,"bounds":{"left":0.76944816,"top":0.10175578,"width":0.01662234,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Media","depth":17,"bounds":{"left":0.78673536,"top":0.10175578,"width":0.014461436,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"WS","depth":17,"bounds":{"left":0.8018617,"top":0.10175578,"width":0.009973404,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Other","depth":17,"bounds":{"left":0.8125,"top":0.10175578,"width":0.013796543,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Status","depth":24,"bounds":{"left":0.69414896,"top":0.121308856,"width":0.01861702,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Status","depth":26,"bounds":{"left":0.69581115,"top":0.12609737,"width":0.011136968,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Method","depth":24,"bounds":{"left":0.7130984,"top":0.121308856,"width":0.018284574,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Method","depth":26,"bounds":{"left":0.71476066,"top":0.12609737,"width":0.013297873,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Domain","depth":24,"bounds":{"left":0.73171544,"top":0.121308856,"width":0.04720745,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Domain","depth":26,"bounds":{"left":0.73337764,"top":0.12609737,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"File","depth":24,"bounds":{"left":0.77925533,"top":0.121308856,"width":0.09325133,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"File","depth":26,"bounds":{"left":0.7809175,"top":0.12609737,"width":0.006150266,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Initiator","depth":24,"bounds":{"left":0.8728391,"top":0.121308856,"width":0.03723404,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initiator","depth":26,"bounds":{"left":0.87450135,"top":0.12609737,"width":0.013297873,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Type","depth":24,"bounds":{"left":0.9104056,"top":0.121308856,"width":0.018284574,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":26,"bounds":{"left":0.91206783,"top":0.12609737,"width":0.008477394,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Transferred","depth":24,"bounds":{"left":0.9290226,"top":0.121308856,"width":0.0038231383,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Transferred","depth":26,"bounds":{"left":0.93068486,"top":0.12609737,"width":0.020113032,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Size","depth":24,"bounds":{"left":0.9331782,"top":0.121308856,"width":0.056017287,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Size","depth":26,"bounds":{"left":0.93484044,"top":0.12609737,"width":0.00731383,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"0 ms","depth":24,"bounds":{"left":0.98952794,"top":0.121308856,"width":0.010472059,"height":0.01915403},"help_text":"Timeline","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0 ms","depth":27,"bounds":{"left":0.9908577,"top":0.12849163,"width":0.0066489363,"height":0.007980846},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"POST","depth":24,"bounds":{"left":0.71476066,"top":0.14565043,"width":0.009807181,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"r.logr-in.com","depth":24,"bounds":{"left":0.7330452,"top":0.14565043,"width":0.022273935,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"i?a=ponxaf/platform-staging&r=6-019db076-935d-752f-a86a-815df5ba66f7&t=acafc3b4-a7db-4547-8fb4-64f393c9c62e&s=0&hr=t&u=c4fb084a-b33a-46fe-904b-351b592a4b0f&is=IDENTIFIED&rs=0,t","depth":25,"bounds":{"left":0.7809175,"top":0.14565043,"width":0.21908247,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"xhr","depth":24,"bounds":{"left":0.87450135,"top":0.14565043,"width":0.0056515955,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"200","depth":24,"bounds":{"left":0.69647604,"top":0.16520351,"width":0.006482713,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
9118147347411397054
|
-5281908845585079867
|
click
|
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 - Engineering - Confluence
Edit - 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 ■ 874667
75
75
Kiosk
Organizations
Organizations
Setup Account
Setup Account
Users
Users
Activities
Activities
Automated Reports
Automated Reports
Mobile version
Mobile version
Automated Reports
Automated Reports
Create
ORGANIZATION
Select Select
Select
Select
TEAM
Select Select
Select
Select
REPORT TYPE
Select Select
Select
Select
STATUS
Select All
Select
All
ORGANIZATION
TYPE
TEAMS
FREQUENCY
RECIPIENTS
CREATOR
CREATED AT
Hubspot Staging Renamed
Exec Summary
Weekly
20/03/2026
Hubspot Staging Renamed
Exec Summary
Sales Team
Weekly
17/12/2025
Jiminny Staging
Exec Summary
Engineering, Client Success, Client Success - ENT
One-Off
21/04/2026
Jiminny Staging
Exec Summary
One-Off
20/04/2026
Jiminny Staging
Exec Summary
One-Off
15/04/2026
Jiminny Staging
Exec Summary
Engineering
One-Off
31/03/2026
Jiminny Staging
Exec Summary
Weekly
31/03/2026
Jiminny Staging
Coaching Profiles
Weekly
31/03/2026
Jiminny Staging
Exec Summary
One-Off
31/03/2026
Jiminny Staging
Exec Summary
One-Off
27/03/2026
Jiminny Staging
Exec Summary
One-Off
26/03/2026
Jiminny Staging
Exec Summary
One-Off
26/03/2026
Jiminny Staging
Product Feedback
One-Off
27/02/2026
Jiminny Staging
Product Feedback
UK Sales, Engineering
One-Off
27/02/2026
Jiminny Staging
Exec Summary
One-Off
26/02/2026
Create Report
Save
1. Organization details
1. Organization details
ORGANIZATION
Select Jiminny Staging
Select
Jiminny Staging
*
TEAM
Client Success × Engineering × Enablement × Select
Client Success
×
Engineering
×
Enablement
×
Select
2. Report settings
2. Report settings
REPORT TYPE
Select Exec Summary
Select
Exec Summary
*
EXPORT AS
PDF × Select option
PDF
×
Select option
*
CUSTOM REPORT NAME
Test Automated Reports
Clear
FREQUENCY
Select Weekly
Select
Weekly
*
3. Report parameters
3. Report parameters
DEAL STAGE AT CALL
Closed Lost
Select
CURRENT DEAL STAGE
Select Select
Select
Select
DEAL VALUE MIN
DEAL VALUE MAX
ACTIVITY TYPE
Select Select
Select
Select
CALL TYPE
Conference × Dialer × Select option
Conference
×
Dialer
×
Select option
*
CALL DURATION MIN
CALL DURATION MAX
RECIPIENTS
Start typing to search users Start typing to search users
Start typing to search users
Start typing to search users
JIMINNY RECIPIENTS
Start typing to search users Start typing to search users
Start typing to search users
Start typing to search users
SPECIAL REQUIREMENTS
SPECIAL REQUIREMENTS
The best reports contain between 20-50 activities. For best case scenario estimate activities count from the button bellow an make amends.
Estimate activities count
Open Intercom Messenger
Clear All Apply
Clear All
Apply
Clear
Filter URLs
Pause/Resume recording network log
New Request
Search
Request Blocking
Disable Cache
Disable Cache
No Throttling
Network Settings
All
HTML
CSS
JS
XHR
Fonts
Images
Media
WS
Other
Status
Status
Method
Method
Domain
Domain
File
File
Initiator
Initiator
Type
Type
Transferred
Transferred
Size
Size
0 ms
0 ms
POST
r.logr-in.com
i?a=ponxaf/platform-staging&r=6-019db076-935d-752f-a86a-815df5ba66f7&t=acafc3b4-a7db-4547-8fb4-64f393c9c62e&s=0&hr=t&u=c4fb084a-b33a-46fe-904b-351b592a4b0f&is=IDENTIFIED&rs=0,t
xhr
200...
|
NULL
|
|
13797
|
304
|
19
|
2026-04-14T12:54:59.266694+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776171299266_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
SlackFileEditViewGoHistoryWindowHelp• 0* Unable to SlackFileEditViewGoHistoryWindowHelp• 0* Unable to accelDOCKER© *1•Bash(curlL total frames: 3348DEV (docker)282APP (-zsh)*3ec2-user@ip-10-30-...-s "http://localhost:3030/search?content_type=ocr&start_time=2026-04-14T0• Bash(curl -s "http://localhost:3030/search?content_type=ocr&start_time=2026-04-14T0L done• Bash(python3 « 'EOF'import json...)L=== TIME SPLIT ===HourFramesTop apps+56 lines (ctrl+otoexpand)• Here's your day so far (UTC+3):09:00-09:59 - Morning startup- Firefox + Dia (browser sidebar) - AWS Console, CloudWatch, Confluence docs on SSH- CleanShot X - taking screenshots10:00-10:59 - Work picks up- Firefox - AWS Console (us-east-1 & us-east-2), CloudWatch- Slack - DMs with Aneliya, Nikolay, Steliyan + Toast notifications- iTerm2 - terminal sessions (APP, DEV, DOCKER environments)11:00-11:59 - Deep coding- PhpStorm kicks in - working on AskJiminnyReport* files: AskJiminnyReportActivityS- Slack - ongoing comms- Firefox - Ask Jiminny PDF report open (Ask Jiminny test report - 8Apr → 13 Apr 212:00-12:xx - Still coding- PhpStorm dominant (20%) - same Ask Jiminny report codebase- iTerm2 - docker + zsh sessions- Windsurf - prophet repo, reviewing .env.dev, .env.testing, and a Claude Code sessTL;DR: AWS/CloudWatch investigation in the morning, then into PhpStorm working on tAutomatedReportsCommand, etc.), with Slack comms throughout.* Sautéed for 33s+? for shortcutsEDHomeDMsActivityFilesLater.*•MoreIa6lTue 14 Apr 15:54:59Jiminny ...ir scnicral# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messages(3Aneliya Angelova, ...€. Vasil Vasilev Elo Steliyan GeorgievAdelina Petrova, Ili...0. Adelina Petrova. Galya Dimitrova *0g Nikolay Nikolov "Y2 Galya Dimitrova, Ni...2Galya Dimitrova, Ni...P. Nikolay Yankov::: AppsToastJira CloudGoogle Cale...Retro - Platform • in 1h 6 m100% C4→Search Jiminny IncAneliya Angelova, ...• Messagesimage.pngTAdd canvas@ Files+Today ~6 replies Last reply today at 2:58 PMNikolay Yankov 3:34 PMСтели, ще генерираме PDFда го пускаме ли или да изчакамеSteliyan Georgiev 3:35 PMизчакайте 10 мин моляSteliyan Georgiev 3:45 PMдеплойнах на стейджинг, пускайтегенериране ако искатеNikolay Yankov 3:53 PMЛукаш, я пусни новоMessage Aneliya Angelova, Nikolay Yankov, Steli...Aa...
|
NULL
|
9117772093283352490
|
NULL
|
click
|
ocr
|
NULL
|
SlackFileEditViewGoHistoryWindowHelp• 0* Unable to SlackFileEditViewGoHistoryWindowHelp• 0* Unable to accelDOCKER© *1•Bash(curlL total frames: 3348DEV (docker)282APP (-zsh)*3ec2-user@ip-10-30-...-s "http://localhost:3030/search?content_type=ocr&start_time=2026-04-14T0• Bash(curl -s "http://localhost:3030/search?content_type=ocr&start_time=2026-04-14T0L done• Bash(python3 « 'EOF'import json...)L=== TIME SPLIT ===HourFramesTop apps+56 lines (ctrl+otoexpand)• Here's your day so far (UTC+3):09:00-09:59 - Morning startup- Firefox + Dia (browser sidebar) - AWS Console, CloudWatch, Confluence docs on SSH- CleanShot X - taking screenshots10:00-10:59 - Work picks up- Firefox - AWS Console (us-east-1 & us-east-2), CloudWatch- Slack - DMs with Aneliya, Nikolay, Steliyan + Toast notifications- iTerm2 - terminal sessions (APP, DEV, DOCKER environments)11:00-11:59 - Deep coding- PhpStorm kicks in - working on AskJiminnyReport* files: AskJiminnyReportActivityS- Slack - ongoing comms- Firefox - Ask Jiminny PDF report open (Ask Jiminny test report - 8Apr → 13 Apr 212:00-12:xx - Still coding- PhpStorm dominant (20%) - same Ask Jiminny report codebase- iTerm2 - docker + zsh sessions- Windsurf - prophet repo, reviewing .env.dev, .env.testing, and a Claude Code sessTL;DR: AWS/CloudWatch investigation in the morning, then into PhpStorm working on tAutomatedReportsCommand, etc.), with Slack comms throughout.* Sautéed for 33s+? for shortcutsEDHomeDMsActivityFilesLater.*•MoreIa6lTue 14 Apr 15:54:59Jiminny ...ir scnicral# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messages(3Aneliya Angelova, ...€. Vasil Vasilev Elo Steliyan GeorgievAdelina Petrova, Ili...0. Adelina Petrova. Galya Dimitrova *0g Nikolay Nikolov "Y2 Galya Dimitrova, Ni...2Galya Dimitrova, Ni...P. Nikolay Yankov::: AppsToastJira CloudGoogle Cale...Retro - Platform • in 1h 6 m100% C4→Search Jiminny IncAneliya Angelova, ...• Messagesimage.pngTAdd canvas@ Files+Today ~6 replies Last reply today at 2:58 PMNikolay Yankov 3:34 PMСтели, ще генерираме PDFда го пускаме ли или да изчакамеSteliyan Georgiev 3:35 PMизчакайте 10 мин моляSteliyan Georgiev 3:45 PMдеплойнах на стейджинг, пускайтегенериране ако искатеNikolay Yankov 3:53 PMЛукаш, я пусни новоMessage Aneliya Angelova, Nikolay Yankov, Steli...Aa...
|
13795
|
|
1820
|
38
|
28
|
2026-04-11T18:04:17.436887+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775930657436_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpDOCKER• ₴1DEV (-zsh)O 82APP (-zsh)• *3-zsh84• 8586-zsh₴7*8r 14:58:40-zsh181*7\",, \"timestamp)": \"2026-04-11T14:58:40.295748+03:00\", \"window_name)": \"'3, \"type)": \"OCR\"\"agination)":(\"limit\":@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 0""timestamp":"2026-04-11T14:58:54.033733+03:00"5, \"offset\":0,\"total\":5947 Lukas"window_name" :"type" : "UI"}, {"content" : {"app_name"1, "device_name" : "monitor_1","file_path":"/Users/lukas/.screenpipe/data/data/2026-04-11/compact_monitor_1_1775909337991.mp4""browser_url" :nul"focused": true,"frame" :null,"frame_id":595,"frame_name":"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908731550_m1.jpg","offset_index":47,"tags":[],"text":"iTerm2ShelllEditViewSessionScriptsProfilesWindowHelp(ahlA100% C8Sat 11 Apr 14:58:51-zsh181D0CKERO ₴1DEV (-zsh)O $2APP (-zsh)• *3-zsh• 84-zsh• ₴5-zshO ₴6-zsh*7129568\\ndrwxr-xr-x10 lukasstaff320 11Apr 14:52.Indrwx-88lukasstaff2816 11Apr 14:53..In-rw-r--r--1 lukasstaff2709 Apr20:27config.json\\ndrwxr-xr-x4 lukasstaff1289 Apr 20:40 data\\n-rw-p--p--1 lukasstaff65761280 11Apr 14:57 db.sqlite\\n-rw-r--r--1 lukasstaff3276811 Apr 14:52 db.sqlite-shm\\n-rw-r--r--1 lukasstaff350232 11 Apr 14:58 db.sqlite-wal\\ndrwxr-xr-x8 lukasstaff9 Apr 21:27 screenpipe.2026-04-09.0.10g\\n-rw-r--r--1lukas staff2569 Apr 19:53 pipes\\n-rw-r--r--1 lukasstaff1327366799 11 Apr 14:57 screenpipe.2026-04-11.0.10g\\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipeSdu-sh~/.screenpipe/*.db\\nzsh: no matches found: /Users/lukas/.screenpipe/*.db\\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe S\\nDOCKER\\nClose Tab\\nDEV (-zsh)|\nCloseTab\\nAPP (-zsh)\\nClose Tab\\n-zsh\\nClose Tab\\n-zsh\ \nClose Tab\\n-zsh\ \nClose Tab\\n-zsh\ InClose Tab\\nxx1\\n-zsh\"name\": \"-zsh\"},type\": \"UI\"3, \"content)": {\"app_name)": \"**',\"timestamp)":\"2026-04-11T14:58:40.797783+03:00\", \"window_,\"browser_url\": null,\"device_name\": \"monitor_1\",\"file_path\": \"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908720295_m1.jpg\", \"focused\":true, \"frame)": null, \"frame_id\": 589, \"frame_name)": \"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908720295_m1.jpg\™, \"offset_index\": 0,\"tags\": (],\"text\": \"iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100%<7-ZshDOCKERO Z1DEV (-zsh)Lastlogin:Sat Apr 11 14:52:25on ttys010•SZAPP (-ZSh)• ₴3-zsho 84Poetrycould not find a pyproject.toml file in /Users/lukas or its parentsPoetry could not finda pyproject.tomlfile in /Users/lukasor itsparentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du-sh ~/.screenpipe/126M/Users/lukas/.screenpipe/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~$ du-sh~/Library/Application\|\\ Support/com.screenpipe.app/*/zsh: no matches found: /Users/lukas/Library/Application Support/com.screenpipe.app/*/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ Sdu-sh ~/.screenpipe/*/49M/Users/lukas/.screenpipe/data/24K/Users/lukas/.screenpipe/pipes/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $cd ~/.screenpipelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ 1ltotal129568drwxr-xr-x10lukasstaff32011 Apr14:52drwx-88lukasstaff281611 Apr 14:53-rw-r--r--lukasstaff2709 Apr20:27config.jsondrwxr-xr-xlukasstaff1289Apr20:40data-rw-r--r--1lukasstaff6576128011 Apr 14:57db.sqlite-rw-r--r--1lukasstaff3276811 Apr 14:52db.sqlite-shmlukasstaffdrwxr-xr-x8 lukasstaff35023211 Apr 14:58 db.sqlite-wal2569 Apr19:53pipes-rw-r--r--1 lukasstaff1327369 Apr 21:27 screenpipe.2026-04-09.0.10g-rw-r--r--1 lukasstaff679911 Apr 14:57 screenpipe.2026-04-11.0.10glukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $du -sh ~/.screenpipe/*.dbzsh: no matchesfound: /Users/lukas/.screenpipe/*.dbLukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 1-zshe ₴5-zsh0 Z6Sat 11 Apr 14:58:40-zsh181*7\",',\"timestamp)": \"2026-04-11T14:58:40.295748+03:00\"', \"window_name\": \"'3, \"type\": \"OCR\"\"agination)": (\"limit\": 5,\"offset\": 0, \"total\": 594}Lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 0","timestamp":"2026-04-11T14:58:51.550116+03:00""window_name": "'''3, "type": "OCR"}, {"content" : {"app_name" : "","browser_url":null,"file_path":"/Users/lukas/.screenpipe/data/data/2026-04-11/compact_monitor 1 1775909337991.mp4"', "frame_name":"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908731550_m1.jpg","id":595, "initial_traversal_at":null,"offset_index":47,"text":"iTerm2ShelllEditViewSessionScriptsProfilesWindow Help(ahlA100% C8Sat 11 Apr 14:58:51-zsh181D0CKERO ₴1DEV (-zsh)O $2APP (-zsh)• *3-zshe 84-zsh•₴5-zsh0 ₴6-zsh*7129568\\ndrwxr-xr-x10 lukasstaff320 11Apr 14:52.Indrwx--88 lukasstaff2816 11 Apr 14:53..In-rw-r--r--1 lukasstaff2709 Apr20:27config.json\\ndrwxr-xr-x4 lukasstaff1289 Apr 20:40 data\\n-rw-p--p--1 lukasstaff65761280 11 Apr 14:57 db.sqlite\\n-rw-r--r--1 lukasstaff3276811 Apr 14:52 db.sqlite-shm\\n-rw-r--r--1 lukasstaff350232 11 Apr 14:58db.sqlite-wal\\ndrwxr-xr-x8 lukasstaff9 Apr 21:27 screenpipe.2026-04-09.0.10g\\n-rw-r--r--1 lukas staff2569 Apr 19:53 pipes\\n-rw-r--r--1lukasstaff1327366799 11 Apr 14:57 screenpipe.2026-04-11.0.10g\\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipeS du -sh ~/.screenpipe/*.db\\nzsh: no matchesfound: /Users/lukas/.screenpipe/*.db\\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe S\\nDOCKER\\nClose Tab\\nDEV (-zsh)\\nCloseTab\\nAPP (-zsh)\\nClose Tab\\n-zsh\InClose Tab\\n-zsh\ InClosTab\\n-zsh\\nClose Tab\\n-zsh\\nClose Tab\\nxx1\\n-zsh\"', \"timestamp\": \"2026-04-11T14:58:40.797783+03:00\", \"window_name)": \"-zsh\"},type\": \"UI\"3, \"content)":{\"app_name\": \"'•, \"browser_url\": null, \"device_name\": \"monitor_1\", \"file_path\": \"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908720295_m1.jpg\*: null,\"frame_id\": 589,\"frame_name\":\"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908720295_m1.jpg\",\"focused\":true, \"frame)",\"offset_index)": 0,\"tags\":(J,\"text\": \"iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% <7-zshDOCKERO Z1DEV (-zsh)Last login:Sat Apr 11 14:52:25on ttys010• $ZAPP (-zsh)* ₴3-zsho 84Poetrycould not find a pyproject.toml filein /Users/lukas or its parentsPoetry could not find a pyproject.tomlfile in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~$ du -sh ~/.screenpipe/126M/Users/lukas/.screenpipe/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $du-sh~/Library/Application\ll\Support/com.screenpipe.app/*/zsh: no matches found: /Users/lukas/Library/Application Support/com.screenpipe.app/*/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ Sdu-sh ~/.screenpipe/*/49M/Users/lukas/.screenpipe/data/24K/Users/lukas/.screenpipe/pipes/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ Scd ~/.screenpipelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ 1ltotal129568drwxr-xr-x10lukasstaff32011 Apr14:52drwx-88lukasstaff281611 Apr 14:53-rw-r--r--lukasstaff2709 Apr20:27config.jsondrwxr-xr-xlukasstaff1289 Apr 20:40data-rw-r--r--1 lukasstaff6576128011 Apr 14:57db.sqlite-rw-r--r--1lukasstaff3276811Apr 14:52db.sqlite-shmlukasstaffdrwxr-xr-x8 lukasstaff35023211 Apr 14:58db.sqlite-wal2569 Apr19:53pipes-rw-r--r--1 lukasstaff1327369 Apr 21:27screenpipe.2026-04-09.0.10g-rw-r--r--1 lukasstaff679911 Apr 14:57 screenpipe.2026-04-11.0.10glukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du-sh ~/.screenpipe/*.dbzsh: nomatches found: /Users/lukas/.screenpipe/*.dbLukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 1-zshe ₴5-zshO ₴6Sat 11 Apr 14:58:40-zsh181*7\"',l"timestamp)": 1"2026-04-11T14:58:40.295748+03:00\", \"window_name)": \"'3, \"type)": \"OCR\"\"agination)":(\"limit\": 5,\"offset\": 0,\"total\": 594}Lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 0","timestamp":"2026-04-11T14:58:51.550116+03:00","window_name":"'"},"type": "UI"}],"pagination" : {"limit":50,"offset":0, "total":967}%ukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe/data/data $ U...
|
NULL
|
9116855551335872570
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpDOCKER• ₴1DEV (-zsh)O 82APP (-zsh)• *3-zsh84• 8586-zsh₴7*8r 14:58:40-zsh181*7\",, \"timestamp)": \"2026-04-11T14:58:40.295748+03:00\", \"window_name)": \"'3, \"type)": \"OCR\"\"agination)":(\"limit\":@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 0""timestamp":"2026-04-11T14:58:54.033733+03:00"5, \"offset\":0,\"total\":5947 Lukas"window_name" :"type" : "UI"}, {"content" : {"app_name"1, "device_name" : "monitor_1","file_path":"/Users/lukas/.screenpipe/data/data/2026-04-11/compact_monitor_1_1775909337991.mp4""browser_url" :nul"focused": true,"frame" :null,"frame_id":595,"frame_name":"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908731550_m1.jpg","offset_index":47,"tags":[],"text":"iTerm2ShelllEditViewSessionScriptsProfilesWindowHelp(ahlA100% C8Sat 11 Apr 14:58:51-zsh181D0CKERO ₴1DEV (-zsh)O $2APP (-zsh)• *3-zsh• 84-zsh• ₴5-zshO ₴6-zsh*7129568\\ndrwxr-xr-x10 lukasstaff320 11Apr 14:52.Indrwx-88lukasstaff2816 11Apr 14:53..In-rw-r--r--1 lukasstaff2709 Apr20:27config.json\\ndrwxr-xr-x4 lukasstaff1289 Apr 20:40 data\\n-rw-p--p--1 lukasstaff65761280 11Apr 14:57 db.sqlite\\n-rw-r--r--1 lukasstaff3276811 Apr 14:52 db.sqlite-shm\\n-rw-r--r--1 lukasstaff350232 11 Apr 14:58 db.sqlite-wal\\ndrwxr-xr-x8 lukasstaff9 Apr 21:27 screenpipe.2026-04-09.0.10g\\n-rw-r--r--1lukas staff2569 Apr 19:53 pipes\\n-rw-r--r--1 lukasstaff1327366799 11 Apr 14:57 screenpipe.2026-04-11.0.10g\\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipeSdu-sh~/.screenpipe/*.db\\nzsh: no matches found: /Users/lukas/.screenpipe/*.db\\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe S\\nDOCKER\\nClose Tab\\nDEV (-zsh)|\nCloseTab\\nAPP (-zsh)\\nClose Tab\\n-zsh\\nClose Tab\\n-zsh\ \nClose Tab\\n-zsh\ \nClose Tab\\n-zsh\ InClose Tab\\nxx1\\n-zsh\"name\": \"-zsh\"},type\": \"UI\"3, \"content)": {\"app_name)": \"**',\"timestamp)":\"2026-04-11T14:58:40.797783+03:00\", \"window_,\"browser_url\": null,\"device_name\": \"monitor_1\",\"file_path\": \"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908720295_m1.jpg\", \"focused\":true, \"frame)": null, \"frame_id\": 589, \"frame_name)": \"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908720295_m1.jpg\™, \"offset_index\": 0,\"tags\": (],\"text\": \"iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100%<7-ZshDOCKERO Z1DEV (-zsh)Lastlogin:Sat Apr 11 14:52:25on ttys010•SZAPP (-ZSh)• ₴3-zsho 84Poetrycould not find a pyproject.toml file in /Users/lukas or its parentsPoetry could not finda pyproject.tomlfile in /Users/lukasor itsparentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du-sh ~/.screenpipe/126M/Users/lukas/.screenpipe/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~$ du-sh~/Library/Application\|\\ Support/com.screenpipe.app/*/zsh: no matches found: /Users/lukas/Library/Application Support/com.screenpipe.app/*/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ Sdu-sh ~/.screenpipe/*/49M/Users/lukas/.screenpipe/data/24K/Users/lukas/.screenpipe/pipes/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $cd ~/.screenpipelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ 1ltotal129568drwxr-xr-x10lukasstaff32011 Apr14:52drwx-88lukasstaff281611 Apr 14:53-rw-r--r--lukasstaff2709 Apr20:27config.jsondrwxr-xr-xlukasstaff1289Apr20:40data-rw-r--r--1lukasstaff6576128011 Apr 14:57db.sqlite-rw-r--r--1lukasstaff3276811 Apr 14:52db.sqlite-shmlukasstaffdrwxr-xr-x8 lukasstaff35023211 Apr 14:58 db.sqlite-wal2569 Apr19:53pipes-rw-r--r--1 lukasstaff1327369 Apr 21:27 screenpipe.2026-04-09.0.10g-rw-r--r--1 lukasstaff679911 Apr 14:57 screenpipe.2026-04-11.0.10glukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $du -sh ~/.screenpipe/*.dbzsh: no matchesfound: /Users/lukas/.screenpipe/*.dbLukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 1-zshe ₴5-zsh0 Z6Sat 11 Apr 14:58:40-zsh181*7\",',\"timestamp)": \"2026-04-11T14:58:40.295748+03:00\"', \"window_name\": \"'3, \"type\": \"OCR\"\"agination)": (\"limit\": 5,\"offset\": 0, \"total\": 594}Lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 0","timestamp":"2026-04-11T14:58:51.550116+03:00""window_name": "'''3, "type": "OCR"}, {"content" : {"app_name" : "","browser_url":null,"file_path":"/Users/lukas/.screenpipe/data/data/2026-04-11/compact_monitor 1 1775909337991.mp4"', "frame_name":"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908731550_m1.jpg","id":595, "initial_traversal_at":null,"offset_index":47,"text":"iTerm2ShelllEditViewSessionScriptsProfilesWindow Help(ahlA100% C8Sat 11 Apr 14:58:51-zsh181D0CKERO ₴1DEV (-zsh)O $2APP (-zsh)• *3-zshe 84-zsh•₴5-zsh0 ₴6-zsh*7129568\\ndrwxr-xr-x10 lukasstaff320 11Apr 14:52.Indrwx--88 lukasstaff2816 11 Apr 14:53..In-rw-r--r--1 lukasstaff2709 Apr20:27config.json\\ndrwxr-xr-x4 lukasstaff1289 Apr 20:40 data\\n-rw-p--p--1 lukasstaff65761280 11 Apr 14:57 db.sqlite\\n-rw-r--r--1 lukasstaff3276811 Apr 14:52 db.sqlite-shm\\n-rw-r--r--1 lukasstaff350232 11 Apr 14:58db.sqlite-wal\\ndrwxr-xr-x8 lukasstaff9 Apr 21:27 screenpipe.2026-04-09.0.10g\\n-rw-r--r--1 lukas staff2569 Apr 19:53 pipes\\n-rw-r--r--1lukasstaff1327366799 11 Apr 14:57 screenpipe.2026-04-11.0.10g\\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipeS du -sh ~/.screenpipe/*.db\\nzsh: no matchesfound: /Users/lukas/.screenpipe/*.db\\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe S\\nDOCKER\\nClose Tab\\nDEV (-zsh)\\nCloseTab\\nAPP (-zsh)\\nClose Tab\\n-zsh\InClose Tab\\n-zsh\ InClosTab\\n-zsh\\nClose Tab\\n-zsh\\nClose Tab\\nxx1\\n-zsh\"', \"timestamp\": \"2026-04-11T14:58:40.797783+03:00\", \"window_name)": \"-zsh\"},type\": \"UI\"3, \"content)":{\"app_name\": \"'•, \"browser_url\": null, \"device_name\": \"monitor_1\", \"file_path\": \"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908720295_m1.jpg\*: null,\"frame_id\": 589,\"frame_name\":\"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908720295_m1.jpg\",\"focused\":true, \"frame)",\"offset_index)": 0,\"tags\":(J,\"text\": \"iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% <7-zshDOCKERO Z1DEV (-zsh)Last login:Sat Apr 11 14:52:25on ttys010• $ZAPP (-zsh)* ₴3-zsho 84Poetrycould not find a pyproject.toml filein /Users/lukas or its parentsPoetry could not find a pyproject.tomlfile in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~$ du -sh ~/.screenpipe/126M/Users/lukas/.screenpipe/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $du-sh~/Library/Application\ll\Support/com.screenpipe.app/*/zsh: no matches found: /Users/lukas/Library/Application Support/com.screenpipe.app/*/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ Sdu-sh ~/.screenpipe/*/49M/Users/lukas/.screenpipe/data/24K/Users/lukas/.screenpipe/pipes/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ Scd ~/.screenpipelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ 1ltotal129568drwxr-xr-x10lukasstaff32011 Apr14:52drwx-88lukasstaff281611 Apr 14:53-rw-r--r--lukasstaff2709 Apr20:27config.jsondrwxr-xr-xlukasstaff1289 Apr 20:40data-rw-r--r--1 lukasstaff6576128011 Apr 14:57db.sqlite-rw-r--r--1lukasstaff3276811Apr 14:52db.sqlite-shmlukasstaffdrwxr-xr-x8 lukasstaff35023211 Apr 14:58db.sqlite-wal2569 Apr19:53pipes-rw-r--r--1 lukasstaff1327369 Apr 21:27screenpipe.2026-04-09.0.10g-rw-r--r--1 lukasstaff679911 Apr 14:57 screenpipe.2026-04-11.0.10glukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du-sh ~/.screenpipe/*.dbzsh: nomatches found: /Users/lukas/.screenpipe/*.dbLukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 1-zshe ₴5-zshO ₴6Sat 11 Apr 14:58:40-zsh181*7\"',l"timestamp)": 1"2026-04-11T14:58:40.295748+03:00\", \"window_name)": \"'3, \"type)": \"OCR\"\"agination)":(\"limit\": 5,\"offset\": 0,\"total\": 594}Lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 0","timestamp":"2026-04-11T14:58:51.550116+03:00","window_name":"'"},"type": "UI"}],"pagination" : {"limit":50,"offset":0, "total":967}%ukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe/data/data $ U...
|
1819
|
|
50145
|
1069
|
13
|
2026-04-17T14:23:48.310869+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776435828310_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
Collapse sidebar
Search
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
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...
|
[{"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":"Collapse sidebar","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search","depth":15,"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":"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}]...
|
9116783796984535684
|
-2733793439499330371
|
click
|
hybrid
|
NULL
|
Skip to content
Skip to content
Click to collapse
Skip to content
Skip to content
Click to collapse
⌘B
Drag to resize
Collapse sidebar
Search
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
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
iTerm2ShellEditViewSessionScriptsProfilesWindowHelp§ Tech Day Review • 7 m left-zshDOCKER881DEV (docker)APP (-zsh)*3-zshzsh:terminatedsqlite3"SDB_SRC"<<<"*sqlite3 "SDB_SRC"<<<""1.36s user 5.25s system 1%video_chunks..sqlite3"SDB_SRC"«<""cpu 9:57.77 total0.04s user0.06s system 8% cpu 1.162 totalmeetings...sqlite3 "SDB_SRC"«<<""0.00s user 0.01s system 1% cpu 0.454 totalVerification:frames |12874^CError: stepping,interrupted (9)Program interrupted.199MNolumes/Test/screenpipe/archive.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminnylukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ sp-status~/.screenpipe $ du -sh ~/.screenpipe8.0G/Users/lukas/.screenpipelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ du -sh ~/.screenpipe/*4.0K/Users/lukas/.screenpipe/config.json4.6G/Users/lukas/.screenpipe/data3.4G/Users/lukas/.screenpipe/db.sqlite64K/Users/lukas/.screenpipe/db.sqlite-shm16M/Users/lukas/.screenpipe/db.sqlite-wal36K/Users/lukas/.screenpipe/pipes132K/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log96K/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.1og72K/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log72K/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log160K/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.10g172K/Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log232K/Users/lukas/.screenpipe/screenpipe.2026-04-16.0.10g132K/Users/lukas/.screenpipe/screenpipe.2026-04-17.0.10g4.0K/Users/lukas/.screenpipe/screenpipe_sync.shlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du-sh ~/.screenpipe/*4.0K/Users/lukas/.screenpipe/config.json4.7G/Users/lukas/.screenpipe/data3.6G/Users/lukas/.screenpipe/db.sqlite128K/Users/lukas/.screenpipe/db.sqlite-shm16M/Users/lukas/.screenpipe/db.sqlite-wal36K/Users/lukas/.screenpipe/pipes132K/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.10g96K/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.1og72K/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log72K/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.10g160K/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log172K/Users/lukas/.screenpipe/screenpipe.2026-04-15.0.10g196K/Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log196K/Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log4.0K/Users/lukas/.screenpipe/screenpipe_sync.shukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $|₴4-zsh• ₴5* Review screenp...• 286ec2-user@ip-10-...100% CFri 17 Apr 17:23:48181• 87ec2-user@ip-10-...• 88...
|
NULL
|
|
50239
|
1073
|
20
|
2026-04-17T14:35:47.519746+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776436547519_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
Collapse sidebar
Search
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
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...
|
[{"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":"Collapse sidebar","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search","depth":15,"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":"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}]...
|
9116783796984535684
|
-2733793439499330371
|
click
|
hybrid
|
NULL
|
Skip to content
Skip to content
Click to collapse
Skip to content
Skip to content
Click to collapse
⌘B
Drag to resize
Collapse sidebar
Search
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
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
iTerm2ShellEdit ViewSessionScriptsProfilesWindowHelp-zshDOCKER- 881DEV (docker)882APP (-zsh)*3-zsh*4lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT name, SUM(payload) as bytes, COUNT(*) as pagesFROM dbstat WHERE name IN ('frames', 'elements', 'ui_events', 'ocr_text')GROUP BY name;"elements I466530643|121280frames|10069773581254673ocr_text|1443956212|359424ui_events 1982632812576lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT 'frames'UNION ALL SELECT ' elements'COUNT(*) FROM framesCOUNT(*) FROM elementsUNION ALL SELECT "ui_events', COUNT(*) FROM ui_eventsUNION ALL SELECT 'ocr_text',COUNT(*) FROM ocr_text;"frames |50235elements 13279563ui_events 160293ocr_text|39114lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $-zshC< yo llA100%О8*985* Review screenp...• *6ec2-user@ip-10-...O *7Fri 17 Apr 17:35:471*1ec2-user@ip-10-...O 88...
|
NULL
|
|
77176
|
1940
|
15
|
2026-04-24T08:57:11.851781+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777021031851_m2.jpg...
|
PhpStorm
|
faVsco.js – TrackAutomatedReportGeneratedEvent.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
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:...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"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-20738-debug-AJ-tracking-UP, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.08510638,"height":0.025538707},"help_text":"Git Branch: JY-20738-debug-AJ-tracking-UP","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.8400931,"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":"ReportControllerTest","depth":6,"bounds":{"left":0.85538566,"top":0.019952115,"width":0.06017287,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'ReportControllerTest'","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 'ReportControllerTest'","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":"Show Replace Field","depth":4,"bounds":{"left":0.16589096,"top":0.15482841,"width":0.008643617,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Search History","depth":3,"bounds":{"left":0.17852394,"top":0.15403032,"width":0.00731383,"height":0.017557861},"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"->track(","depth":4,"bounds":{"left":0.18949468,"top":0.15403032,"width":0.06549202,"height":0.015961692},"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,"bounds":{"left":0.26396278,"top":0.15403032,"width":0.00731383,"height":0.017557861},"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Match Case","depth":3,"bounds":{"left":0.27393618,"top":0.15403032,"width":0.00731383,"height":0.017557861},"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Words","depth":3,"bounds":{"left":0.28257978,"top":0.15403032,"width":0.00731383,"height":0.017557861},"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Regex","depth":3,"bounds":{"left":0.2912234,"top":0.15403032,"width":0.00731383,"height":0.017557861},"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.27027926,"top":1.0,"width":0.00731383,"height":0.0},"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.27027926,"top":1.0,"width":0.00731383,"height":0.0},"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.27027926,"top":1.0,"width":0.00731383,"height":0.0},"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1/1","depth":4,"bounds":{"left":0.30485374,"top":0.15323225,"width":0.025598405,"height":0.017557861},"role_description":"text"},{"role":"AXButton","text":"Previous Occurrence","depth":4,"bounds":{"left":0.3304521,"top":0.15243416,"width":0.008643617,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Occurrence","depth":4,"bounds":{"left":0.33909574,"top":0.15243416,"width":0.008643617,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Filter Search Results","depth":4,"bounds":{"left":0.34773937,"top":0.15243416,"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 in Window, Multiple Cursors","depth":4,"bounds":{"left":0.35638297,"top":0.15243416,"width":0.008643617,"height":0.01915403},"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,"bounds":{"left":0.5472075,"top":0.15243416,"width":0.008643617,"height":0.01915403},"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}]...
|
9116639161141556513
|
-8906617961801755838
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
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:
DMSActivityMorerireroxToolsHelpcalMistorbookmarksJiminny …..vXStarredi• jiminny-x-integrati..8 platform-inner-teamE) Channels# ai-chapter# ai-team# alerts# backend# c-learning-peoplei confusion-clinic# curiosity_labadeal-insichts-dev# engineering# frontend# general# infra-changes# jiminny-bg8 people-with-copilo...8 people-with-zoom-# platform-team# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the Deople of iimi...ProtllesWindow& platform-inner-...& 10MessagesChannel OverviewMoreYesterdayjinnylaop Aor 22nd Added by GitHubNikolay Ivanov 3:24 PMнякой нещо да е настроивал по githubactions. Почна да прави къмити вместо менбез да съм му разрешевал?https:/github.com/lminnv/app/pull/1200//changes/a68f42f210859f838a4fdced451f750627besoioИли нещо аз не разбирам?0AA0e 20 replies Last reply 18...Nikolay Yankov 3:50PMreplied to a uhread: някои нешо ла е насто..лол. ами предлагам маи ла му заораним лапускам към всички ла вилятNikolav Yankov 9.38 AMЩе се забавя за дейлито. Започнете без Мен.Aneliva Angelova 9:43 AMIДобро утро, няма да успея да вляза влейлито. Пествам ньлжовете.Message & platform-inner-team+ Aa I..•) New TabAl reports promotion pages by nik• JY-9712 | Nuges to expire after on8 Jiminnyu Userpilot Logged-activityJY-20157 add not enough activ XPipelines - jiminny/app+ New Tab©github.com/jimjiminny / app 8<> Code87 Pull requests 31( Agents |© Actions•• Wiki © Security and quality 32 ~ Insights 3 Settings@ On April 24 we'll start using GitHub Copilot interaction data for Al model training unless you opt out. Review this update and manage your preferences in your GitHub account settings.JY-20157 add not enough activities notification #12011 •$1 Open LakyLak wants to merge 2 commits into master from JY-20157-AJ-report-not-send-notification@) Conversation o• Commits 2|- Checks 21E Files changed 13A © All commits +Q Filter files...apo/Console/Commands/Reports/AutomatedReportsCommand.ohp@ -61,21 +61,29 @ public function handle(): intv = Console/Commands/Renorts|Snow = Carbon: : now();E AutomatedReportsCommand...v Jobs/AutomatedReportsE RequestGenerateAskJiminnyR...SendReportNotGeneratedMail...v @ Listeners/AutomatedReports/U….E TrackAutomatedReportGener...v # Mail/ReportsS1sMondav = Snow->1SMonday)S1sr1rstDayUtMonth = Snow->day === 1;ScurrentMonth = Snow->month.// Check if the current month is a quarterly month (January, April, July, October)$isQuarterlyMonth = in_array($currentMonth, [1, 4, 7, 10], true);$this->logger->info(self::LOG_PREFIX . ' Checking conditions', [+ ReportNotGenerated.ohp |"1SMonday' => S1SMonday,~ E Services/Kiosk/AutomatedRepo…..AskJiminnyReportActivityServ…'isFirstDay0fMonth' => SisFirstDay0fMonth,'currentMonth' => ScurrentMonth.E AutomatedReportsService.php'isQuarterlyMonth' => SisQuarterlyMonth,~E resources/views/emails/reportsreport-not-generated.blade.php/I Process dailv revortsl• F tests/UnitSthis->processReports(AutomatedReportsService::FREQUENCYDAILY):~ Jobs/AutomatedReportsE ReguestGenerateAsk JiminnvR....v = listeners/AutomatedRenorts/U.₴ TrackAutomatedReportGener..v E Services/Kiosk/AutomatedRepo…..E AskJiminnyReportActivityServ....AutomatedReportsServiceActi…./ Process weekly renorts on Mondavcif (SisMondav) {64 +67 +74 +86 +@40@ Daily - Platform - nowQ Type to search100% C4 8• Fri 24 Apr 9:46:13• Checks pending Code • (Preview) -+384 -52 9000C 0 I 13 viewedSubmit review+10 -2 mane [ Viewed0 ...Snow = Carhon:.nowdSisMondav = Snow->1SMonday)"Sisweekend = $now->isWeekend():SisFirstDay0fMonth = Snow->day === 1;ScurrentMonth = Snow->month.SisManualTrigger = $this->option('report-id') !== null;// Check if the current month is a quarterly month (January, April, July, October)$isQuarterlyMonth = in_array($currentMonth, [1, 4, 7, 10], true);Sthis->loager->info(self::L0G PREFIX . ' Checkina conditions'. [I"isMonday' => SisMonday,'isweekend' => $isWeekend,'isFirstDay0fMonth' => $isFirstDay0fMonth,'currentMonth' => ScurrentMonth.l'isQuarterlyMonth' => SisQuarterlyMonth,/ Process dailv renorts on weekdavs onlv (skio Saturdav/Sundav)...// Manual triggers via --report-id bypass the weekend skip.if (I Sisweekend || SisManualTriager) {Sthis->processReports(AutomatedReportsService::FREQUENCY_DAILY):} else {ISthis->logger->info(self::L0G PREFIX . ' Skipping daily reports on weekend'):/ Process weekly renorts on Mondavslif (SisMonday) {...
|
77174
|
|
26251
|
559
|
30
|
2026-04-15T13:16:20.608010+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776258980608_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
[CREDIT_CARD]/145Imperial Age--Siege Workshop Buil [CREDIT_CARD]/145Imperial Age--Siege Workshop Built---Warning: You are being attacked byPlayer 4 Louis VI!!!-Right-click to mine for stone. Build a MiningCamp nearby to gather stone faster.5 Magnus Olafsson: 7546/7546 @ IV1 kovaliklukas: 7339/7339ENV2 Rajyapala: 7319/7319 Đ IV8 Almish Yiltawar: 6961/6961 @IV6 László I: 6171/6171 € IV7 Maximilian of Habsburg: 6008/6008 W IV3 Huascár: 5784/57844 Louis VI: 5413/5413SNVN...
|
NULL
|
9116524789771986944
|
NULL
|
click
|
ocr
|
NULL
|
[CREDIT_CARD]/145Imperial Age--Siege Workshop Buil [CREDIT_CARD]/145Imperial Age--Siege Workshop Built---Warning: You are being attacked byPlayer 4 Louis VI!!!-Right-click to mine for stone. Build a MiningCamp nearby to gather stone faster.5 Magnus Olafsson: 7546/7546 @ IV1 kovaliklukas: 7339/7339ENV2 Rajyapala: 7319/7319 Đ IV8 Almish Yiltawar: 6961/6961 @IV6 László I: 6171/6171 € IV7 Maximilian of Habsburg: 6008/6008 W IV3 Huascár: 5784/57844 Louis VI: 5413/5413SNVN...
|
26249
|
|
42263
|
897
|
15
|
2026-04-17T06:58:49.690702+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776409129690_m2.jpg...
|
Slack
|
platform-inner-team (Channel) - Jiminny Inc - 2 ne platform-inner-team (Channel) - Jiminny Inc - 2 new items - 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
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Galya Dimitrova
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Aneliya Angelova
Ves
Steliyan Georgiev
Jira Cloud
Toast
Google Calendar
Messages
Messages
Channel Overview
Channel Overview
Refinements
Refinements
Files
Files
Pins
Pins
Bookmarks
Bookmarks
Retro Action Items
Retro Action Items
Deleted file
Deleted file
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Stefka Stoyanova
Yesterday at 12:00:35 PM
12:00 PM
май има проблем с джобовете за генериране на репорти
https://jiminny.sentry.io/issues/6873095751/events/cca4d5f2973e4711bb321988afc07ac6/e[…]19&query=is%3Aunresolved&referrer=next-event&seerDrawer=true
https://jiminny.sentry.io/issues/6873095751/events/cca4d5f2973e4711bb321988afc07ac6/e[…]19&query=is%3Aunresolved&referrer=next-event&seerDrawer=true
Symfony\Component\Debug\Exception\FatalThrowableError
Symfony\Component\Debug\Exception\FatalThrowableError
/app/Jobs/AutomatedReports/SendReportJob.php in Jiminny\Jobs\AutomatedReports\SendReportJob::handle
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 218
Events:
1075
State:
Ongoing
First Seen:
2025-09-12
Resolve
Resolve
Archive
Archive
Select Assignee...
Nikolay Nikolov
See more
Added by
Sentry
Sentry
Nikolay Nikolov
Yesterday at 12:05:52 PM
12:05 PM
това съм го виждал преди само на планета - нещо от данните , но е добре да се види
Stefka Stoyanova
Yesterday at 12:06:38 PM
12:06 PM
На Прод е
явно нещо S3 пътя му е null, може би затова не винаги се получават репортите
Nikolay Nikolov
Yesterday at 12:07:17 PM
12:07 PM
S3 path го взимаме от респонса от prophet
Stefka Stoyanova
Yesterday at 12:08:03 PM
12:08 PM
профета е виновен :)
Nikolay Nikolov
Yesterday at 12:08:42 PM
12:08 PM
не, мисля че е от теста сега на Staging
Yesterday at 12:08:50 PM...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Jiminny Inc","depth":12,"bounds":{"left":0.00546875,"top":0.05486111,"width":0.0125,"height":0.022222223},"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.00546875,"top":0.09097222,"width":0.0125,"height":0.022222223},"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.00546875,"top":0.12708333,"width":0.0125,"height":0.022222223},"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.026953125,"top":0.048611112,"width":0.020703126,"height":0.047222223},"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.03125,"top":0.08125,"width":0.012109375,"height":0.009027778},"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.026953125,"top":0.09583333,"width":0.020703126,"height":0.047222223},"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.032421876,"top":0.12847222,"width":0.009765625,"height":0.009027778},"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.026953125,"top":0.14305556,"width":0.020703126,"height":0.047222223},"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.0296875,"top":0.17569445,"width":0.015234375,"height":0.009027778},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.026953125,"top":0.19027779,"width":0.020703126,"height":0.047222223},"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.0328125,"top":0.22291666,"width":0.008984375,"height":0.009027778},"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.026953125,"top":0.2375,"width":0.020703126,"height":0.047222223},"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.03203125,"top":0.2701389,"width":0.010546875,"height":0.009027778},"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.026953125,"top":0.2847222,"width":0.020703126,"height":0.047222223},"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.03203125,"top":0.31736112,"width":0.010546875,"height":0.009027778},"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":21,"bounds":{"left":0.06679688,"top":0.0875,"width":0.022265624,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.06679688,"top":0.10694444,"width":0.020703126,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.06679688,"top":0.12638889,"width":0.021484375,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.06679688,"top":0.14583333,"width":0.034375,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.06679688,"top":0.16527778,"width":0.028515626,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":23,"bounds":{"left":0.07304688,"top":0.24722221,"width":0.0515625,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":23,"bounds":{"left":0.07304688,"top":0.26666668,"width":0.05234375,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"bounds":{"left":0.07304688,"top":0.3125,"width":0.026953125,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"bounds":{"left":0.07304688,"top":0.33194444,"width":0.014453125,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"bounds":{"left":0.07304688,"top":0.3513889,"width":0.021484375,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"bounds":{"left":0.07304688,"top":0.37083334,"width":0.040625,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"bounds":{"left":0.07304688,"top":0.39027777,"width":0.032421876,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"bounds":{"left":0.07304688,"top":0.4097222,"width":0.03046875,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"frontend","depth":23,"bounds":{"left":0.07304688,"top":0.42916667,"width":0.02265625,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"bounds":{"left":0.07304688,"top":0.4486111,"width":0.019140625,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":23,"bounds":{"left":0.07304688,"top":0.46805555,"width":0.034765624,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"bounds":{"left":0.07304688,"top":0.4875,"width":0.02734375,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"bounds":{"left":0.07304688,"top":0.5069444,"width":0.041015625,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"bounds":{"left":0.07304688,"top":0.5263889,"width":0.0453125,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"bounds":{"left":0.07304688,"top":0.54583335,"width":0.019921875,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"bounds":{"left":0.07304688,"top":0.56527776,"width":0.020703126,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"bounds":{"left":0.07304688,"top":0.5847222,"width":0.02890625,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"bounds":{"left":0.07304688,"top":0.6041667,"width":0.0203125,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"bounds":{"left":0.07304688,"top":0.6236111,"width":0.02890625,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"bounds":{"left":0.07304688,"top":0.64305556,"width":0.053125,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.07304688,"top":0.6888889,"width":0.044140626,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.11679687,"top":0.6888889,"width":0.0078125,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"bounds":{"left":0.11992188,"top":0.6888889,"width":0.016796876,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.13632813,"top":0.70416665,"width":0.000390625,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"bounds":{"left":0.13632813,"top":0.70416665,"width":0.000390625,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.07304688,"top":0.7083333,"width":0.04140625,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":23,"bounds":{"left":0.07304688,"top":0.7277778,"width":0.040234376,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"bounds":{"left":0.07304688,"top":0.74722224,"width":0.033984374,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":24,"bounds":{"left":0.07304688,"top":0.76666665,"width":0.03125,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"bounds":{"left":0.07304688,"top":0.7861111,"width":0.037890624,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.07304688,"top":0.8055556,"width":0.044140626,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"bounds":{"left":0.07304688,"top":0.825,"width":0.009375,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"bounds":{"left":0.07304688,"top":0.84444445,"width":0.044921875,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":23,"bounds":{"left":0.07304688,"top":0.8902778,"width":0.026171874,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":23,"bounds":{"left":0.07304688,"top":0.9097222,"width":0.014453125,"height":0.0125},"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":23,"bounds":{"left":0.07304688,"top":0.9291667,"width":0.0359375,"height":0.0125},"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":17,"bounds":{"left":0.14335938,"top":0.07986111,"width":0.036328126,"height":0.02638889},"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.15429688,"top":0.0875,"width":0.022265624,"height":0.011111111},"role_description":"text"},{"role":"AXRadioButton","text":"Channel Overview","depth":17,"bounds":{"left":0.18085937,"top":0.07986111,"width":0.05625,"height":0.02638889},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Channel Overview","depth":19,"bounds":{"left":0.19179687,"top":0.0875,"width":0.0421875,"height":0.011111111},"role_description":"text"},{"role":"AXRadioButton","text":"Refinements","depth":17,"bounds":{"left":0.23828125,"top":0.07986111,"width":0.044140626,"height":0.02638889},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Refinements","depth":19,"bounds":{"left":0.24921875,"top":0.08680555,"width":0.028515626,"height":0.011805556},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":17,"bounds":{"left":0.28359374,"top":0.07986111,"width":0.025,"height":0.02638889},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":19,"bounds":{"left":0.29453126,"top":0.0875,"width":0.0109375,"height":0.011111111},"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":17,"bounds":{"left":0.30976564,"top":0.07986111,"width":0.023828125,"height":0.02638889},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":19,"bounds":{"left":0.32070312,"top":0.0875,"width":0.009765625,"height":0.011111111},"role_description":"text"},{"role":"AXRadioButton","text":"Bookmarks","depth":17,"bounds":{"left":0.3347656,"top":0.07986111,"width":0.040234376,"height":0.02638889},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Bookmarks","depth":19,"bounds":{"left":0.34570312,"top":0.0875,"width":0.026171874,"height":0.011111111},"role_description":"text"},{"role":"AXRadioButton","text":"Retro Action Items","depth":17,"bounds":{"left":0.3761719,"top":0.07986111,"width":0.058203124,"height":0.02638889},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Retro Action Items","depth":19,"bounds":{"left":0.38710937,"top":0.08680555,"width":0.042578124,"height":0.011805556},"role_description":"text"},{"role":"AXRadioButton","text":"Deleted file","depth":17,"bounds":{"left":0.43554688,"top":0.07986111,"width":0.0421875,"height":0.02638889},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Deleted file","depth":19,"bounds":{"left":0.4464844,"top":0.0875,"width":0.0265625,"height":0.011111111},"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":17,"bounds":{"left":0.47890624,"top":0.07986111,"width":0.012890625,"height":0.02638889},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":17,"bounds":{"left":0.13671875,"top":0.045138888,"width":0.01875,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"List","depth":17,"bounds":{"left":0.13671875,"top":0.045138888,"width":0.009375,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":17,"bounds":{"left":0.13671875,"top":0.045138888,"width":0.01640625,"height":0.00069444446},"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":22,"bounds":{"left":0.2984375,"top":0.110416666,"width":0.03828125,"height":0.019444445},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.16210938,"top":0.10069445,"width":0.04609375,"height":0.00069444446},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.2078125,"top":0.10069445,"width":0.003125,"height":0.00069444446},"role_description":"text"},{"role":"AXLink","text":"Yesterday at 12:00:35 PM","depth":23,"bounds":{"left":0.21054688,"top":0.10069445,"width":0.02109375,"height":0.00069444446},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00 PM","depth":24,"bounds":{"left":0.21054688,"top":0.10069445,"width":0.02109375,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"май има проблем с джобовете за генериране на репорти","depth":24,"bounds":{"left":0.16210938,"top":0.10069445,"width":0.15507813,"height":0.00069444446},"role_description":"text"},{"role":"AXLink","text":"https://jiminny.sentry.io/issues/6873095751/events/cca4d5f2973e4711bb321988afc07ac6/e[…]19&query=is%3Aunresolved&referrer=next-event&seerDrawer=true","depth":24,"bounds":{"left":0.16210938,"top":0.10069445,"width":0.325,"height":0.00069444446},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.sentry.io/issues/6873095751/events/cca4d5f2973e4711bb321988afc07ac6/e[…]19&query=is%3Aunresolved&referrer=next-event&seerDrawer=true","depth":25,"bounds":{"left":0.16210938,"top":0.10069445,"width":0.325,"height":0.00069444446},"role_description":"text"},{"role":"AXLink","text":"Symfony\\Component\\Debug\\Exception\\FatalThrowableError","depth":26,"bounds":{"left":0.178125,"top":0.10069445,"width":0.16054687,"height":0.00069444446},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Symfony\\Component\\Debug\\Exception\\FatalThrowableError","depth":27,"bounds":{"left":0.178125,"top":0.10069445,"width":0.16054687,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"/app/Jobs/AutomatedReports/SendReportJob.php in Jiminny\\Jobs\\AutomatedReports\\SendReportJob::handle","depth":25,"bounds":{"left":0.16835937,"top":0.10069445,"width":0.12734374,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"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 218","depth":27,"bounds":{"left":0.171875,"top":0.10069445,"width":0.21953125,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"Events:","depth":25,"bounds":{"left":0.16835937,"top":0.10069445,"width":0.017578125,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"1075","depth":25,"bounds":{"left":0.18554688,"top":0.10069445,"width":0.012109375,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.19726562,"top":0.10069445,"width":0.001953125,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.19882813,"top":0.10069445,"width":0.0015625,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"State:","depth":25,"bounds":{"left":0.2,"top":0.10069445,"width":0.015625,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"Ongoing","depth":25,"bounds":{"left":0.21523437,"top":0.10069445,"width":0.019921875,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.23476562,"top":0.10069445,"width":0.0015625,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.2359375,"top":0.10069445,"width":0.0015625,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"First Seen:","depth":25,"bounds":{"left":0.23710938,"top":0.10069445,"width":0.0265625,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"2025-09-12","depth":25,"bounds":{"left":0.26328126,"top":0.10069445,"width":0.027734375,"height":0.00069444446},"role_description":"text"},{"role":"AXButton","text":"Resolve","depth":25,"bounds":{"left":0.16835937,"top":0.10069445,"width":0.024609376,"height":0.00069444446},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Resolve","depth":27,"bounds":{"left":0.171875,"top":0.10069445,"width":0.017578125,"height":0.00069444446},"role_description":"text"},{"role":"AXButton","text":"Archive","depth":25,"bounds":{"left":0.19570312,"top":0.10069445,"width":0.025,"height":0.00069444446},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Archive","depth":27,"bounds":{"left":0.19921875,"top":0.10069445,"width":0.01796875,"height":0.00069444446},"role_description":"text"},{"role":"AXComboBox","text":"Select Assignee...","depth":26,"bounds":{"left":0.2234375,"top":0.10069445,"width":0.07460938,"height":0.00069444446},"role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":28,"bounds":{"left":0.2265625,"top":0.10069445,"width":0.03515625,"height":0.00069444446},"role_description":"text"},{"role":"AXButton","text":"See more","depth":24,"bounds":{"left":0.16835937,"top":0.10069445,"width":0.02421875,"height":0.00069444446},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":25,"bounds":{"left":0.16835937,"top":0.10069445,"width":0.02109375,"height":0.00069444446},"role_description":"text"},{"role":"AXLink","text":"Sentry","depth":25,"bounds":{"left":0.1890625,"top":0.10069445,"width":0.013671875,"height":0.00069444446},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Sentry","depth":26,"bounds":{"left":0.1890625,"top":0.10069445,"width":0.013671875,"height":0.00069444446},"role_description":"text"},{"role":"AXButton","text":"Nikolay Nikolov","depth":23,"bounds":{"left":0.16210938,"top":0.10069445,"width":0.0421875,"height":0.00069444446},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.21171875,"top":0.10069445,"width":0.003515625,"height":0.00069444446},"role_description":"text"},{"role":"AXLink","text":"Yesterday at 12:05:52 PM","depth":23,"bounds":{"left":0.21484375,"top":0.10069445,"width":0.020703126,"height":0.00069444446},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:05 PM","depth":24,"bounds":{"left":0.21484375,"top":0.10069445,"width":0.020703126,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"това съм го виждал преди само на планета - нещо от данните , но е добре да се види","depth":24,"bounds":{"left":0.16210938,"top":0.10069445,"width":0.2328125,"height":0.00069444446},"role_description":"text"},{"role":"AXButton","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.16210938,"top":0.10069445,"width":0.04609375,"height":0.00069444446},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.2078125,"top":0.10069445,"width":0.003125,"height":0.00069444446},"role_description":"text"},{"role":"AXLink","text":"Yesterday at 12:06:38 PM","depth":23,"bounds":{"left":0.21054688,"top":0.10069445,"width":0.02109375,"height":0.00069444446},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:06 PM","depth":24,"bounds":{"left":0.21054688,"top":0.10069445,"width":0.02109375,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"На Прод е","depth":24,"bounds":{"left":0.16210938,"top":0.10069445,"width":0.028125,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"явно нещо S3 пътя му е null, може би затова не винаги се получават репортите","depth":24,"bounds":{"left":0.16210938,"top":0.10069445,"width":0.21367188,"height":0.00069444446},"role_description":"text"},{"role":"AXButton","text":"Nikolay Nikolov","depth":23,"bounds":{"left":0.16210938,"top":0.10069445,"width":0.0421875,"height":0.00069444446},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.21171875,"top":0.10069445,"width":0.003515625,"height":0.00069444446},"role_description":"text"},{"role":"AXLink","text":"Yesterday at 12:07:17 PM","depth":23,"bounds":{"left":0.21484375,"top":0.10069445,"width":0.020703126,"height":0.00069444446},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:07 PM","depth":24,"bounds":{"left":0.21484375,"top":0.10069445,"width":0.020703126,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"S3 path го взимаме от респонса от prophet","depth":24,"bounds":{"left":0.16210938,"top":0.10069445,"width":0.115234375,"height":0.00069444446},"role_description":"text"},{"role":"AXButton","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.16210938,"top":0.10069445,"width":0.04609375,"height":0.00069444446},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.2078125,"top":0.10069445,"width":0.003125,"height":0.00069444446},"role_description":"text"},{"role":"AXLink","text":"Yesterday at 12:08:03 PM","depth":23,"bounds":{"left":0.21054688,"top":0.10069445,"width":0.02109375,"height":0.00069444446},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:08 PM","depth":24,"bounds":{"left":0.21054688,"top":0.10069445,"width":0.02109375,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"профета е виновен :)","depth":24,"bounds":{"left":0.16210938,"top":0.10069445,"width":0.055859376,"height":0.00069444446},"role_description":"text"},{"role":"AXButton","text":"Nikolay Nikolov","depth":23,"bounds":{"left":0.16210938,"top":0.10069445,"width":0.0421875,"height":0.00069444446},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.21171875,"top":0.10069445,"width":0.003515625,"height":0.00069444446},"role_description":"text"},{"role":"AXLink","text":"Yesterday at 12:08:42 PM","depth":23,"bounds":{"left":0.21484375,"top":0.10069445,"width":0.020703126,"height":0.00069444446},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:08 PM","depth":24,"bounds":{"left":0.21484375,"top":0.10069445,"width":0.020703126,"height":0.00069444446},"role_description":"text"},{"role":"AXStaticText","text":"не, мисля че е от теста сега на Staging","depth":24,"bounds":{"left":0.16210938,"top":0.10138889,"width":0.10273437,"height":0.0125},"role_description":"text"},{"role":"AXLink","text":"Yesterday at 12:08:50 PM","depth":24,"bounds":{"left":0.146875,"top":0.124305554,"width":0.012109375,"height":0.010416667},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
9116488767486645262
|
-4234454618393403960
|
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
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Galya Dimitrova
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Aneliya Angelova
Ves
Steliyan Georgiev
Jira Cloud
Toast
Google Calendar
Messages
Messages
Channel Overview
Channel Overview
Refinements
Refinements
Files
Files
Pins
Pins
Bookmarks
Bookmarks
Retro Action Items
Retro Action Items
Deleted file
Deleted file
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Stefka Stoyanova
Yesterday at 12:00:35 PM
12:00 PM
май има проблем с джобовете за генериране на репорти
https://jiminny.sentry.io/issues/6873095751/events/cca4d5f2973e4711bb321988afc07ac6/e[…]19&query=is%3Aunresolved&referrer=next-event&seerDrawer=true
https://jiminny.sentry.io/issues/6873095751/events/cca4d5f2973e4711bb321988afc07ac6/e[…]19&query=is%3Aunresolved&referrer=next-event&seerDrawer=true
Symfony\Component\Debug\Exception\FatalThrowableError
Symfony\Component\Debug\Exception\FatalThrowableError
/app/Jobs/AutomatedReports/SendReportJob.php in Jiminny\Jobs\AutomatedReports\SendReportJob::handle
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 218
Events:
1075
State:
Ongoing
First Seen:
2025-09-12
Resolve
Resolve
Archive
Archive
Select Assignee...
Nikolay Nikolov
See more
Added by
Sentry
Sentry
Nikolay Nikolov
Yesterday at 12:05:52 PM
12:05 PM
това съм го виждал преди само на планета - нещо от данните , но е добре да се види
Stefka Stoyanova
Yesterday at 12:06:38 PM
12:06 PM
На Прод е
явно нещо S3 пътя му е null, може би затова не винаги се получават репортите
Nikolay Nikolov
Yesterday at 12:07:17 PM
12:07 PM
S3 path го взимаме от респонса от prophet
Stefka Stoyanova
Yesterday at 12:08:03 PM
12:08 PM
профета е виновен :)
Nikolay Nikolov
Yesterday at 12:08:42 PM
12:08 PM
не, мисля че е от теста сега на Staging
Yesterday at 12:08:50 PM
SlackFileEditViewHistoryWindowHelpSearch Jiminny IncJiminny ...& platform-inner-team8 106дQDMs= Unreads@ Threads6 Huddles* Drafts & sent8 DirectoriesBookmarksDeleted fileAchivityEh External connectionsFiles# Starred8 jiminny-x-integrati...A platform-inner-teamMoreohannes# ai-chapter# alerts# backendconflicion-clnid# curiosity lab# engineering# frontendi# general# infra-changes# jiminny-bg# platform-tickets# product_launchesac random#: releases# sofia-office# supportac thank-vous# the people of iimi....Direct messages(3 Aneliya Angelova, ...®. Galya Dimitrova0. Nikolay NikolovR. Stoyan Tanev€. Vasil Vasilev8. Nikolay IvanovP. Aneliya Angelova DP. Ves&. Steliyan Georgiev::: AppsJira CloudoastGoogle Cale..• MessagesChannel Overview® Refinements@ Files& PinsНе, мисля че е от теста сега на stagingYesterday~това малко не му вярвам че е на продтрябва да видим статус generated c null s3path дали няма по базатаStefka Stoyanova 12:09 PMот 13 април го има на ПродRetro Action ItemsSteliyan Georgiev 12:17 PMше помелна как оеше в профет, се сьм заоравилSteliyan Georgiev 12:23 PM"S3 path го взимаме от респонса от prophet" @Nikolay Nikolov Ники, от кой респонс? На колбека?Steliyan Georgiev 12:52 PMНа прод е имало проблем с един депорт само:2026-04-13T04:09:56.669+03:00[2026-04-13 01:09:56] app.ERROR: Failed to create PDF version for request_id: 822fa41b-afd3-43a9-a248-86b0e36f3131:(2013, 'Lost connection to MySQL server during query ([Errno 104] Connection reset by peer)'); correlation_id:ae2e38ff-ed04-40A-h//C-1A ACA/xxc6 trace 1610194242-6060-4692-X[PHONE]641[2026-04-13 01:09:56] app.ERROR: Failed to create PDF version for request_id: 822fa41b-afd3-43a9-a248-86b0e36f3131:(2013, 'Lost connection to MySQL server during query ([Errno 104] Connection reset by peer)'); correlation_id:ae2e38ff-ed04-401e-b77c-1e02e9d788c6 trace_id:f0194348-cece-4ca8-8413-21e32eef1d4fecs/jiminny-prophet/fbd19ab3fe8d4775bb936af467904a55някакво connectivity ишу с MySql изглеждаSteliyan Georgiev 12:53 PMно това е само 1 случай80a 4replies Last reply 13 hours agoSteliyan Georgiev 4:09 PMМоже ли едно малко ревю на един ПР, който вече го прецизирах с @claude ревю[URL_WITH_CREDENTIALS] Hs local liminnyalocalnost< console EUiC* scratch_1.jsonV connect.vueA console [PROD] xX:AutovPlayground* from automated_reports where id = 36;ar. frequency, r.*, ar.* from automated_report_resultsrstomated_reports ar on r.cepontoid = ar.igar. frequeney != 'one_off';Ma liminnv v034 41 A33 X61 As.* from activity searches s ioin users u 1.n<->1: ON s.user id = u.id whe* from nudges n where n.activity_search_id* from teams where created_at > '2026-03-09' ;* FROM crm_layouts WHERE crm_configuration_id = 1065; # 1065* FROM crm_layout_entities WHERE crm_layout_id = 3617;* from users where team_id = 1 and name like'%Lukas%'; # 7160* FRUM Teams WHERE 10 = 5/5;* tron 0pportunumes where team 1o = 575.* FROM teams WHERE name LIKE '%Integrum ES6%'; # 1126, 1065,* from opportunities where team id = 1126:* FROM teams WHERE name LIKE "%Base%'; # 1125, 1063,* from opportunities where team_id = 1125;* from contacts c:.team_id = 882;* FROM actIVitIes VHERE 10 = 168229671* FROM crm_profiles WHERE user_id = 15440;* FROM crm_profiles WHERE crm_configuration_id = 555;* rkur cen contlourarlons wiokb 1o = 555.* FROM users WHERE id = 15440; # team. 581, gr.15440, pl. 3911, act.ICAT(u.id, CASE WHEN U.id = t.owner_id THEN '(owner)' ELSE"' END) AS usermail,*,wner_id FROM social_accounts sasers u on u.id = sa.sociable_idsams t 1..n<->1: on t.id = u.team_id1.team_id = 581 and sa.provider = 'salesforce':* FROM automated_report_results order by id desc;* Troll Teat* from team_features where feature id = 40:* from teams where id = 556;* from automated_reports where id = 54; # 4Fdd41f6-dcf0-30d0-b339-7345381b* FROM automated_report_results WHERE uid_to_bin('822fa41b-afd3-43a9-a248* from automated_report_results order by id desc;* FROM automated_report_results WHERE id = 1919;* from automated_repor*results WHERE CeROntaid = 54;hiil| Daily - Platform • 7 m leftA100% [45)8 • Fri 17 Apr 9:58:49CascadeAutomated Report Retrshow me exactyl where do we set result as sent or failedThere are 3 places total:Searched |staUS. FAILED and perormed 1 other queryFocusing only on AutomatedReportResult status transitions:STATUS SENT - set in SendReportMailJob after the email is delivered:M SendReportMailJob.php:135-14git srenort-sstatus le= AutomaredRenortResulT.STATIS SENITCCache: : lock("report-status-{$this→>reportUuid}", 5)->block(2, function () use (Sreport) ‹prevort-ruvualerlsatus → Auconaredreportkesulciiolalus sawir"sent_at = nowl),STATUS_FAILED - set in 3 places:1. SendReportJob:: failed() - when the dispatch/pre-send phase fails terminally (null path, S3missug, ele."SendReportJob.php:175-179public function failed(Throwable $exception): voidAutomatedReportResult::whereRaw('uuid = uuid_to_bin(?)', [$this->reportUuidl)→updatelL status → AutomatedKeporcResuLciislAlUS rALLeoy2. RequestGenerateReportJob - when report generation fails (before it even reaches sending):• RequestGenerateReportJob.php:252-264$this->reportResult->update(["status = Automatedkeporckesult::sIAlUs_FALLED,'reason" = $reason,1);Requestcenerateask.aminnvkeportob — same, Tor Ask Jiminny vartant• RequestGenerateAskJiminnyReportJob.php:203-207sunus-> reportresursuodarel"status' => AutomatedRevortResult:STATUS FATLED.'reason" = $reason,1);Ö 1l -1 file +16›Ask anything (24L)+ ‹> CodeClaude Sonnet 4.6Winasun leam:Reject allAccept all( 4 spaces...
|
NULL
|
|
66329
|
1492
|
30
|
2026-04-21T14:35:43.629139+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776782143629_m2.jpg...
|
Slack
|
Aneliya Angelova (DM) - Jiminny Inc - 1 new item - Aneliya Angelova (DM) - Jiminny Inc - 1 new item - Slack...
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
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
c-learning-people
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
people-with-copilot-licences
people-with-zoom-phone-licences
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Mario Georgiev
Aneliya Angelova
Nikolay Yankov
Todor Stamatov
Gabriela Dureva
Petko Kashinski
Vasil Vasilev
Nikolay Nikolov
Galya Dimitrova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Stoyan Tanev
Nikolay Ivanov
Ves
Jira Cloud
Toast
Messages
Messages
Add canvas
Add canvas
Files
Files
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Aneliya Angelova
Today at 4:31:35 PM
4:31 PM
значи точно по този казус съм питала Галя миналия спринт -
генерираните репорти се листват на ai-reports само ако си Recipient
ako si jiminny_recipient тогава получаваш само емейл
Today at 4:31:39 PM
4:31
за тези от кисоска
Today at 4:32:00 PM
4:32
значи ако си jiminny recipient не трябва да ги виждаш в UIa
Today at 4:33:16 PM
4:33
това условие което си добавил би трябвало да запази старата логика
Lukas Kovalik
Today at 4:33:34 PM
4:33 PM
да, че нали при ask трябва да виждаш и ако си creator
Aneliya Angelova
Today at 4:33:39 PM
4:33 PM
да
Aneliya Angelova
Today at 5:25:37 PM
5:25 PM
ох Лукаш голямо мазало
Today at 5:25:48 PM
5:25
но не знам дали с последния къмит са се счупили
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 5:25:53 PM
5:25
репортите от киоска
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 5:29:17 PM
5:29
сега ще го опиша като дефект - не знам дали сега се счупило
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 5:29:28 PM
5:29
не съм ги тествала киоск репортите предните дни
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 5:29:32 PM
5:29
на прод е ок
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 5:32:53 PM
5:32 PM
ох, дай да ги видя, по принцип трябва да е само UI листване
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
New
Aneliya Angelova
Today at 5:35:11 PM
5:35 PM
когато създавам exec report например през киоска
избирам Teams, koeto nqma нищо общо с шерването и после в UI виждам тези тимове като Shared With
2 files
Toggle 2 files
Download all
image.png
image.png
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Todor Stamatov, Direct Message, 1 of 15 suggestions
Channel
Aneliya Angelova...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":14,"bounds":{"left":0.0056515955,"top":0.058260176,"width":0.011968086,"height":0.028731046},"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.0029920214,"top":0.10055866,"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.0066489363,"top":0.13806863,"width":0.009973404,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.0029920214,"top":0.15482841,"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.0076462766,"top":0.19233839,"width":0.007978723,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.0029920214,"top":0.20909816,"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.004986702,"top":0.24660814,"width":0.012965426,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.0029920214,"top":0.26336792,"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.0076462766,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.0029920214,"top":0.31763768,"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.00731383,"top":0.35514766,"width":0.008643617,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.0029920214,"top":0.3719074,"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.006981383,"top":0.4094174,"width":0.008976064,"height":0.0103751},"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"c-learning-people","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"frontend","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"people-with-copilot-licences","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"people-with-zoom-phone-licences","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":23,"bounds":{"left":0.042220745,"top":0.09177973,"width":0.03125,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"bounds":{"left":0.042220745,"top":0.10055866,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"bounds":{"left":0.042220745,"top":0.12290503,"width":0.03856383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"bounds":{"left":0.042220745,"top":0.1452514,"width":0.01662234,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"bounds":{"left":0.042220745,"top":0.16759777,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"bounds":{"left":0.042220745,"top":0.18994413,"width":0.016954787,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"bounds":{"left":0.042220745,"top":0.2122905,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"bounds":{"left":0.042220745,"top":0.23463687,"width":0.04488032,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Mario Georgiev","depth":23,"bounds":{"left":0.042220745,"top":0.28731045,"width":0.033909574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":24,"bounds":{"left":0.042220745,"top":0.30965683,"width":0.03357713,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"bounds":{"left":0.042220745,"top":0.3320032,"width":0.032912236,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":23,"bounds":{"left":0.042220745,"top":0.35434955,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Gabriela Dureva","depth":23,"bounds":{"left":0.042220745,"top":0.37669593,"width":0.03523936,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":23,"bounds":{"left":0.042220745,"top":0.3990423,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"bounds":{"left":0.042220745,"top":0.42138866,"width":0.026263298,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":23,"bounds":{"left":0.042220745,"top":0.44373503,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.042220745,"top":0.4660814,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.042220745,"top":0.4884278,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":23,"bounds":{"left":0.042220745,"top":0.51077414,"width":0.030585106,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.042220745,"top":0.5331205,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.07945479,"top":0.5331205,"width":0.0063164895,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"bounds":{"left":0.08211436,"top":0.5331205,"width":0.014295213,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.09607713,"top":0.5506784,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"bounds":{"left":0.09607713,"top":0.5506784,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"bounds":{"left":0.042220745,"top":0.5554669,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"bounds":{"left":0.042220745,"top":0.57781327,"width":0.031914894,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"bounds":{"left":0.042220745,"top":0.60015965,"width":0.0076462766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":23,"bounds":{"left":0.042220745,"top":0.6528332,"width":0.021609042,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":23,"bounds":{"left":0.042220745,"top":0.67517954,"width":0.011635638,"height":0.014365523},"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":17,"bounds":{"left":0.10206117,"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.111369684,"top":0.10055866,"width":0.01861702,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":18,"bounds":{"left":0.13397606,"top":0.09177973,"width":0.033909574,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":20,"bounds":{"left":0.14328457,"top":0.10055866,"width":0.021941489,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":17,"bounds":{"left":0.16921543,"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},{"role":"AXStaticText","text":"Files","depth":19,"bounds":{"left":0.17852394,"top":0.10055866,"width":0.008976064,"height":0.012769354},"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":17,"bounds":{"left":0.19115691,"top":0.09177973,"width":0.010970744,"height":0.030327214},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":17,"bounds":{"left":0.096409574,"top":0.0518755,"width":0.015625,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"List","depth":17,"bounds":{"left":0.096409574,"top":0.0518755,"width":0.0076462766,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":17,"bounds":{"left":0.096409574,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.15026596,"top":0.12689546,"width":0.025265958,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Aneliya Angelova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 4:31:35 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"4:31 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"значи точно по този казус съм питала Галя миналия спринт -","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"генерираните репорти се листват на ai-reports само ако си Recipient","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"ako si jiminny_recipient тогава получаваш само емейл","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 4:31:39 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"4:31","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"за тези от кисоска","depth":25,"role_description":"text"},{"role":"AXLink","text":"Today at 4:32:00 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"4:32","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"значи ако си jiminny recipient не трябва да ги виждаш в UIa","depth":25,"role_description":"text"},{"role":"AXLink","text":"Today at 4:33:16 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"4:33","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"това условие което си добавил би трябвало да запази старата логика","depth":25,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 4:33:34 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"4:33 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"да, че нали при ask трябва да виждаш и ако си creator","depth":25,"role_description":"text"},{"role":"AXButton","text":"Aneliya Angelova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 4:33:39 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"4:33 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"да","depth":25,"role_description":"text"},{"role":"AXButton","text":"Aneliya Angelova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 5:25:37 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:25 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ох Лукаш голямо мазало","depth":25,"bounds":{"left":0.11801862,"top":0.11572227,"width":0.05718085,"height":0.0007980846},"role_description":"text"},{"role":"AXLink","text":"Today at 5:25:48 PM","depth":25,"bounds":{"left":0.107380316,"top":0.12849163,"width":0.007978723,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:25","depth":26,"bounds":{"left":0.107380316,"top":0.12849163,"width":0.007978723,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"но не знам дали с последния къмит са се счупили","depth":25,"bounds":{"left":0.11801862,"top":0.12609737,"width":0.09507979,"height":0.031923383},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.13730054,"top":0.11572227,"width":0.010638298,"height":0.011173184},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.14793883,"top":0.11572227,"width":0.010638298,"height":0.011173184},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.15857713,"top":0.11572227,"width":0.010638298,"height":0.011173184},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.16921543,"top":0.11572227,"width":0.010638298,"height":0.011173184},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"bounds":{"left":0.17985372,"top":0.11572227,"width":0.010638298,"height":0.011173184},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"bounds":{"left":0.22340426,"top":0.11572227,"width":0.0003324468,"height":0.011173184},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"bounds":{"left":0.22340426,"top":0.11572227,"width":0.0003324468,"height":0.011173184},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"bounds":{"left":0.22340426,"top":0.11572227,"width":0.0003324468,"height":0.011173184},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 5:25:53 PM","depth":25,"bounds":{"left":0.107380316,"top":0.16999201,"width":0.007978723,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:25","depth":26,"bounds":{"left":0.107380316,"top":0.16999201,"width":0.007978723,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"репортите от киоска","depth":25,"bounds":{"left":0.11801862,"top":0.16759777,"width":0.047872342,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.13730054,"top":0.14285715,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.14793883,"top":0.14285715,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.15857713,"top":0.14285715,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.16921543,"top":0.14285715,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"bounds":{"left":0.17985372,"top":0.14285715,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"bounds":{"left":0.22340426,"top":0.14285715,"width":0.0003324468,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"bounds":{"left":0.22340426,"top":0.14285715,"width":0.0003324468,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"bounds":{"left":0.22340426,"top":0.14285715,"width":0.0003324468,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 5:29:17 PM","depth":25,"bounds":{"left":0.107380316,"top":0.19393456,"width":0.007978723,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:29","depth":26,"bounds":{"left":0.107380316,"top":0.19393456,"width":0.007978723,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"сега ще го опиша като дефект - не знам дали сега се счупило","depth":25,"bounds":{"left":0.11801862,"top":0.1915403,"width":0.09208777,"height":0.031923383},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.13730054,"top":0.16679968,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.14793883,"top":0.16679968,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.15857713,"top":0.16679968,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.16921543,"top":0.16679968,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"bounds":{"left":0.17985372,"top":0.16679968,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"bounds":{"left":0.22340426,"top":0.16679968,"width":0.0003324468,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"bounds":{"left":0.22340426,"top":0.16679968,"width":0.0003324468,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"bounds":{"left":0.22340426,"top":0.16679968,"width":0.0003324468,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 5:29:28 PM","depth":25,"bounds":{"left":0.107380316,"top":0.23543495,"width":0.007978723,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:29","depth":26,"bounds":{"left":0.107380316,"top":0.23543495,"width":0.007978723,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"не съм ги тествала киоск репортите предните дни","depth":25,"bounds":{"left":0.11801862,"top":0.2330407,"width":0.08344415,"height":0.031923383},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.13730054,"top":0.20830008,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.14793883,"top":0.20830008,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.15857713,"top":0.20830008,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.16921543,"top":0.20830008,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"bounds":{"left":0.17985372,"top":0.20830008,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"bounds":{"left":0.22340426,"top":0.20830008,"width":0.0003324468,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"bounds":{"left":0.22340426,"top":0.20830008,"width":0.0003324468,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"bounds":{"left":0.22340426,"top":0.20830008,"width":0.0003324468,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 5:29:32 PM","depth":25,"bounds":{"left":0.107380316,"top":0.27693537,"width":0.007978723,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:29","depth":26,"bounds":{"left":0.107380316,"top":0.27693537,"width":0.007978723,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"на прод е ок","depth":25,"bounds":{"left":0.11801862,"top":0.2745411,"width":0.028590426,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.13730054,"top":0.24980047,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.14793883,"top":0.24980047,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.15857713,"top":0.24980047,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.16921543,"top":0.24980047,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"bounds":{"left":0.17985372,"top":0.24980047,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"bounds":{"left":0.22340426,"top":0.24980047,"width":0.0003324468,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"bounds":{"left":0.22340426,"top":0.24980047,"width":0.0003324468,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"bounds":{"left":0.22340426,"top":0.24980047,"width":0.0003324468,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.11801862,"top":0.29688746,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.14860372,"top":0.29848364,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 5:32:53 PM","depth":24,"bounds":{"left":0.1512633,"top":0.3008779,"width":0.015292553,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:32 PM","depth":25,"bounds":{"left":0.1512633,"top":0.3008779,"width":0.015292553,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"ох, дай да ги видя, по принцип трябва да е само UI листване","depth":25,"bounds":{"left":0.11801862,"top":0.3160415,"width":0.098071806,"height":0.031923383},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.13730054,"top":0.28332004,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.14793883,"top":0.28332004,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.15857713,"top":0.28332004,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.16921543,"top":0.28332004,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"bounds":{"left":0.17985372,"top":0.28332004,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"bounds":{"left":0.22340426,"top":0.28332004,"width":0.0003324468,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"bounds":{"left":0.22340426,"top":0.28332004,"width":0.0003324468,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"bounds":{"left":0.22340426,"top":0.28332004,"width":0.0003324468,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"New","depth":22,"bounds":{"left":0.21343085,"top":0.34557062,"width":0.00930851,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Aneliya Angelova","depth":24,"bounds":{"left":0.11801862,"top":0.35594574,"width":0.038896278,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.15658244,"top":0.3575419,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 5:35:11 PM","depth":24,"bounds":{"left":0.15924202,"top":0.35993615,"width":0.015292553,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:35 PM","depth":25,"bounds":{"left":0.15924202,"top":0.35993615,"width":0.015292553,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"когато създавам exec report например през киоска","depth":25,"bounds":{"left":0.11801862,"top":0.37509975,"width":0.099734046,"height":0.031923383},"role_description":"text"},{"role":"AXStaticText","text":"избирам Teams, koeto nqma нищо общо с шерването и после в UI виждам тези тимове като Shared With","depth":25,"bounds":{"left":0.11801862,"top":0.4102155,"width":0.103390954,"height":0.049481247},"role_description":"text"},{"role":"AXStaticText","text":"2 files","depth":25,"bounds":{"left":0.11801862,"top":0.4660814,"width":0.011303191,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.12898937,"top":0.4660814,"width":0.0016622341,"height":0.014365523},"role_description":"text"},{"role":"AXButton","text":"Toggle 2 files","depth":25,"bounds":{"left":0.13031915,"top":0.46528333,"width":0.006981383,"height":0.015961692},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Download all","depth":26,"bounds":{"left":0.14228724,"top":0.46528333,"width":0.03324468,"height":0.015961692},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"image.png","depth":25,"bounds":{"left":0.11801862,"top":0.48523542,"width":0.049534574,"height":0.12210695},"role_description":"Unlabelled image","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"image.png","depth":25,"bounds":{"left":0.17154256,"top":0.48523542,"width":0.049534574,"height":0.12210695},"role_description":"Unlabelled image","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.13730054,"top":0.3423783,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.14793883,"top":0.3423783,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.15857713,"top":0.3423783,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.16921543,"top":0.3423783,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"bounds":{"left":0.17985372,"top":0.3423783,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"bounds":{"left":0.22340426,"top":0.3423783,"width":0.0003324468,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"bounds":{"left":0.22340426,"top":0.3423783,"width":0.0003324468,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"bounds":{"left":0.22340426,"top":0.3423783,"width":0.0003324468,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"","depth":23,"bounds":{"left":0.10372341,"top":0.6272945,"width":0.118351065,"height":0.030327214},"value":"","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Todor Stamatov, Direct Message, 1 of 15 suggestions","depth":11,"bounds":{"left":0.0,"top":0.7126895,"width":0.026263298,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Channel","depth":11,"bounds":{"left":0.0,"top":0.7126895,"width":0.017287234,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":13,"bounds":{"left":0.04488032,"top":0.2793296,"width":0.03324468,"height":0.012769354},"role_description":"text"}]...
|
9116120086882393206
|
-415573774601633728
|
click
|
hybrid
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
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
c-learning-people
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
people-with-copilot-licences
people-with-zoom-phone-licences
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Mario Georgiev
Aneliya Angelova
Nikolay Yankov
Todor Stamatov
Gabriela Dureva
Petko Kashinski
Vasil Vasilev
Nikolay Nikolov
Galya Dimitrova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Stoyan Tanev
Nikolay Ivanov
Ves
Jira Cloud
Toast
Messages
Messages
Add canvas
Add canvas
Files
Files
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Aneliya Angelova
Today at 4:31:35 PM
4:31 PM
значи точно по този казус съм питала Галя миналия спринт -
генерираните репорти се листват на ai-reports само ако си Recipient
ako si jiminny_recipient тогава получаваш само емейл
Today at 4:31:39 PM
4:31
за тези от кисоска
Today at 4:32:00 PM
4:32
значи ако си jiminny recipient не трябва да ги виждаш в UIa
Today at 4:33:16 PM
4:33
това условие което си добавил би трябвало да запази старата логика
Lukas Kovalik
Today at 4:33:34 PM
4:33 PM
да, че нали при ask трябва да виждаш и ако си creator
Aneliya Angelova
Today at 4:33:39 PM
4:33 PM
да
Aneliya Angelova
Today at 5:25:37 PM
5:25 PM
ох Лукаш голямо мазало
Today at 5:25:48 PM
5:25
но не знам дали с последния къмит са се счупили
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 5:25:53 PM
5:25
репортите от киоска
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 5:29:17 PM
5:29
сега ще го опиша като дефект - не знам дали сега се счупило
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 5:29:28 PM
5:29
не съм ги тествала киоск репортите предните дни
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 5:29:32 PM
5:29
на прод е ок
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 5:32:53 PM
5:32 PM
ох, дай да ги видя, по принцип трябва да е само UI листване
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
New
Aneliya Angelova
Today at 5:35:11 PM
5:35 PM
когато създавам exec report например през киоска
избирам Teams, koeto nqma нищо общо с шерването и после в UI виждам тези тимове като Shared With
2 files
Toggle 2 files
Download all
image.png
image.png
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Todor Stamatov, Direct Message, 1 of 15 suggestions
Channel
Aneliya Angelova
ActivityMoreslackcalVIewJiminny…..# platform-tickets# product launches# random# releases# support# thank-yous# the people of iimi..Di-Aneliya AngelovaA. Aneliya Angelo.... Nikolay Yankovey odor StamatovCa Gabriela Dureva&. Petko KashinskiG. Vasil Vasilevf. Nikolay NikolovP. Galya Dimitrova@ Stefka StoyanovaR. Stoyan TomovAneliya Angelova,..2. Stoyan TanevC. Nikolay IvanovVes#i: AppsG Jira CloudToastHistoryWindowhelp@ Describe what you are looking forNo Mario Georgiev• Messagest Add canvasUr Filesили само за ссToday ~ alls сетнати да сеtlnlerrnTodd Upchurch Inbox Jiminny Intercom 2026-04-21 at 5.32.55 PM.jpgReportsluknc Kounlk 6.22 DNздрасти че няма activity със status scheduledкоито са на оpportunityMario Georgiev 5:34 PMдемек това от скрииншота валидно ли е иличе там има статус ама е различносмисъл кои точно активитита глеедаме и откъдеLukas Kovallk 5.35 PMпои нас какво е има ли гопо принцип ако сме го логнали значи се есьстояло и не e scheduledMessage Mario Georgiev+ Aa IJiminny StagingJiminny StagingJy-18909-automated-reports-ask-TEAMTYPEExec SummaryExec SummaryExec SummaryExec SummaryExec SummaryExec SummaryExec SummaryCoaching ProfilesExec SummaryExec SummaryExec SummaryExec SummaryProduct FeedbackProduct FeedbackExec SummaryREPORT TYPETEAMSFREQUENCYWeeklySales TeamWeeklyEngineering, Client Success, Client Success -ENTOne-OffEngineeringUK Sales, EngineeringOne-OffOne-OffOne-OffWeeklyWeeklyOne-OffOne-OffOne-OffOne-OffOne-OffOne-OffOne-OffRECIPIENTS60OCREATOR ÷100% Lz8 Tue 21 Apr 17:35:43CREATED AT20/03/202617/12/202521/04/202620/04/202615/04/202631/03/202631/03/202631/03/202631/03/202627/03/202626/03/202626/03/202627/02/202627/02/202426/02/2026...
|
66326
|
|
44194
|
935
|
11
|
2026-04-17T08:35:36.735645+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776414936735_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
+FirefoxFileEditViewHistoryBookmarksProfilesToolsW +FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelp→meet.google.com/xpx-omah-rknllian Kyuchukov (Presenting, annotating)DBeaverFileNavigateSearchà Database Navigator Xai.Jopp|teamicrmlocalhost12700.1:33064 Prod EU VIEW bonlbust 25124 Prod EU WRITE locafvat:7532Prod VIEWEy Databasesinost:7632Fitered by searchal,crm_template_filtersar crmatemp te.oal_crm_template_runs5 aLcrm_template_write_Jogs432K|20мaiLscorecard_fiiterstaiscorecard_rule_runsTE aLscorecard_rulestaecerocarehonsaLscorecardsI6 crm_ configurationsT crm_field_valuescrm_fields0 crm. Jayout _entitiesI crm_Jayoutsicruisowcrm_profile_record_typescrm_profies240K|512K224K212M168M224K3.1Gweoodottinty conmene1.1G3.3G|126- General X0-+:a Dookmarkyy Dashboardsas DiaorameEl Scripts6 Prod WRITE • jiminny » E al,crm,templatesPS11:35 AM | Daily - ProcessingHelpDBeaver 26.0.2 - al_crm_templatesopportunitiesI Properties Data• B•2• R•opportunity_stOlagram→ aLcrm_tempiat.…as is enabied7 Metadata X123 idR6 wuidwuid123 team_jdteam_id123 ig_enableris_enabled123 is_auto_sy is_auto_syncArcondwooicctwoe123 created_b created_by Jusecreatod. a created.at@updated_iupdated_at@ deleted_a deleted_ato RecortRettethSave +team_id = 1018ds is_auto_sync1 opportunitylCatalog Name0 BIGINT UNSIGN jiminny2 INTEGER UNSIG3 VARCHAR7 INTEGER UNSIG8 TIMESTAMP" TIMESTAN10 TIMESTAMPE51K<psooet diotSIla6lSupport Daily - in 3h 25 m100% 1978 • Fri 17 Apr 11:35:366O1.+= 40 0 $ ка• • Q 8- fm17 Apr 11:35X aCrm,temp... X TT] ooportuntiescrm_configurati.fz ai_cmm,templa.aa created_by_user_jd22,39728,31528,31528,315@created,an2025-11-19 14:63:132025-11-20 21:35:482025-11-20 22:13:31@ updated_aO deleted_at2025-11-20 2217-522025-11-20 22:17:522025-11-20 23-59-552025-11-20 23:59:652025-11-20 2138:48 2025-11-20 23:59:652025-11-20 22:28-202025-11-20 23-59:55JIMVasil Vasilevlian Kyuchukoval_crm_templatsdeCiatomoacmatomodaciatemodMaк LengenPrecision3 *N3338536383Scale J0BC TypeO BIGINTO INTEGERo VArCHARO TINYINTO TINYNTO VARCHARO INTEGERO TIMESTAMPOTVESTAMTO TIMESTAMP- 4 row|s) fetched - 0.137s (0.001s fetch), on 2026-04-17 at 10:51:36Mihail MihaylovNikolay Nikolov2024-11.6.56.pngLukas KovalikLộ3...
|
NULL
|
9115769466681916360
|
NULL
|
click
|
ocr
|
NULL
|
+FirefoxFileEditViewHistoryBookmarksProfilesToolsW +FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelp→meet.google.com/xpx-omah-rknllian Kyuchukov (Presenting, annotating)DBeaverFileNavigateSearchà Database Navigator Xai.Jopp|teamicrmlocalhost12700.1:33064 Prod EU VIEW bonlbust 25124 Prod EU WRITE locafvat:7532Prod VIEWEy Databasesinost:7632Fitered by searchal,crm_template_filtersar crmatemp te.oal_crm_template_runs5 aLcrm_template_write_Jogs432K|20мaiLscorecard_fiiterstaiscorecard_rule_runsTE aLscorecard_rulestaecerocarehonsaLscorecardsI6 crm_ configurationsT crm_field_valuescrm_fields0 crm. Jayout _entitiesI crm_Jayoutsicruisowcrm_profile_record_typescrm_profies240K|512K224K212M168M224K3.1Gweoodottinty conmene1.1G3.3G|126- General X0-+:a Dookmarkyy Dashboardsas DiaorameEl Scripts6 Prod WRITE • jiminny » E al,crm,templatesPS11:35 AM | Daily - ProcessingHelpDBeaver 26.0.2 - al_crm_templatesopportunitiesI Properties Data• B•2• R•opportunity_stOlagram→ aLcrm_tempiat.…as is enabied7 Metadata X123 idR6 wuidwuid123 team_jdteam_id123 ig_enableris_enabled123 is_auto_sy is_auto_syncArcondwooicctwoe123 created_b created_by Jusecreatod. a created.at@updated_iupdated_at@ deleted_a deleted_ato RecortRettethSave +team_id = 1018ds is_auto_sync1 opportunitylCatalog Name0 BIGINT UNSIGN jiminny2 INTEGER UNSIG3 VARCHAR7 INTEGER UNSIG8 TIMESTAMP" TIMESTAN10 TIMESTAMPE51K<psooet diotSIla6lSupport Daily - in 3h 25 m100% 1978 • Fri 17 Apr 11:35:366O1.+= 40 0 $ ка• • Q 8- fm17 Apr 11:35X aCrm,temp... X TT] ooportuntiescrm_configurati.fz ai_cmm,templa.aa created_by_user_jd22,39728,31528,31528,315@created,an2025-11-19 14:63:132025-11-20 21:35:482025-11-20 22:13:31@ updated_aO deleted_at2025-11-20 2217-522025-11-20 22:17:522025-11-20 23-59-552025-11-20 23:59:652025-11-20 2138:48 2025-11-20 23:59:652025-11-20 22:28-202025-11-20 23-59:55JIMVasil Vasilevlian Kyuchukoval_crm_templatsdeCiatomoacmatomodaciatemodMaк LengenPrecision3 *N3338536383Scale J0BC TypeO BIGINTO INTEGERo VArCHARO TINYINTO TINYNTO VARCHARO INTEGERO TIMESTAMPOTVESTAMTO TIMESTAMP- 4 row|s) fetched - 0.137s (0.001s fetch), on 2026-04-17 at 10:51:36Mihail MihaylovNikolay Nikolov2024-11.6.56.pngLukas KovalikLộ3...
|
NULL
|
|
16445
|
362
|
40
|
2026-04-14T15:17:05.929798+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776179825929_m1.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
+SlackFileEditViewGoHistoryWindowHelpEDHome1DMSAct +SlackFileEditViewGoHistoryWindowHelpEDHome1DMSActivityFilesLater..•More+→Search Jiminny IncJiminny ...# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesAneliya Angelo...Vasil VasilevSteliyan GeorgievAdelina Petrova, Ili...P. Adelina Petrova% Galya DimitrovaRs Nikolay Nikolov "2Galya Dimitrova, Ni...2 Galya Dimitrova, Ni...i: AppsJira CloudToastGoogle Cale...# general42MessagesMore v@ Files• BookmarksDetraction Cor4 3Today ~A.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:Q181Message #general++New(lol14Activity MonitorAll ProcessesProcess NameBoosteroidFirefoxCP Isolated Web ContentWindowServerFirefoxFirefoxCP Isolated Web ContentFirefoxFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentCursorUlViewService (Not Responding)Notion Calendar Helper (Renderer)VTDecoderXPCServiceFirefox GPU HelperSlack Helper (Renderer)Firefox 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,01 GB1,18 GB993,5 MB886,4 MB776,3 MB762,9 MB739,8 MB733,2 MB636,3 MB501,3 MB591,6 MB547,2 MB543,7 MB541,7 MB502,2 MB483,4 MB475,2 MB432,8 MB416,7 MB382,9 MB377,1 MB373,5 MB372,1 MB351,0 MB335,4 MB321,1 MB278,7 MB277,2 MBPhysical Memory:Memory Used:Cached Files:Swap Used:100% <47Tue 14 Apr 18:17:05CPUMemoryDiskThreads382422812972232515112615262028222526252727232725222413EnergyPorts60012216 13394112470911912516 41217516822717923731812911712112412212612512012412611712072PID248351470040714664600358014500478484984226548248438019242731467311487087349623340701479150891282461334328931710951120232249278005091016,00 GB13,98 GB <1,96 GB3,13 GBApp Memory:Wired Memory:Compressed:NetworkUserlukaslukas_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas3,85 GB3,09 GB6,49 GB...
|
NULL
|
9115314681101100750
|
NULL
|
click
|
ocr
|
NULL
|
+SlackFileEditViewGoHistoryWindowHelpEDHome1DMSAct +SlackFileEditViewGoHistoryWindowHelpEDHome1DMSActivityFilesLater..•More+→Search Jiminny IncJiminny ...# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesAneliya Angelo...Vasil VasilevSteliyan GeorgievAdelina Petrova, Ili...P. Adelina Petrova% Galya DimitrovaRs Nikolay Nikolov "2Galya Dimitrova, Ni...2 Galya Dimitrova, Ni...i: AppsJira CloudToastGoogle Cale...# general42MessagesMore v@ Files• BookmarksDetraction Cor4 3Today ~A.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:Q181Message #general++New(lol14Activity MonitorAll ProcessesProcess NameBoosteroidFirefoxCP Isolated Web ContentWindowServerFirefoxFirefoxCP Isolated Web ContentFirefoxFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentCursorUlViewService (Not Responding)Notion Calendar Helper (Renderer)VTDecoderXPCServiceFirefox GPU HelperSlack Helper (Renderer)Firefox 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,01 GB1,18 GB993,5 MB886,4 MB776,3 MB762,9 MB739,8 MB733,2 MB636,3 MB501,3 MB591,6 MB547,2 MB543,7 MB541,7 MB502,2 MB483,4 MB475,2 MB432,8 MB416,7 MB382,9 MB377,1 MB373,5 MB372,1 MB351,0 MB335,4 MB321,1 MB278,7 MB277,2 MBPhysical Memory:Memory Used:Cached Files:Swap Used:100% <47Tue 14 Apr 18:17:05CPUMemoryDiskThreads382422812972232515112615262028222526252727232725222413EnergyPorts60012216 13394112470911912516 41217516822717923731812911712112412212612512012412611712072PID248351470040714664600358014500478484984226548248438019242731467311487087349623340701479150891282461334328931710951120232249278005091016,00 GB13,98 GB <1,96 GB3,13 GBApp Memory:Wired Memory:Compressed:NetworkUserlukaslukas_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas3,85 GB3,09 GB6,49 GB...
|
16443
|
|
29938
|
611
|
8
|
2026-04-15T14:51:42.660370+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776264702660_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
164212150641461935164/200Imperial AgeMagnus Olafss 164212150641461935164/200Imperial AgeMagnus Olafsson hasresignedPlayer 5 Magnus Olafsson!!!--Stable Built--Magnus Olafsson resigned.--Warning: You are being attacked byPlayer 8 Almish Yiltawar!!!-when my folk sought to use it as food.5 Magnus Olafsson: No wonder thouwert victorious! I shalt abdicate.Click to select this building1 kovaliklukas: 43880/43880ENVE Magnus Olafscons 40274/40274 IV8 Almish Yiltawar: 34308/34308 © IVRajyapala: 20275/23275 0 IVC2 0cl L0 22424242 IV7 Manimiian of Habsburg: 6531/6531 W IV3 HuaseÁn: 5931/5231NV4 Lowig VI: 5792/57020IV...
|
NULL
|
9114663113992200275
|
NULL
|
visual_change
|
ocr
|
NULL
|
164212150641461935164/200Imperial AgeMagnus Olafss 164212150641461935164/200Imperial AgeMagnus Olafsson hasresignedPlayer 5 Magnus Olafsson!!!--Stable Built--Magnus Olafsson resigned.--Warning: You are being attacked byPlayer 8 Almish Yiltawar!!!-when my folk sought to use it as food.5 Magnus Olafsson: No wonder thouwert victorious! I shalt abdicate.Click to select this building1 kovaliklukas: 43880/43880ENVE Magnus Olafscons 40274/40274 IV8 Almish Yiltawar: 34308/34308 © IVRajyapala: 20275/23275 0 IVC2 0cl L0 22424242 IV7 Manimiian of Habsburg: 6531/6531 W IV3 HuaseÁn: 5931/5231NV4 Lowig VI: 5792/57020IV...
|
NULL
|
|
55205
|
1192
|
4
|
2026-04-20T09:38:35.952329+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677915952_m2.jpg...
|
PhpStorm
|
faVsco.js – RequestGenerateAskJiminnyReportJob.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
remote: Resolving deltas: 100% (12/12), completed remote: Resolving deltas: 100% (12/12), completed with 12 local objects.
5 files committed
JY-18909 fix max date check on update & include activity filter
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\AutomatedReports;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\ProphetAi\Exceptions\ProphetException;
use Jiminny\Component\ProphetAi\ProphetClient;
use Jiminny\Component\Queue\Constants;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Psr\Log\LoggerInterface;
use Throwable;
class RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUnique
{
use InteractsWithQueue;
use Queueable;
private const string LOG_PREFIX = '[AskJiminnyReport:Generate]';
private const int MIN_ACTIVITIES_COUNT = 1;
public int $tries = 2;
private ?AutomatedReportResult $reportResult = null;
public function __construct(private readonly string $reportUuid)
{
$this->onQueue(Constants::QUEUE_ANALYTICS);
}
public function uniqueId(): string
{
return $this->reportUuid;
}
public function handle(
AutomatedReportsService $reportService,
AskJiminnyReportActivityService $activityService,
ProphetClient $prophetClient,
LoggerInterface $logger,
): void {
$logger->info(self::LOG_PREFIX . ' Started', [
'automatedReportUuid' => $this->reportUuid,
]);
try {
$automatedReport = $reportService->getReport($this->reportUuid);
if (! $this->validateReport($automatedReport, $logger)) {
return;
}
$creator = $automatedReport->getCreator();
if ($creator === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, report creator not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$savedSearch = $automatedReport->getSavedSearch();
if ($savedSearch === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$prompt = $automatedReport->getAskAnythingPrompt();
if ($prompt === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$this->reportResult = $reportService->getOrCreateReportResult(
automatedReport: $automatedReport,
data: [
'status' => AutomatedReportResult::STATUS_DEFAULT,
'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,
]
);
$activityIds = $activityService->getActivityIdsForSavedSearch(
savedSearch: $savedSearch,
user: $creator,
frequency: $automatedReport->getFrequency(),
);
$logger->info(self::LOG_PREFIX . ' Fetched activity IDs', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {
$this->failReport(AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);
$logger->info(self::LOG_PREFIX . ' Not enough activities, skipped', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
return;
}
$payload = $reportService->getAskJiminnyGenerateReportPayload(
automatedReport: $automatedReport,
reportResult: $this->reportResult,
activityIds: $activityIds,
);
$this->reportResult->update([
'name' => $reportService->getReportFileName($this->reportResult),
'payload' => $payload,
'status' => AutomatedReportResult::STATUS_REQUESTED,
'requested_at' => Carbon::now()->toDateTimeString(),
]);
$logger->info(self::LOG_PREFIX . ' Request sent', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult->getUuid(),
'payload' => $payload,
]);
$response = $prophetClient->sendRequest(
endpoint: ProphetClient::ASK_JIMINNY_REPORT,
requestArray: $payload,
);
$logger->info(self::LOG_PREFIX . ' Response received', [
'response' => $response->getContent(),
]);
} catch (Throwable $exception) {
$reason = $exception instanceof ProphetException
? AutomatedReportResult::REASON_PROPHET_API_ERROR
: AutomatedReportResult::REASON_DEFAULT;
$this->failReport($reason);
$logger->error(self::LOG_PREFIX . ' Error', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult?->getUuid(),
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
]);
if ($this->attempts() < $this->tries) {
$logger->info(self::LOG_PREFIX . ' Retry scheduled', [
'attempts' => $this->attempts(),
]);
$this->release(30);
} else {
$this->fail($exception);
}
}
}
private function validateReport(AutomatedReport $automatedReport, LoggerInterface $logger): bool
{
if ($automatedReport->getType() !== AutomatedReportsService::TYPE_ASK_JIMINNY) {
$logger->warning(self::LOG_PREFIX . ' Skipped, not an ask_jiminny report', [
'automatedReportUuid' => $this->reportUuid,
'type' => $automatedReport->getType(),
]);
return false;
}
if (! $automatedReport->getStatus()) {
$logger->info(self::LOG_PREFIX . ' Skipped, report is not active', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
if ($automatedReport->getTeam()->getStatus() !== Team::STATUS_ACTIVE) {
$logger->info(self::LOG_PREFIX . ' Skipped, team is inactive', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
return true;
}
private function failReport(int $reason): void
{
$this->reportResult?->update([
'status' => AutomatedReportResult::STATUS_FAILED,
'reason' => $reason,
]);
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
10
12
2
4
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select * from teams where id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM automated_reports 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 ask_anything_prompts;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01'
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"","depth":2,"bounds":{"left":0.63796544,"top":0.4612929,"width":0.06948138,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"remote: Resolving deltas: 100% (12/12), completed with 12 local objects.","depth":2,"bounds":{"left":0.63796544,"top":0.49321628,"width":0.06948138,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"5 files committed","depth":2,"bounds":{"left":0.8753325,"top":0.89944136,"width":0.100398935,"height":0.013567438},"role_description":"text"},{"role":"AXTextField","text":"JY-18909 fix max date check on update & include activity filter","depth":3,"bounds":{"left":0.8753325,"top":0.915403,"width":0.11037234,"height":0.027134877},"value":"JY-18909 fix max date check on update & include activity filter","help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"bounds":{"left":0.8753325,"top":0.915403,"width":0.102726065,"height":0.027134877},"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Edit Commit Message…","depth":2,"bounds":{"left":0.8753325,"top":0.9481245,"width":0.048204787,"height":0.013567438},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"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":"#11894 on JY-18909-automated-reports-ask-jiminny, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.12732713,"height":0.025538707},"help_text":"Pull request #11894 exists for current branch JY-18909-automated-reports-ask-jiminny","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.7972075,"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":"RequestGenerateAskJiminnyReportJobTest","depth":6,"bounds":{"left":0.8125,"top":0.019952115,"width":0.10305851,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'RequestGenerateAskJiminnyReportJobTest'","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 'RequestGenerateAskJiminnyReportJobTest'","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":"3","depth":4,"bounds":{"left":0.37965426,"top":0.273743,"width":0.007978723,"height":0.015163607},"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.38929522,"top":0.27214685,"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.39660904,"top":0.27214685,"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\\Jobs\\AutomatedReports;\n\nuse Carbon\\Carbon;\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldBeUnique;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Component\\ProphetAi\\Exceptions\\ProphetException;\nuse Jiminny\\Component\\ProphetAi\\ProphetClient;\nuse Jiminny\\Component\\Queue\\Constants;\nuse Jiminny\\Models\\AutomatedReport;\nuse Jiminny\\Models\\AutomatedReportResult;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\AskJiminnyReportActivityService;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService;\nuse Psr\\Log\\LoggerInterface;\nuse Throwable;\n\nclass RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUnique\n{\n use InteractsWithQueue;\n use Queueable;\n\n private const string LOG_PREFIX = '[AskJiminnyReport:Generate]';\n\n private const int MIN_ACTIVITIES_COUNT = 1;\n\n public int $tries = 2;\n\n private ?AutomatedReportResult $reportResult = null;\n\n public function __construct(private readonly string $reportUuid)\n {\n $this->onQueue(Constants::QUEUE_ANALYTICS);\n }\n\n public function uniqueId(): string\n {\n return $this->reportUuid;\n }\n\n public function handle(\n AutomatedReportsService $reportService,\n AskJiminnyReportActivityService $activityService,\n ProphetClient $prophetClient,\n LoggerInterface $logger,\n ): void {\n $logger->info(self::LOG_PREFIX . ' Started', [\n 'automatedReportUuid' => $this->reportUuid,\n ]);\n\n try {\n $automatedReport = $reportService->getReport($this->reportUuid);\n\n if (! $this->validateReport($automatedReport, $logger)) {\n return;\n }\n\n $creator = $automatedReport->getCreator();\n if ($creator === null) {\n $logger->warning(self::LOG_PREFIX . ' Skipped, report creator not found', [\n 'automatedReportUuid' => $this->reportUuid,\n ]);\n\n return;\n }\n\n $savedSearch = $automatedReport->getSavedSearch();\n if ($savedSearch === null) {\n $logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', [\n 'automatedReportUuid' => $this->reportUuid,\n ]);\n\n return;\n }\n\n $prompt = $automatedReport->getAskAnythingPrompt();\n if ($prompt === null) {\n $logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', [\n 'automatedReportUuid' => $this->reportUuid,\n ]);\n\n return;\n }\n\n $this->reportResult = $reportService->getOrCreateReportResult(\n automatedReport: $automatedReport,\n data: [\n 'status' => AutomatedReportResult::STATUS_DEFAULT,\n 'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,\n ]\n );\n\n $activityIds = $activityService->getActivityIdsForSavedSearch(\n savedSearch: $savedSearch,\n user: $creator,\n frequency: $automatedReport->getFrequency(),\n );\n\n $logger->info(self::LOG_PREFIX . ' Fetched activity IDs', [\n 'automatedReportUuid' => $this->reportUuid,\n 'activityCount' => count($activityIds),\n ]);\n\n if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {\n $this->failReport(AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);\n\n $logger->info(self::LOG_PREFIX . ' Not enough activities, skipped', [\n 'automatedReportUuid' => $this->reportUuid,\n 'activityCount' => count($activityIds),\n ]);\n\n return;\n }\n\n $payload = $reportService->getAskJiminnyGenerateReportPayload(\n automatedReport: $automatedReport,\n reportResult: $this->reportResult,\n activityIds: $activityIds,\n );\n\n $this->reportResult->update([\n 'name' => $reportService->getReportFileName($this->reportResult),\n 'payload' => $payload,\n 'status' => AutomatedReportResult::STATUS_REQUESTED,\n 'requested_at' => Carbon::now()->toDateTimeString(),\n ]);\n\n $logger->info(self::LOG_PREFIX . ' Request sent', [\n 'automatedReportUuid' => $this->reportUuid,\n 'reportUuid' => $this->reportResult->getUuid(),\n 'payload' => $payload,\n ]);\n\n $response = $prophetClient->sendRequest(\n endpoint: ProphetClient::ASK_JIMINNY_REPORT,\n requestArray: $payload,\n );\n\n $logger->info(self::LOG_PREFIX . ' Response received', [\n 'response' => $response->getContent(),\n ]);\n } catch (Throwable $exception) {\n $reason = $exception instanceof ProphetException\n ? AutomatedReportResult::REASON_PROPHET_API_ERROR\n : AutomatedReportResult::REASON_DEFAULT;\n\n $this->failReport($reason);\n\n $logger->error(self::LOG_PREFIX . ' Error', [\n 'automatedReportUuid' => $this->reportUuid,\n 'reportUuid' => $this->reportResult?->getUuid(),\n 'code' => $exception->getCode(),\n 'message' => $exception->getMessage(),\n ]);\n\n if ($this->attempts() < $this->tries) {\n $logger->info(self::LOG_PREFIX . ' Retry scheduled', [\n 'attempts' => $this->attempts(),\n ]);\n\n $this->release(30);\n } else {\n $this->fail($exception);\n }\n }\n }\n\n private function validateReport(AutomatedReport $automatedReport, LoggerInterface $logger): bool\n {\n if ($automatedReport->getType() !== AutomatedReportsService::TYPE_ASK_JIMINNY) {\n $logger->warning(self::LOG_PREFIX . ' Skipped, not an ask_jiminny report', [\n 'automatedReportUuid' => $this->reportUuid,\n 'type' => $automatedReport->getType(),\n ]);\n\n return false;\n }\n\n if (! $automatedReport->getStatus()) {\n $logger->info(self::LOG_PREFIX . ' Skipped, report is not active', [\n 'automatedReportUuid' => $this->reportUuid,\n ]);\n\n return false;\n }\n\n if ($automatedReport->getTeam()->getStatus() !== Team::STATUS_ACTIVE) {\n $logger->info(self::LOG_PREFIX . ' Skipped, team is inactive', [\n 'automatedReportUuid' => $this->reportUuid,\n ]);\n\n return false;\n }\n\n return true;\n }\n\n private function failReport(int $reason): void\n {\n $this->reportResult?->update([\n 'status' => AutomatedReportResult::STATUS_FAILED,\n 'reason' => $reason,\n ]);\n }\n}","depth":4,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\AutomatedReports;\n\nuse Carbon\\Carbon;\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldBeUnique;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Component\\ProphetAi\\Exceptions\\ProphetException;\nuse Jiminny\\Component\\ProphetAi\\ProphetClient;\nuse Jiminny\\Component\\Queue\\Constants;\nuse Jiminny\\Models\\AutomatedReport;\nuse Jiminny\\Models\\AutomatedReportResult;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\AskJiminnyReportActivityService;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService;\nuse Psr\\Log\\LoggerInterface;\nuse Throwable;\n\nclass RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUnique\n{\n use InteractsWithQueue;\n use Queueable;\n\n private const string LOG_PREFIX = '[AskJiminnyReport:Generate]';\n\n private const int MIN_ACTIVITIES_COUNT = 1;\n\n public int $tries = 2;\n\n private ?AutomatedReportResult $reportResult = null;\n\n public function __construct(private readonly string $reportUuid)\n {\n $this->onQueue(Constants::QUEUE_ANALYTICS);\n }\n\n public function uniqueId(): string\n {\n return $this->reportUuid;\n }\n\n public function handle(\n AutomatedReportsService $reportService,\n AskJiminnyReportActivityService $activityService,\n ProphetClient $prophetClient,\n LoggerInterface $logger,\n ): void {\n $logger->info(self::LOG_PREFIX . ' Started', [\n 'automatedReportUuid' => $this->reportUuid,\n ]);\n\n try {\n $automatedReport = $reportService->getReport($this->reportUuid);\n\n if (! $this->validateReport($automatedReport, $logger)) {\n return;\n }\n\n $creator = $automatedReport->getCreator();\n if ($creator === null) {\n $logger->warning(self::LOG_PREFIX . ' Skipped, report creator not found', [\n 'automatedReportUuid' => $this->reportUuid,\n ]);\n\n return;\n }\n\n $savedSearch = $automatedReport->getSavedSearch();\n if ($savedSearch === null) {\n $logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', [\n 'automatedReportUuid' => $this->reportUuid,\n ]);\n\n return;\n }\n\n $prompt = $automatedReport->getAskAnythingPrompt();\n if ($prompt === null) {\n $logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', [\n 'automatedReportUuid' => $this->reportUuid,\n ]);\n\n return;\n }\n\n $this->reportResult = $reportService->getOrCreateReportResult(\n automatedReport: $automatedReport,\n data: [\n 'status' => AutomatedReportResult::STATUS_DEFAULT,\n 'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,\n ]\n );\n\n $activityIds = $activityService->getActivityIdsForSavedSearch(\n savedSearch: $savedSearch,\n user: $creator,\n frequency: $automatedReport->getFrequency(),\n );\n\n $logger->info(self::LOG_PREFIX . ' Fetched activity IDs', [\n 'automatedReportUuid' => $this->reportUuid,\n 'activityCount' => count($activityIds),\n ]);\n\n if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {\n $this->failReport(AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);\n\n $logger->info(self::LOG_PREFIX . ' Not enough activities, skipped', [\n 'automatedReportUuid' => $this->reportUuid,\n 'activityCount' => count($activityIds),\n ]);\n\n return;\n }\n\n $payload = $reportService->getAskJiminnyGenerateReportPayload(\n automatedReport: $automatedReport,\n reportResult: $this->reportResult,\n activityIds: $activityIds,\n );\n\n $this->reportResult->update([\n 'name' => $reportService->getReportFileName($this->reportResult),\n 'payload' => $payload,\n 'status' => AutomatedReportResult::STATUS_REQUESTED,\n 'requested_at' => Carbon::now()->toDateTimeString(),\n ]);\n\n $logger->info(self::LOG_PREFIX . ' Request sent', [\n 'automatedReportUuid' => $this->reportUuid,\n 'reportUuid' => $this->reportResult->getUuid(),\n 'payload' => $payload,\n ]);\n\n $response = $prophetClient->sendRequest(\n endpoint: ProphetClient::ASK_JIMINNY_REPORT,\n requestArray: $payload,\n );\n\n $logger->info(self::LOG_PREFIX . ' Response received', [\n 'response' => $response->getContent(),\n ]);\n } catch (Throwable $exception) {\n $reason = $exception instanceof ProphetException\n ? AutomatedReportResult::REASON_PROPHET_API_ERROR\n : AutomatedReportResult::REASON_DEFAULT;\n\n $this->failReport($reason);\n\n $logger->error(self::LOG_PREFIX . ' Error', [\n 'automatedReportUuid' => $this->reportUuid,\n 'reportUuid' => $this->reportResult?->getUuid(),\n 'code' => $exception->getCode(),\n 'message' => $exception->getMessage(),\n ]);\n\n if ($this->attempts() < $this->tries) {\n $logger->info(self::LOG_PREFIX . ' Retry scheduled', [\n 'attempts' => $this->attempts(),\n ]);\n\n $this->release(30);\n } else {\n $this->fail($exception);\n }\n }\n }\n\n private function validateReport(AutomatedReport $automatedReport, LoggerInterface $logger): bool\n {\n if ($automatedReport->getType() !== AutomatedReportsService::TYPE_ASK_JIMINNY) {\n $logger->warning(self::LOG_PREFIX . ' Skipped, not an ask_jiminny report', [\n 'automatedReportUuid' => $this->reportUuid,\n 'type' => $automatedReport->getType(),\n ]);\n\n return false;\n }\n\n if (! $automatedReport->getStatus()) {\n $logger->info(self::LOG_PREFIX . ' Skipped, report is not active', [\n 'automatedReportUuid' => $this->reportUuid,\n ]);\n\n return false;\n }\n\n if ($automatedReport->getTeam()->getStatus() !== Team::STATUS_ACTIVE) {\n $logger->info(self::LOG_PREFIX . ' Skipped, team is inactive', [\n 'automatedReportUuid' => $this->reportUuid,\n ]);\n\n return false;\n }\n\n return true;\n }\n\n private function failReport(int $reason): void\n {\n $this->reportResult?->update([\n 'status' => AutomatedReportResult::STATUS_FAILED,\n 'reason' => $reason,\n ]);\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.40492022,"top":0.09896249,"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.41356382,"top":0.09896249,"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.4245346,"top":0.09896249,"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.4331782,"top":0.09896249,"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.4418218,"top":0.09896249,"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.45279256,"top":0.09896249,"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.4637633,"top":0.09896249,"width":0.024268618,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cancel Running Statements","depth":4,"bounds":{"left":0.49035904,"top":0.09896249,"width":0.008643617,"height":0.01915403},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Playground","depth":4,"bounds":{"left":0.5013298,"top":0.09896249,"width":0.029587766,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"jiminny","depth":4,"bounds":{"left":0.69913566,"top":0.09896249,"width":0.02825798,"height":0.01915403},"role_description":"button","is_enabled":true,"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":"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":"AXStaticText","text":"10","depth":4,"bounds":{"left":0.6715425,"top":0.123703115,"width":0.009640957,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.6831782,"top":0.123703115,"width":0.009640957,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.69481385,"top":0.123703115,"width":0.007978723,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"4","depth":4,"bounds":{"left":0.70478725,"top":0.123703115,"width":0.007978723,"height":0.015163607},"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7144282,"top":0.12210695,"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.72174203,"top":0.12210695,"width":0.006981383,"height":0.018355945},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\nselect * from teams where id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM automated_reports where id = 69;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01'\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;","depth":4,"value":"SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\nselect * from teams where id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM automated_reports where id = 69;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01'\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;","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,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"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.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":"AXButton","text":"Expand Selected","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":"AXButton","text":"Collapse All","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":"AXButton","text":"Options","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":"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}]...
|
9114662667080746230
|
-2320728683613908403
|
visual_change
|
accessibility
|
NULL
|
remote: Resolving deltas: 100% (12/12), completed remote: Resolving deltas: 100% (12/12), completed with 12 local objects.
5 files committed
JY-18909 fix max date check on update & include activity filter
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\AutomatedReports;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\ProphetAi\Exceptions\ProphetException;
use Jiminny\Component\ProphetAi\ProphetClient;
use Jiminny\Component\Queue\Constants;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Psr\Log\LoggerInterface;
use Throwable;
class RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUnique
{
use InteractsWithQueue;
use Queueable;
private const string LOG_PREFIX = '[AskJiminnyReport:Generate]';
private const int MIN_ACTIVITIES_COUNT = 1;
public int $tries = 2;
private ?AutomatedReportResult $reportResult = null;
public function __construct(private readonly string $reportUuid)
{
$this->onQueue(Constants::QUEUE_ANALYTICS);
}
public function uniqueId(): string
{
return $this->reportUuid;
}
public function handle(
AutomatedReportsService $reportService,
AskJiminnyReportActivityService $activityService,
ProphetClient $prophetClient,
LoggerInterface $logger,
): void {
$logger->info(self::LOG_PREFIX . ' Started', [
'automatedReportUuid' => $this->reportUuid,
]);
try {
$automatedReport = $reportService->getReport($this->reportUuid);
if (! $this->validateReport($automatedReport, $logger)) {
return;
}
$creator = $automatedReport->getCreator();
if ($creator === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, report creator not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$savedSearch = $automatedReport->getSavedSearch();
if ($savedSearch === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$prompt = $automatedReport->getAskAnythingPrompt();
if ($prompt === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$this->reportResult = $reportService->getOrCreateReportResult(
automatedReport: $automatedReport,
data: [
'status' => AutomatedReportResult::STATUS_DEFAULT,
'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,
]
);
$activityIds = $activityService->getActivityIdsForSavedSearch(
savedSearch: $savedSearch,
user: $creator,
frequency: $automatedReport->getFrequency(),
);
$logger->info(self::LOG_PREFIX . ' Fetched activity IDs', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {
$this->failReport(AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);
$logger->info(self::LOG_PREFIX . ' Not enough activities, skipped', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
return;
}
$payload = $reportService->getAskJiminnyGenerateReportPayload(
automatedReport: $automatedReport,
reportResult: $this->reportResult,
activityIds: $activityIds,
);
$this->reportResult->update([
'name' => $reportService->getReportFileName($this->reportResult),
'payload' => $payload,
'status' => AutomatedReportResult::STATUS_REQUESTED,
'requested_at' => Carbon::now()->toDateTimeString(),
]);
$logger->info(self::LOG_PREFIX . ' Request sent', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult->getUuid(),
'payload' => $payload,
]);
$response = $prophetClient->sendRequest(
endpoint: ProphetClient::ASK_JIMINNY_REPORT,
requestArray: $payload,
);
$logger->info(self::LOG_PREFIX . ' Response received', [
'response' => $response->getContent(),
]);
} catch (Throwable $exception) {
$reason = $exception instanceof ProphetException
? AutomatedReportResult::REASON_PROPHET_API_ERROR
: AutomatedReportResult::REASON_DEFAULT;
$this->failReport($reason);
$logger->error(self::LOG_PREFIX . ' Error', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult?->getUuid(),
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
]);
if ($this->attempts() < $this->tries) {
$logger->info(self::LOG_PREFIX . ' Retry scheduled', [
'attempts' => $this->attempts(),
]);
$this->release(30);
} else {
$this->fail($exception);
}
}
}
private function validateReport(AutomatedReport $automatedReport, LoggerInterface $logger): bool
{
if ($automatedReport->getType() !== AutomatedReportsService::TYPE_ASK_JIMINNY) {
$logger->warning(self::LOG_PREFIX . ' Skipped, not an ask_jiminny report', [
'automatedReportUuid' => $this->reportUuid,
'type' => $automatedReport->getType(),
]);
return false;
}
if (! $automatedReport->getStatus()) {
$logger->info(self::LOG_PREFIX . ' Skipped, report is not active', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
if ($automatedReport->getTeam()->getStatus() !== Team::STATUS_ACTIVE) {
$logger->info(self::LOG_PREFIX . ' Skipped, team is inactive', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
return true;
}
private function failReport(int $reason): void
{
$this->reportResult?->update([
'status' => AutomatedReportResult::STATUS_FAILED,
'reason' => $reason,
]);
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
10
12
2
4
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select * from teams where id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM automated_reports 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 ask_anything_prompts;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01'
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
55204
|
|
72189
|
1753
|
4
|
2026-04-22T15:09:25.986586+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776870565986_m2.jpg...
|
Firefox
|
JY-9712 | Nuges to expire after one year by nikola JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app — Work...
|
True
|
github.com/jiminny/app/pull/11981/changes
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] Graham . I made the product related changes in the table and for the rest I left them as a note in the Technical section for the team to look at when they start looking at this. I wonder about your points related to GDPR. Currently multiple customers are using the Customer API/zapier to feed this data to AI and BI tools. They are also manually exporting transcripts and other information from the platform and feeding it to AI tools. I don’t get how MCP is so much different that all of these and why it will introduce new data processors (which are already being utilised) and would require any changes to the consent provided by participants.
You said
Jiminny MCP Connector
Epic
Link to Epik in Jira
Document status
DRAFT
Objective
Enable customers to connect Jiminny data to external AI tools (Claude, OpenAI, Gemini) so it can be used as part of their broader knowledge base and workflows.
Position Jiminny as a data layer for AI-driven revenue workflows, not just a standalone product.
👤 Target user
Revenue teams using AI tools (Sales, CS, RevOps)
Companies already experimenting with Claude / OpenAI
Mid-market & Enterprise customers with multiple data sources (CRM, docs, CI tools, Support tools etc)
🤕 Pain point or problem
Jiminny data is locked in the platform
AI tools lack access to high-value conversation context
Customers must manually export/copy transcripts
No easy way to combine calls with CRM + docs + other info - using the Jiminny API is not suitable for non technical sales people
Peer pressure as almost all competitors have this
💥 Impact and benefits
For customers
Better AI outputs using real customer conversations
Ability to build automated workflows across tools
For Jiminny
Increased product stickiness (embedded in workflows)
Competitive parity with Gong / Avoma etc.
💡 Solution ideas
Build an AI Knowledge Connector (MCP-based) that:
Exposes Jiminny data (calls, transcripts, metadata) to AI tools
Provides structured insights (summaries, action items, scoring etc.)
Supports deal-level context
Allows integration into customer-owned AI stacks (Claude + Zapier, etc.)
Success metrics
List the key goals and how you will measure success. Include both qualitative and quantitative metrics (e.g., user adoption, retention rate, revenue targets).
Goal
Metric
Increase stickiness by ensuring Jiminny is embedded in the customer’s workflows
% of customers connecting external AI tools
Number of MCP/API calls per customer - and which ones are being used the most
Decrease the manual copying of transcripts
decrease by X %
User interaction and design
Simple setup flow:
Generate API key / connect MCP
Clear instructions for Claude / Zapier setup
Provide:
Example prompts for Claude
Pre-built workflow templates for Zapier
Clear documentation - with use cases
👉 Focus: usable by non-technical users
Detailed Requirements
List the functional and non-functional requirements. Prioritize them (e.g., High, Medium, Low) and add notes for clarification.
Requirement
Importance
Notes
Allow customers to connect Jiminny to their AI tools (e.g. Claude, OpenAI)
HIGH
Provide MCP endpoint so customers can easily integrate Jiminny into their AI stack
Allow customers to access call data through AI tools
HIGH
Expose Jiminny data:
list calls (filter by date, user, account, deal)
get call
get transcript (speaker-separated)
get call metadata
search calls (keyword + semantic)
Support filtering by:
account / contact/ lead / deal
jiminny user
date range
Allow customers to search and query calls using AI tools
HIGH
Support keyword and semantic search across conversations
Provide structured insights so customers can generate better outputs
HIGH
For each call, expose:
Summary
Action items
Key points
Activity type
Notes
Call Score
CRM information
Allow customers to understand deal status across multiple calls/emails
HIGH
For each deal expose:
calls/meetings/emails
Identified risks
contacts related to the deal with their job title
linked account details
all CRM field information that we have in DI + fields used for CRM filling
example - get_deal_summary
request -
{
"tool": "get_deal_summary",
"arguments": {
"deal_name": "ACME"
}
}
responce:
{
"deal_name": "ACME",
"stage": "Negotiation",
"recent_activity": [
"Demo call on 2026-04-01",
"Pricing discussion on 2026-04-03"
],
"risks": [
"Pricing concerns",
"Security review pending"
], "next_steps": [
"Send follow-up to VP Sales",
"Share security documentation"
]
}
Ensure the AI can easily understand the schema of the data coming from Jiminny
HIGH
Models perform much better when tools have:
clear names
rich descriptions
predictable schemas
Provide clear, actionable error states for customers when MCP connections fail
HIGH
Error messages should guide agents toward solutions with specific suggestions and next steps.
Expired or revoked key — “Error: Authentication failed. The API key used to access Jiminny has been revoked or has expired. Please ask your Jiminny admin to generate a new API key in Settings > Organization > General and reconnect the MCP server.”
Rate limit hit — “Error: Rate limit exceeded. Too many requests have been made to the Jiminny MCP server in a short period. Please wait 60 seconds before retrying.”
Permissions mismatch — if a user tries to access data outside their team visibility settings - “Error: Access denied. The requested call (call_id: [X]) is outside your team's visibility settings in Jiminny. Only calls within your permitted scope are accessible.”
Trying to access private meeting - “Error: Access denied. This meeting has been marked as private by the host and cannot be accessed through the MCP connector. Try requesting a different call or ask the meeting host to change the visibility settings in Jiminny.”
Downgraded/Capture account — if a customer's plan drops below Scale tier or the Customer is on Capture in the first place - “Error: MCP access unavailable. The Jiminny MCP connector is available on the Scale plan and above. Your account does not currently have an active Scale subscription.”
Jiminny-side outage — “Error:Jiminny is temporarily unavailable (status 503). This is not a data or permissions issue — please retry in a few minutes.”
No data found - “Error:No calls found matching your criteria. Try adjusting your filters — for example, widening the date range, removing the account filter, or checking the rep name is spelled correctly in Jiminny.”
Allow customers to securely control who and what data is accessible externally
HIGH
Ensure MCP only exposes data user has access to - based on team visibility settings. This means that if a user is not allow to access calls/deals in Jiminny UI then they shouldn’t be able to access those through the MCP as well.
Private meetings shouldn’t be exposed via MCP
HIGH
When a meetings is set to Private then the information about it shouldn’t be exposed through the MCP.
Ensure Jiminny data can be combined with other sources (e.g. CRM, docs) in AI workflows
HIGH
Ensure data is structured to be easily combined with:
CRM (accounts, deals)
external docs
Use consistent identifiers:
account IDs
deal IDs
MCP is available only for Scale tier and above
HIGH
Customers who are on Capture tier should be able to access any of their data through MCP.
This should also cover the scenario when a customer has been on Scale but then downgrades to Capture - their MCP access should stop working.
Provide visibility into how external AI tools access Jiminny data
HIGH
Audit logs:
what data was accessed by which external system when
identity - who made the request
specific queries/filters used
failed access attempts (especially cross-visibility-boundary attempts)
Admins should be able to access the logs from the org settings.We can start with a csv export before building a specific page for it.
example from Atlassian -
Provide customers with example prompts to get started quickly
HIGH
MCP prompts are explicitly defined as prompt templates that clients can discover and call with arguments.
See examples in table below.
Expose Jiminny as a Connector in Claude
medium
Competitors like Fathom are listed as Connectors in Claude. This will make it easier for customers to find us and to connect Jiminny
Provide customers with example workflows to get started quickly
medium
A workflow is usually multiple steps, maybe multiple tools, still focused on one outcome.
See examples in table below.
Allow customers to use predefined Jiminny skills for common workflows
medium
Anthropic describes Skills as folders that include instructions, scripts, and resources that Claude can load when relevant, and as a way to teach Claude repeatable workflows, preferences, and domain expertise once instead of re-explaining them every time. Skills - a reusable package of behavior that can include prompts, instructions, resources, and sometimes scripts/tools for a broader job.
Claude skills - https://resources.anthropic.com/hubfs/The-Complete-Guide-to-Building-Skill-for-Claude.pdf?hsLang=en&utm_source=chatgpt.com
See examples in table below.
Jiminny UI widget for OpenAI
medium
The reason to have this is to make certain Jiminny use cases much easier than pure chat.
Instead of ChatGPT only replying with text like “Here are the last 5 ACME calls,” it could also show a visual Jiminny card or mini-app inside the chat. That widget could list calls, show a deal summary, let the user filter by rep/date/account, open a transcript section, or save a snippet—while the conversation continues in normal chat alongside it.
For Jiminny, the best widget use cases are the ones where users need to browse or compare rather than ask one-off questions. A strong example is deal review: the user asks ChatGPT, “What is the status of the ACME deal?” ChatGPT calls your Jiminny MCP tools, and the widget shows a compact deal view with recent calls, risks, next steps, stakeholders, and links to transcripts/snippets. The chat can still summarize the answer in words, but the widget gives a clearer, scannable interface.
Another good Jiminny widget use case is call search and exploration. A text answer can say “I found 12 calls mentioning pricing objections,” but a widget could show a sortable list with date, rep, account, score, and objection count, then let the user click into one call to see the exact excerpt or jump to a transcript section.
Allow customers to run long-running analyses asynchronously and retrieve progress/results
low
Some requests/questions require analysis of Hugh volumes of data. For those, it may be better to:
start the job
let it run in the background
return a status like “in progress”
let the client come back for the result later
For example - User asks in Claude:
“Analyse all calls from this quarter and tell me the top 5 objections by segment.”
That might require:
searching lots of calls
pulling many summaries/transcripts
aggregating results
Instead of making Claude wait 45+ seconds, Jiminny could:
create an analysis job
return: job_id = 123, status = running
We need this in order to support:
large-scale analysis
multi-call aggregation across lots of data
playlist generation across many calls
heavy recap/report generation
Creating a snippet through the MCP
low
Create a shareable snippet from a call recording by specifying a time range. Useful for highlighting key moments — objection handling, pricing discussions, competitive mentions — and sharing them with your team.
example request:
{
"tool": "create_snippet",
"arguments": {
"call_id": "call_123",
"start_time": "00:18:24",
"end_time": "00:19:10",
"title": "Pricing objection"
}
}
example response:
{
"snippet_id": "snip_987",
"title": "Pricing objection",
"share_url": "https://app.jiminny.com/snippets/snip_987"
}
Ability to add recordings or snippets to a playlist
low
Allow customers to create libraries of calls automatically. They can use those for onboarding or other purposes
Allow AI tools to read reusable Jiminny resources
low
fathom
Resources are useful for data that should be read consistently rather than recomputed every time. In Jiminny terms, that could be:
current deal snapshot
account summary
weekly rep recap
approved talk tracks / objection handling guidance
curated playlists or snippet libraries
This is useful because an AI can consume these directly as context, instead of repeatedly stitching together many tool calls.
Ability to write coaching notes in Jiminny through MCP
low
What we want to do for prompts/worflows and skills
Capability
Type
User value / job to be done
Example Jiminny use case
Inputs
Steps performed
Output
Draft follow-up email
Prompt
Help reps quickly create tailored follow-ups after calls
Use the latest customer call to draft an email with recap and next steps
Call ID
optional tone
optional recipient type
Retrieve call summary and action items from Jiminny.
Pull key points, commitments, and next steps.
Apply the chosen tone and structure.
Draft the email in a consistent format.
Customer-ready follow-up email draft
Summarise call
Prompt
Help users quickly extract the most important points from a conversation
Generate a concise summary of one call for internal or external use
Call ID
optional summary style
optional audience
Retrieve transcript, metadata, and structured insights.
Identify key topics, decisions, risks, and next steps.
Format output for the chosen audience.
Short or structured call summary with actions and risks
Generate deal recap
Prompt
Help reps and managers get a fast overview of a deal
Summarise the current state of a deal based on recent calls and linked CRM context
Deal ID or account name
optional date range
Retrieve calls and meetings linked to the deal.
Pull deal metadata and CRM-linked context.
Identify recent changes, blockers, risks, and next steps.
Summarise into a concise recap.
Deal recap with status, blockers, risks, and recommended next steps
Prepare weekly recap
Prompt
Help managers or reps review what changed over a time period
Weekly recap of calls, themes, and actions for one rep, team, or account
Rep ID
team ID or account ID
time period
Retrieve relevant calls and summaries for the selected time period.
Aggregate themes, action items, and changes.
Highlight notable risks, opportunities, and follow-ups.
Weekly recap with top themes, risks, opportunities, and actions
Prepare deal review
Workflow
Help reps and managers review deal status using multiple sources of context
Review a deal before pipeline review or forecast meeting
Deal ID
optional date range
Retrieve all recent calls, emails, and meetings tied to the deal.
Pull structured call summaries, score, action items, and key points.
Pull linked CRM context such as stage, contacts, and account details.
Aggregate open risks, unresolved objections, stakeholder gaps, and next steps.
Format into a review-ready structure.
Deal review document with current status, risks, stakeholders, blockers, and next steps
Weekly team recap
Workflow
Help managers monitor activity and risk across a group of reps or accounts
End-of-week team summary for sales leadership
Team ID
date range
Retrieve calls and structured insights across the team.
Group by rep, account, or deal.
Identify recurring themes, major risks, strong calls, and missed follow-ups.
Highlight calls or deals that need attention.
Team-level recap with patterns, key risks, notable wins, and action areas
Objection analysis across calls
Workflow
Help teams identify patterns across multiple conversations
Analyse pricing or competitor objections across recent calls
Account ID
deal ID
rep ID
keyword/topic
date range
Search calls matching the topic or keyword.
Retrieve summaries, transcripts, and snippets where relevant.
Identify recurring objections and how they were handled.
Assess whether objections were resolved or remain open.
Summarise patterns and examples.
Objection analysis with themes, frequency, examples, and suggested follow-up actions
Build onboarding playlist
Workflow
Help enablement teams curate useful learning content faster
Build a playlist of strong discovery, demo, or pricing calls for new hires
Topic
call type
rep/team filter
optional time period
Search for calls matching the selected criteria.
Rank or filter calls based on score, topics, or key moments.
Identify useful snippets or full recordings.
Add selected calls/snippets into a playlist structure.
Generate short descriptions for each item.
Curated onboarding playlist with selected calls/snippets and descriptions
Deal Inspection Skill
Skill
Give users a consistent, opinionated way to assess a deal
Claude reviews a deal using a repeatable Jiminny methodology
Deal ID or account name
optional review scope
Determine whether the request is suitable for a deal inspection.
Retrieve relevant calls, summaries, CRM context, stakeholders, and risks.
Apply a standard Jiminny review framework to assess deal health.
Look for missing next steps, unresolved objections, stakeholder gaps, and warning signs.
Present findings in a consistent structure with recommended actions.
Structured deal inspection with health assessment, red flags, and recommendations
Manager Coaching Skill
Skill
Help managers review calls consistently and identify coaching moments
Analyse a rep’s call and surface strengths, gaps, and examples for coaching
Call ID
optional rep ID
optional coaching focus
Retrieve transcript, score, summary, and key moments from the call.
Evaluate the conversation against a coaching framework.
Identify what went well and where the rep could improve.
Suggest moments to clip as snippets.
Recommend coaching actions or playlist additions.
Coaching review with strengths, gaps, snippet suggestions, and recommended coaching actions
CSM / QBR Prep Skill
Skill
Help CS or AM teams prepare structured customer reviews from conversations
Generate an account review or QBR-style summary from recent customer interactions
Account ID, optional time period
Retrieve all recent calls, emails, and account-linked context.
Aggregate themes, requests, blockers, sentiment shifts, and opportunities.
Apply a repeatable account review structure.
Summarise outcomes, open issues, and suggested next steps.
Structured QBR/account review summary with themes, risks, opportunities, and actions
Snippet Builder Skill
Skill
Help users consistently capture and label useful moments from calls
Identify useful moments in a call and convert them into reusable snippets
Call ID, optional focus area such as pricing, objection, competitor, discovery
Retrieve transcript, recording timeline, and call insights.
Detect moments matching the requested focus area.
Propose snippet start/end times and titles.
Tag snippets by type or theme.
Optionally save them or add them to a playlist.
One or more proposed or saved snippets with title, timing, and tags
💡 Technical details
Auth model needs specifying. Are API keys scoped per user, per team, or per Jiminny instance? If a key is generated by an admin, does it inherit their visibility level, or provide org-wide? Are permissions evaluated at query time or frozen at key creation? Needs to be query-time, otherwise permission changes won't propagate.
Key lifecycle management is missing. No mention of rotation, expiry, or revocation. A departed employee's active key is a data leak. Need: revocation, optional expiry, alerts on stale keys, and consider whether keys should be tied to service accounts rather than personal users.
Rate limiting should be HIGH. A compromised key or misconfigured automation could bulk-export an entire customer's call history. Need per-key rate limits and anomaly detection on unusual access patterns.
Open Questions
Track unresolved issues or decisions that need to be made. Update as answers become available.
Question
Answer
Date Answered
Competitor research
Competitor
MCP Availability
Core Capabilities
Advanced Capabilities
Positioning
Key Strength
Key Weakness
Gong
✅ Mature MCP
List/search calls
Get transcripts
get Call metadata
Deal intelligence
Scorecards, analytics
CRM context
Enterprise data layer
Deep data + ecosystem integrations
Limited opinionated AI workflows
Avoma
✅ Mature MCP
list_meetings
get_meeting
get_transcript
key topics
Deal fields/Deal level analysis
Coaching/Scoring
CRM context
pushing insights into Notion / Confluence
AI-ready meeting intelligence
Strongest “outputs” layer
Mostly pull-based interactions
Fathom
✅ MCP
list/search meetings
get transcript
get summary/action items
Team/org context
Webhooks (event-based triggers)
get_weekly_recap
aggregated action items across meetings
creating webhooks directly from the MCP server
Lightweight meeting data access
Includes summaries + actions
Limited analytics depth
Grain
✅ Basic MCP
get meetings
download transcripts
Notes
Deals
Scorecards
Data access utility
Simple + accessible
Low sophistication, sometimes browser-based
Outreach
⚠️ MCP (workflow-focused)
Search sequences
Emails
Meetings (Kaia)
account / prospect / opportunity lookups
Workflow automation
Multi-system orchestration
Revenue workflow engine
End-to-end GTM workflows
Less depth in conversation data
Attention
⚠️ Emerging MCP
Meeting data
Transcripts
CRM-linked context
AI insights
Sales assistant workflows
create snippets
AI sales assistant + CRM
Strong CRM linkage
Less focus on external knowledge layer
Planhat -
Related content
Ask Jiminny Anything on Call level
Galya Dimitrova
Hubspot app
Galya Dimitrova
Product Vision & Strategy
Galya Dimitrova
Automated CRM Filling
Simona Georgieva (Deactivated)
Competitive analysis
Galya Dimitrova
AI agent ideas
Steliyan Georgiev
Comments
James Graham
9 Apr
A few areas around Security & Compliance that need more depth before this moves beyond draft:
Auth model needs specifying. Are API keys scoped per user, per team, or per Jiminny instance? If a key is generated by an admin, does it inherit their visibility level, or provide org-wide? Are permissions evaluated at query time or frozen at key creation? Needs to be query-time, otherwise permission changes won't propagate.
Team visibility enforcement should be its own HIGH requirement. The current note under access control ("ensure MCP only exposes data user has access to") is doing too much work as a single line. Every MCP tool response (especially search_calls and deal-level aggregations) must be filtered through the same visibility engine as the UI. Semantic search is the riskiest here; it could surface results across team boundaries if not properly scoped.
No data minimisation or scoping controls. We're exposing transcripts, CRM fields, contact details with job titles, deal context - significant PII and commercial data leaving the platform. Can customers configure which data types are exposed? Can transcripts be PII-stripped before they leave Jiminny? Given we position GDPR consent as a differentiator, we should be thinking about this.
GDPR downstream processing is unaddressed. Piping transcripts to OpenAI/Gemini introduces new data processors. Customers need to acknowledge responsibility for downstream processing during setup. We should also consider whether call participants' recording consent covers onward sharing to third-party AI - it almost certainly doesn't by default. This is one for me to pick up.
Key lifecycle management is missing. No mention of rotation, expiry, or revocation. A departed employee's active key is a data leak. Need: revocation, optional expiry, alerts on stale keys, and consider whether keys should be tied to service accounts rather than personal users.
Rate limiting should be HIGH. A compromised key or misconfigured automation could bulk-export an entire customer's call history. Need per-key rate limits and anomaly detection on unusual access patterns....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.28307846,"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":"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,"bounds":{"left":0.28125,"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":"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,"bounds":{"left":0.2945479,"top":0.10614525,"width":0.4644282,"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.28125,"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.2945479,"top":0.13886672,"width":0.11319814,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"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":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.17158818,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"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":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.20430966,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"bounds":{"left":0.28125,"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":"Workers | Datadog","depth":5,"bounds":{"left":0.2945479,"top":0.23703113,"width":0.032081116,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"bounds":{"left":0.28125,"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":"Pull requests · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.2697526,"width":0.04537899,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"bounds":{"left":0.28125,"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":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.30247405,"width":0.15791224,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"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-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.33519554,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"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":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.367917,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.28125,"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":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.2945479,"top":0.40063846,"width":0.041223403,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.28125,"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":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.2945479,"top":0.43335995,"width":0.16821809,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"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":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.4660814,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"bounds":{"left":0.28125,"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":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.49880287,"width":0.15475398,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.5203512,"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":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.53152436,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.34857047,"top":0.5275339,"width":0.007978723,"height":0.01915403},"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.2840758,"top":0.5546688,"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.2840758,"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":"Close Google Gemini (⌃X)","depth":6,"bounds":{"left":0.29504654,"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.30618352,"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.31732047,"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.32845744,"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":"AXButton","text":"AI Chat settings","depth":7,"bounds":{"left":0.4659242,"top":0.055067837,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":7,"bounds":{"left":0.47789228,"top":0.055067837,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"WORK, Google Account: lukas.kovalik@jiminny.com","depth":12,"bounds":{"left":0.47523272,"top":0.103751,"width":0.013297873,"height":0.031923383},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Main menu","depth":12,"bounds":{"left":0.3648604,"top":0.103751,"width":0.013297873,"height":0.031923383},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Chat","depth":12,"bounds":{"left":0.44730717,"top":0.103751,"width":0.013297873,"height":0.031923383},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open menu for conversation actions.","depth":12,"bounds":{"left":0.46060506,"top":0.103751,"width":0.013297873,"height":0.031923383},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Conversation with Gemini","depth":15,"bounds":{"left":0.36053857,"top":0.14764565,"width":0.0003324468,"height":0.0007980846},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Conversation with Gemini","depth":16,"bounds":{"left":0.36053857,"top":0.15003991,"width":0.1200133,"height":0.025538707},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy prompt","depth":21,"bounds":{"left":0.3834774,"top":0.18355946,"width":0.013297873,"height":0.031923383},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Edit","depth":21,"bounds":{"left":0.39810506,"top":0.18355946,"width":0.013297873,"height":0.031923383},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"You said Jiminny MCP Connector Epic Link to Epik in Jira Document status DRAFT Objective Enable customers to connect Jiminny data to external AI tools (Claude, OpenAI, Gemini) so it can be used as part of their broader knowledge base and workflows. Position Jiminny as a data layer for AI-driven revenue workflows, not just a standalone product. 👤 Target user Revenue teams using AI tools (Sales, CS, RevOps) Companies already experimenting with Claude / OpenAI Mid-market & Enterprise customers with multiple data sources (CRM, docs, CI tools, Support tools etc) 🤕 Pain point or problem Jiminny data is locked in the platform AI tools lack access to high-value conversation context Customers must manually export/copy transcripts No easy way to combine calls with CRM + docs + other info - using the Jiminny API is not suitable for non technical sales people Peer pressure as almost all competitors have this 💥 Impact and benefits For customers Better AI outputs using real customer conversations Ability to build automated workflows across tools For Jiminny Increased product stickiness (embedded in workflows) Competitive parity with Gong / Avoma etc. 💡 Solution ideas Build an AI Knowledge Connector (MCP-based) that: Exposes Jiminny data (calls, transcripts, metadata) to AI tools Provides structured insights (summaries, action items, scoring etc.) Supports deal-level context Allows integration into customer-owned AI stacks (Claude + Zapier, etc.) Success metrics List the key goals and how you will measure success. Include both qualitative and quantitative metrics (e.g., user adoption, retention rate, revenue targets). Goal Metric Increase stickiness by ensuring Jiminny is embedded in the customer’s workflows % of customers connecting external AI tools Number of MCP/API calls per customer - and which ones are being used the most Decrease the manual copying of transcripts decrease by X % User interaction and design Simple setup flow: Generate API key / connect MCP Clear instructions for Claude / Zapier setup Provide: Example prompts for Claude Pre-built workflow templates for Zapier Clear documentation - with use cases 👉 Focus: usable by non-technical users Detailed Requirements List the functional and non-functional requirements. Prioritize them (e.g., High, Medium, Low) and add notes for clarification. Requirement Importance Notes Allow customers to connect Jiminny to their AI tools (e.g. Claude, OpenAI) HIGH Provide MCP endpoint so customers can easily integrate Jiminny into their AI stack Allow customers to access call data through AI tools HIGH Expose Jiminny data: list calls (filter by date, user, account, deal) get call get transcript (speaker-separated) get call metadata search calls (keyword + semantic) Support filtering by: account / contact/ lead / deal jiminny user date range Allow customers to search and query calls using AI tools HIGH Support keyword and semantic search across conversations Provide structured insights so customers can generate better outputs HIGH For each call, expose: Summary Action items Key points Activity type Notes Call Score CRM information Allow customers to understand deal status across multiple calls/emails HIGH For each deal expose: calls/meetings/emails Identified risks contacts related to the deal with their job title linked account details all CRM field information that we have in DI + fields used for CRM filling example - get_deal_summary request - { \"tool\": \"get_deal_summary\", \"arguments\": { \"deal_name\": \"ACME\" } } responce: { \"deal_name\": \"ACME\", \"stage\": \"Negotiation\", \"recent_activity\": [ \"Demo call on 2026-04-01\", \"Pricing discussion on 2026-04-03\" ], \"risks\": [ \"Pricing concerns\", \"Security review pending\" ], \"next_steps\": [ \"Send follow-up to VP Sales\", \"Share security documentation\" ] } Ensure the AI can easily understand the schema of the data coming from Jiminny HIGH Models perform much better when tools have: clear names rich descriptions predictable schemas Provide clear, actionable error states for customers when MCP connections fail HIGH Error messages should guide agents toward solutions with specific suggestions and next steps. Expired or revoked key — “Error: Authentication failed. The API key used to access Jiminny has been revoked or has expired. Please ask your Jiminny admin to generate a new API key in Settings > Organization > General and reconnect the MCP server.” Rate limit hit — “Error: Rate limit exceeded. Too many requests have been made to the Jiminny MCP server in a short period. Please wait 60 seconds before retrying.” Permissions mismatch — if a user tries to access data outside their team visibility settings - “Error: Access denied. The requested call (call_id: [X]) is outside your team's visibility settings in Jiminny. Only calls within your permitted scope are accessible.” Trying to access private meeting - “Error: Access denied. This meeting has been marked as private by the host and cannot be accessed through the MCP connector. Try requesting a different call or ask the meeting host to change the visibility settings in Jiminny.” Downgraded/Capture account — if a customer's plan drops below Scale tier or the Customer is on Capture in the first place - “Error: MCP access unavailable. The Jiminny MCP connector is available on the Scale plan and above. Your account does not currently have an active Scale subscription.” Jiminny-side outage — “Error:Jiminny is temporarily unavailable (status 503). This is not a data or permissions issue — please retry in a few minutes.” No data found - “Error:No calls found matching your criteria. Try adjusting your filters — for example, widening the date range, removing the account filter, or checking the rep name is spelled correctly in Jiminny.” Allow customers to securely control who and what data is accessible externally HIGH Ensure MCP only exposes data user has access to - based on team visibility settings. This means that if a user is not allow to access calls/deals in Jiminny UI then they shouldn’t be able to access those through the MCP as well. Private meetings shouldn’t be exposed via MCP HIGH When a meetings is set to Private then the information about it shouldn’t be exposed through the MCP. Ensure Jiminny data can be combined with other sources (e.g. CRM, docs) in AI workflows HIGH Ensure data is structured to be easily combined with: CRM (accounts, deals) external docs Use consistent identifiers: account IDs deal IDs MCP is available only for Scale tier and above HIGH Customers who are on Capture tier should be able to access any of their data through MCP. This should also cover the scenario when a customer has been on Scale but then downgrades to Capture - their MCP access should stop working. Provide visibility into how external AI tools access Jiminny data HIGH Audit logs: what data was accessed by which external system when identity - who made the request specific queries/filters used failed access attempts (especially cross-visibility-boundary attempts) Admins should be able to access the logs from the org settings.We can start with a csv export before building a specific page for it. example from Atlassian - Provide customers with example prompts to get started quickly HIGH MCP prompts are explicitly defined as prompt templates that clients can discover and call with arguments. See examples in table below. Expose Jiminny as a Connector in Claude medium Competitors like Fathom are listed as Connectors in Claude. This will make it easier for customers to find us and to connect Jiminny Provide customers with example workflows to get started quickly medium A workflow is usually multiple steps, maybe multiple tools, still focused on one outcome. See examples in table below. Allow customers to use predefined Jiminny skills for common workflows medium Anthropic describes Skills as folders that include instructions, scripts, and resources that Claude can load when relevant, and as a way to teach Claude repeatable workflows, preferences, and domain expertise once instead of re-explaining them every time. Skills - a reusable package of behavior that can include prompts, instructions, resources, and sometimes scripts/tools for a broader job. Claude skills - https://resources.anthropic.com/hubfs/The-Complete-Guide-to-Building-Skill-for-Claude.pdf?hsLang=en&utm_source=chatgpt.com See examples in table below. Jiminny UI widget for OpenAI medium The reason to have this is to make certain Jiminny use cases much easier than pure chat. Instead of ChatGPT only replying with text like “Here are the last 5 ACME calls,” it could also show a visual Jiminny card or mini-app inside the chat. That widget could list calls, show a deal summary, let the user filter by rep/date/account, open a transcript section, or save a snippet—while the conversation continues in normal chat alongside it. For Jiminny, the best widget use cases are the ones where users need to browse or compare rather than ask one-off questions. A strong example is deal review: the user asks ChatGPT, “What is the status of the ACME deal?” ChatGPT calls your Jiminny MCP tools, and the widget shows a compact deal view with recent calls, risks, next steps, stakeholders, and links to transcripts/snippets. The chat can still summarize the answer in words, but the widget gives a clearer, scannable interface. Another good Jiminny widget use case is call search and exploration. A text answer can say “I found 12 calls mentioning pricing objections,” but a widget could show a sortable list with date, rep, account, score, and objection count, then let the user click into one call to see the exact excerpt or jump to a transcript section. Allow customers to run long-running analyses asynchronously and retrieve progress/results low Some requests/questions require analysis of Hugh volumes of data. For those, it may be better to: start the job let it run in the background return a status like “in progress” let the client come back for the result later For example - User asks in Claude: “Analyse all calls from this quarter and tell me the top 5 objections by segment.” That might require: searching lots of calls pulling many summaries/transcripts aggregating results Instead of making Claude wait 45+ seconds, Jiminny could: create an analysis job return: job_id = 123, status = running We need this in order to support: large-scale analysis multi-call aggregation across lots of data playlist generation across many calls heavy recap/report generation Creating a snippet through the MCP low Create a shareable snippet from a call recording by specifying a time range. Useful for highlighting key moments — objection handling, pricing discussions, competitive mentions — and sharing them with your team. example request: { \"tool\": \"create_snippet\", \"arguments\": { \"call_id\": \"call_123\", \"start_time\": \"00:18:24\", \"end_time\": \"00:19:10\", \"title\": \"Pricing objection\" } } example response: { \"snippet_id\": \"snip_987\", \"title\": \"Pricing objection\", \"share_url\": \"https://app.jiminny.com/snippets/snip_987\" } Ability to add recordings or snippets to a playlist low Allow customers to create libraries of calls automatically. They can use those for onboarding or other purposes Allow AI tools to read reusable Jiminny resources low fathom Resources are useful for data that should be read consistently rather than recomputed every time. In Jiminny terms, that could be: current deal snapshot account summary weekly rep recap approved talk tracks / objection handling guidance curated playlists or snippet libraries This is useful because an AI can consume these directly as context, instead of repeatedly stitching together many tool calls. Ability to write coaching notes in Jiminny through MCP low What we want to do for prompts/worflows and skills Capability Type User value / job to be done Example Jiminny use case Inputs Steps performed Output Draft follow-up email Prompt Help reps quickly create tailored follow-ups after calls Use the latest customer call to draft an email with recap and next steps Call ID optional tone optional recipient type Retrieve call summary and action items from Jiminny. Pull key points, commitments, and next steps. Apply the chosen tone and structure. Draft the email in a consistent format. Customer-ready follow-up email draft Summarise call Prompt Help users quickly extract the most important points from a conversation Generate a concise summary of one call for internal or external use Call ID optional summary style optional audience Retrieve transcript, metadata, and structured insights. Identify key topics, decisions, risks, and next steps. Format output for the chosen audience. Short or structured call summary with actions and risks Generate deal recap Prompt Help reps and managers get a fast overview of a deal Summarise the current state of a deal based on recent calls and linked CRM context Deal ID or account name optional date range Retrieve calls and meetings linked to the deal. Pull deal metadata and CRM-linked context. Identify recent changes, blockers, risks, and next steps. Summarise into a concise recap. Deal recap with status, blockers, risks, and recommended next steps Prepare weekly recap Prompt Help managers or reps review what changed over a time period Weekly recap of calls, themes, and actions for one rep, team, or account Rep ID team ID or account ID time period Retrieve relevant calls and summaries for the selected time period. Aggregate themes, action items, and changes. Highlight notable risks, opportunities, and follow-ups. Weekly recap with top themes, risks, opportunities, and actions Prepare deal review Workflow Help reps and managers review deal status using multiple sources of context Review a deal before pipeline review or forecast meeting Deal ID optional date range Retrieve all recent calls, emails, and meetings tied to the deal. Pull structured call summaries, score, action items, and key points. Pull linked CRM context such as stage, contacts, and account details. Aggregate open risks, unresolved objections, stakeholder gaps, and next steps. Format into a review-ready structure. Deal review document with current status, risks, stakeholders, blockers, and next steps Weekly team recap Workflow Help managers monitor activity and risk across a group of reps or accounts End-of-week team summary for sales leadership Team ID date range Retrieve calls and structured insights across the team. Group by rep, account, or deal. Identify recurring themes, major risks, strong calls, and missed follow-ups. Highlight calls or deals that need attention. Team-level recap with patterns, key risks, notable wins, and action areas Objection analysis across calls Workflow Help teams identify patterns across multiple conversations Analyse pricing or competitor objections across recent calls Account ID deal ID rep ID keyword/topic date range Search calls matching the topic or keyword. Retrieve summaries, transcripts, and snippets where relevant. Identify recurring objections and how they were handled. Assess whether objections were resolved or remain open. Summarise patterns and examples. Objection analysis with themes, frequency, examples, and suggested follow-up actions Build onboarding playlist Workflow Help enablement teams curate useful learning content faster Build a playlist of strong discovery, demo, or pricing calls for new hires Topic call type rep/team filter optional time period Search for calls matching the selected criteria. Rank or filter calls based on score, topics, or key moments. Identify useful snippets or full recordings. Add selected calls/snippets into a playlist structure. Generate short descriptions for each item. Curated onboarding playlist with selected calls/snippets and descriptions Deal Inspection Skill Skill Give users a consistent, opinionated way to assess a deal Claude reviews a deal using a repeatable Jiminny methodology Deal ID or account name optional review scope Determine whether the request is suitable for a deal inspection. Retrieve relevant calls, summaries, CRM context, stakeholders, and risks. Apply a standard Jiminny review framework to assess deal health. Look for missing next steps, unresolved objections, stakeholder gaps, and warning signs. Present findings in a consistent structure with recommended actions. Structured deal inspection with health assessment, red flags, and recommendations Manager Coaching Skill Skill Help managers review calls consistently and identify coaching moments Analyse a rep’s call and surface strengths, gaps, and examples for coaching Call ID optional rep ID optional coaching focus Retrieve transcript, score, summary, and key moments from the call. Evaluate the conversation against a coaching framework. Identify what went well and where the rep could improve. Suggest moments to clip as snippets. Recommend coaching actions or playlist additions. Coaching review with strengths, gaps, snippet suggestions, and recommended coaching actions CSM / QBR Prep Skill Skill Help CS or AM teams prepare structured customer reviews from conversations Generate an account review or QBR-style summary from recent customer interactions Account ID, optional time period Retrieve all recent calls, emails, and account-linked context. Aggregate themes, requests, blockers, sentiment shifts, and opportunities. Apply a repeatable account review structure. Summarise outcomes, open issues, and suggested next steps. Structured QBR/account review summary with themes, risks, opportunities, and actions Snippet Builder Skill Skill Help users consistently capture and label useful moments from calls Identify useful moments in a call and convert them into reusable snippets Call ID, optional focus area such as pricing, objection, competitor, discovery Retrieve transcript, recording timeline, and call insights. Detect moments matching the requested focus area. Propose snippet start/end times and titles. Tag snippets by type or theme. Optionally save them or add them to a playlist. One or more proposed or saved snippets with title, timing, and tags 💡 Technical details Auth model needs specifying. Are API keys scoped per user, per team, or per Jiminny instance? If a key is generated by an admin, does it inherit their visibility level, or provide org-wide? Are permissions evaluated at query time or frozen at key creation? Needs to be query-time, otherwise permission changes won't propagate. Key lifecycle management is missing. No mention of rotation, expiry, or revocation. A departed employee's active key is a data leak. Need: revocation, optional expiry, alerts on stale keys, and consider whether keys should be tied to service accounts rather than personal users. Rate limiting should be HIGH. A compromised key or misconfigured automation could bulk-export an entire customer's call history. Need per-key rate limits and anomaly detection on unusual access patterns. Open Questions Track unresolved issues or decisions that need to be made. Update as answers become available. Question Answer Date Answered Competitor research Competitor MCP Availability Core Capabilities Advanced Capabilities Positioning Key Strength Key Weakness Gong ✅ Mature MCP List/search calls Get transcripts get Call metadata Deal intelligence Scorecards, analytics CRM context Enterprise data layer Deep data + ecosystem integrations Limited opinionated AI workflows Avoma ✅ Mature MCP list_meetings get_meeting get_transcript key topics Deal fields/Deal level analysis Coaching/Scoring CRM context pushing insights into Notion / Confluence AI-ready meeting intelligence Strongest “outputs” layer Mostly pull-based interactions Fathom ✅ MCP list/search meetings get transcript get summary/action items Team/org context Webhooks (event-based triggers) get_weekly_recap aggregated action items across meetings creating webhooks directly from the MCP server Lightweight meeting data access Includes summaries + actions Limited analytics depth Grain ✅ Basic MCP get meetings download transcripts Notes Deals Scorecards Data access utility Simple + accessible Low sophistication, sometimes browser-based Outreach ⚠️ MCP (workflow-focused) Search sequences Emails Meetings (Kaia) account / prospect / opportunity lookups Workflow automation Multi-system orchestration Revenue workflow engine End-to-end GTM workflows Less depth in conversation data Attention ⚠️ Emerging MCP Meeting data Transcripts CRM-linked context AI insights Sales assistant workflows create snippets AI sales assistant + CRM Strong CRM linkage Less focus on external knowledge layer Planhat - Related content Ask Jiminny Anything on Call level Galya Dimitrova Hubspot app Galya Dimitrova Product Vision & Strategy Galya Dimitrova Automated CRM Filling Simona Georgieva (Deactivated) Competitive analysis Galya Dimitrova AI agent ideas Steliyan Georgiev Comments James Graham 9 Apr A few areas around Security & Compliance that need more depth before this moves beyond draft: Auth model needs specifying. Are API keys scoped per user, per team, or per Jiminny instance? If a key is generated by an admin, does it inherit their visibility level, or provide org-wide? Are permissions evaluated at query time or frozen at key creation? Needs to be query-time, otherwise permission changes won't propagate. Team visibility enforcement should be its own HIGH requirement. The current note under access control (\"ensure MCP only exposes data user has access to\") is doing too much work as a single line. Every MCP tool response (especially search_calls and deal-level aggregations) must be filtered through the same visibility engine as the UI. Semantic search is the riskiest here; it could surface results across team boundaries if not properly scoped. No data minimisation or scoping controls. We're exposing transcripts, CRM fields, contact details with job titles, deal context - significant PII and commercial data leaving the platform. Can customers configure which data types are exposed? Can transcripts be PII-stripped before they leave Jiminny? Given we position GDPR consent as a differentiator, we should be thinking about this. GDPR downstream processing is unaddressed. Piping transcripts to OpenAI/Gemini introduces new data processors. Customers need to acknowledge responsibility for downstream processing during setup. We should also consider whether call participants' recording consent covers onward sharing to third-party AI - it almost certainly doesn't by default. This is one for me to pick up. Key lifecycle management is missing. No mention of rotation, expiry, or revocation. A departed employee's active key is a data leak. Need: revocation, optional expiry, alerts on stale keys, and consider whether keys should be tied to service accounts rather than personal users. Rate limiting should be HIGH. A compromised key or misconfigured automation could bulk-export an entire customer's call history. Need per-key rate limits and anomaly detection on unusual access patterns. Audit logs should go deeper. Current spec (what data, which system, when) is a start. Add: identity behind the key, specific queries/filters used, and failed access attempts (especially cross-visibility-boundary attempts). Enterprise compliance teams will expect this. Downgrade handling. Doc says Scale tier and above, but doesn't say what happens on downgrade. Keys should auto-deactivate. Happy to help draft a dedicated Security & Compliance section if useful. Galya Dimitrova 15 Apr Thanks for the input @James Graham . I made the product related changes in the table and for the rest I left them as a note in the Technical section for the team to look at when they start looking at this. I wonder about your points related to GDPR. Currently multiple customers are using the Customer API/zapier to feed this data to AI and BI tools. They are also manually exporting transcripts and other information from the platform and feeding it to AI tools. I don’t get how MCP is so much different that all of these and why it will introduce new data processors (which are already being utilised) and would require any changes to the consent provided by participants.","depth":21,"bounds":{"left":0.41805187,"top":0.19313647,"width":0.051861703,"height":0.11173184},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"You said","depth":23,"bounds":{"left":0.36053857,"top":0.19553073,"width":0.019946808,"height":0.016360734},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny MCP Connector","depth":23,"bounds":{"left":0.41805187,"top":0.1963288,"width":0.03125,"height":0.038707104},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Epic","depth":23,"bounds":{"left":0.41805187,"top":0.30806065,"width":0.010305851,"height":0.016360734},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Link to Epik in Jira","depth":23,"bounds":{"left":0.41805187,"top":0.33040702,"width":0.043218084,"height":0.016360734},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Document status","depth":23,"bounds":{"left":0.41805187,"top":0.3527534,"width":0.04105718,"height":0.016360734},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"DRAFT","depth":23,"bounds":{"left":0.41805187,"top":0.37509975,"width":0.016289894,"height":0.016360734},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Objective","depth":23,"bounds":{"left":0.41805187,"top":0.39744613,"width":0.024268618,"height":0.016360734},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Enable customers to connect Jiminny data to external AI tools (Claude, OpenAI, Gemini) so it can be used as part of their broader knowledge base and workflows.","depth":23,"bounds":{"left":0.41805187,"top":0.4197925,"width":0.051529255,"height":0.17278531},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Position Jiminny as a data layer for AI-driven revenue workflows, not just a standalone product.","depth":23,"bounds":{"left":0.41805187,"top":0.59856343,"width":0.049700797,"height":0.10574621},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"👤 Target user","depth":23,"bounds":{"left":0.41805187,"top":0.75458896,"width":0.033909574,"height":0.016759777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Revenue teams using AI tools (Sales, CS, RevOps)","depth":23,"bounds":{"left":0.41805187,"top":0.7773344,"width":0.051030584,"height":0.061053474},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Companies already experimenting with Claude / OpenAI","depth":23,"bounds":{"left":0.41805187,"top":0.8443735,"width":0.04637633,"height":0.061053474},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Mid-market & Enterprise customers with multiple data sources (CRM, docs, CI tools, Support tools etc)","depth":23,"bounds":{"left":0.41805187,"top":0.9114126,"width":0.051363032,"height":0.0885874},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🤕 Pain point or problem","depth":23,"bounds":{"left":0.41805187,"top":1.0,"width":0.03706782,"height":-0.0897845},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny data is locked in the platform","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"AI tools lack access to high-value conversation context","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Customers must manually export/copy transcripts","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No easy way to combine calls with CRM + docs + other info - using the Jiminny API is not suitable for non technical sales people","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Peer pressure as almost all competitors have this","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"💥 Impact and benefits","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"For customers","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Better AI outputs using real customer conversations","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ability to build automated workflows across tools","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"For Jiminny","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Increased product stickiness (embedded in workflows)","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Competitive parity with Gong / Avoma etc.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"💡 Solution ideas","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Build an AI Knowledge Connector (MCP-based) that:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Exposes Jiminny data (calls, transcripts, metadata) to AI tools","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Provides structured insights (summaries, action items, scoring etc.)","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Supports deal-level context","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Allows integration into customer-owned AI stacks (Claude + Zapier, etc.)","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Success metrics","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"List the key goals and how you will measure success. Include both qualitative and quantitative metrics (e.g., user adoption, retention rate, revenue targets).","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Goal","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Metric","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Increase stickiness by ensuring Jiminny is embedded in the customer’s workflows","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"% of customers connecting external AI tools","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Number of MCP/API calls per customer - and which ones are being used the most","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Decrease the manual copying of transcripts","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"decrease by X %","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"User interaction and design","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Simple setup flow:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Generate API key / connect MCP","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Clear instructions for Claude / Zapier setup","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Provide:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Example prompts for Claude","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Pre-built workflow templates for Zapier","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Clear documentation - with use cases","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"👉 Focus: usable by non-technical users","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Detailed Requirements","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"List the functional and non-functional requirements. Prioritize them (e.g., High, Medium, Low) and add notes for clarification.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Requirement","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Importance","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Notes","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Allow customers to connect Jiminny to their AI tools (e.g. Claude, OpenAI)","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HIGH","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Provide MCP endpoint so customers can easily integrate Jiminny into their AI stack","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Allow customers to access call data through AI tools","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HIGH","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Expose Jiminny data:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"list calls (filter by date, user, account, deal)","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"get call","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"get transcript (speaker-separated)","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"get call metadata","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search calls (keyword + semantic)","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Support filtering by:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"account / contact/ lead / deal","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"jiminny user","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"date range","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Allow customers to search and query calls using AI tools","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HIGH","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Support keyword and semantic search across conversations","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Provide structured insights so customers can generate better outputs","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HIGH","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"For each call, expose:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Summary","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Action items","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Key points","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Activity type","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Notes","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Call Score","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"CRM information","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Allow customers to understand deal status across multiple calls/emails","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HIGH","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"For each deal expose:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calls/meetings/emails","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Identified risks","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"contacts related to the deal with their job title","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"linked account details","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"all CRM field information that we have in DI + fields used for CRM filling","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"example - get_deal_summary","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"request -","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"tool\": \"get_deal_summary\",","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"arguments\": {","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"deal_name\": \"ACME\"","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"responce:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"deal_name\": \"ACME\",","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"stage\": \"Negotiation\",","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"recent_activity\": [","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"Demo call on 2026-04-01\",","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"Pricing discussion on 2026-04-03\"","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"],","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"risks\": [","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"Pricing concerns\",","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"Security review pending\"","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"], \"next_steps\": [","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"Send follow-up to VP Sales\",","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"Share security documentation\"","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"]","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ensure the AI can easily understand the schema of the data coming from Jiminny","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HIGH","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Models perform much better when tools have:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"clear names","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"rich descriptions","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"predictable schemas","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Provide clear, actionable error states for customers when MCP connections fail","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HIGH","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Error messages should guide agents toward solutions with specific suggestions and next steps.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Expired or revoked key — “Error: Authentication failed. The API key used to access Jiminny has been revoked or has expired. Please ask your Jiminny admin to generate a new API key in Settings > Organization > General and reconnect the MCP server.”","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rate limit hit — “Error: Rate limit exceeded. Too many requests have been made to the Jiminny MCP server in a short period. Please wait 60 seconds before retrying.”","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Permissions mismatch — if a user tries to access data outside their team visibility settings - “Error: Access denied. The requested call (call_id: [X]) is outside your team's visibility settings in Jiminny. Only calls within your permitted scope are accessible.”","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Trying to access private meeting - “Error: Access denied. This meeting has been marked as private by the host and cannot be accessed through the MCP connector. Try requesting a different call or ask the meeting host to change the visibility settings in Jiminny.”","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Downgraded/Capture account — if a customer's plan drops below Scale tier or the Customer is on Capture in the first place - “Error: MCP access unavailable. The Jiminny MCP connector is available on the Scale plan and above. Your account does not currently have an active Scale subscription.”","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny-side outage — “Error:Jiminny is temporarily unavailable (status 503). This is not a data or permissions issue — please retry in a few minutes.”","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No data found - “Error:No calls found matching your criteria. Try adjusting your filters — for example, widening the date range, removing the account filter, or checking the rep name is spelled correctly in Jiminny.”","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Allow customers to securely control who and what data is accessible externally","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HIGH","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ensure MCP only exposes data user has access to - based on team visibility settings. This means that if a user is not allow to access calls/deals in Jiminny UI then they shouldn’t be able to access those through the MCP as well.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Private meetings shouldn’t be exposed via MCP","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HIGH","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"When a meetings is set to Private then the information about it shouldn’t be exposed through the MCP.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ensure Jiminny data can be combined with other sources (e.g. CRM, docs) in AI workflows","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HIGH","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ensure data is structured to be easily combined with:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"CRM (accounts, deals)","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"external docs","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Use consistent identifiers:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"account IDs","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"deal IDs","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"MCP is available only for Scale tier and above","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HIGH","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Customers who are on Capture tier should be able to access any of their data through MCP.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"This should also cover the scenario when a customer has been on Scale but then downgrades to Capture - their MCP access should stop working.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Provide visibility into how external AI tools access Jiminny data","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HIGH","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Audit logs:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"what data was accessed by which external system when","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"identity - who made the request","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"specific queries/filters used","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"failed access attempts (especially cross-visibility-boundary attempts)","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Admins should be able to access the logs from the org settings.We can start with a csv export before building a specific page for it.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"example from Atlassian -","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Provide customers with example prompts to get started quickly","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HIGH","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"MCP prompts are explicitly defined as prompt templates that clients can discover and call with arguments.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"See examples in table below.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Expose Jiminny as a Connector in Claude","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"medium","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Competitors like Fathom are listed as Connectors in Claude. This will make it easier for customers to find us and to connect Jiminny","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Provide customers with example workflows to get started quickly","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"medium","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"A workflow is usually multiple steps, maybe multiple tools, still focused on one outcome.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"See examples in table below.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Allow customers to use predefined Jiminny skills for common workflows","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"medium","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Anthropic describes Skills as folders that include instructions, scripts, and resources that Claude can load when relevant, and as a way to teach Claude repeatable workflows, preferences, and domain expertise once instead of re-explaining them every time. Skills - a reusable package of behavior that can include prompts, instructions, resources, and sometimes scripts/tools for a broader job.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude skills - https://resources.anthropic.com/hubfs/The-Complete-Guide-to-Building-Skill-for-Claude.pdf?hsLang=en&utm_source=chatgpt.com","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"See examples in table below.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny UI widget for OpenAI","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"medium","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"The reason to have this is to make certain Jiminny use cases much easier than pure chat.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Instead of ChatGPT only replying with text like “Here are the last 5 ACME calls,” it could also show a visual Jiminny card or mini-app inside the chat. That widget could list calls, show a deal summary, let the user filter by rep/date/account, open a transcript section, or save a snippet—while the conversation continues in normal chat alongside it.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"For Jiminny, the best widget use cases are the ones where users need to browse or compare rather than ask one-off questions. A strong example is deal review: the user asks ChatGPT, “What is the status of the ACME deal?” ChatGPT calls your Jiminny MCP tools, and the widget shows a compact deal view with recent calls, risks, next steps, stakeholders, and links to transcripts/snippets. The chat can still summarize the answer in words, but the widget gives a clearer, scannable interface.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Another good Jiminny widget use case is call search and exploration. A text answer can say “I found 12 calls mentioning pricing objections,” but a widget could show a sortable list with date, rep, account, score, and objection count, then let the user click into one call to see the exact excerpt or jump to a transcript section.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Allow customers to run long-running analyses asynchronously and retrieve progress/results","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"low","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Some requests/questions require analysis of Hugh volumes of data. For those, it may be better to:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"start the job","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"let it run in the background","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"return a status like “in progress”","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"let the client come back for the result later","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"For example - User asks in Claude:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"“Analyse all calls from this quarter and tell me the top 5 objections by segment.”","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"That might require:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"searching lots of calls","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"pulling many summaries/transcripts","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"aggregating results","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Instead of making Claude wait 45+ seconds, Jiminny could:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"create an analysis job","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"return: job_id = 123, status = running","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"We need this in order to support:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"large-scale analysis","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"multi-call aggregation across lots of data","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"playlist generation across many calls","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"heavy recap/report generation","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Creating a snippet through the MCP","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"low","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Create a shareable snippet from a call recording by specifying a time range. Useful for highlighting key moments — objection handling, pricing discussions, competitive mentions — and sharing them with your team.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"example request:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"tool\": \"create_snippet\",","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"arguments\": {","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"call_id\": \"call_123\",","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"start_time\": \"00:18:24\",","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"end_time\": \"00:19:10\",","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"title\": \"Pricing objection\"","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"example response:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"snippet_id\": \"snip_987\",","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"title\": \"Pricing objection\",","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"share_url\": \"https://app.jiminny.com/snippets/snip_987\"","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ability to add recordings or snippets to a playlist","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"low","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Allow customers to create libraries of calls automatically. They can use those for onboarding or other purposes","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Allow AI tools to read reusable Jiminny resources","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"low","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"fathom","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Resources are useful for data that should be read consistently rather than recomputed every time. In Jiminny terms, that could be:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"current deal snapshot","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"account summary","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"weekly rep recap","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"approved talk tracks / objection handling guidance","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"curated playlists or snippet libraries","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"This is useful because an AI can consume these directly as context, instead of repeatedly stitching together many tool calls.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ability to write coaching notes in Jiminny through MCP","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"low","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"What we want to do for prompts/worflows and skills","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Capability","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Type","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"User value / job to be done","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Example Jiminny use case","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Inputs","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Steps performed","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Output","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Draft follow-up email","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prompt","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Help reps quickly create tailored follow-ups after calls","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Use the latest customer call to draft an email with recap and next steps","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Call ID","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"optional tone","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"optional recipient type","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Retrieve call summary and action items from Jiminny.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Pull key points, commitments, and next steps.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Apply the chosen tone and structure.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Draft the email in a consistent format.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Customer-ready follow-up email draft","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Summarise call","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prompt","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Help users quickly extract the most important points from a conversation","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Generate a concise summary of one call for internal or external use","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Call ID","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"optional summary style","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"optional audience","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Retrieve transcript, metadata, and structured insights.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Identify key topics, decisions, risks, and next steps.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Format output for the chosen audience.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Short or structured call summary with actions and risks","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Generate deal recap","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prompt","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Help reps and managers get a fast overview of a deal","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Summarise the current state of a deal based on recent calls and linked CRM context","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deal ID or account name","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"optional date range","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Retrieve calls and meetings linked to the deal.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Pull deal metadata and CRM-linked context.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Identify recent changes, blockers, risks, and next steps.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Summarise into a concise recap.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deal recap with status, blockers, risks, and recommended next steps","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prepare weekly recap","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prompt","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Help managers or reps review what changed over a time period","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Weekly recap of calls, themes, and actions for one rep, team, or account","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rep ID","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"team ID or account ID","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"time period","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Retrieve relevant calls and summaries for the selected time period.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Aggregate themes, action items, and changes.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Highlight notable risks, opportunities, and follow-ups.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Weekly recap with top themes, risks, opportunities, and actions","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prepare deal review","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Workflow","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Help reps and managers review deal status using multiple sources of context","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Review a deal before pipeline review or forecast meeting","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deal ID","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"optional date range","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Retrieve all recent calls, emails, and meetings tied to the deal.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Pull structured call summaries, score, action items, and key points.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Pull linked CRM context such as stage, contacts, and account details.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Aggregate open risks, unresolved objections, stakeholder gaps, and next steps.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Format into a review-ready structure.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deal review document with current status, risks, stakeholders, blockers, and next steps","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Weekly team recap","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Workflow","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Help managers monitor activity and risk across a group of reps or accounts","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"End-of-week team summary for sales leadership","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Team ID","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"date range","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Retrieve calls and structured insights across the team.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Group by rep, account, or deal.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Identify recurring themes, major risks, strong calls, and missed follow-ups.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Highlight calls or deals that need attention.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Team-level recap with patterns, key risks, notable wins, and action areas","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Objection analysis across calls","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Workflow","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Help teams identify patterns across multiple conversations","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Analyse pricing or competitor objections across recent calls","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Account ID","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"deal ID","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"rep ID","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"keyword/topic","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"date range","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Search calls matching the topic or keyword.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Retrieve summaries, transcripts, and snippets where relevant.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Identify recurring objections and how they were handled.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Assess whether objections were resolved or remain open.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Summarise patterns and examples.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Objection analysis with themes, frequency, examples, and suggested follow-up actions","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Build onboarding playlist","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Workflow","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Help enablement teams curate useful learning content faster","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Build a playlist of strong discovery, demo, or pricing calls for new hires","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Topic","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"call type","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"rep/team filter","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"optional time period","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Search for calls matching the selected criteria.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rank or filter calls based on score, topics, or key moments.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Identify useful snippets or full recordings.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add selected calls/snippets into a playlist structure.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Generate short descriptions for each item.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Curated onboarding playlist with selected calls/snippets and descriptions","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deal Inspection Skill","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Skill","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Give users a consistent, opinionated way to assess a deal","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude reviews a deal using a repeatable Jiminny methodology","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deal ID or account name","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"optional review scope","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Determine whether the request is suitable for a deal inspection.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Retrieve relevant calls, summaries, CRM context, stakeholders, and risks.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Apply a standard Jiminny review framework to assess deal health.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Look for missing next steps, unresolved objections, stakeholder gaps, and warning signs.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Present findings in a consistent structure with recommended actions.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Structured deal inspection with health assessment, red flags, and recommendations","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Manager Coaching Skill","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Skill","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Help managers review calls consistently and identify coaching moments","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Analyse a rep’s call and surface strengths, gaps, and examples for coaching","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Call ID","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"optional rep ID","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"optional coaching focus","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Retrieve transcript, score, summary, and key moments from the call.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Evaluate the conversation against a coaching framework.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Identify what went well and where the rep could improve.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Suggest moments to clip as snippets.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Recommend coaching actions or playlist additions.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Coaching review with strengths, gaps, snippet suggestions, and recommended coaching actions","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"CSM / QBR Prep Skill","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Skill","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Help CS or AM teams prepare structured customer reviews from conversations","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Generate an account review or QBR-style summary from recent customer interactions","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Account ID, optional time period","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Retrieve all recent calls, emails, and account-linked context.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Aggregate themes, requests, blockers, sentiment shifts, and opportunities.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Apply a repeatable account review structure.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Summarise outcomes, open issues, and suggested next steps.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Structured QBR/account review summary with themes, risks, opportunities, and actions","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Snippet Builder Skill","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Skill","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Help users consistently capture and label useful moments from calls","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Identify useful moments in a call and convert them into reusable snippets","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Call ID, optional focus area such as pricing, objection, competitor, discovery","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Retrieve transcript, recording timeline, and call insights.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Detect moments matching the requested focus area.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Propose snippet start/end times and titles.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tag snippets by type or theme.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Optionally save them or add them to a playlist.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"One or more proposed or saved snippets with title, timing, and tags","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"💡 Technical details","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Auth model needs specifying. Are API keys scoped per user, per team, or per Jiminny instance? If a key is generated by an admin, does it inherit their visibility level, or provide org-wide? Are permissions evaluated at query time or frozen at key creation? Needs to be query-time, otherwise permission changes won't propagate.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Key lifecycle management is missing. No mention of rotation, expiry, or revocation. A departed employee's active key is a data leak. Need: revocation, optional expiry, alerts on stale keys, and consider whether keys should be tied to service accounts rather than personal users.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rate limiting should be HIGH. A compromised key or misconfigured automation could bulk-export an entire customer's call history. Need per-key rate limits and anomaly detection on unusual access patterns.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Open Questions","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Track unresolved issues or decisions that need to be made. Update as answers become available.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Question","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Answer","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Date Answered","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Competitor research","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Competitor","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"MCP Availability","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Core Capabilities","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Advanced Capabilities","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Positioning","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Key Strength","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Key Weakness","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Gong","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"✅ Mature MCP","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"List/search calls","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Get transcripts","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"get Call metadata","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deal intelligence","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Scorecards, analytics","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"CRM context","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Enterprise data layer","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deep data + ecosystem integrations","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Limited opinionated AI workflows","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Avoma","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"✅ Mature MCP","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"list_meetings","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"get_meeting","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"get_transcript","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"key topics","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deal fields/Deal level analysis","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Coaching/Scoring","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"CRM context","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"pushing insights into Notion / Confluence","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"AI-ready meeting intelligence","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Strongest “outputs” layer","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Mostly pull-based interactions","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Fathom","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"✅ MCP","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"list/search meetings","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"get transcript","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"get summary/action items","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Team/org context","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Webhooks (event-based triggers)","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"get_weekly_recap","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"aggregated action items across meetings","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"creating webhooks directly from the MCP server","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Lightweight meeting data access","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Includes summaries + actions","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Limited analytics depth","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Grain","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"✅ Basic MCP","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"get meetings","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"download transcripts","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Notes","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deals","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Scorecards","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Data access utility","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Simple + accessible","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Low sophistication, sometimes browser-based","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Outreach","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"⚠️ MCP (workflow-focused)","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Search sequences","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Emails","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Meetings (Kaia)","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"account / prospect / opportunity lookups","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Workflow automation","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Multi-system orchestration","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Revenue workflow engine","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"End-to-end GTM workflows","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Less depth in conversation data","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Attention","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"⚠️ Emerging MCP","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Meeting data","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Transcripts","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"CRM-linked context","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"AI insights","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Sales assistant workflows","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"create snippets","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"AI sales assistant + CRM","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Strong CRM linkage","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Less focus on external knowledge layer","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Planhat -","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Related content","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ask Jiminny Anything on Call level","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Hubspot app","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Product Vision & Strategy","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Automated CRM Filling","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Simona Georgieva (Deactivated)","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Competitive analysis","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"AI agent ideas","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Comments","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"James Graham","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"9 Apr","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"A few areas around Security & Compliance that need more depth before this moves beyond draft:","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Auth model needs specifying. Are API keys scoped per user, per team, or per Jiminny instance? If a key is generated by an admin, does it inherit their visibility level, or provide org-wide? Are permissions evaluated at query time or frozen at key creation? Needs to be query-time, otherwise permission changes won't propagate.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Team visibility enforcement should be its own HIGH requirement. The current note under access control (\"ensure MCP only exposes data user has access to\") is doing too much work as a single line. Every MCP tool response (especially search_calls and deal-level aggregations) must be filtered through the same visibility engine as the UI. Semantic search is the riskiest here; it could surface results across team boundaries if not properly scoped.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No data minimisation or scoping controls. We're exposing transcripts, CRM fields, contact details with job titles, deal context - significant PII and commercial data leaving the platform. Can customers configure which data types are exposed? Can transcripts be PII-stripped before they leave Jiminny? Given we position GDPR consent as a differentiator, we should be thinking about this.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"GDPR downstream processing is unaddressed. Piping transcripts to OpenAI/Gemini introduces new data processors. Customers need to acknowledge responsibility for downstream processing during setup. We should also consider whether call participants' recording consent covers onward sharing to third-party AI - it almost certainly doesn't by default. This is one for me to pick up.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Key lifecycle management is missing. No mention of rotation, expiry, or revocation. A departed employee's active key is a data leak. Need: revocation, optional expiry, alerts on stale keys, and consider whether keys should be tied to service accounts rather than personal users.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rate limiting should be HIGH. A compromised key or misconfigured automation could bulk-export an entire customer's call history. Need per-key rate limits and anomaly detection on unusual access patterns.","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
9114597849698980563
|
7124130923870311001
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] Graham . I made the product related changes in the table and for the rest I left them as a note in the Technical section for the team to look at when they start looking at this. I wonder about your points related to GDPR. Currently multiple customers are using the Customer API/zapier to feed this data to AI and BI tools. They are also manually exporting transcripts and other information from the platform and feeding it to AI tools. I don’t get how MCP is so much different that all of these and why it will introduce new data processors (which are already being utilised) and would require any changes to the consent provided by participants.
You said
Jiminny MCP Connector
Epic
Link to Epik in Jira
Document status
DRAFT
Objective
Enable customers to connect Jiminny data to external AI tools (Claude, OpenAI, Gemini) so it can be used as part of their broader knowledge base and workflows.
Position Jiminny as a data layer for AI-driven revenue workflows, not just a standalone product.
👤 Target user
Revenue teams using AI tools (Sales, CS, RevOps)
Companies already experimenting with Claude / OpenAI
Mid-market & Enterprise customers with multiple data sources (CRM, docs, CI tools, Support tools etc)
🤕 Pain point or problem
Jiminny data is locked in the platform
AI tools lack access to high-value conversation context
Customers must manually export/copy transcripts
No easy way to combine calls with CRM + docs + other info - using the Jiminny API is not suitable for non technical sales people
Peer pressure as almost all competitors have this
💥 Impact and benefits
For customers
Better AI outputs using real customer conversations
Ability to build automated workflows across tools
For Jiminny
Increased product stickiness (embedded in workflows)
Competitive parity with Gong / Avoma etc.
💡 Solution ideas
Build an AI Knowledge Connector (MCP-based) that:
Exposes Jiminny data (calls, transcripts, metadata) to AI tools
Provides structured insights (summaries, action items, scoring etc.)
Supports deal-level context
Allows integration into customer-owned AI stacks (Claude + Zapier, etc.)
Success metrics
List the key goals and how you will measure success. Include both qualitative and quantitative metrics (e.g., user adoption, retention rate, revenue targets).
Goal
Metric
Increase stickiness by ensuring Jiminny is embedded in the customer’s workflows
% of customers connecting external AI tools
Number of MCP/API calls per customer - and which ones are being used the most
Decrease the manual copying of transcripts
decrease by X %
User interaction and design
Simple setup flow:
Generate API key / connect MCP
Clear instructions for Claude / Zapier setup
Provide:
Example prompts for Claude
Pre-built workflow templates for Zapier
Clear documentation - with use cases
👉 Focus: usable by non-technical users
Detailed Requirements
List the functional and non-functional requirements. Prioritize them (e.g., High, Medium, Low) and add notes for clarification.
Requirement
Importance
Notes
Allow customers to connect Jiminny to their AI tools (e.g. Claude, OpenAI)
HIGH
Provide MCP endpoint so customers can easily integrate Jiminny into their AI stack
Allow customers to access call data through AI tools
HIGH
Expose Jiminny data:
list calls (filter by date, user, account, deal)
get call
get transcript (speaker-separated)
get call metadata
search calls (keyword + semantic)
Support filtering by:
account / contact/ lead / deal
jiminny user
date range
Allow customers to search and query calls using AI tools
HIGH
Support keyword and semantic search across conversations
Provide structured insights so customers can generate better outputs
HIGH
For each call, expose:
Summary
Action items
Key points
Activity type
Notes
Call Score
CRM information
Allow customers to understand deal status across multiple calls/emails
HIGH
For each deal expose:
calls/meetings/emails
Identified risks
contacts related to the deal with their job title
linked account details
all CRM field information that we have in DI + fields used for CRM filling
example - get_deal_summary
request -
{
"tool": "get_deal_summary",
"arguments": {
"deal_name": "ACME"
}
}
responce:
{
"deal_name": "ACME",
"stage": "Negotiation",
"recent_activity": [
"Demo call on 2026-04-01",
"Pricing discussion on 2026-04-03"
],
"risks": [
"Pricing concerns",
"Security review pending"
], "next_steps": [
"Send follow-up to VP Sales",
"Share security documentation"
]
}
Ensure the AI can easily understand the schema of the data coming from Jiminny
HIGH
Models perform much better when tools have:
clear names
rich descriptions
predictable schemas
Provide clear, actionable error states for customers when MCP connections fail
HIGH
Error messages should guide agents toward solutions with specific suggestions and next steps.
Expired or revoked key — “Error: Authentication failed. The API key used to access Jiminny has been revoked or has expired. Please ask your Jiminny admin to generate a new API key in Settings > Organization > General and reconnect the MCP server.”
Rate limit hit — “Error: Rate limit exceeded. Too many requests have been made to the Jiminny MCP server in a short period. Please wait 60 seconds before retrying.”
Permissions mismatch — if a user tries to access data outside their team visibility settings - “Error: Access denied. The requested call (call_id: [X]) is outside your team's visibility settings in Jiminny. Only calls within your permitted scope are accessible.”
Trying to access private meeting - “Error: Access denied. This meeting has been marked as private by the host and cannot be accessed through the MCP connector. Try requesting a different call or ask the meeting host to change the visibility settings in Jiminny.”
Downgraded/Capture account — if a customer's plan drops below Scale tier or the Customer is on Capture in the first place - “Error: MCP access unavailable. The Jiminny MCP connector is available on the Scale plan and above. Your account does not currently have an active Scale subscription.”
Jiminny-side outage — “Error:Jiminny is temporarily unavailable (status 503). This is not a data or permissions issue — please retry in a few minutes.”
No data found - “Error:No calls found matching your criteria. Try adjusting your filters — for example, widening the date range, removing the account filter, or checking the rep name is spelled correctly in Jiminny.”
Allow customers to securely control who and what data is accessible externally
HIGH
Ensure MCP only exposes data user has access to - based on team visibility settings. This means that if a user is not allow to access calls/deals in Jiminny UI then they shouldn’t be able to access those through the MCP as well.
Private meetings shouldn’t be exposed via MCP
HIGH
When a meetings is set to Private then the information about it shouldn’t be exposed through the MCP.
Ensure Jiminny data can be combined with other sources (e.g. CRM, docs) in AI workflows
HIGH
Ensure data is structured to be easily combined with:
CRM (accounts, deals)
external docs
Use consistent identifiers:
account IDs
deal IDs
MCP is available only for Scale tier and above
HIGH
Customers who are on Capture tier should be able to access any of their data through MCP.
This should also cover the scenario when a customer has been on Scale but then downgrades to Capture - their MCP access should stop working.
Provide visibility into how external AI tools access Jiminny data
HIGH
Audit logs:
what data was accessed by which external system when
identity - who made the request
specific queries/filters used
failed access attempts (especially cross-visibility-boundary attempts)
Admins should be able to access the logs from the org settings.We can start with a csv export before building a specific page for it.
example from Atlassian -
Provide customers with example prompts to get started quickly
HIGH
MCP prompts are explicitly defined as prompt templates that clients can discover and call with arguments.
See examples in table below.
Expose Jiminny as a Connector in Claude
medium
Competitors like Fathom are listed as Connectors in Claude. This will make it easier for customers to find us and to connect Jiminny
Provide customers with example workflows to get started quickly
medium
A workflow is usually multiple steps, maybe multiple tools, still focused on one outcome.
See examples in table below.
Allow customers to use predefined Jiminny skills for common workflows
medium
Anthropic describes Skills as folders that include instructions, scripts, and resources that Claude can load when relevant, and as a way to teach Claude repeatable workflows, preferences, and domain expertise once instead of re-explaining them every time. Skills - a reusable package of behavior that can include prompts, instructions, resources, and sometimes scripts/tools for a broader job.
Claude skills - https://resources.anthropic.com/hubfs/The-Complete-Guide-to-Building-Skill-for-Claude.pdf?hsLang=en&utm_source=chatgpt.com
See examples in table below.
Jiminny UI widget for OpenAI
medium
The reason to have this is to make certain Jiminny use cases much easier than pure chat.
Instead of ChatGPT only replying with text like “Here are the last 5 ACME calls,” it could also show a visual Jiminny card or mini-app inside the chat. That widget could list calls, show a deal summary, let the user filter by rep/date/account, open a transcript section, or save a snippet—while the conversation continues in normal chat alongside it.
For Jiminny, the best widget use cases are the ones where users need to browse or compare rather than ask one-off questions. A strong example is deal review: the user asks ChatGPT, “What is the status of the ACME deal?” ChatGPT calls your Jiminny MCP tools, and the widget shows a compact deal view with recent calls, risks, next steps, stakeholders, and links to transcripts/snippets. The chat can still summarize the answer in words, but the widget gives a clearer, scannable interface.
Another good Jiminny widget use case is call search and exploration. A text answer can say “I found 12 calls mentioning pricing objections,” but a widget could show a sortable list with date, rep, account, score, and objection count, then let the user click into one call to see the exact excerpt or jump to a transcript section.
Allow customers to run long-running analyses asynchronously and retrieve progress/results
low
Some requests/questions require analysis of Hugh volumes of data. For those, it may be better to:
start the job
let it run in the background
return a status like “in progress”
let the client come back for the result later
For example - User asks in Claude:
“Analyse all calls from this quarter and tell me the top 5 objections by segment.”
That might require:
searching lots of calls
pulling many summaries/transcripts
aggregating results
Instead of making Claude wait 45+ seconds, Jiminny could:
create an analysis job
return: job_id = 123, status = running
We need this in order to support:
large-scale analysis
multi-call aggregation across lots of data
playlist generation across many calls
heavy recap/report generation
Creating a snippet through the MCP
low
Create a shareable snippet from a call recording by specifying a time range. Useful for highlighting key moments — objection handling, pricing discussions, competitive mentions — and sharing them with your team.
example request:
{
"tool": "create_snippet",
"arguments": {
"call_id": "call_123",
"start_time": "00:18:24",
"end_time": "00:19:10",
"title": "Pricing objection"
}
}
example response:
{
"snippet_id": "snip_987",
"title": "Pricing objection",
"share_url": "https://app.jiminny.com/snippets/snip_987"
}
Ability to add recordings or snippets to a playlist
low
Allow customers to create libraries of calls automatically. They can use those for onboarding or other purposes
Allow AI tools to read reusable Jiminny resources
low
fathom
Resources are useful for data that should be read consistently rather than recomputed every time. In Jiminny terms, that could be:
current deal snapshot
account summary
weekly rep recap
approved talk tracks / objection handling guidance
curated playlists or snippet libraries
This is useful because an AI can consume these directly as context, instead of repeatedly stitching together many tool calls.
Ability to write coaching notes in Jiminny through MCP
low
What we want to do for prompts/worflows and skills
Capability
Type
User value / job to be done
Example Jiminny use case
Inputs
Steps performed
Output
Draft follow-up email
Prompt
Help reps quickly create tailored follow-ups after calls
Use the latest customer call to draft an email with recap and next steps
Call ID
optional tone
optional recipient type
Retrieve call summary and action items from Jiminny.
Pull key points, commitments, and next steps.
Apply the chosen tone and structure.
Draft the email in a consistent format.
Customer-ready follow-up email draft
Summarise call
Prompt
Help users quickly extract the most important points from a conversation
Generate a concise summary of one call for internal or external use
Call ID
optional summary style
optional audience
Retrieve transcript, metadata, and structured insights.
Identify key topics, decisions, risks, and next steps.
Format output for the chosen audience.
Short or structured call summary with actions and risks
Generate deal recap
Prompt
Help reps and managers get a fast overview of a deal
Summarise the current state of a deal based on recent calls and linked CRM context
Deal ID or account name
optional date range
Retrieve calls and meetings linked to the deal.
Pull deal metadata and CRM-linked context.
Identify recent changes, blockers, risks, and next steps.
Summarise into a concise recap.
Deal recap with status, blockers, risks, and recommended next steps
Prepare weekly recap
Prompt
Help managers or reps review what changed over a time period
Weekly recap of calls, themes, and actions for one rep, team, or account
Rep ID
team ID or account ID
time period
Retrieve relevant calls and summaries for the selected time period.
Aggregate themes, action items, and changes.
Highlight notable risks, opportunities, and follow-ups.
Weekly recap with top themes, risks, opportunities, and actions
Prepare deal review
Workflow
Help reps and managers review deal status using multiple sources of context
Review a deal before pipeline review or forecast meeting
Deal ID
optional date range
Retrieve all recent calls, emails, and meetings tied to the deal.
Pull structured call summaries, score, action items, and key points.
Pull linked CRM context such as stage, contacts, and account details.
Aggregate open risks, unresolved objections, stakeholder gaps, and next steps.
Format into a review-ready structure.
Deal review document with current status, risks, stakeholders, blockers, and next steps
Weekly team recap
Workflow
Help managers monitor activity and risk across a group of reps or accounts
End-of-week team summary for sales leadership
Team ID
date range
Retrieve calls and structured insights across the team.
Group by rep, account, or deal.
Identify recurring themes, major risks, strong calls, and missed follow-ups.
Highlight calls or deals that need attention.
Team-level recap with patterns, key risks, notable wins, and action areas
Objection analysis across calls
Workflow
Help teams identify patterns across multiple conversations
Analyse pricing or competitor objections across recent calls
Account ID
deal ID
rep ID
keyword/topic
date range
Search calls matching the topic or keyword.
Retrieve summaries, transcripts, and snippets where relevant.
Identify recurring objections and how they were handled.
Assess whether objections were resolved or remain open.
Summarise patterns and examples.
Objection analysis with themes, frequency, examples, and suggested follow-up actions
Build onboarding playlist
Workflow
Help enablement teams curate useful learning content faster
Build a playlist of strong discovery, demo, or pricing calls for new hires
Topic
call type
rep/team filter
optional time period
Search for calls matching the selected criteria.
Rank or filter calls based on score, topics, or key moments.
Identify useful snippets or full recordings.
Add selected calls/snippets into a playlist structure.
Generate short descriptions for each item.
Curated onboarding playlist with selected calls/snippets and descriptions
Deal Inspection Skill
Skill
Give users a consistent, opinionated way to assess a deal
Claude reviews a deal using a repeatable Jiminny methodology
Deal ID or account name
optional review scope
Determine whether the request is suitable for a deal inspection.
Retrieve relevant calls, summaries, CRM context, stakeholders, and risks.
Apply a standard Jiminny review framework to assess deal health.
Look for missing next steps, unresolved objections, stakeholder gaps, and warning signs.
Present findings in a consistent structure with recommended actions.
Structured deal inspection with health assessment, red flags, and recommendations
Manager Coaching Skill
Skill
Help managers review calls consistently and identify coaching moments
Analyse a rep’s call and surface strengths, gaps, and examples for coaching
Call ID
optional rep ID
optional coaching focus
Retrieve transcript, score, summary, and key moments from the call.
Evaluate the conversation against a coaching framework.
Identify what went well and where the rep could improve.
Suggest moments to clip as snippets.
Recommend coaching actions or playlist additions.
Coaching review with strengths, gaps, snippet suggestions, and recommended coaching actions
CSM / QBR Prep Skill
Skill
Help CS or AM teams prepare structured customer reviews from conversations
Generate an account review or QBR-style summary from recent customer interactions
Account ID, optional time period
Retrieve all recent calls, emails, and account-linked context.
Aggregate themes, requests, blockers, sentiment shifts, and opportunities.
Apply a repeatable account review structure.
Summarise outcomes, open issues, and suggested next steps.
Structured QBR/account review summary with themes, risks, opportunities, and actions
Snippet Builder Skill
Skill
Help users consistently capture and label useful moments from calls
Identify useful moments in a call and convert them into reusable snippets
Call ID, optional focus area such as pricing, objection, competitor, discovery
Retrieve transcript, recording timeline, and call insights.
Detect moments matching the requested focus area.
Propose snippet start/end times and titles.
Tag snippets by type or theme.
Optionally save them or add them to a playlist.
One or more proposed or saved snippets with title, timing, and tags
💡 Technical details
Auth model needs specifying. Are API keys scoped per user, per team, or per Jiminny instance? If a key is generated by an admin, does it inherit their visibility level, or provide org-wide? Are permissions evaluated at query time or frozen at key creation? Needs to be query-time, otherwise permission changes won't propagate.
Key lifecycle management is missing. No mention of rotation, expiry, or revocation. A departed employee's active key is a data leak. Need: revocation, optional expiry, alerts on stale keys, and consider whether keys should be tied to service accounts rather than personal users.
Rate limiting should be HIGH. A compromised key or misconfigured automation could bulk-export an entire customer's call history. Need per-key rate limits and anomaly detection on unusual access patterns.
Open Questions
Track unresolved issues or decisions that need to be made. Update as answers become available.
Question
Answer
Date Answered
Competitor research
Competitor
MCP Availability
Core Capabilities
Advanced Capabilities
Positioning
Key Strength
Key Weakness
Gong
✅ Mature MCP
List/search calls
Get transcripts
get Call metadata
Deal intelligence
Scorecards, analytics
CRM context
Enterprise data layer
Deep data + ecosystem integrations
Limited opinionated AI workflows
Avoma
✅ Mature MCP
list_meetings
get_meeting
get_transcript
key topics
Deal fields/Deal level analysis
Coaching/Scoring
CRM context
pushing insights into Notion / Confluence
AI-ready meeting intelligence
Strongest “outputs” layer
Mostly pull-based interactions
Fathom
✅ MCP
list/search meetings
get transcript
get summary/action items
Team/org context
Webhooks (event-based triggers)
get_weekly_recap
aggregated action items across meetings
creating webhooks directly from the MCP server
Lightweight meeting data access
Includes summaries + actions
Limited analytics depth
Grain
✅ Basic MCP
get meetings
download transcripts
Notes
Deals
Scorecards
Data access utility
Simple + accessible
Low sophistication, sometimes browser-based
Outreach
⚠️ MCP (workflow-focused)
Search sequences
Emails
Meetings (Kaia)
account / prospect / opportunity lookups
Workflow automation
Multi-system orchestration
Revenue workflow engine
End-to-end GTM workflows
Less depth in conversation data
Attention
⚠️ Emerging MCP
Meeting data
Transcripts
CRM-linked context
AI insights
Sales assistant workflows
create snippets
AI sales assistant + CRM
Strong CRM linkage
Less focus on external knowledge layer
Planhat -
Related content
Ask Jiminny Anything on Call level
Galya Dimitrova
Hubspot app
Galya Dimitrova
Product Vision & Strategy
Galya Dimitrova
Automated CRM Filling
Simona Georgieva (Deactivated)
Competitive analysis
Galya Dimitrova
AI agent ideas
Steliyan Georgiev
Comments
James Graham
9 Apr
A few areas around Security & Compliance that need more depth before this moves beyond draft:
Auth model needs specifying. Are API keys scoped per user, per team, or per Jiminny instance? If a key is generated by an admin, does it inherit their visibility level, or provide org-wide? Are permissions evaluated at query time or frozen at key creation? Needs to be query-time, otherwise permission changes won't propagate.
Team visibility enforcement should be its own HIGH requirement. The current note under access control ("ensure MCP only exposes data user has access to") is doing too much work as a single line. Every MCP tool response (especially search_calls and deal-level aggregations) must be filtered through the same visibility engine as the UI. Semantic search is the riskiest here; it could surface results across team boundaries if not properly scoped.
No data minimisation or scoping controls. We're exposing transcripts, CRM fields, contact details with job titles, deal context - significant PII and commercial data leaving the platform. Can customers configure which data types are exposed? Can transcripts be PII-stripped before they leave Jiminny? Given we position GDPR consent as a differentiator, we should be thinking about this.
GDPR downstream processing is unaddressed. Piping transcripts to OpenAI/Gemini introduces new data processors. Customers need to acknowledge responsibility for downstream processing during setup. We should also consider whether call participants' recording consent covers onward sharing to third-party AI - it almost certainly doesn't by default. This is one for me to pick up.
Key lifecycle management is missing. No mention of rotation, expiry, or revocation. A departed employee's active key is a data leak. Need: revocation, optional expiry, alerts on stale keys, and consider whether keys should be tied to service accounts rather than personal users.
Rate limiting should be HIGH. A compromised key or misconfigured automation could bulk-export an entire customer's call history. Need per-key rate limits and anomaly detection on unusual access patterns....
|
NULL
|
|
76546
|
1919
|
18
|
2026-04-24T08:07:23.863107+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777018043863_m1.jpg...
|
Firefox
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira — Work...
|
True
|
jiminny.atlassian.net/jira/software/c/projects/JY/ jiminny.atlassian.net/jira/software/c/projects/JY/boards/37...
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
New Tab
New Tab
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
Pull requests · jiminny/app
Pull requests · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
Jiminny
Jiminny
Userpilot | Nudge-created
Userpilot | Nudge-created
Summary - app in Jiminny SonarQube Cloud
Summary - app in Jiminny SonarQube Cloud
Pipelines - jiminny/app
Pipelines - jiminny/app
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
User Pilot
User Pilot
Clear search
Clear search
More filters
App
App
Assignee
Assignee
Find people
Assignee
Suggested
Lukas Kovalik
Lukas Kovalik
Nikolay Yankov
Nikolay Yankov
Stefka Stoyanova
Stefka Stoyanova
Galya Dimitrova
Galya Dimitrova
Automation for Jira
Automation for Jira
Mario Georgiev
Mario Georgiev
Clear filter
Clear filter
Space
Space
RECENT
RECENT
Work item icon JY-20700: Split Userpilot events for for AJ Reports and Exec Reports Jira • Sub-task • Jiminny (New) You worked on 4 days ago
JY-20700: Split
User
pilot events for for AJ Reports and Exec Reports
Jira
•
Sub-task
•
Jiminny (New)
You worked on
4 days ago
SEARCH RESULTS
SEARCH RESULTS
Work item icon JY-19123: Allow managers to add and edit emails for a user Jira • Story • Jiminny (New) Updated on 27 Feb 2026
JY-19123: Allow managers to add and edit emails for a
user
Jira
•
Story
•
Jiminny (New)
Updated on
27 Feb 2026
Work item icon JY-18308: [BE] Trigger company update endpoint to UserPilot Jira • Sub-task • Jiminny (New) Updated on 04 Jun 2025
JY-18308: [BE] Trigger company update endpoint to
User
Pilot
Jira
•
Sub-task
•
Jiminny (New)
Updated on
04 Jun 2025
Work item icon JY-18373: Send the info for the new role to UserPilot, Intercom, Planhat Jira • Sub-task • Jiminny (New) Updated on 18 Jun 2025
JY-18373: Send the info for the new role to
User
Pilot, Intercom, Planhat
Jira
•
Sub-task
•
Jiminny (New)
Updated on
18 Jun 2025
Work item icon JY-20671: Import recordings from custom s3 bucket [Anyvan] Jira • Story • Jiminny (New) Updated 2 days ago
JY-20671: Import recordings from custom s3 bucket [Anyvan]
Jira
•
Story
•
Jiminny (New)
Updated
2 days ago
Work item icon SRD-3886: Setup UserPilot in Jiminny App on EU US Jira • Service Request • Service-Desk Updated on 13 Mar 2024
SRD-3886: Setup
User
Pilot in Jiminny App on EU US
Jira
•
Service Request
•
Service-Desk
Updated on
13 Mar 2024
Work item icon JY-19240: AJ Reports Jira • Epic • Jiminny (New) Updated on 24 Mar 2026
JY-19240: AJ Reports
Jira
•
Epic
•
Jiminny (New)
Updated on
24 Mar 2026
Work item icon JY-20615: Notify the user if a SS is deleted but is used in AJ Report Jira • Story • Jiminny (New) Updated 4 days ago
JY-20615: Notify the
user
if a SS is deleted but is used in AJ Report
Jira
•
Story
•
Jiminny (New)
Updated
4 days ago
Work item icon JY-20676: Notify the user if a Panorama prompts is deleted but is used in AJ Report Jira • Story • Jiminny (New) Updated 4 days ago
JY-20676: Notify the
user
if a Panorama prompts is deleted but is used in AJ Report
Jira
•
Story
•
Jiminny (New)
Updated
4 days ago
Work item icon JY-20508: Notify a user before the AJ Report expires Jira • Story • Jiminny (New) Updated on 15 Apr 2026
JY-20508: Notify a
user
before the AJ Report expires
Jira
•
Story
•
Jiminny (New)
Updated on
15 Apr 2026
Work item icon JY-20115: Remove deleted_at for users Jira • Technical Story • Jiminny (New) Updated on 10 Mar 2026
JY-20115: Remove deleted_at for
user
s
Jira
•
Technical Story
•
Jiminny (New)
Updated on
10 Mar 2026
Boards
Boards
Spaces
Spaces
Filters
Filters
Plans
Plans
Teams
Teams
Search Jira for work items
Search Jira for work items
Search all apps + more
Search all apps
+ more
Help us improve search
Give feedback
Why has search changed? Link to community post , (opens new window)
Why has search changed?
, (opens new window)
13 options available
Create
Create
Rovo Ask Rovo
Ask Rovo
1 Notification
1 Notification
Help
Help
Settings
Settings
[EMAIL]
[EMAIL]
For you
For you
Recent
Recent
Starred
Starred
Apps
Apps
More actions for Apps
More actions for Apps
Spaces
Spaces
Create space...
|
[{"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":true},{"role":"AXRadioButton","text":"JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · 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":"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":"Pull requests · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app","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":"Userpilot | Nudge-created","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Userpilot | Nudge-created","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Summary - app in Jiminny SonarQube Cloud","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Summary - app in Jiminny SonarQube Cloud","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"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":"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,"bounds":{"left":0.0,"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.0,"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.0,"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.0,"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.016666668,"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":"AXStaticText","text":"Skip to:","depth":9,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Top Bar","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Top Bar","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Sidebar","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sidebar","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Main Content","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Main Content","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Space navigation","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Space navigation","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Collapse sidebar [","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Collapse sidebar [","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Switch sites or apps","depth":10,"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,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Go to your Jira homepage","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXComboBox","text":"User Pilot","depth":11,"value":"User Pilot","help_text":"","placeholder":"Search","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"User Pilot","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Clear search","depth":12,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Clear search","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More filters","depth":13,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"App","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":"App","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Assignee","depth":13,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"Assignee","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Find people","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Assignee","depth":14,"help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"Suggested","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Automation for Jira","depth":15,"role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Automation for Jira","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Mario Georgiev","depth":15,"role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Mario Georgiev","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Clear filter","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Clear filter","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Space","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":"Space","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"RECENT","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"RECENT","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Work item icon JY-20700: Split Userpilot events for for AJ Reports and Exec Reports Jira • Sub-task • Jiminny (New) You worked on 4 days ago","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-20700: Split","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"User","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"pilot events for for AJ Reports and Exec Reports","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jira","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Sub-task","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny (New)","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"You worked on","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 days ago","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"SEARCH RESULTS","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SEARCH RESULTS","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Work item icon JY-19123: Allow managers to add and edit emails for a user Jira • Story • Jiminny (New) Updated on 27 Feb 2026","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-19123: Allow managers to add and edit emails for a","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"user","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jira","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Story","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny (New)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated on","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"27 Feb 2026","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Work item icon JY-18308: [BE] Trigger company update endpoint to UserPilot Jira • Sub-task • Jiminny (New) Updated on 04 Jun 2025","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-18308: [BE] Trigger company update endpoint to","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"User","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Pilot","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jira","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Sub-task","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny (New)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated on","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"04 Jun 2025","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Work item icon JY-18373: Send the info for the new role to UserPilot, Intercom, Planhat Jira • Sub-task • Jiminny (New) Updated on 18 Jun 2025","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-18373: Send the info for the new role to","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"User","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Pilot, Intercom, Planhat","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jira","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Sub-task","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny (New)","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated on","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"18 Jun 2025","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Work item icon JY-20671: Import recordings from custom s3 bucket [Anyvan] Jira • Story • Jiminny (New) Updated 2 days ago","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-20671: Import recordings from custom s3 bucket [Anyvan]","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jira","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Story","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny (New)","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2 days ago","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Work item icon SRD-3886: Setup UserPilot in Jiminny App on EU US Jira • Service Request • Service-Desk Updated on 13 Mar 2024","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SRD-3886: Setup","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"User","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Pilot in Jiminny App on EU US","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jira","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Service Request","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Service-Desk","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated on","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"13 Mar 2024","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Work item icon JY-19240: AJ Reports Jira • Epic • Jiminny (New) Updated on 24 Mar 2026","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-19240: AJ Reports","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jira","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Epic","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny (New)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated on","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"24 Mar 2026","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Work item icon JY-20615: Notify the user if a SS is deleted but is used in AJ Report Jira • Story • Jiminny (New) Updated 4 days ago","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-20615: Notify the","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"user","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"if a SS is deleted but is used in AJ Report","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jira","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Story","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny (New)","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 days ago","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Work item icon JY-20676: Notify the user if a Panorama prompts is deleted but is used in AJ Report Jira • Story • Jiminny (New) Updated 4 days ago","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-20676: Notify the","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"user","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"if a Panorama prompts is deleted but is used in AJ Report","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jira","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Story","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny (New)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 days ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Work item icon JY-20508: Notify a user before the AJ Report expires Jira • Story • Jiminny (New) Updated on 15 Apr 2026","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-20508: Notify a","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"user","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"before the AJ Report expires","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jira","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Story","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny (New)","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated on","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"15 Apr 2026","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Work item icon JY-20115: Remove deleted_at for users Jira • Technical Story • Jiminny (New) Updated on 10 Mar 2026","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-20115: Remove deleted_at for","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"user","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"s","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jira","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Technical Story","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny (New)","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated on","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"10 Mar 2026","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Boards","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Boards","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Spaces","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Spaces","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Filters","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Filters","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Plans","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Plans","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Teams","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Teams","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Search Jira for work items","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Search Jira for work items","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Search all apps + more","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Search all apps","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+ more","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Help us improve search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Give feedback","depth":11,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Why has search changed? Link to community post , (opens new window)","depth":11,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Why has search changed?","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", (opens new window)","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"13 options available","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Rovo Ask Rovo","depth":12,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Ask Rovo","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"1 Notification","depth":12,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1 Notification","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Help","depth":12,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Help","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Settings","depth":12,"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,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"lukas.kovalik@jiminny.com","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"lukas.kovalik@jiminny.com","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"For you","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"For you","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Recent","depth":12,"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,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Starred","depth":12,"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,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Apps","depth":12,"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,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Apps","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":"More actions for Apps","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Spaces","depth":12,"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,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create space","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
9114587512439216000
|
-5644848712158613818
|
click
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
New Tab
New Tab
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
Pull requests · jiminny/app
Pull requests · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
Jiminny
Jiminny
Userpilot | Nudge-created
Userpilot | Nudge-created
Summary - app in Jiminny SonarQube Cloud
Summary - app in Jiminny SonarQube Cloud
Pipelines - jiminny/app
Pipelines - jiminny/app
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
User Pilot
User Pilot
Clear search
Clear search
More filters
App
App
Assignee
Assignee
Find people
Assignee
Suggested
Lukas Kovalik
Lukas Kovalik
Nikolay Yankov
Nikolay Yankov
Stefka Stoyanova
Stefka Stoyanova
Galya Dimitrova
Galya Dimitrova
Automation for Jira
Automation for Jira
Mario Georgiev
Mario Georgiev
Clear filter
Clear filter
Space
Space
RECENT
RECENT
Work item icon JY-20700: Split Userpilot events for for AJ Reports and Exec Reports Jira • Sub-task • Jiminny (New) You worked on 4 days ago
JY-20700: Split
User
pilot events for for AJ Reports and Exec Reports
Jira
•
Sub-task
•
Jiminny (New)
You worked on
4 days ago
SEARCH RESULTS
SEARCH RESULTS
Work item icon JY-19123: Allow managers to add and edit emails for a user Jira • Story • Jiminny (New) Updated on 27 Feb 2026
JY-19123: Allow managers to add and edit emails for a
user
Jira
•
Story
•
Jiminny (New)
Updated on
27 Feb 2026
Work item icon JY-18308: [BE] Trigger company update endpoint to UserPilot Jira • Sub-task • Jiminny (New) Updated on 04 Jun 2025
JY-18308: [BE] Trigger company update endpoint to
User
Pilot
Jira
•
Sub-task
•
Jiminny (New)
Updated on
04 Jun 2025
Work item icon JY-18373: Send the info for the new role to UserPilot, Intercom, Planhat Jira • Sub-task • Jiminny (New) Updated on 18 Jun 2025
JY-18373: Send the info for the new role to
User
Pilot, Intercom, Planhat
Jira
•
Sub-task
•
Jiminny (New)
Updated on
18 Jun 2025
Work item icon JY-20671: Import recordings from custom s3 bucket [Anyvan] Jira • Story • Jiminny (New) Updated 2 days ago
JY-20671: Import recordings from custom s3 bucket [Anyvan]
Jira
•
Story
•
Jiminny (New)
Updated
2 days ago
Work item icon SRD-3886: Setup UserPilot in Jiminny App on EU US Jira • Service Request • Service-Desk Updated on 13 Mar 2024
SRD-3886: Setup
User
Pilot in Jiminny App on EU US
Jira
•
Service Request
•
Service-Desk
Updated on
13 Mar 2024
Work item icon JY-19240: AJ Reports Jira • Epic • Jiminny (New) Updated on 24 Mar 2026
JY-19240: AJ Reports
Jira
•
Epic
•
Jiminny (New)
Updated on
24 Mar 2026
Work item icon JY-20615: Notify the user if a SS is deleted but is used in AJ Report Jira • Story • Jiminny (New) Updated 4 days ago
JY-20615: Notify the
user
if a SS is deleted but is used in AJ Report
Jira
•
Story
•
Jiminny (New)
Updated
4 days ago
Work item icon JY-20676: Notify the user if a Panorama prompts is deleted but is used in AJ Report Jira • Story • Jiminny (New) Updated 4 days ago
JY-20676: Notify the
user
if a Panorama prompts is deleted but is used in AJ Report
Jira
•
Story
•
Jiminny (New)
Updated
4 days ago
Work item icon JY-20508: Notify a user before the AJ Report expires Jira • Story • Jiminny (New) Updated on 15 Apr 2026
JY-20508: Notify a
user
before the AJ Report expires
Jira
•
Story
•
Jiminny (New)
Updated on
15 Apr 2026
Work item icon JY-20115: Remove deleted_at for users Jira • Technical Story • Jiminny (New) Updated on 10 Mar 2026
JY-20115: Remove deleted_at for
user
s
Jira
•
Technical Story
•
Jiminny (New)
Updated on
10 Mar 2026
Boards
Boards
Spaces
Spaces
Filters
Filters
Plans
Plans
Teams
Teams
Search Jira for work items
Search Jira for work items
Search all apps + more
Search all apps
+ more
Help us improve search
Give feedback
Why has search changed? Link to community post , (opens new window)
Why has search changed?
, (opens new window)
13 options available
Create
Create
Rovo Ask Rovo
Ask Rovo
1 Notification
1 Notification
Help
Help
Settings
Settings
[EMAIL]
[EMAIL]
For you
For you
Recent
Recent
Starred
Starred
Apps
Apps
More actions for Apps
More actions for Apps
Spaces
Spaces
Create space...
|
NULL
|
|
19561
|
418
|
9
|
2026-04-15T07:46:41.136415+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776239201136_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Firefox FileEoitView History Bookmarks Profiles To Firefox FileEoitView History Bookmarks Profiles Tools Window Helpapp.vanta.com/login?continue=https%3A%2F%2Fapp.vanta.com%2Fc%2Fjiminny.com%2Ftests%2Fpackages-checked-for-vulnerabilities-v2-records-closed-github-dependabot-high%3Ftab%3Dresults< 40 l6l• | [Platform] Planning... 14m leftA100% C• 8• Wed 15 Apr 10:46:40E VantaVantaD Vanta8 For you - Confluenceb Lukas Kovalik - Time Offu Product Growth Plattorm Userpilou Userpilotfix(security): composer dependeno+ New TabWelcome back!Sign in to Vantacnier vour emal cooressM US Vcontinue witn emallDon't have an account? Contact us....
|
NULL
|
9114476936940746428
|
NULL
|
visual_change
|
ocr
|
NULL
|
Firefox FileEoitView History Bookmarks Profiles To Firefox FileEoitView History Bookmarks Profiles Tools Window Helpapp.vanta.com/login?continue=https%3A%2F%2Fapp.vanta.com%2Fc%2Fjiminny.com%2Ftests%2Fpackages-checked-for-vulnerabilities-v2-records-closed-github-dependabot-high%3Ftab%3Dresults< 40 l6l• | [Platform] Planning... 14m leftA100% C• 8• Wed 15 Apr 10:46:40E VantaVantaD Vanta8 For you - Confluenceb Lukas Kovalik - Time Offu Product Growth Plattorm Userpilou Userpilotfix(security): composer dependeno+ New TabWelcome back!Sign in to Vantacnier vour emal cooressM US Vcontinue witn emallDon't have an account? Contact us....
|
19560
|
|
50742
|
1092
|
18
|
2026-04-17T15:20:32.676364+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776439232676_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEoitView History Bookmarks ProfilesTool FirefoxFileEoitView History Bookmarks ProfilesToolsWindow Help• aurzen.com/products/aurzen-zip-tri-fold-portable-projector?srsltid=AfmB0oov5krVUOwLIAs8I|C3dT-27ym58j5rPmsUZcHCVjzW_ZreGUDGM°p! Western Digital Red Plus 3.5 6TB 5400rpm 256MB SAiSl I SeneticТвърд диск, Western Digital Red 6TB Plus ( 3.5". 256N@ SQLite Web: db. sqlite@ Screenpipe DashboardV Welcome to Steam• YoulubeNew TabA Aurzen ZIP Projector | World's First Tri-Fold Mini Pi X+ New TabAUrZEnHOTDeals vAyr serlesvnoeM serlesvJpserlesvSmart AurzenHub APPSeamlessly control your Aurzen device.Fast, Free DeliveryAccessories vEnglish~BESONOOA?100% C4 & Fri 17 Apr 18:20:32Bulgaria (EUR €) ~=Explore ~Support~ii) Pemose ContyHome / All products /Aurzen ZIP Tri-Fold Portable Mini Projector**** 131 reviews€499,99$120 OFFCode: AURZEN120ZIP Copy CodeSave $120 with our auto-applied code.• The World's First Tri-Fold Truly Portable Projector• Instant Mirroring, No Wi-Fi Needed• Built-in 5000mAh Battery & PD Fast Charging• Vertical Full-Screen Mode for Immersive Shorts• Zero-Lag Auto Focus for ToF PrecisionColor OptionZIP Dark GrayZIP Cyber EditionZIP Titanium Goldshlooing kezionUnited StatesEuropean UnionUnited KingdomCanadaQuantityWhat We Offerndo acclcent orotecton oterec ov xcouon loanner witn Allal.View coverage€35.392 Years€47.483 Years€67.34 €80.81+ Get it+ Get it+ Get itTax included. Shipping calculated at checkout.Secure and trusted checkout withVISAG PayEnglish (rSpecificationsUser ManualFirmware UpdateShipping Tip: Shipping begins within 1-3 days (ex€499,99Add to cartPayKlarna.Cookie consentWe and our partners, including Shopify, use cookies andother technologies to personalize your experience, showyou ads, and perform analytics, and we will not use cookiesor other technologies for these purposes unless youaccept them. Learn more in our Privacy PolicyManagepreferencesAcceptDecline...
|
NULL
|
9114309073558130429
|
NULL
|
click
|
ocr
|
NULL
|
FirefoxFileEoitView History Bookmarks ProfilesTool FirefoxFileEoitView History Bookmarks ProfilesToolsWindow Help• aurzen.com/products/aurzen-zip-tri-fold-portable-projector?srsltid=AfmB0oov5krVUOwLIAs8I|C3dT-27ym58j5rPmsUZcHCVjzW_ZreGUDGM°p! Western Digital Red Plus 3.5 6TB 5400rpm 256MB SAiSl I SeneticТвърд диск, Western Digital Red 6TB Plus ( 3.5". 256N@ SQLite Web: db. sqlite@ Screenpipe DashboardV Welcome to Steam• YoulubeNew TabA Aurzen ZIP Projector | World's First Tri-Fold Mini Pi X+ New TabAUrZEnHOTDeals vAyr serlesvnoeM serlesvJpserlesvSmart AurzenHub APPSeamlessly control your Aurzen device.Fast, Free DeliveryAccessories vEnglish~BESONOOA?100% C4 & Fri 17 Apr 18:20:32Bulgaria (EUR €) ~=Explore ~Support~ii) Pemose ContyHome / All products /Aurzen ZIP Tri-Fold Portable Mini Projector**** 131 reviews€499,99$120 OFFCode: AURZEN120ZIP Copy CodeSave $120 with our auto-applied code.• The World's First Tri-Fold Truly Portable Projector• Instant Mirroring, No Wi-Fi Needed• Built-in 5000mAh Battery & PD Fast Charging• Vertical Full-Screen Mode for Immersive Shorts• Zero-Lag Auto Focus for ToF PrecisionColor OptionZIP Dark GrayZIP Cyber EditionZIP Titanium Goldshlooing kezionUnited StatesEuropean UnionUnited KingdomCanadaQuantityWhat We Offerndo acclcent orotecton oterec ov xcouon loanner witn Allal.View coverage€35.392 Years€47.483 Years€67.34 €80.81+ Get it+ Get it+ Get itTax included. Shipping calculated at checkout.Secure and trusted checkout withVISAG PayEnglish (rSpecificationsUser ManualFirmware UpdateShipping Tip: Shipping begins within 1-3 days (ex€499,99Add to cartPayKlarna.Cookie consentWe and our partners, including Shopify, use cookies andother technologies to personalize your experience, showyou ads, and perform analytics, and we will not use cookiesor other technologies for these purposes unless youaccept them. Learn more in our Privacy PolicyManagepreferencesAcceptDecline...
|
50740
|
|
69541
|
1601
|
9
|
2026-04-22T08:20:29.852078+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776846029852_m2.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_2
|
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.
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.
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.
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.
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.
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.
Lukas Kovalik
Others might see more of your background. Click to view your full video.
11:20
AM
CRM issues
CRM issues
Audio settings
Turn on 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
Veselin Kulov says in chat: https://jiminny.sentry.io/issues/7417255437/?environment=production-eu&query=is%3Aunresolved%20memory&referrer=issue-stream&sort=freq...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.28307846,"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":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.28125,"top":0.073822826,"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":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.08499601,"width":0.10106383,"height":0.010774142},"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,"bounds":{"left":0.28125,"top":0.10654429,"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":"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,"bounds":{"left":0.2945479,"top":0.117717475,"width":0.4644282,"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.28125,"top":0.13926576,"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.2945479,"top":0.15043895,"width":0.11319814,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.17198724,"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.2945479,"top":0.18316041,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CRM issues - Apr 22 - Chat","depth":4,"bounds":{"left":0.28125,"top":0.2047087,"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":"CRM issues - Apr 22 - Chat","depth":5,"bounds":{"left":0.2945479,"top":0.21588188,"width":0.047706116,"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.28125,"top":0.23743017,"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.2945479,"top":0.24860336,"width":0.08610372,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Feed — jiminny — Sentry","depth":4,"bounds":{"left":0.28125,"top":0.27015164,"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.2945479,"top":0.28132483,"width":0.042719416,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.3028731,"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.2945479,"top":0.3140463,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pipelines - /app","depth":4,"bounds":{"left":0.28125,"top":0.33559456,"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 - /app","depth":5,"bounds":{"left":0.2945479,"top":0.34676775,"width":0.027094414,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Formalize","depth":4,"bounds":{"left":0.28125,"top":0.36831605,"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.2945479,"top":0.3794892,"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.28125,"top":0.4010375,"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.2945479,"top":0.4122107,"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.28125,"top":0.43375897,"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.2945479,"top":0.44493216,"width":0.080119684,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.46648043,"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.2945479,"top":0.47765362,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.49920192,"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.2945479,"top":0.5103751,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.5319234,"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.2945479,"top":0.54309654,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Edit - Engineering - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.5646449,"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 - Engineering - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.57581806,"width":0.054853722,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira","depth":4,"bounds":{"left":0.28125,"top":0.59736633,"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-18909] [Part2] Automated reports with Ask Jiminny - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.6085395,"width":0.10688165,"height":0.010774142},"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,"bounds":{"left":0.28125,"top":0.6300878,"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":"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,"bounds":{"left":0.2945479,"top":0.641261,"width":0.4644282,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.28125,"top":0.66280925,"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":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.2945479,"top":0.67398244,"width":0.041223403,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Usage | Windsurf","depth":4,"bounds":{"left":0.28125,"top":0.6955307,"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":"Usage | Windsurf","depth":5,"bounds":{"left":0.2945479,"top":0.7067039,"width":0.029920213,"height":0.010774142},"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,"bounds":{"left":0.28125,"top":0.7282522,"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":"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,"bounds":{"left":0.2945479,"top":0.73942536,"width":0.4644282,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"bounds":{"left":0.28125,"top":0.7609737,"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":"Workers | Datadog","depth":5,"bounds":{"left":0.2945479,"top":0.7721468,"width":0.032081116,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.79369515,"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":"Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.80486834,"width":0.12915559,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.8264166,"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":"AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.8375898,"width":0.14128989,"height":0.010774142},"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,"bounds":{"left":0.28125,"top":0.8591381,"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":"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,"bounds":{"left":0.2945479,"top":0.87031126,"width":0.4644282,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Meet - CRM issues","depth":4,"bounds":{"left":0.28125,"top":0.89185953,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXButton","text":"Mute tab","depth":5,"bounds":{"left":0.29271942,"top":0.8990423,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Meet - CRM issues","depth":5,"bounds":{"left":0.30136302,"top":0.9030327,"width":0.03274601,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.34857047,"top":0.8990423,"width":0.007978723,"height":0.01915403},"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.2840758,"top":0.92897046,"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.2840758,"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.29504654,"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.30618352,"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.31732047,"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.32845744,"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":"AXHeading","text":"Nikolay Nikolov (Presenting, annotating)","depth":12,"bounds":{"left":0.38081783,"top":0.0726257,"width":0.08577128,"height":0.015961692},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Nikolay Nikolov (Presenting, annotating)","depth":13,"bounds":{"left":0.38081783,"top":0.07342378,"width":0.08577128,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"People","depth":15,"bounds":{"left":0.94581115,"top":0.06424581,"width":0.019614361,"height":0.028731046},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"6","depth":22,"bounds":{"left":0.95910907,"top":0.0726257,"width":0.0023271276,"height":0.012370312},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Take notes with Gemini","depth":14,"bounds":{"left":0.9680851,"top":0.06424581,"width":0.011968086,"height":0.028731046},"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.9694149,"top":0.0726257,"width":0.03058511,"height":0.012370312},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Gemini","depth":22,"bounds":{"left":0.9840425,"top":0.0726257,"width":0.013464096,"height":0.012370312},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Gemini","depth":21,"bounds":{"left":0.9830452,"top":0.0650439,"width":0.011303191,"height":0.027134877},"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,"bounds":{"left":0.75099736,"top":0.612929,"width":0.07014628,"height":0.06384677},"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,"bounds":{"left":0.81998,"top":0.62330407,"width":0.03873005,"height":0.013567438},"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,"bounds":{"left":0.8093417,"top":0.62051076,"width":0.053025264,"height":0.040702313},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Zoom in","depth":13,"bounds":{"left":0.77576464,"top":0.79010373,"width":0.013297873,"height":0.031923383},"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,"bounds":{"left":0.79172206,"top":0.79010373,"width":0.013297873,"height":0.031923383},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Enter Full Screen","depth":13,"bounds":{"left":0.80767953,"top":0.79010373,"width":0.013297873,"height":0.031923383},"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,"bounds":{"left":0.89162236,"top":0.27414206,"width":0.07014628,"height":0.05546688},"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,"bounds":{"left":0.960605,"top":0.2849162,"width":0.036236703,"height":0.012769354},"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,"bounds":{"left":0.9499667,"top":0.28172386,"width":0.05003327,"height":0.032322425},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":17,"bounds":{"left":0.835605,"top":0.35554668,"width":0.029587766,"height":0.016360734},"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,"bounds":{"left":0.97606385,"top":0.27414206,"width":0.023936152,"height":0.05546688},"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,"bounds":{"left":1.0,"top":0.2849162,"width":-0.045046568,"height":0.012769354},"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,"bounds":{"left":1.0,"top":0.28172386,"width":-0.03440821,"height":0.032322425},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":17,"bounds":{"left":0.92004657,"top":0.35554668,"width":0.03756649,"height":0.016360734},"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,"bounds":{"left":0.89660907,"top":0.54070234,"width":0.07014628,"height":0.05546688},"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,"bounds":{"left":0.9655917,"top":0.5514765,"width":0.03440827,"height":0.012769354},"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,"bounds":{"left":0.95495343,"top":0.5482841,"width":0.045046568,"height":0.032322425},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":17,"bounds":{"left":0.835605,"top":0.62210697,"width":0.042220745,"height":0.016360734},"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,"bounds":{"left":0.9740692,"top":0.54070234,"width":0.025930822,"height":0.05546688},"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,"bounds":{"left":1.0,"top":0.5514765,"width":-0.04305184,"height":0.012769354},"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,"bounds":{"left":1.0,"top":0.5482841,"width":-0.032413602,"height":0.032322425},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Veselin Kulov","depth":17,"bounds":{"left":0.92004657,"top":0.62210697,"width":0.032413565,"height":0.016360734},"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,"bounds":{"left":0.83045214,"top":0.8072626,"width":0.07014628,"height":0.05546688},"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,"bounds":{"left":0.795379,"top":0.81803674,"width":0.036236703,"height":0.012769354},"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,"bounds":{"left":0.78607047,"top":0.81484437,"width":0.05618351,"height":0.032322425},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":17,"bounds":{"left":0.8359375,"top":0.8886672,"width":0.032912236,"height":0.016360734},"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,"bounds":{"left":0.9815492,"top":0.88547486,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"11:20","depth":12,"bounds":{"left":0.36884972,"top":0.96009576,"width":0.012632979,"height":0.016360734},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"AM","depth":12,"bounds":{"left":0.38314494,"top":0.96009576,"width":0.008477394,"height":0.016360734},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"CRM issues","depth":12,"bounds":{"left":0.39993352,"top":0.93615323,"width":0.028590426,"height":0.06384677},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"CRM issues","depth":15,"bounds":{"left":0.39993352,"top":0.96009576,"width":0.028590426,"height":0.016360734},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Audio settings","depth":13,"bounds":{"left":0.5867686,"top":0.9489226,"width":0.02925532,"height":0.03830806},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Turn on microphone","depth":13,"bounds":{"left":0.6000665,"top":0.9489226,"width":0.015957447,"height":0.03830806},"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.6186835,"top":0.9489226,"width":0.02925532,"height":0.03830806},"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.6319814,"top":0.9489226,"width":0.015957447,"height":0.03830806},"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.6505984,"top":0.9489226,"width":0.01861702,"height":0.03830806},"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.671875,"top":0.9489226,"width":0.01861702,"height":0.03830806},"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.6931516,"top":0.9489226,"width":0.01861702,"height":0.03830806},"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.7144282,"top":0.9489226,"width":0.01861702,"height":0.03830806},"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.7357048,"top":0.9489226,"width":0.011968086,"height":0.03830806},"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":0.7503325,"top":0.9489226,"width":0.023936171,"height":0.03830806},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Meeting details","depth":12,"bounds":{"left":0.9481383,"top":0.9489226,"width":0.015957447,"height":0.03830806},"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,"bounds":{"left":0.9640958,"top":0.9489226,"width":0.015957447,"height":0.03830806},"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,"bounds":{"left":0.9800532,"top":0.9489226,"width":0.015957447,"height":0.03830806},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Veselin Kulov says in chat: https://jiminny.sentry.io/issues/7417255437/?environment=production-eu&query=is%3Aunresolved%20memory&referrer=issue-stream&sort=freq","depth":8,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
9114294364455406311
|
-5264585864689551100
|
visual_change
|
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.
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.
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.
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.
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.
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.
Lukas Kovalik
Others might see more of your background. Click to view your full video.
11:20
AM
CRM issues
CRM issues
Audio settings
Turn on 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
Veselin Kulov says in chat: https://jiminny.sentry.io/issues/7417255437/?environment=production-eu&query=is%3Aunresolved%20memory&referrer=issue-stream&sort=freq...
|
69540
|
|
59283
|
NULL
|
0
|
2026-04-20T13:35:46.708321+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776692146708_m1.jpg...
|
PhpStorm
|
PhpStorm
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfiles|ToolsW FirefoxFileEditViewHistoryBookmarksProfiles|ToolsWindowHelpmeet.google.com/cxs-eips-npt?authuser=0Nikolay Nikolov (Presenting, annotating)100% C428• Mon 20 Apr |16:35:468887 [JY-20615] No:(JY-20613) Alicl7 [JY-20500) Ba:(JY-20501) Baxc X | 02:15:29 - Refc X | E Jminny - Calen:https://fiminny.atlassian.net/browse/JY-205007at/OriginzeyJpfjoiNJVmYzgxZjYzYTFhNDNjYTg4ZJYOYTZIZGZ/MmViZDUILC.JwljolamlyYS1zbGFjay1pbnQifohh LuM Leaderboard.D TODODebug crm-syne..- Kehne E Sentry W ts E LeanL A chapterQ SearchJiminnv ONew) / Jy-15971 / JY-20500Normal text:=[rype /al for Atlassian Intelligence or@ to mention and notify someone.Cancel|Nikolay NikolovnowInitial Owner/Profile Sync for OpportunitiesWhere It HappensTrigger: ProfileCzeated event → SyncProfileOppoztunities listener |1 User connects to CRM → Profile created → ProfileCreated eventSyncProfileOpportunities: :handle()LocationSyncPxofile0pportunities.phpHow It WorksACUoProf11Lx Meet - [Pula 8.Workers | DatasMon 20 Apr 16:36• Home |kevien© Rev Prophet( My PRs|L Al Bookmarxs+ CreateAsk Rovov DetailsFix versionsNoneSprintPlatform Sprint 3 Q2Days3Need QA|YesParent• JY-15971 CRM Synching ImprovemeCanny LinksOpen Canny Linksv More fieldsOriginal estimateohTime trackingNo time logged> Automation 4 Rule executions> featureOS Open featureOs› Sentry sl! Unked IssuesCrested 24 Varch 2026 at1.57Upoated 1 seco0d a9dAneliya AngelovaStefka Stoyanova3 othersNikolay Nikolovl meet.google.com is sharing your screen.4:35 PM | [Platform] Refinement •Lukas Kovalik1:33:57Lộ3...
|
NULL
|
9114140514269031952
|
NULL
|
visual_change
|
ocr
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfiles|ToolsW FirefoxFileEditViewHistoryBookmarksProfiles|ToolsWindowHelpmeet.google.com/cxs-eips-npt?authuser=0Nikolay Nikolov (Presenting, annotating)100% C428• Mon 20 Apr |16:35:468887 [JY-20615] No:(JY-20613) Alicl7 [JY-20500) Ba:(JY-20501) Baxc X | 02:15:29 - Refc X | E Jminny - Calen:https://fiminny.atlassian.net/browse/JY-205007at/OriginzeyJpfjoiNJVmYzgxZjYzYTFhNDNjYTg4ZJYOYTZIZGZ/MmViZDUILC.JwljolamlyYS1zbGFjay1pbnQifohh LuM Leaderboard.D TODODebug crm-syne..- Kehne E Sentry W ts E LeanL A chapterQ SearchJiminnv ONew) / Jy-15971 / JY-20500Normal text:=[rype /al for Atlassian Intelligence or@ to mention and notify someone.Cancel|Nikolay NikolovnowInitial Owner/Profile Sync for OpportunitiesWhere It HappensTrigger: ProfileCzeated event → SyncProfileOppoztunities listener |1 User connects to CRM → Profile created → ProfileCreated eventSyncProfileOpportunities: :handle()LocationSyncPxofile0pportunities.phpHow It WorksACUoProf11Lx Meet - [Pula 8.Workers | DatasMon 20 Apr 16:36• Home |kevien© Rev Prophet( My PRs|L Al Bookmarxs+ CreateAsk Rovov DetailsFix versionsNoneSprintPlatform Sprint 3 Q2Days3Need QA|YesParent• JY-15971 CRM Synching ImprovemeCanny LinksOpen Canny Linksv More fieldsOriginal estimateohTime trackingNo time logged> Automation 4 Rule executions> featureOS Open featureOs› Sentry sl! Unked IssuesCrested 24 Varch 2026 at1.57Upoated 1 seco0d a9dAneliya AngelovaStefka Stoyanova3 othersNikolay Nikolovl meet.google.com is sharing your screen.4:35 PM | [Platform] Refinement •Lukas Kovalik1:33:57Lộ3...
|
59282
|
|
60918
|
1313
|
42
|
2026-04-21T06:25:19.665338+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776752719665_m2.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
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
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
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
Review requested
Review requested
yalokin-jiminny
yalokin-jiminny
requested your review on this pull request.
Add your review
Add your review
JY-20701 | Reschedule HubSpot Sync Objects #11989 Edit title
JY-20701 | Reschedule HubSpot Sync Objects
#
11989
Edit title
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
)
Conversation
Conversation
@yalokin-jiminny
Show options
yalokin-jiminny commented 4 days ago •
yalokin-jiminny
yalokin-jiminny
commented
4 days ago
4 days ago
•
edited
edited
JIRA: JY-20701
JIRA:
JY-20701
JY-20701
Casus:
Casus:
We want more fluent curve of the jobs distribution (no spikes) in
crm-sync
queue
The more frequent HubSpot processing will help to have less auto-scaling / down-scaling events, thus reducing the jobs wait times
Changes:
Changes:
Remove HubSpot from SyncObjects
Create separate HubSpotSyncObjects that runs each 5 min instead of each 30
Extract common code
Improve processing Webhooks jobs distribution
Optimize ImportOpportunityBatch:
cache OpportunitySyncableFields, OwnerProfiles, RecordType
remove findContactByConfigurationAndId - Contact ID already exist
add timings log
Add or remove reactions
@yalokin-jiminny
Show options
Author
yalokin-jiminny commented 4 days ago
yalokin-jiminny
yalokin-jiminny
commented
4 days ago
4 days ago
@claude
@claude
Add or remove reactions
react with eyes
👀
1
@claude
Show options
claude bot commented 4 days ago •
claude
claude
bot
commented
4 days ago
4 days ago
•
edited
edited
Claude finished
@yalokin-jiminny
@yalokin-jiminny
's task in 1m 59s
——
View job
View job
Code Review
Code Review
Overall the approach is clean — extracting the shared logic into
SyncObjectsCommandTrait
is a good call, and the scheduling design (offset cron at
:01
to avoid spikes) makes sense. I found two bugs and a few minor points.
Bugs
Bugs
1. Null dereference on
$crmConfig
—
app/Jobs/Crm/SyncHubspotObjects.php:49-51
$
crmConfig
=
$
team
->
crm
;
if
(
$
crmConfig
->
provider
!== Configuration::
PROVIDER_HUBSPOT
) {
Copy
$team->crm
can be null if the team has no CRM configuration record. Accessing
->provider
on null will throw a fatal error. The existing
SyncObjects
job handles this by using
??
(
$crmConfig->provider ?? 'unknown'
). The new job needs a null guard here:
$
crmConfig
=
$
team
->
crm
;
if
(
$
crmConfig
===
null
||
$
crmConfig
->
provider
!== Configuration::
PROVIDER_HUBSPOT
) {
$
logger
->
warning
(
'
[SyncHubspotObjects] Team has no HubSpot CRM config
'
, [
'
team
'
=>
$
this
->
teamId
]);
return
;
}
Copy
Fix this →
Fix this →
2.
$lastSyncedAt
is nullable but
syncHubspotCrmObjects
requires
Carbon
—
app/Jobs/Crm/SyncHubspotObjects.php:85,88,116
$
lastSyncedAt
=
$
crmConfig
->
last_synced_at
;
// can be null on first run
.
.
.
$
this
->
syncHubspotCrmObjects
(
$
crmService
,
$
lastSyncedAt
);
// ...
private
function
syncHubspotCrmObjects(
HubspotInterface
$
crmService
,
Carbon
$
lastSyncedAt
):
void
Copy
With
declare(strict_types=1)
, passing
null
to a
Carbon
-typed parameter throws a
TypeError
. A team that has never synced before will crash on the first run. The parameter should be
?Carbon
(and
syncOpportunities
should handle null), or provide a fallback like
Carbon::createFromTimestamp(0)
.
Fix this →
Fix this →
Minor Issues
Minor Issues
3. Double call to
getLogPrefix()
—
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php:52
$
prefix
=
$
this
->
getLogPrefix
() ?
$
this
->
getLogPrefix
() .
'
'
:
''
;
Copy
getLogPrefix()
is called twice. Trivial but unnecessary — capture the result in a variable first.
4.
SyncObjects
command doesn't guard HubSpot when
{team}
argument is given —
app/Console/Commands/Crm/SyncObjects.php:40-41
if
(
$
teamId
) {
$
teams
[] = Team::
idOrUuId
(
$
teamId
);
// no provider check
Copy
Running
crm:sync-objects <hubspot-team-id>
dispatches a
SyncObjectsJob
for a HubSpot team, which now silently warns and returns. From an operator perspective this is confusing — the command appears to accept the team but does nothing. Worth adding a provider check and a console error message pointing to
crm:sync-hubspot-objects
.
Design Notes
Design Notes
Scheduler placement
:
crm:sync-hubspot-objects
is placed inside
scheduleEveryFiveMinutes()
but uses a manual cron
'1,6,11,16,21,26,31,36,41,46,51,56 * * * *'
instead of
->everyFiveMinutes()
. The 1-minute offset is intentional (good thinking to stagger from the other jobs), but it's slightly inconsistent with the method's name. A comment explaining the offset would help future readers.
SQS visibility timeout
:
SyncHubspotObjects
uses 1 hour (
60 * 60
) vs
SyncObjects
's 6 hours (
60 * 60 * 6
). Appropriate given the more frequent, presumably lighter runs.
Stagger delay
: HubSpot uses 1s between teams vs 2s for general sync. Fine for 5-min runs, though worth monitoring if the number of HubSpot teams grows large enough that the last job barely fits within the 5-minute window.
Add or remove reactions
@yalokin-jiminny
yalokin-jiminny
yalokin-jiminny
force-pushed
force-pushed
the
JY-20553-debug-crm-sync-delays
branch from
f6c0ec3
f6c0ec3
to
5928f60
5928f60
Compare
Compare
yesterday
yesterday
@yalokin-jiminny
yalokin-jiminny
yalokin-jiminny
force-pushed
force-pushed
the
JY-20701-reschedule-HubSpot-processing
branch from
3d7234a
3d7234a
to
1d10796
1d10796
Compare
Compare
yesterday
yesterday
Base automatically changed from
JY-20553-debug-crm-sync-delays
to
master
19 hours ago...
|
[{"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":"[SRD-6787] Issue with reconnecting Zoho - Jira","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":"[SRD-6787] Issue with reconnecting Zoho - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.10614525,"width":0.08344415,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6787] Issue with reconnecting Zoho - 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":"[SRD-6787] Issue with reconnecting Zoho - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.13886672,"width":0.08344415,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app","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":"JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.17158818,"width":0.19963431,"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.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":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.013297873,"top":0.20430966,"width":0.08294548,"height":0.010774142},"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,"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":"[JY-20676] Notify the user if a Panorama prompts is deleted but is used in AJ Report - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.23703113,"width":0.15791224,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny Mail","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 Mail","depth":5,"bounds":{"left":0.013297873,"top":0.2697526,"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.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":"[JY-20500] Batch initial sync for Salesforce - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.30247405,"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.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":"Feed — jiminny — Sentry","depth":5,"bounds":{"left":0.013297873,"top":0.33519554,"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.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":"Jiminny","depth":5,"bounds":{"left":0.013297873,"top":0.367917,"width":0.013131649,"height":0.010774142},"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,"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":true},{"role":"AXStaticText","text":"JY-20701 | Reschedule HubSpot Sync Objects by yalokin-jiminny · Pull Request #11989 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.40063846,"width":0.1740359,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.06732048,"top":0.39664805,"width":0.007978723,"height":0.01915403},"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.0028257978,"top":0.4237829,"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":"AXLink","text":"Skip to content","depth":6,"bounds":{"left":0.07962101,"top":0.0518755,"width":0.0003324468,"height":0.0007980846},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"bounds":{"left":0.07962101,"top":0.05347167,"width":0.0029920214,"height":0.21468475},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"bounds":{"left":0.08494016,"top":0.06464485,"width":0.010638298,"height":0.025538707},"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,"bounds":{"left":0.099567816,"top":0.06464485,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"jiminny","depth":12,"bounds":{"left":0.112865694,"top":0.06464485,"width":0.018949468,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"jiminny","depth":14,"bounds":{"left":0.11486037,"top":0.07063048,"width":0.014960106,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"app","depth":12,"bounds":{"left":0.13680187,"top":0.06464485,"width":0.017785905,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app","depth":14,"bounds":{"left":0.13879654,"top":0.07063048,"width":0.008477394,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"bounds":{"left":0.81698805,"top":0.06464485,"width":0.06565824,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"bounds":{"left":0.82928854,"top":0.07063048,"width":0.011801862,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"bounds":{"left":0.8424202,"top":0.07222666,"width":0.002493351,"height":0.011572227},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"bounds":{"left":0.84640956,"top":0.07063048,"width":0.021276595,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"bounds":{"left":0.88464093,"top":0.06464485,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"bounds":{"left":0.8949468,"top":0.06464485,"width":0.008643617,"height":0.025538707},"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,"bounds":{"left":0.9115692,"top":0.06464485,"width":0.01662234,"height":0.025538707},"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,"bounds":{"left":0.93085104,"top":0.06464485,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"bounds":{"left":0.94414896,"top":0.06464485,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"bounds":{"left":0.9574468,"top":0.06464485,"width":0.010638298,"height":0.025538707},"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,"bounds":{"left":0.97074467,"top":0.06464485,"width":0.010638298,"height":0.025538707},"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,"bounds":{"left":0.9840425,"top":0.06464485,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"bounds":{"left":0.079288565,"top":0.051077414,"width":0.0003324468,"height":0.0007980846},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"bounds":{"left":0.079288565,"top":0.05387071,"width":0.0787899,"height":0.023144454},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"bounds":{"left":0.08494016,"top":0.09936153,"width":0.025099734,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"bounds":{"left":0.095744684,"top":0.10574621,"width":0.011469414,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (31)","depth":12,"bounds":{"left":0.11269947,"top":0.09936153,"width":0.054521278,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"bounds":{"left":0.12333777,"top":0.10574621,"width":0.02925532,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"bounds":{"left":0.15525267,"top":0.113727055,"width":0.0029920214,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"31","depth":14,"bounds":{"left":0.15824468,"top":0.113727055,"width":0.004986702,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"bounds":{"left":0.16323139,"top":0.113727055,"width":0.0016622341,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"bounds":{"left":0.16988032,"top":0.09936153,"width":0.029089095,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"bounds":{"left":0.18085106,"top":0.10574621,"width":0.014960106,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"bounds":{"left":0.20162898,"top":0.09936153,"width":0.03025266,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"bounds":{"left":0.21276596,"top":0.10574621,"width":0.015957447,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Wiki","depth":12,"bounds":{"left":0.23454122,"top":0.09936153,"width":0.022938829,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Wiki","depth":14,"bounds":{"left":0.24534574,"top":0.10574621,"width":0.009142287,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality (21)","depth":12,"bounds":{"left":0.2601396,"top":0.09936153,"width":0.069980055,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"bounds":{"left":0.27194148,"top":0.10574621,"width":0.04255319,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"bounds":{"left":0.31831783,"top":0.113727055,"width":0.0029920214,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"21","depth":14,"bounds":{"left":0.32130983,"top":0.113727055,"width":0.0048204786,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"bounds":{"left":0.32613033,"top":0.113727055,"width":0.0016622341,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"bounds":{"left":0.33277926,"top":0.09936153,"width":0.03125,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"bounds":{"left":0.34391624,"top":0.10574621,"width":0.016788565,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Settings","depth":12,"bounds":{"left":0.36668882,"top":0.09936153,"width":0.032081116,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Settings","depth":14,"bounds":{"left":0.3778258,"top":0.10574621,"width":0.01761968,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"bounds":{"left":0.09325133,"top":0.14365523,"width":0.0003324468,"height":0.016759777},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"bounds":{"left":0.09325133,"top":0.1452514,"width":0.039228722,"height":0.013567438},"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,"bounds":{"left":0.09325133,"top":0.1452514,"width":0.2159242,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"bounds":{"left":0.30917552,"top":0.1452514,"width":0.04055851,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"bounds":{"left":0.30917552,"top":0.1452514,"width":0.04055851,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"bounds":{"left":0.34973404,"top":0.1452514,"width":0.08261303,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"bounds":{"left":0.4323471,"top":0.1452514,"width":0.05219415,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"bounds":{"left":0.4323471,"top":0.1452514,"width":0.05219415,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"bounds":{"left":0.48454124,"top":0.1452514,"width":0.0013297872,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"bounds":{"left":0.98636967,"top":0.13886672,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Review requested","depth":15,"bounds":{"left":0.35006648,"top":0.2019154,"width":0.0003324468,"height":0.016759777},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Review requested","depth":16,"bounds":{"left":0.35006648,"top":0.20351157,"width":0.039893616,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"yalokin-jiminny","depth":15,"bounds":{"left":0.35006648,"top":0.20351157,"width":0.034075797,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"yalokin-jiminny","depth":16,"bounds":{"left":0.35006648,"top":0.20351157,"width":0.034075797,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"requested your review on this pull request.","depth":15,"bounds":{"left":0.3854721,"top":0.20351157,"width":0.09158909,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Add your review","depth":14,"bounds":{"left":0.70212764,"top":0.19872306,"width":0.036901597,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Add your review","depth":16,"bounds":{"left":0.70511967,"top":0.20391062,"width":0.030917553,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"JY-20701 | Reschedule HubSpot Sync Objects #11989 Edit title","depth":13,"bounds":{"left":0.33776596,"top":0.24221867,"width":0.26230052,"height":0.031923383},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-20701 | Reschedule HubSpot Sync Objects","depth":14,"bounds":{"left":0.33776596,"top":0.24301676,"width":0.2122673,"height":0.030327214},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":15,"bounds":{"left":0.55269283,"top":0.24301676,"width":0.006482713,"height":0.030327214},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"11989","depth":15,"bounds":{"left":0.55917555,"top":0.24301676,"width":0.028922873,"height":0.030327214},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit title","depth":14,"bounds":{"left":0.5894282,"top":0.24541101,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Awaiting approval","depth":13,"bounds":{"left":0.6569149,"top":0.24860336,"width":0.055518616,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Awaiting approval","depth":15,"bounds":{"left":0.66921544,"top":0.254589,"width":0.038896278,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":13,"bounds":{"left":0.7137633,"top":0.24860336,"width":0.02825798,"height":0.025538707},"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,"bounds":{"left":0.7180851,"top":0.254589,"width":0.011635638,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Open","depth":13,"bounds":{"left":0.34840426,"top":0.28651237,"width":0.011968086,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"yalokin-jiminny","depth":15,"bounds":{"left":0.36702126,"top":0.28332004,"width":0.034075797,"height":0.016759777},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"yalokin-jiminny","depth":16,"bounds":{"left":0.36702126,"top":0.2849162,"width":0.034075797,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"wants to merge 22 commits into","depth":15,"bounds":{"left":0.40242687,"top":0.2849162,"width":0.069148935,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"master","depth":15,"bounds":{"left":0.47290558,"top":0.282921,"width":0.018284574,"height":0.017557861},"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"master","depth":16,"bounds":{"left":0.47490028,"top":0.28611332,"width":0.014295213,"height":0.011572227},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"from","depth":16,"bounds":{"left":0.49251994,"top":0.2849162,"width":0.009973404,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JY-20701-reschedule-HubSpot-processing","depth":16,"bounds":{"left":0.50382316,"top":0.282921,"width":0.09524601,"height":0.017557861},"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20701-reschedule-HubSpot-processing","depth":17,"bounds":{"left":0.50581783,"top":0.28611332,"width":0.09125665,"height":0.011572227},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy head branch name to clipboard","depth":16,"bounds":{"left":0.60039896,"top":0.28052673,"width":0.00930851,"height":0.022346368},"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,"bounds":{"left":0.7067819,"top":0.3367917,"width":0.019946808,"height":0.11412609},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Conversation (5)","depth":16,"bounds":{"left":0.33776596,"top":0.31883478,"width":0.057347074,"height":0.031923383},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Conversation","depth":17,"bounds":{"left":0.35139626,"top":0.32841182,"width":0.028091755,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"bounds":{"left":0.38946143,"top":0.32841182,"width":0.0029920214,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"5","depth":18,"bounds":{"left":0.39245346,"top":0.32841182,"width":0.0028257978,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"bounds":{"left":0.39527926,"top":0.32841182,"width":0.0016622341,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Commits (22)","depth":16,"bounds":{"left":0.39511302,"top":0.31883478,"width":0.05069814,"height":0.031923383},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Commits","depth":17,"bounds":{"left":0.40874335,"top":0.32841182,"width":0.019115692,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"bounds":{"left":0.4401596,"top":0.32841182,"width":0.0029920214,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"22","depth":18,"bounds":{"left":0.4431516,"top":0.32841182,"width":0.005485372,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"bounds":{"left":0.44863698,"top":0.32841182,"width":0.0016622341,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Checks (3)","depth":16,"bounds":{"left":0.44581118,"top":0.31883478,"width":0.04504654,"height":0.031923383},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Checks","depth":17,"bounds":{"left":0.45944148,"top":0.32841182,"width":0.015957447,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"bounds":{"left":0.48520613,"top":0.32841182,"width":0.0029920214,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3","depth":18,"bounds":{"left":0.48819813,"top":0.32841182,"width":0.0029920214,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"bounds":{"left":0.49119017,"top":0.32841182,"width":0.0016622341,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Files changed (11)","depth":16,"bounds":{"left":0.49085772,"top":0.31883478,"width":0.060339097,"height":0.031923383},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Files changed","depth":17,"bounds":{"left":0.50448805,"top":0.32841182,"width":0.029753989,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"bounds":{"left":0.5455452,"top":0.32841182,"width":0.0029920214,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"11","depth":18,"bounds":{"left":0.54853725,"top":0.32841182,"width":0.0043218085,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"bounds":{"left":0.55285907,"top":0.32841182,"width":0.0016622341,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Conversation","depth":12,"bounds":{"left":0.33776596,"top":0.3643256,"width":0.0003324468,"height":0.0007980846},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Conversation","depth":13,"bounds":{"left":0.33776596,"top":0.36711892,"width":0.048204787,"height":0.023144454},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@yalokin-jiminny","depth":12,"bounds":{"left":0.33776596,"top":0.3643256,"width":0.013297873,"height":0.031923383},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Show options","depth":15,"bounds":{"left":0.61136967,"top":0.3651237,"width":0.007978723,"height":0.02952913},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"yalokin-jiminny commented 4 days ago •","depth":14,"bounds":{"left":0.3620346,"top":0.3651237,"width":0.24135639,"height":0.02952913},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"yalokin-jiminny","depth":16,"bounds":{"left":0.3620346,"top":0.37310454,"width":0.034075797,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"yalokin-jiminny","depth":17,"bounds":{"left":0.3620346,"top":0.37310454,"width":0.034075797,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"commented","depth":15,"bounds":{"left":0.39744017,"top":0.37310454,"width":0.025598405,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"4 days ago","depth":15,"bounds":{"left":0.42436835,"top":0.3715084,"width":0.023603724,"height":0.016759777},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"4 days ago","depth":17,"bounds":{"left":0.42436835,"top":0.37310454,"width":0.023603724,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"bounds":{"left":0.44930187,"top":0.37310454,"width":0.0021609042,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"edited","depth":17,"bounds":{"left":0.45262632,"top":0.3715084,"width":0.020279255,"height":0.016759777},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"edited","depth":19,"bounds":{"left":0.45262632,"top":0.37310454,"width":0.014960106,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"JIRA: JY-20701","depth":16,"bounds":{"left":0.3620346,"top":0.40822026,"width":0.25731382,"height":0.017557861},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JIRA:","depth":17,"bounds":{"left":0.3620346,"top":0.4086193,"width":0.015791224,"height":0.016759777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JY-20701","depth":17,"bounds":{"left":0.3778258,"top":0.4086193,"width":0.026263298,"height":0.016759777},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20701","depth":18,"bounds":{"left":0.3778258,"top":0.4086193,"width":0.026263298,"height":0.016759777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Casus:","depth":16,"bounds":{"left":0.3620346,"top":0.44493216,"width":0.25731382,"height":0.01396648},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Casus:","depth":17,"bounds":{"left":0.3620346,"top":0.44493216,"width":0.015292553,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"We want more fluent curve of the jobs distribution (no spikes) in","depth":18,"bounds":{"left":0.3700133,"top":0.47326416,"width":0.13879654,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crm-sync","depth":19,"bounds":{"left":0.51047206,"top":0.47525936,"width":0.018949468,"height":0.011572227},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"queue","depth":18,"bounds":{"left":0.53108376,"top":0.47326416,"width":0.01462766,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"The more frequent HubSpot processing will help to have less auto-scaling / down-scaling events, thus reducing the jobs wait times","depth":18,"bounds":{"left":0.3700133,"top":0.49281725,"width":0.24750665,"height":0.030726258},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Changes:","depth":16,"bounds":{"left":0.3620346,"top":0.5442937,"width":0.25731382,"height":0.01396648},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Changes:","depth":17,"bounds":{"left":0.3620346,"top":0.5442937,"width":0.021110373,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Remove HubSpot from SyncObjects","depth":18,"bounds":{"left":0.3700133,"top":0.5726257,"width":0.07712766,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Create separate HubSpotSyncObjects that runs each 5 min instead of each 30","depth":18,"bounds":{"left":0.3700133,"top":0.59217876,"width":0.16855054,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Extract common code","depth":18,"bounds":{"left":0.3700133,"top":0.6121309,"width":0.047041222,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Improve processing Webhooks jobs distribution","depth":18,"bounds":{"left":0.3700133,"top":0.63168395,"width":0.101894945,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Optimize ImportOpportunityBatch:","depth":18,"bounds":{"left":0.3700133,"top":0.65163606,"width":0.07396942,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cache OpportunitySyncableFields, OwnerProfiles, RecordType","depth":20,"bounds":{"left":0.37799203,"top":0.6683959,"width":0.13347739,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"remove findContactByConfigurationAndId - Contact ID already exist","depth":20,"bounds":{"left":0.37799203,"top":0.68834794,"width":0.1456117,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"add timings log","depth":20,"bounds":{"left":0.37799203,"top":0.70790106,"width":0.032912236,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add or remove reactions","depth":16,"bounds":{"left":0.3620346,"top":0.73623306,"width":0.008643617,"height":0.0207502},"help_text":"","role_description":"summary","subrole":"AXSummary","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"@yalokin-jiminny","depth":13,"bounds":{"left":0.33776596,"top":0.7960894,"width":0.013297873,"height":0.031923383},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Show options","depth":14,"bounds":{"left":0.61136967,"top":0.79688746,"width":0.007978723,"height":0.02952913},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Author","depth":15,"bounds":{"left":0.5934175,"top":0.80606544,"width":0.012965426,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"yalokin-jiminny commented 4 days ago","depth":13,"bounds":{"left":0.3620346,"top":0.79688746,"width":0.22240691,"height":0.02952913},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"yalokin-jiminny","depth":15,"bounds":{"left":0.3620346,"top":0.80486834,"width":0.034075797,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"yalokin-jiminny","depth":16,"bounds":{"left":0.3620346,"top":0.80486834,"width":0.034075797,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"commented","depth":14,"bounds":{"left":0.39744017,"top":0.80486834,"width":0.025598405,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"4 days ago","depth":14,"bounds":{"left":0.42436835,"top":0.8032721,"width":0.023603724,"height":0.016759777},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"4 days ago","depth":16,"bounds":{"left":0.42436835,"top":0.80486834,"width":0.023603724,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@claude","depth":17,"bounds":{"left":0.3620346,"top":0.8415802,"width":0.019115692,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"@claude","depth":18,"bounds":{"left":0.3620346,"top":0.8415802,"width":0.019115692,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add or remove reactions","depth":15,"bounds":{"left":0.3620346,"top":0.86951315,"width":0.008643617,"height":0.0207502},"help_text":"","role_description":"summary","subrole":"AXSummary","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"react with eyes","depth":14,"bounds":{"left":0.37200797,"top":0.86951315,"width":0.013796543,"height":0.0207502},"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"👀","depth":16,"bounds":{"left":0.37416887,"top":0.8747007,"width":0.004155585,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1","depth":16,"bounds":{"left":0.38098404,"top":0.8747007,"width":0.0018284575,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@claude","depth":13,"bounds":{"left":0.33776596,"top":0.9293695,"width":0.013297873,"height":0.031923383},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Show options","depth":14,"bounds":{"left":0.61136967,"top":0.9301676,"width":0.007978723,"height":0.02952913},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"claude bot commented 4 days ago •","depth":13,"bounds":{"left":0.3620346,"top":0.9301676,"width":0.24135639,"height":0.029928172},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"claude","depth":15,"bounds":{"left":0.3620346,"top":0.93814844,"width":0.014960106,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"bounds":{"left":0.3620346,"top":0.93814844,"width":0.014960106,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"bot","depth":16,"bounds":{"left":0.3804854,"top":0.9397446,"width":0.006482713,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"commented","depth":14,"bounds":{"left":0.390625,"top":0.93814844,"width":0.02543218,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"4 days ago","depth":14,"bounds":{"left":0.41738698,"top":0.9365523,"width":0.023603724,"height":0.016759777},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"4 days ago","depth":16,"bounds":{"left":0.41738698,"top":0.93814844,"width":0.023603724,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":16,"bounds":{"left":0.44232047,"top":0.93814844,"width":0.0021609042,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"edited","depth":16,"bounds":{"left":0.44581118,"top":0.9365523,"width":0.020113032,"height":0.016759777},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"edited","depth":18,"bounds":{"left":0.44581118,"top":0.93814844,"width":0.014793883,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude finished","depth":18,"bounds":{"left":0.3620346,"top":0.97525936,"width":0.036070477,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@yalokin-jiminny","depth":18,"bounds":{"left":0.39810506,"top":0.97525936,"width":0.038397606,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"@yalokin-jiminny","depth":19,"bounds":{"left":0.39810506,"top":0.97525936,"width":0.038397606,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'s task in 1m 59s","depth":18,"bounds":{"left":0.43650267,"top":0.97525936,"width":0.03756649,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"——","depth":17,"bounds":{"left":0.47406915,"top":0.97525936,"width":0.010638298,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"View job","depth":17,"bounds":{"left":0.48470744,"top":0.97525936,"width":0.018284574,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"View job","depth":18,"bounds":{"left":0.48470744,"top":0.97525936,"width":0.018284574,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Code Review","depth":16,"bounds":{"left":0.3620346,"top":1.0,"width":0.25731382,"height":-0.0315243},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Code Review","depth":17,"bounds":{"left":0.3620346,"top":1.0,"width":0.03523936,"height":-0.031923413},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Overall the approach is clean — extracting the shared logic into","depth":17,"bounds":{"left":0.3620346,"top":1.0,"width":0.13696809,"height":-0.06304872},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SyncObjectsCommandTrait","depth":18,"bounds":{"left":0.5006649,"top":1.0,"width":0.0546875,"height":-0.065043926},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"is a good call, and the scheduling design (offset cron at","depth":17,"bounds":{"left":0.3620346,"top":1.0,"width":0.24335106,"height":-0.06304872},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":01","depth":18,"bounds":{"left":0.43567154,"top":1.0,"width":0.0071476065,"height":-0.08180368},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to avoid spikes) makes sense. I found two bugs and a few minor points.","depth":17,"bounds":{"left":0.44448137,"top":1.0,"width":0.15425532,"height":-0.07980847},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Bugs","depth":16,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Bugs","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1. Null dereference on","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$crmConfig","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"—","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app/Jobs/Crm/SyncHubspotObjects.php:49-51","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crmConfig","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"=","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"team","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crm","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"if","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crmConfig","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"provider","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"!== Configuration::","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"PROVIDER_HUBSPOT","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":") {","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":17,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"$team->crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"can be null if the team has no CRM configuration record. Accessing","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->provider","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"on null will throw a fatal error. The existing","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SyncObjects","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"job handles this by using","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"??","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$crmConfig->provider ?? 'unknown'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"). The new job needs a null guard here:","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crmConfig","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"=","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"team","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crm","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"if","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crmConfig","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"===","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"null","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"||","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crmConfig","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"provider","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"!== Configuration::","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"PROVIDER_HUBSPOT","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":") {","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"logger","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"warning","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"[SyncHubspotObjects] Team has no HubSpot CRM config","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", [","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"team","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"=>","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teamId","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"]);","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"return","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";\n}","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":17,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Fix this →","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix this →","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2.","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$lastSyncedAt","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"is nullable but","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"syncHubspotCrmObjects","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"requires","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Carbon","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"—","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app/Jobs/Crm/SyncHubspotObjects.php:85,88,116","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"lastSyncedAt","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"=","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crmConfig","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"last_synced_at","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"// can be null on first run","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"syncHubspotCrmObjects","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crmService","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"lastSyncedAt","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":");","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"// ...","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"private","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"function","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"syncHubspotCrmObjects(","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HubspotInterface","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crmService","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Carbon","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"lastSyncedAt","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"):","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"void","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":17,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"With","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"declare(strict_types=1)","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", passing","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"null","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to a","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Carbon","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"-typed parameter throws a","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"TypeError","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":". A team that has never synced before will crash on the first run. The parameter should be","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"?Carbon","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(and","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"syncOpportunities","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"should handle null), or provide a fallback like","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Carbon::createFromTimestamp(0)","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix this →","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix this →","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Minor Issues","depth":16,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Minor Issues","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3. Double call to","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"getLogPrefix()","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"—","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php:52","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"prefix","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"=","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"getLogPrefix","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"() ?","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"getLogPrefix","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"() .","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"''","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":";","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":17,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"getLogPrefix()","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"is called twice. Trivial but unnecessary — capture the result in a variable first.","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4.","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SyncObjects","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"command doesn't guard HubSpot when","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{team}","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"argument is given —","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app/Console/Commands/Crm/SyncObjects.php:40-41","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"if","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teamId","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":") {","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teams","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"[] = Team::","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"idOrUuId","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teamId","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":");","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"// no provider check","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":17,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Running","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crm:sync-objects <hubspot-team-id>","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"dispatches a","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SyncObjectsJob","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"for a HubSpot team, which now silently warns and returns. From an operator perspective this is confusing — the command appears to accept the team but does nothing. Worth adding a provider check and a console error message pointing to","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crm:sync-hubspot-objects","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Design Notes","depth":16,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Design Notes","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Scheduler placement","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crm:sync-hubspot-objects","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"is placed inside","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleEveryFiveMinutes()","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"but uses a manual cron","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'1,6,11,16,21,26,31,36,41,46,51,56 * * * *'","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"instead of","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->everyFiveMinutes()","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":". The 1-minute offset is intentional (good thinking to stagger from the other jobs), but it's slightly inconsistent with the method's name. A comment explaining the offset would help future readers.","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SQS visibility timeout","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SyncHubspotObjects","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"uses 1 hour (","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"60 * 60","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":") vs","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SyncObjects","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'s 6 hours (","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"60 * 60 * 6","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"). Appropriate given the more frequent, presumably lighter runs.","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Stagger delay","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": HubSpot uses 1s between teams vs 2s for general sync. Fine for 5-min runs, though worth monitoring if the number of HubSpot teams grows large enough that the last job barely fits within the 5-minute window.","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add or remove reactions","depth":15,"help_text":"","role_description":"summary","subrole":"AXSummary","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"@yalokin-jiminny","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"yalokin-jiminny","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"yalokin-jiminny","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"force-pushed","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"force-pushed","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"the","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-20553-debug-crm-sync-delays","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"branch from","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"f6c0ec3","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f6c0ec3","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"5928f60","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"5928f60","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Compare","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Compare","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"yesterday","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"yesterday","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@yalokin-jiminny","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"yalokin-jiminny","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"yalokin-jiminny","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"force-pushed","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"force-pushed","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"the","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-20701-reschedule-HubSpot-processing","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"branch from","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"3d7234a","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"3d7234a","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1d10796","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1d10796","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Compare","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Compare","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"yesterday","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"yesterday","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Base automatically changed from","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-20553-debug-crm-sync-delays","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"master","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"19 hours ago","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
9114085967498441256
|
8380486261257862477
|
click
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
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
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
Review requested
Review requested
yalokin-jiminny
yalokin-jiminny
requested your review on this pull request.
Add your review
Add your review
JY-20701 | Reschedule HubSpot Sync Objects #11989 Edit title
JY-20701 | Reschedule HubSpot Sync Objects
#
11989
Edit title
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
)
Conversation
Conversation
@yalokin-jiminny
Show options
yalokin-jiminny commented 4 days ago •
yalokin-jiminny
yalokin-jiminny
commented
4 days ago
4 days ago
•
edited
edited
JIRA: JY-20701
JIRA:
JY-20701
JY-20701
Casus:
Casus:
We want more fluent curve of the jobs distribution (no spikes) in
crm-sync
queue
The more frequent HubSpot processing will help to have less auto-scaling / down-scaling events, thus reducing the jobs wait times
Changes:
Changes:
Remove HubSpot from SyncObjects
Create separate HubSpotSyncObjects that runs each 5 min instead of each 30
Extract common code
Improve processing Webhooks jobs distribution
Optimize ImportOpportunityBatch:
cache OpportunitySyncableFields, OwnerProfiles, RecordType
remove findContactByConfigurationAndId - Contact ID already exist
add timings log
Add or remove reactions
@yalokin-jiminny
Show options
Author
yalokin-jiminny commented 4 days ago
yalokin-jiminny
yalokin-jiminny
commented
4 days ago
4 days ago
@claude
@claude
Add or remove reactions
react with eyes
👀
1
@claude
Show options
claude bot commented 4 days ago •
claude
claude
bot
commented
4 days ago
4 days ago
•
edited
edited
Claude finished
@yalokin-jiminny
@yalokin-jiminny
's task in 1m 59s
——
View job
View job
Code Review
Code Review
Overall the approach is clean — extracting the shared logic into
SyncObjectsCommandTrait
is a good call, and the scheduling design (offset cron at
:01
to avoid spikes) makes sense. I found two bugs and a few minor points.
Bugs
Bugs
1. Null dereference on
$crmConfig
—
app/Jobs/Crm/SyncHubspotObjects.php:49-51
$
crmConfig
=
$
team
->
crm
;
if
(
$
crmConfig
->
provider
!== Configuration::
PROVIDER_HUBSPOT
) {
Copy
$team->crm
can be null if the team has no CRM configuration record. Accessing
->provider
on null will throw a fatal error. The existing
SyncObjects
job handles this by using
??
(
$crmConfig->provider ?? 'unknown'
). The new job needs a null guard here:
$
crmConfig
=
$
team
->
crm
;
if
(
$
crmConfig
===
null
||
$
crmConfig
->
provider
!== Configuration::
PROVIDER_HUBSPOT
) {
$
logger
->
warning
(
'
[SyncHubspotObjects] Team has no HubSpot CRM config
'
, [
'
team
'
=>
$
this
->
teamId
]);
return
;
}
Copy
Fix this →
Fix this →
2.
$lastSyncedAt
is nullable but
syncHubspotCrmObjects
requires
Carbon
—
app/Jobs/Crm/SyncHubspotObjects.php:85,88,116
$
lastSyncedAt
=
$
crmConfig
->
last_synced_at
;
// can be null on first run
.
.
.
$
this
->
syncHubspotCrmObjects
(
$
crmService
,
$
lastSyncedAt
);
// ...
private
function
syncHubspotCrmObjects(
HubspotInterface
$
crmService
,
Carbon
$
lastSyncedAt
):
void
Copy
With
declare(strict_types=1)
, passing
null
to a
Carbon
-typed parameter throws a
TypeError
. A team that has never synced before will crash on the first run. The parameter should be
?Carbon
(and
syncOpportunities
should handle null), or provide a fallback like
Carbon::createFromTimestamp(0)
.
Fix this →
Fix this →
Minor Issues
Minor Issues
3. Double call to
getLogPrefix()
—
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php:52
$
prefix
=
$
this
->
getLogPrefix
() ?
$
this
->
getLogPrefix
() .
'
'
:
''
;
Copy
getLogPrefix()
is called twice. Trivial but unnecessary — capture the result in a variable first.
4.
SyncObjects
command doesn't guard HubSpot when
{team}
argument is given —
app/Console/Commands/Crm/SyncObjects.php:40-41
if
(
$
teamId
) {
$
teams
[] = Team::
idOrUuId
(
$
teamId
);
// no provider check
Copy
Running
crm:sync-objects <hubspot-team-id>
dispatches a
SyncObjectsJob
for a HubSpot team, which now silently warns and returns. From an operator perspective this is confusing — the command appears to accept the team but does nothing. Worth adding a provider check and a console error message pointing to
crm:sync-hubspot-objects
.
Design Notes
Design Notes
Scheduler placement
:
crm:sync-hubspot-objects
is placed inside
scheduleEveryFiveMinutes()
but uses a manual cron
'1,6,11,16,21,26,31,36,41,46,51,56 * * * *'
instead of
->everyFiveMinutes()
. The 1-minute offset is intentional (good thinking to stagger from the other jobs), but it's slightly inconsistent with the method's name. A comment explaining the offset would help future readers.
SQS visibility timeout
:
SyncHubspotObjects
uses 1 hour (
60 * 60
) vs
SyncObjects
's 6 hours (
60 * 60 * 6
). Appropriate given the more frequent, presumably lighter runs.
Stagger delay
: HubSpot uses 1s between teams vs 2s for general sync. Fine for 5-min runs, though worth monitoring if the number of HubSpot teams grows large enough that the last job barely fits within the 5-minute window.
Add or remove reactions
@yalokin-jiminny
yalokin-jiminny
yalokin-jiminny
force-pushed
force-pushed
the
JY-20553-debug-crm-sync-delays
branch from
f6c0ec3
f6c0ec3
to
5928f60
5928f60
Compare
Compare
yesterday
yesterday
@yalokin-jiminny
yalokin-jiminny
yalokin-jiminny
force-pushed
force-pushed
the
JY-20701-reschedule-HubSpot-processing
branch from
3d7234a
3d7234a
to
1d10796
1d10796
Compare
Compare
yesterday
yesterday
Base automatically changed from
JY-20553-debug-crm-sync-delays
to
master
19 hours ago...
|
NULL
|
|
40981
|
873
|
21
|
2026-04-17T05:58:07.202477+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776405487202_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
SackFileEditViewJiminny ...DMsUnreads@ Threads6 Hu SackFileEditViewJiminny ...DMsUnreads@ Threads6 Huddles→ Drafts & sent8 DirectoriesAchivityEh External connectionsFiles# Starred8 jiminny-x-integrati...platform-inner-teamMore(# Channels# ai-chapter# alerts# backendconflicion-clnid# curiosity lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launchesac random# releases# sofia-office# support# thank-yous# the people of iimi....0 Direct messages(3 Aneliya Angelova, ...P. Galya Dimitrova0. Nikolay Nikolovao Stoyan TanevGo Vasil Vasilev8. Nikolay IvanovP. Aneliya AngelovaP VesStelivan Georgiev#: Apps• ToastS Jira CloudHistoryWindowHelpQ Search Jiminny IncUnreads © All conversations ~ Sorted by recommended order ~• ToastYesterdayReview Toast APP 5:52 PMPR review requested by @Nikolay Nikolov#11976 JY-20553 | Improve crm-sync delays by @Nikolay Nikolov| 20 commits • 14 files changedJIRA: JY-20553Deployment notes:• NoneChanges:Show morejiminny/app Added by Toast for GitHub5:53PR review requested by @Vasil Vasilev#11980 Jy 20541 remove crm contract method by @Vasil Vasilev| 38 commits • 25 files changedJIRA: JY-20541 + Generic sanitationDescription:A cleanup of some CRM functionality that has been pushed as a common basecontract for all CRMs to implement, but is necessary for SF only (usually).Claude Sonnet 4.6 helped a lot.Show moreiminny/app| Added by Toast for GitHubPR review requested by @Vasil Vasilev#11980 Jy 20541 remove crm contract method by @Vasil Vasilev| 38 commits • 25 files changedJIRA:JY-40541 + Generic sanitationDescription:A cleanup of some CRM functionality that has been pushed as a common basecontract for all CRMs to implement, but is necessary for SF only (usually).Cauce sonner 4 o nelded alotShow moreiminnvlaopAdded by Toast for GithusReview OaST APP 7-51PMIPR review requested by @Steliyan Georgiev#482 JY-19967: Update FastAPI init by @Steliyan Georgiev1 commit• 1 file changedIminnv/orophet Added oy loast for Gtnurapproved by nikolaybiaivanovAdded by Toast for GitHubMark All Messages Read4 messages Press Esc toMark as ReaduelyExport_fts USING fts5 (Data typeColumnswered by Flask and Peewee. © 2026 Charles LeiferAllow nullUniqueMOA 10%98 Fi17Apr 8:58:06QueryPrimarv keySQLActionsread-onlyread-onlyread-onlyread-onlyread-onlyDrop?...
|
NULL
|
9113616281269632485
|
NULL
|
visual_change
|
ocr
|
NULL
|
SackFileEditViewJiminny ...DMsUnreads@ Threads6 Hu SackFileEditViewJiminny ...DMsUnreads@ Threads6 Huddles→ Drafts & sent8 DirectoriesAchivityEh External connectionsFiles# Starred8 jiminny-x-integrati...platform-inner-teamMore(# Channels# ai-chapter# alerts# backendconflicion-clnid# curiosity lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launchesac random# releases# sofia-office# support# thank-yous# the people of iimi....0 Direct messages(3 Aneliya Angelova, ...P. Galya Dimitrova0. Nikolay Nikolovao Stoyan TanevGo Vasil Vasilev8. Nikolay IvanovP. Aneliya AngelovaP VesStelivan Georgiev#: Apps• ToastS Jira CloudHistoryWindowHelpQ Search Jiminny IncUnreads © All conversations ~ Sorted by recommended order ~• ToastYesterdayReview Toast APP 5:52 PMPR review requested by @Nikolay Nikolov#11976 JY-20553 | Improve crm-sync delays by @Nikolay Nikolov| 20 commits • 14 files changedJIRA: JY-20553Deployment notes:• NoneChanges:Show morejiminny/app Added by Toast for GitHub5:53PR review requested by @Vasil Vasilev#11980 Jy 20541 remove crm contract method by @Vasil Vasilev| 38 commits • 25 files changedJIRA: JY-20541 + Generic sanitationDescription:A cleanup of some CRM functionality that has been pushed as a common basecontract for all CRMs to implement, but is necessary for SF only (usually).Claude Sonnet 4.6 helped a lot.Show moreiminny/app| Added by Toast for GitHubPR review requested by @Vasil Vasilev#11980 Jy 20541 remove crm contract method by @Vasil Vasilev| 38 commits • 25 files changedJIRA:JY-40541 + Generic sanitationDescription:A cleanup of some CRM functionality that has been pushed as a common basecontract for all CRMs to implement, but is necessary for SF only (usually).Cauce sonner 4 o nelded alotShow moreiminnvlaopAdded by Toast for GithusReview OaST APP 7-51PMIPR review requested by @Steliyan Georgiev#482 JY-19967: Update FastAPI init by @Steliyan Georgiev1 commit• 1 file changedIminnv/orophet Added oy loast for Gtnurapproved by nikolaybiaivanovAdded by Toast for GitHubMark All Messages Read4 messages Press Esc toMark as ReaduelyExport_fts USING fts5 (Data typeColumnswered by Flask and Peewee. © 2026 Charles LeiferAllow nullUniqueMOA 10%98 Fi17Apr 8:58:06QueryPrimarv keySQLActionsread-onlyread-onlyread-onlyread-onlyread-onlyDrop?...
|
40980
|
|
78346
|
1989
|
20
|
2026-04-24T11:39:32.831065+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777030772831_m1.jpg...
|
Firefox
|
Problem loading page — Work
|
True
|
app.dev.jiminny.com/auth/callback/salesforce?code= app.dev.jiminny.com/auth/callback/salesforce?code=aPrxWxKRQ4rMDGCBL1ufOKBxLcDoqr3TDtS2AKZh7pVC9eqSSkuctckC7Qr3s.4zXqWxht9hVwWu2FuhiEtSuCb7EA1NNcg%3D&state=eyJyYW5kb20iOiJmZGZmMGU1MTIzOTNmYWM5ZTM0M2JmYjg5OGU4YjM5MyIsInRpbWUiOjE3NzcwMjYzMjUuMjY5MTE3LCJyZWRpcmVjdCI6IlwvbG9naW4ifQ--...
|
monitor_1
|
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-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
New Tab
New Tab
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
JY-20738 add debug logs on AJ report UP tracking by LakyLak · Pull Request #12013 · jiminny/app
JY-20738 add debug logs on AJ report UP tracking by LakyLak · Pull Request #12013 · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
Jiminny
Jiminny
Userpilot | Nudge-created
Userpilot | Nudge-created
Pipelines - jiminny/app
Pipelines - jiminny/app
Inbox (1,609) - [EMAIL] - Jiminny Mail
Inbox (1,609) - [EMAIL] - Jiminny Mail
Problem loading page
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
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
app/app/Http/Controllers/FrontendControllerTrait.php at fb01b96ae7a4635bc86648b82c2435789cddf693 · jiminny/app
app/app/Http/Controllers/FrontendControllerTrait.php at fb01b96ae7a4635bc86648b82c2435789cddf693 · jiminny/app
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Looks like there’s a problem with this site
Looks like there’s a problem with this site
Firefox can’t connect to the server at
app.dev.jiminny.com
What can you do about it?
What can you do about it?
Try connecting on a different device. Check your modem or router. Disconnect and reconnect to Wi-Fi.
Try Again
Try Again...
|
[{"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":"Project Phoenix – Figma","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Project Phoenix – Figma","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · 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":"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":"JY-20738 add debug logs on AJ report UP tracking by LakyLak · Pull Request #12013 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20738 add debug logs on AJ report UP tracking by LakyLak · Pull Request #12013 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app","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":"Userpilot | Nudge-created","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Userpilot | Nudge-created","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"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":"Inbox (1,609) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Inbox (1,609) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Problem loading page","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Problem loading page","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":"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":"AXStaticText","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":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"app/app/Http/Controllers/FrontendControllerTrait.php at fb01b96ae7a4635bc86648b82c2435789cddf693 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app/app/Http/Controllers/FrontendControllerTrait.php at fb01b96ae7a4635bc86648b82c2435789cddf693 · jiminny/app","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,"bounds":{"left":0.0,"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.0,"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.0,"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.0,"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.016666668,"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":"Looks like there’s a problem with this site","depth":8,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Looks like there’s a problem with this site","depth":9,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Firefox can’t connect to the server at","depth":9,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app.dev.jiminny.com","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"What can you do about it?","depth":8,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"What can you do about it?","depth":9,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Try connecting on a different device. Check your modem or router. Disconnect and reconnect to Wi-Fi.","depth":9,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Try Again","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Try Again","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
9113480591531871356
|
-3594023264370826546
|
click
|
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-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
New Tab
New Tab
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
JY-20738 add debug logs on AJ report UP tracking by LakyLak · Pull Request #12013 · jiminny/app
JY-20738 add debug logs on AJ report UP tracking by LakyLak · Pull Request #12013 · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
Jiminny
Jiminny
Userpilot | Nudge-created
Userpilot | Nudge-created
Pipelines - jiminny/app
Pipelines - jiminny/app
Inbox (1,609) - [EMAIL] - Jiminny Mail
Inbox (1,609) - [EMAIL] - Jiminny Mail
Problem loading page
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
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
app/app/Http/Controllers/FrontendControllerTrait.php at fb01b96ae7a4635bc86648b82c2435789cddf693 · jiminny/app
app/app/Http/Controllers/FrontendControllerTrait.php at fb01b96ae7a4635bc86648b82c2435789cddf693 · jiminny/app
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Looks like there’s a problem with this site
Looks like there’s a problem with this site
Firefox can’t connect to the server at
app.dev.jiminny.com
What can you do about it?
What can you do about it?
Try connecting on a different device. Check your modem or router. Disconnect and reconnect to Wi-Fi.
Try Again
Try Again...
|
NULL
|
|
78347
|
1990
|
19
|
2026-04-24T11:39:32.831047+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777030772831_m2.jpg...
|
Firefox
|
Problem loading page — Work
|
True
|
app.dev.jiminny.com/auth/callback/salesforce?code= app.dev.jiminny.com/auth/callback/salesforce?code=aPrxWxKRQ4rMDGCBL1ufOKBxLcDoqr3TDtS2AKZh7pVC9eqSSkuctckC7Qr3s.4zXqWxht9hVwWu2FuhiEtSuCb7EA1NNcg%3D&state=eyJyYW5kb20iOiJmZGZmMGU1MTIzOTNmYWM5ZTM0M2JmYjg5OGU4YjM5MyIsInRpbWUiOjE3NzcwMjYzMjUuMjY5MTE3LCJyZWRpcmVjdCI6IlwvbG9naW4ifQ--...
|
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-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
New Tab
New Tab
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
JY-20738 add debug logs on AJ report UP tracking by LakyLak · Pull Request #12013 · jiminny/app
JY-20738 add debug logs on AJ report UP tracking by LakyLak · Pull Request #12013 · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
Jiminny
Jiminny
Userpilot | Nudge-created
Userpilot | Nudge-created
Pipelines - jiminny/app
Pipelines - jiminny/app
Inbox (1,609) - [EMAIL] - Jiminny Mail
Inbox (1,609) - [EMAIL] - Jiminny Mail
Problem loading page
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
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
app/app/Http/Controllers/FrontendControllerTrait.php at fb01b96ae7a4635bc86648b82c2435789cddf693 · jiminny/app
app/app/Http/Controllers/FrontendControllerTrait.php at fb01b96ae7a4635bc86648b82c2435789cddf693 · jiminny/app
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Looks like there’s a problem with this site
Looks like there’s a problem with this site
Firefox can’t connect to the server at
app.dev.jiminny.com
What can you do about it?
What can you do about it?
Try connecting on a different device. Check your modem or router. Disconnect and reconnect to Wi-Fi.
Try Again
Try Again...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.23287898,"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.23105054,"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.2443484,"top":0.10614525,"width":0.041888297,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app","depth":4,"bounds":{"left":0.23105054,"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-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app","depth":5,"bounds":{"left":0.2443484,"top":0.13886672,"width":0.1619016,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"New Tab","depth":4,"bounds":{"left":0.23105054,"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":"New Tab","depth":5,"bounds":{"left":0.2443484,"top":0.17158818,"width":0.014960106,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app","depth":4,"bounds":{"left":0.23105054,"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":"AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app","depth":5,"bounds":{"left":0.2443484,"top":0.20430966,"width":0.14128989,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20738 add debug logs on AJ report UP tracking by LakyLak · Pull Request #12013 · jiminny/app","depth":4,"bounds":{"left":0.23105054,"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":"JY-20738 add debug logs on AJ report UP tracking by LakyLak · Pull Request #12013 · jiminny/app","depth":5,"bounds":{"left":0.2443484,"top":0.23703113,"width":0.17087767,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app","depth":4,"bounds":{"left":0.23105054,"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":"JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app","depth":5,"bounds":{"left":0.2443484,"top":0.2697526,"width":0.16356383,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.23105054,"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","depth":5,"bounds":{"left":0.2443484,"top":0.30247405,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Userpilot | Nudge-created","depth":4,"bounds":{"left":0.23105054,"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":"Userpilot | Nudge-created","depth":5,"bounds":{"left":0.2443484,"top":0.33519554,"width":0.04537899,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.23105054,"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":"Pipelines - jiminny/app","depth":5,"bounds":{"left":0.2443484,"top":0.367917,"width":0.039228722,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Inbox (1,609) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.23105054,"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":"Inbox (1,609) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.2443484,"top":0.40063846,"width":0.09773936,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Problem loading page","depth":4,"bounds":{"left":0.23105054,"top":0.44692737,"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":"Problem loading page","depth":5,"bounds":{"left":0.2443484,"top":0.45810056,"width":0.037898935,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.29837102,"top":0.45411015,"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":"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,"bounds":{"left":0.23105054,"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":"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":5,"bounds":{"left":0.2443484,"top":0.4660814,"width":0.45462102,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"app/app/Http/Controllers/FrontendControllerTrait.php at fb01b96ae7a4635bc86648b82c2435789cddf693 · jiminny/app","depth":4,"bounds":{"left":0.23105054,"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":"app/app/Http/Controllers/FrontendControllerTrait.php at fb01b96ae7a4635bc86648b82c2435789cddf693 · jiminny/app","depth":5,"bounds":{"left":0.2443484,"top":0.49880287,"width":0.20910904,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.23387633,"top":0.5219473,"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.23387633,"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.24484707,"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.25598404,"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.26712102,"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.27825797,"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":"AXHeading","text":"Looks like there’s a problem with this site","depth":8,"bounds":{"left":0.5915891,"top":0.18435754,"width":0.18334441,"height":0.023144454},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Looks like there’s a problem with this site","depth":9,"bounds":{"left":0.5915891,"top":0.18435754,"width":0.14644282,"height":0.023144454},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Firefox can’t connect to the server at","depth":9,"bounds":{"left":0.5915891,"top":0.22027135,"width":0.085605055,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app.dev.jiminny.com","depth":10,"bounds":{"left":0.6771942,"top":0.22027135,"width":0.050033245,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"What can you do about it?","depth":8,"bounds":{"left":0.5915891,"top":0.25897846,"width":0.18334441,"height":0.016360734},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"What can you do about it?","depth":9,"bounds":{"left":0.5915891,"top":0.25897846,"width":0.06931516,"height":0.016360734},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Try connecting on a different device. Check your modem or router. Disconnect and reconnect to Wi-Fi.","depth":9,"bounds":{"left":0.5915891,"top":0.28132483,"width":0.17902261,"height":0.02952913},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Try Again","depth":9,"bounds":{"left":0.74168885,"top":0.32282522,"width":0.03324468,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Try Again","depth":11,"bounds":{"left":0.74700797,"top":0.32841182,"width":0.022606382,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
9113480591531871356
|
-3594023264370826546
|
click
|
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-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
New Tab
New Tab
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
JY-20738 add debug logs on AJ report UP tracking by LakyLak · Pull Request #12013 · jiminny/app
JY-20738 add debug logs on AJ report UP tracking by LakyLak · Pull Request #12013 · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
Jiminny
Jiminny
Userpilot | Nudge-created
Userpilot | Nudge-created
Pipelines - jiminny/app
Pipelines - jiminny/app
Inbox (1,609) - [EMAIL] - Jiminny Mail
Inbox (1,609) - [EMAIL] - Jiminny Mail
Problem loading page
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
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
app/app/Http/Controllers/FrontendControllerTrait.php at fb01b96ae7a4635bc86648b82c2435789cddf693 · jiminny/app
app/app/Http/Controllers/FrontendControllerTrait.php at fb01b96ae7a4635bc86648b82c2435789cddf693 · jiminny/app
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Looks like there’s a problem with this site
Looks like there’s a problem with this site
Firefox can’t connect to the server at
app.dev.jiminny.com
What can you do about it?
What can you do about it?
Try connecting on a different device. Check your modem or router. Disconnect and reconnect to Wi-Fi.
Try Again
Try Again...
|
NULL
|
|
6847
|
NULL
|
0
|
2026-04-13T14:10:52.877043+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-13/1776 /Users/lukas/.screenpipe/data/data/2026-04-13/1776089452877_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
"n": 1,
"text_source": "n": 1,
"text_source": "ocr"
},
{
"app_name": "Preview",
"n": 1,
"text_source": "hybrid"
},
{
"app_name": "QuickTime Player",
"n": 1,
"text_source": "accessibility"
},
{
"app_name": "System Settings",
"n": 1,
"text_source": "accessibility"
},
{
"app_name": "iTerm2",
"n": 1,
"text_source": "hybrid"
},
{
"app_name": "iTerm2",
"n": 1,
"text_source": "ocr"
}
]
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -s -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 -json ~/.screenpipe/db.sqlite SELECT app_name, COUNT(*) as n FROM frames WHERE app_name != '' GROUP BY app_name ORDER BY n DESC LIMIT 20
zsh: no matches found: COUNT(*)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 -column -header ~/.screenpipe/db.sqlite SELECT timestamp, app_name, window_name FROM frames ORDER BY timestamp DESC LIMIT 10
Error: in prepare, incomplete input
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 -json ~/.screenpipe/db.sqlite "SELECT app_name, COUNT(*) as n FROM frames WHERE app_name != '' GROUP BY app_name ORDER BY n DESC LIMIT 20;"
[{"app_name":"Boosteroid","n":1301},
{"app_name":"iTerm2","n":581},
{"app_name":"Firefox","n":338},
{"app_name":"Claude","n":173},
{"app_name":"Code","n":35},
{"app_name":"Dia","n":31},
{"app_name":"Alfred","n":24},
{"app_name":"Safari","n":20},
{"app_name":"Finder","n":19},
{"app_name":"QuickTime Player","n":16},
{"app_name":"UserNotificationCenter","n":4},
{"app_name":"Activity Monitor","n":4},
{"app_name":"NetAuthAgent","n":3},
{"app_name":"Control Centre","n":3},
{"app_name":"Slack","n":2},
{"app_name":"Raycast","n":2},
{"app_name":"System Settings","n":1},
{"app_name":"Preview","n":1}]
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 -column -header ~/.screenpipe/db.sqlite "SELECT timestamp, app_name, window_name FROM frames ORDER BY timestamp DESC LIMIT 10;"
timestamp app_name window_name
-------------------------------- -------- -----------
2026-04-12T13:33:14.649009+00:00 iTerm2 -zsh
2026-04-12T13:33:13.963922+00:00
2026-04-12T13:33:13.415261+00:00
2026-04-12T13:33:12.521412+00:00 iTerm2 -zsh
2026-04-12T13:33:09.128387+00:00 iTerm2 -zsh
2026-04-12T13:33:06.137541+00:00 iTerm2 -zsh
2026-04-12T13:33:05.165254+00:00 Claude Claude
2026-04-12T13:32:50.425455+00:00
2026-04-12T13:32:49.108195+00:00 Claude Claude
2026-04-12T13:32:45.339017+00:00 iTerm2 -zsh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status
{
"status": "healthy",
"frame_status": "ok",
"audio_status": "disabled",
"last_frame": "2026-04-13T15:11:31+03:00",
"uptime": 19271.640087958,
"fps": 0.11841234008027791,
"frames": 2282
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
256M /Users/lukas/.screenpipe/data
418M /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
196K /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
32K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du -sh ~/.screenpipe
675M /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd ~/scr
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
✳ Unable to access screenpipe activity data (claude)
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"\"n\": 1,\n \"text_source\": \"ocr\"\n },\n {\n \"app_name\": \"Preview\",\n \"n\": 1,\n \"text_source\": \"hybrid\"\n },\n {\n \"app_name\": \"QuickTime Player\",\n \"n\": 1,\n \"text_source\": \"accessibility\"\n },\n {\n \"app_name\": \"System Settings\",\n \"n\": 1,\n \"text_source\": \"accessibility\"\n },\n {\n \"app_name\": \"iTerm2\",\n \"n\": 1,\n \"text_source\": \"hybrid\"\n },\n {\n \"app_name\": \"iTerm2\",\n \"n\": 1,\n \"text_source\": \"ocr\"\n }\n]\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -s -X POST http://localhost:3030/raw_sql \\\n -H \"Content-Type: application/json\" \\\n -d '{\"query\": \"SELECT COUNT(*) as ocr_rows FROM ocr_text LIMIT 1\"}' \\\n | python3 -m json.tool\n[\n {\n \"ocr_rows\": 2752\n }\n]\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 -json ~/.screenpipe/db.sqlite SELECT app_name, COUNT(*) as n FROM frames WHERE app_name != '' GROUP BY app_name ORDER BY n DESC LIMIT 20\nzsh: no matches found: COUNT(*)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 -column -header ~/.screenpipe/db.sqlite SELECT timestamp, app_name, window_name FROM frames ORDER BY timestamp DESC LIMIT 10\nError: in prepare, incomplete input\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 -json ~/.screenpipe/db.sqlite \"SELECT app_name, COUNT(*) as n FROM frames WHERE app_name != '' GROUP BY app_name ORDER BY n DESC LIMIT 20;\"\n[{\"app_name\":\"Boosteroid\",\"n\":1301},\n{\"app_name\":\"iTerm2\",\"n\":581},\n{\"app_name\":\"Firefox\",\"n\":338},\n{\"app_name\":\"Claude\",\"n\":173},\n{\"app_name\":\"Code\",\"n\":35},\n{\"app_name\":\"Dia\",\"n\":31},\n{\"app_name\":\"Alfred\",\"n\":24},\n{\"app_name\":\"Safari\",\"n\":20},\n{\"app_name\":\"Finder\",\"n\":19},\n{\"app_name\":\"QuickTime Player\",\"n\":16},\n{\"app_name\":\"UserNotificationCenter\",\"n\":4},\n{\"app_name\":\"Activity Monitor\",\"n\":4},\n{\"app_name\":\"NetAuthAgent\",\"n\":3},\n{\"app_name\":\"Control Centre\",\"n\":3},\n{\"app_name\":\"Slack\",\"n\":2},\n{\"app_name\":\"Raycast\",\"n\":2},\n{\"app_name\":\"System Settings\",\"n\":1},\n{\"app_name\":\"Preview\",\"n\":1}]\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 -column -header ~/.screenpipe/db.sqlite \"SELECT timestamp, app_name, window_name FROM frames ORDER BY timestamp DESC LIMIT 10;\"\ntimestamp app_name window_name\n-------------------------------- -------- -----------\n2026-04-12T13:33:14.649009+00:00 iTerm2 -zsh \n2026-04-12T13:33:13.963922+00:00 \n2026-04-12T13:33:13.415261+00:00 \n2026-04-12T13:33:12.521412+00:00 iTerm2 -zsh \n2026-04-12T13:33:09.128387+00:00 iTerm2 -zsh \n2026-04-12T13:33:06.137541+00:00 iTerm2 -zsh \n2026-04-12T13:33:05.165254+00:00 Claude Claude \n2026-04-12T13:32:50.425455+00:00 \n2026-04-12T13:32:49.108195+00:00 Claude Claude \n2026-04-12T13:32:45.339017+00:00 iTerm2 -zsh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status\n{\n \"status\": \"healthy\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"disabled\",\n \"last_frame\": \"2026-04-13T15:11:31+03:00\",\n \"uptime\": 19271.640087958,\n \"fps\": 0.11841234008027791,\n \"frames\": 2282\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du -sh ~/.screenpipe/*\n4.0K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/config.json\n256M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data\n418M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n196K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 24K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 32K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du -sh ~/.screenpipe \n675M\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd ~/scr","depth":4,"value":"\"n\": 1,\n \"text_source\": \"ocr\"\n },\n {\n \"app_name\": \"Preview\",\n \"n\": 1,\n \"text_source\": \"hybrid\"\n },\n {\n \"app_name\": \"QuickTime Player\",\n \"n\": 1,\n \"text_source\": \"accessibility\"\n },\n {\n \"app_name\": \"System Settings\",\n \"n\": 1,\n \"text_source\": \"accessibility\"\n },\n {\n \"app_name\": \"iTerm2\",\n \"n\": 1,\n \"text_source\": \"hybrid\"\n },\n {\n \"app_name\": \"iTerm2\",\n \"n\": 1,\n \"text_source\": \"ocr\"\n }\n]\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -s -X POST http://localhost:3030/raw_sql \\\n -H \"Content-Type: application/json\" \\\n -d '{\"query\": \"SELECT COUNT(*) as ocr_rows FROM ocr_text LIMIT 1\"}' \\\n | python3 -m json.tool\n[\n {\n \"ocr_rows\": 2752\n }\n]\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 -json ~/.screenpipe/db.sqlite SELECT app_name, COUNT(*) as n FROM frames WHERE app_name != '' GROUP BY app_name ORDER BY n DESC LIMIT 20\nzsh: no matches found: COUNT(*)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 -column -header ~/.screenpipe/db.sqlite SELECT timestamp, app_name, window_name FROM frames ORDER BY timestamp DESC LIMIT 10\nError: in prepare, incomplete input\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 -json ~/.screenpipe/db.sqlite \"SELECT app_name, COUNT(*) as n FROM frames WHERE app_name != '' GROUP BY app_name ORDER BY n DESC LIMIT 20;\"\n[{\"app_name\":\"Boosteroid\",\"n\":1301},\n{\"app_name\":\"iTerm2\",\"n\":581},\n{\"app_name\":\"Firefox\",\"n\":338},\n{\"app_name\":\"Claude\",\"n\":173},\n{\"app_name\":\"Code\",\"n\":35},\n{\"app_name\":\"Dia\",\"n\":31},\n{\"app_name\":\"Alfred\",\"n\":24},\n{\"app_name\":\"Safari\",\"n\":20},\n{\"app_name\":\"Finder\",\"n\":19},\n{\"app_name\":\"QuickTime Player\",\"n\":16},\n{\"app_name\":\"UserNotificationCenter\",\"n\":4},\n{\"app_name\":\"Activity Monitor\",\"n\":4},\n{\"app_name\":\"NetAuthAgent\",\"n\":3},\n{\"app_name\":\"Control Centre\",\"n\":3},\n{\"app_name\":\"Slack\",\"n\":2},\n{\"app_name\":\"Raycast\",\"n\":2},\n{\"app_name\":\"System Settings\",\"n\":1},\n{\"app_name\":\"Preview\",\"n\":1}]\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 -column -header ~/.screenpipe/db.sqlite \"SELECT timestamp, app_name, window_name FROM frames ORDER BY timestamp DESC LIMIT 10;\"\ntimestamp app_name window_name\n-------------------------------- -------- -----------\n2026-04-12T13:33:14.649009+00:00 iTerm2 -zsh \n2026-04-12T13:33:13.963922+00:00 \n2026-04-12T13:33:13.415261+00:00 \n2026-04-12T13:33:12.521412+00:00 iTerm2 -zsh \n2026-04-12T13:33:09.128387+00:00 iTerm2 -zsh \n2026-04-12T13:33:06.137541+00:00 iTerm2 -zsh \n2026-04-12T13:33:05.165254+00:00 Claude Claude \n2026-04-12T13:32:50.425455+00:00 \n2026-04-12T13:32:49.108195+00:00 Claude Claude \n2026-04-12T13:32:45.339017+00:00 iTerm2 -zsh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status\n{\n \"status\": \"healthy\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"disabled\",\n \"last_frame\": \"2026-04-13T15:11:31+03:00\",\n \"uptime\": 19271.640087958,\n \"fps\": 0.11841234008027791,\n \"frames\": 2282\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du -sh ~/.screenpipe/*\n4.0K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/config.json\n256M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data\n418M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n196K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 24K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 32K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du -sh ~/.screenpipe \n675M\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd ~/scr","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Unable to access screenpipe activity data (claude)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
9113314379968571571
|
-8818046511076083249
|
idle
|
accessibility
|
NULL
|
"n": 1,
"text_source": "n": 1,
"text_source": "ocr"
},
{
"app_name": "Preview",
"n": 1,
"text_source": "hybrid"
},
{
"app_name": "QuickTime Player",
"n": 1,
"text_source": "accessibility"
},
{
"app_name": "System Settings",
"n": 1,
"text_source": "accessibility"
},
{
"app_name": "iTerm2",
"n": 1,
"text_source": "hybrid"
},
{
"app_name": "iTerm2",
"n": 1,
"text_source": "ocr"
}
]
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -s -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 -json ~/.screenpipe/db.sqlite SELECT app_name, COUNT(*) as n FROM frames WHERE app_name != '' GROUP BY app_name ORDER BY n DESC LIMIT 20
zsh: no matches found: COUNT(*)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 -column -header ~/.screenpipe/db.sqlite SELECT timestamp, app_name, window_name FROM frames ORDER BY timestamp DESC LIMIT 10
Error: in prepare, incomplete input
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 -json ~/.screenpipe/db.sqlite "SELECT app_name, COUNT(*) as n FROM frames WHERE app_name != '' GROUP BY app_name ORDER BY n DESC LIMIT 20;"
[{"app_name":"Boosteroid","n":1301},
{"app_name":"iTerm2","n":581},
{"app_name":"Firefox","n":338},
{"app_name":"Claude","n":173},
{"app_name":"Code","n":35},
{"app_name":"Dia","n":31},
{"app_name":"Alfred","n":24},
{"app_name":"Safari","n":20},
{"app_name":"Finder","n":19},
{"app_name":"QuickTime Player","n":16},
{"app_name":"UserNotificationCenter","n":4},
{"app_name":"Activity Monitor","n":4},
{"app_name":"NetAuthAgent","n":3},
{"app_name":"Control Centre","n":3},
{"app_name":"Slack","n":2},
{"app_name":"Raycast","n":2},
{"app_name":"System Settings","n":1},
{"app_name":"Preview","n":1}]
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 -column -header ~/.screenpipe/db.sqlite "SELECT timestamp, app_name, window_name FROM frames ORDER BY timestamp DESC LIMIT 10;"
timestamp app_name window_name
-------------------------------- -------- -----------
2026-04-12T13:33:14.649009+00:00 iTerm2 -zsh
2026-04-12T13:33:13.963922+00:00
2026-04-12T13:33:13.415261+00:00
2026-04-12T13:33:12.521412+00:00 iTerm2 -zsh
2026-04-12T13:33:09.128387+00:00 iTerm2 -zsh
2026-04-12T13:33:06.137541+00:00 iTerm2 -zsh
2026-04-12T13:33:05.165254+00:00 Claude Claude
2026-04-12T13:32:50.425455+00:00
2026-04-12T13:32:49.108195+00:00 Claude Claude
2026-04-12T13:32:45.339017+00:00 iTerm2 -zsh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status
{
"status": "healthy",
"frame_status": "ok",
"audio_status": "disabled",
"last_frame": "2026-04-13T15:11:31+03:00",
"uptime": 19271.640087958,
"fps": 0.11841234008027791,
"frames": 2282
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
256M /Users/lukas/.screenpipe/data
418M /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
196K /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
32K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du -sh ~/.screenpipe
675M /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd ~/scr
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
✳ Unable to access screenpipe activity data (claude)
Close Tab
⌥⌘1
-zsh...
|
NULL
|
|
32858
|
666
|
7
|
2026-04-16T07:21:52.975150+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776324112975_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindow=app.dev.jiminny.com/loginHelpCc 4o ll O I SupportDaily• in4h39m O A 100%2 & Thu 16 Apr 10:21:527 Jiminny x Shiji - Reconnecting theZ For you - Confluence® Lukas Kovalik - Time Offu Product Growth Plattorm Userpilou Userpilotfix(security): composer dependenoa JiminnyNew Tab8 Jiminny+ New TabSign InGSign ig,with GoogleSign in with Office 365Login via SSOEU WorldwideDon't have account yet? Speak to your sales leader to get an invite.By using this service you agree to the Privacy Policy and Terms of Service.TERMS KNOWLEDGEBASE BLOGThe state does not match.app.dev.jiminny.com/auth/redirect/google?redirectUrl=...
|
NULL
|
9113068864219223853
|
NULL
|
visual_change
|
ocr
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindow=app.dev.jiminny.com/loginHelpCc 4o ll O I SupportDaily• in4h39m O A 100%2 & Thu 16 Apr 10:21:527 Jiminny x Shiji - Reconnecting theZ For you - Confluence® Lukas Kovalik - Time Offu Product Growth Plattorm Userpilou Userpilotfix(security): composer dependenoa JiminnyNew Tab8 Jiminny+ New TabSign InGSign ig,with GoogleSign in with Office 365Login via SSOEU WorldwideDon't have account yet? Speak to your sales leader to get an invite.By using this service you agree to the Privacy Policy and Terms of Service.TERMS KNOWLEDGEBASE BLOGThe state does not match.app.dev.jiminny.com/auth/redirect/google?redirectUrl=...
|
NULL
|
|
19373
|
411
|
35
|
2026-04-15T07:34:30.260967+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776238470260_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelp> 0.| [Platform] Planning.. 26 m leftmeet.google.com/tgb-pyuf-dri?authuser=lukas.kovalik%40jiminny.com3• Wed 15 Apr 10:34:299Galya Dimitrova (Presenting, annotating)SafariFileEditViewHistoryBookmarksDevelopWindowHelp8•Wed 15 Apr 10:34A Sentry33 HubSpot|# Platform Teamjiminny.atlassian.net/AWS AIPlanhatE3 Features Adop.88g For you• Recent|# Starred89 Apps& Plans0, SpacesStarredJiminny (New)|I CD Platform TeamIID Processing TeamII SE KanbanIID Capture TeamID Enterprise Stability I...4 DiscoveryProductRecent9 Service-Desk= More spaces |= FiltersIB DashboardsOperations& Customers|OpenAl#f Seit ServiceAWS USS.A Journey fro.…AWS EUThe Revenue.•] Emoiй|BICELUT4 LogRocket|P Postmark• Bamboo** Campus x• FirebaseAsk Siminny Vi..F* LLM EvaluatioSearch+ Create• UpgradeSpaces / Jiminny (New)Platform Team• Summary|& TimelineB Backlog|IID Active sprints& Reports4 Testing BoardE ListQ Search backlog |00800Version vEpic vType vLabel vQuick filters vA JY-9712|Change forever nudges to 1 year expirationCOST-EFFECTIVE AN….E JY-20564 Investigate and fix why exceed Fontawesome package limitsMAINTENANCEA JY-20372 AI Reports › Empty page design and promotionAJ REPORTS( JY-20157 Send email notification when the report is not generatedAJ REPORTSA JY-20508 Notify a user before the AJ Report expiresAJ REPORTSX JY-20278 AJ Panorama> Don't show internal errors to customersASK ANTIHINGONA• JY-20566 AI Review - Q1 - Summary/Action items/Key PointsGROWTH - MAINTAI© JY-19628 Evaluation of AJ PanoramaASK ANYTHING ON A.@ JY-20412 Change Auto-log delayPLATFORM STABILITY© JY-20352 Sync opportunities without a local owner (user_id is null)PLATFORM STABILITYA JY-20361 AJ Panorama for Call Scoring in ODAUTOMATED AI SCO..JY-19957 Upgrade BE libraries - AprMAINTENANCE© JY-19967 Upgrade Python and libraries - Apr CMAINTENANCE+ Createmeet.google.com is sharing your screen.Stop sharingAsk Rovo& FormsComponentsMore 9+BACKLOG4.5READY FOR DEV1=BACKLOGv6= 8BACKLOGBACKLOG v1= 8BACKLOG=*BACKLOGv3= 2BACKLOG= 8BACKLOG4= gBACKLOG= 8BACKLOG2.5BACKLOG1= &Steliyan GeorgievGalya Dimitrova4 othersStefka Stoyanova10:34 AM | [Platform] Planning | Session izSộ3Lukas Kovalik34:16...
|
NULL
|
9113009780292812883
|
NULL
|
visual_change
|
ocr
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelp> 0.| [Platform] Planning.. 26 m leftmeet.google.com/tgb-pyuf-dri?authuser=lukas.kovalik%40jiminny.com3• Wed 15 Apr 10:34:299Galya Dimitrova (Presenting, annotating)SafariFileEditViewHistoryBookmarksDevelopWindowHelp8•Wed 15 Apr 10:34A Sentry33 HubSpot|# Platform Teamjiminny.atlassian.net/AWS AIPlanhatE3 Features Adop.88g For you• Recent|# Starred89 Apps& Plans0, SpacesStarredJiminny (New)|I CD Platform TeamIID Processing TeamII SE KanbanIID Capture TeamID Enterprise Stability I...4 DiscoveryProductRecent9 Service-Desk= More spaces |= FiltersIB DashboardsOperations& Customers|OpenAl#f Seit ServiceAWS USS.A Journey fro.…AWS EUThe Revenue.•] Emoiй|BICELUT4 LogRocket|P Postmark• Bamboo** Campus x• FirebaseAsk Siminny Vi..F* LLM EvaluatioSearch+ Create• UpgradeSpaces / Jiminny (New)Platform Team• Summary|& TimelineB Backlog|IID Active sprints& Reports4 Testing BoardE ListQ Search backlog |00800Version vEpic vType vLabel vQuick filters vA JY-9712|Change forever nudges to 1 year expirationCOST-EFFECTIVE AN….E JY-20564 Investigate and fix why exceed Fontawesome package limitsMAINTENANCEA JY-20372 AI Reports › Empty page design and promotionAJ REPORTS( JY-20157 Send email notification when the report is not generatedAJ REPORTSA JY-20508 Notify a user before the AJ Report expiresAJ REPORTSX JY-20278 AJ Panorama> Don't show internal errors to customersASK ANTIHINGONA• JY-20566 AI Review - Q1 - Summary/Action items/Key PointsGROWTH - MAINTAI© JY-19628 Evaluation of AJ PanoramaASK ANYTHING ON A.@ JY-20412 Change Auto-log delayPLATFORM STABILITY© JY-20352 Sync opportunities without a local owner (user_id is null)PLATFORM STABILITYA JY-20361 AJ Panorama for Call Scoring in ODAUTOMATED AI SCO..JY-19957 Upgrade BE libraries - AprMAINTENANCE© JY-19967 Upgrade Python and libraries - Apr CMAINTENANCE+ Createmeet.google.com is sharing your screen.Stop sharingAsk Rovo& FormsComponentsMore 9+BACKLOG4.5READY FOR DEV1=BACKLOGv6= 8BACKLOGBACKLOG v1= 8BACKLOG=*BACKLOGv3= 2BACKLOG= 8BACKLOG4= gBACKLOG= 8BACKLOG2.5BACKLOG1= &Steliyan GeorgievGalya Dimitrova4 othersStefka Stoyanova10:34 AM | [Platform] Planning | Session izSộ3Lukas Kovalik34:16...
|
NULL
|
|
33809
|
682
|
40
|
2026-04-16T08:08:00.120608+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776326880120_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
SackFileEditViewJiminny ...DMs= Unreads@ Threads6 SackFileEditViewJiminny ...DMs= Unreads@ Threads6 HuddlesDrafts & sent8 DirectoriesAchivityEh External connectionsFiles# Starred8 jiminny-x-integrati...platform-inner-teamMoreahannes# ai-chapter# alerts# backendcantuire-nckers#: confusion-clinic# curiosity_lab# engineering# frontend# general& infosec_internal_all# infra-changes# infrastructure_dev# [bu-team-into#: liminny-bg# platform-team# platform-tickets# product launches# random# releases# sofa-officecuinnor# thank-vous# the_people_of_jimi...• Direct messages. Nikolay IvanovP. Aneliya Angelova€. Vasil Vasilev3 Aneliya Angelova, •Stoyan TanevP. Vese Galva DimitrovaStelivan Georgiev3 Adelina Petrova, Il.P.. Adelina PetrovaD. Nikolay NikolovHistoryWindowHelpQ Search Jiminny IncThreads& jiminny-x-integration-appryion and youLukas Kovalik 3 minutes agoHi guys, we have one issue we used to have before regarding the authorisation for Zoho CRM. When the clients go throughall steps and login it just returns him back to the login screen. I believe this is the reference to the previous conversationhttps://iiminnv.slack.com/archives/CO7RAC4U86M/o1748957897141919. Could vou pease have a look if there is anvchange?Lukas Kovalik1. There appears to be a recent change in the SDK ®Auth mechanism. When a newclient connects to the platform using Zoho, we no longer receive a Promise(https://console.integration.app/ref/sdk/classes/IntegrationAccessor.html#openNewConnection) upon successful login. This functionality was working just a fewweeks ago.(edited)Thread in A jiminny-x-integration-app | Jun 3rd, 2025 | View messageNeWMembrane Al Assistant APP 3 minutes agoHi Lukas, thanks for reporting this. I'll help investigate the Zoho CRM authorization issue.To help me debug this, could you please share:• The link to the affected Membrane workspace (from the browser URL bar, should look likehttps://console.getmembrane.com/w/<workspace-id>)• Which specific Zoho CRM connection is experiencing this issue (or a link to the connection if possible)Lukas Kovalik Just nowmiiosiiconsole cetmemorane com/w...icbaoe..cesdboaa..ub/connednonsaenamilen.ydlos/a24.051202da12/4010 external people are from MembraneReply-•( Also send to A fiminnv-x-integration-appCc 40 ll O f SupportDaily- in3h53m 0 A 100%C & Thu 16 Apr 11:07:59IntegrationZoho CRM|TenantDisconnectedDeleteShiji GroupYou're up to date• Aneliya Angelova, Nikolay Yankov, Steliyan GeorgievNiko av Yankov and vouNikolay Yankov Tuesday at 1:49 PMДобре, 2 неща:• в името на генерирания репорт е дата вчера, не днес• и имейл не дойдеshow 14 more redies...
|
NULL
|
9112863567470647405
|
NULL
|
click
|
ocr
|
NULL
|
SackFileEditViewJiminny ...DMs= Unreads@ Threads6 SackFileEditViewJiminny ...DMs= Unreads@ Threads6 HuddlesDrafts & sent8 DirectoriesAchivityEh External connectionsFiles# Starred8 jiminny-x-integrati...platform-inner-teamMoreahannes# ai-chapter# alerts# backendcantuire-nckers#: confusion-clinic# curiosity_lab# engineering# frontend# general& infosec_internal_all# infra-changes# infrastructure_dev# [bu-team-into#: liminny-bg# platform-team# platform-tickets# product launches# random# releases# sofa-officecuinnor# thank-vous# the_people_of_jimi...• Direct messages. Nikolay IvanovP. Aneliya Angelova€. Vasil Vasilev3 Aneliya Angelova, •Stoyan TanevP. Vese Galva DimitrovaStelivan Georgiev3 Adelina Petrova, Il.P.. Adelina PetrovaD. Nikolay NikolovHistoryWindowHelpQ Search Jiminny IncThreads& jiminny-x-integration-appryion and youLukas Kovalik 3 minutes agoHi guys, we have one issue we used to have before regarding the authorisation for Zoho CRM. When the clients go throughall steps and login it just returns him back to the login screen. I believe this is the reference to the previous conversationhttps://iiminnv.slack.com/archives/CO7RAC4U86M/o1748957897141919. Could vou pease have a look if there is anvchange?Lukas Kovalik1. There appears to be a recent change in the SDK ®Auth mechanism. When a newclient connects to the platform using Zoho, we no longer receive a Promise(https://console.integration.app/ref/sdk/classes/IntegrationAccessor.html#openNewConnection) upon successful login. This functionality was working just a fewweeks ago.(edited)Thread in A jiminny-x-integration-app | Jun 3rd, 2025 | View messageNeWMembrane Al Assistant APP 3 minutes agoHi Lukas, thanks for reporting this. I'll help investigate the Zoho CRM authorization issue.To help me debug this, could you please share:• The link to the affected Membrane workspace (from the browser URL bar, should look likehttps://console.getmembrane.com/w/<workspace-id>)• Which specific Zoho CRM connection is experiencing this issue (or a link to the connection if possible)Lukas Kovalik Just nowmiiosiiconsole cetmemorane com/w...icbaoe..cesdboaa..ub/connednonsaenamilen.ydlos/a24.051202da12/4010 external people are from MembraneReply-•( Also send to A fiminnv-x-integration-appCc 40 ll O f SupportDaily- in3h53m 0 A 100%C & Thu 16 Apr 11:07:59IntegrationZoho CRM|TenantDisconnectedDeleteShiji GroupYou're up to date• Aneliya Angelova, Nikolay Yankov, Steliyan GeorgievNiko av Yankov and vouNikolay Yankov Tuesday at 1:49 PMДобре, 2 неща:• в името на генерирания репорт е дата вчера, не днес• и имейл не дойдеshow 14 more redies...
|
NULL
|
|
14466
|
327
|
8
|
2026-04-14T13:50:26.229584+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776174626229_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Firefox FileEoitView History Bookmarks Profiles Firefox FileEoitView History Bookmarks Profiles Tools Window Help• www.pazaruvaj.com/s/?q=red+plus+6tbC< 40ll O Retro- Platform• in 10m A 100% C Tue 14 Apr 16:50:26TA Ep! red plus 6tb - Pazaruvaj.com+ New labpazaruvaj!Q red plus 6tb% НамаленияУ ЕлектроникаPazaruvaj > Резултати от тьрсене: red plus 6tbФилтриранеЦенаOтOKПод 256 € (28)255,65 - 307 € (24)306,78 - 358 € (17)Над 358 € (15)% Намаления ?Потребителско мнение• Над # 95 % (4)• Над # 90 % (4).• Над # 80 % (4)НаличностНа склад (8)ТърсенеV ИнформатикаV Здраве и красотаУ Битова техникаУ Дом и градинаАвтомобили, мотоциклети• Строителство и ремонтV За офисаV Още (12)Резултати от търсене за: red plus 6tb (84 резултата)Вътрешен хард диск (523)Подреди по: Сходство Най-евтини Най-много коментари Най-скьпиWD Red" PlusWestern Digital Red Plus 3.5 6TB 5400rpm 256MB SATA3 (WD60EFPX)Вытрешен хард.диск | * 100 % 5 коментара6000 GB • 5400 rpm • 256 MB • 6 Gbit/s • SATA3 • 3,5"Производител: Western Digital Модел: Red Plus 3.5 6TB 5400rpm 256MB SATA3 (WD60EFPX) Описание:Високопроизводител ни външни hdd дискове, създадени за надеждност и енергийн6твWD Red™ PlusTOP 2Western Digital Red Plus 3.5 4TB 5400rpm 256MB SATA (WD40EFPX).Вытрешен хард.диск # 95 % 4 коментара4000 GB • 5400 rpm • 256 MB • 6 Gbit/s • SATA3 • 3,5"Производител: Western Digital Модел: Red Plus 3.5 4TB 5400гpm 256MB SATA (WD40EFPX) Описание:Високопроизводител ни вътрешни hdd дискове, създадени за нсух както и за енерг#: Мозайка = Списькот 238,97 €от 467,38 лв.*в 22 магазинаСравни ценитеот 198,38 €от 388,00 лв:*в 21 магазинаСравни ценитеWD Red" Plus35 NAS HOD8тeWestern Digital Red Plus 3.5 8TB 5640rpm SATA3 (WD80EFPX).Вытрешен хард.диск| # 100 % 5 коментара8000 GB • 5640 rpm • 256 MB • 6 Gbit/s • SATA3 • 3,5"Производител: Western Digital Модел: Red Plus 3.5 8TB 5640rpm SATA3 (WD80EFPX) Описание: Открийтевътрешните HDD дискове WD Red Plus, изкусно проектирани да отговарят на изиот 211,58 €от 413,81 лв.*в 18 магазинаСравни ценитеWD Red PlusTOP 14Western Digital WD Red Plus 12TB (WD120EFGX).Вытрешен хард.диск | * 100 % 1 коментарот 350,24 €от 685,01 лв.*в 20 магазинаwww.oazaruva.com/owesterh-alcltal-re0-olus-3-=0t0-0400rom-zobmo-satas-wobuerox-pPooss305og...
|
NULL
|
9112268234120761814
|
NULL
|
visual_change
|
ocr
|
NULL
|
Firefox FileEoitView History Bookmarks Profiles Firefox FileEoitView History Bookmarks Profiles Tools Window Help• www.pazaruvaj.com/s/?q=red+plus+6tbC< 40ll O Retro- Platform• in 10m A 100% C Tue 14 Apr 16:50:26TA Ep! red plus 6tb - Pazaruvaj.com+ New labpazaruvaj!Q red plus 6tb% НамаленияУ ЕлектроникаPazaruvaj > Резултати от тьрсене: red plus 6tbФилтриранеЦенаOтOKПод 256 € (28)255,65 - 307 € (24)306,78 - 358 € (17)Над 358 € (15)% Намаления ?Потребителско мнение• Над # 95 % (4)• Над # 90 % (4).• Над # 80 % (4)НаличностНа склад (8)ТърсенеV ИнформатикаV Здраве и красотаУ Битова техникаУ Дом и градинаАвтомобили, мотоциклети• Строителство и ремонтV За офисаV Още (12)Резултати от търсене за: red plus 6tb (84 резултата)Вътрешен хард диск (523)Подреди по: Сходство Най-евтини Най-много коментари Най-скьпиWD Red" PlusWestern Digital Red Plus 3.5 6TB 5400rpm 256MB SATA3 (WD60EFPX)Вытрешен хард.диск | * 100 % 5 коментара6000 GB • 5400 rpm • 256 MB • 6 Gbit/s • SATA3 • 3,5"Производител: Western Digital Модел: Red Plus 3.5 6TB 5400rpm 256MB SATA3 (WD60EFPX) Описание:Високопроизводител ни външни hdd дискове, създадени за надеждност и енергийн6твWD Red™ PlusTOP 2Western Digital Red Plus 3.5 4TB 5400rpm 256MB SATA (WD40EFPX).Вытрешен хард.диск # 95 % 4 коментара4000 GB • 5400 rpm • 256 MB • 6 Gbit/s • SATA3 • 3,5"Производител: Western Digital Модел: Red Plus 3.5 4TB 5400гpm 256MB SATA (WD40EFPX) Описание:Високопроизводител ни вътрешни hdd дискове, създадени за нсух както и за енерг#: Мозайка = Списькот 238,97 €от 467,38 лв.*в 22 магазинаСравни ценитеот 198,38 €от 388,00 лв:*в 21 магазинаСравни ценитеWD Red" Plus35 NAS HOD8тeWestern Digital Red Plus 3.5 8TB 5640rpm SATA3 (WD80EFPX).Вытрешен хард.диск| # 100 % 5 коментара8000 GB • 5640 rpm • 256 MB • 6 Gbit/s • SATA3 • 3,5"Производител: Western Digital Модел: Red Plus 3.5 8TB 5640rpm SATA3 (WD80EFPX) Описание: Открийтевътрешните HDD дискове WD Red Plus, изкусно проектирани да отговарят на изиот 211,58 €от 413,81 лв.*в 18 магазинаСравни ценитеWD Red PlusTOP 14Western Digital WD Red Plus 12TB (WD120EFGX).Вытрешен хард.диск | * 100 % 1 коментарот 350,24 €от 685,01 лв.*в 20 магазинаwww.oazaruva.com/owesterh-alcltal-re0-olus-3-=0t0-0400rom-zobmo-satas-wobuerox-pPooss305og...
|
14465
|
|
48174
|
1024
|
5
|
2026-04-17T12:28:19.754963+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776428899754_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhpStormFileEditViewNavigateCodeLaravelRefactorRun PhpStormFileEditViewNavigateCodeLaravelRefactorRunToolsWindowHelpj Tech Day Review - in 1h 32 mAFV faVsco.s vT° JY-20692-fix-integration-app-[API_KEY]© AutomatedReportsService.php© SendReportJob.php© SendReportMailJob.php© ReportController.php© TokenBuilder.php= custom.log= laravel.logA SF [jiminny@localhost]A HS_local [iminny@localhost]A console (EU]4 console [PROD] XA console [STAGING]# dev.isonC TeamSetupController.phppnp apl.onp• Filesystem.phpC Team.php© CreateHeldActivityEvent.phpTrackProviderInstalledEvent.phpTx: AutovPlayground=ids.txt© RequestGenerateReportJob.php& OpportunitySyncTrait.php x© Opportunity.php€ InteractsWithPivotTable.php© OpportunityUpdated.phpE infection.json.distM+ INSTALL.mdQ-cacheastadesCc W .*563SELECT * FROM activities WHERE id = 76822967;T.8 :564SELECT * FROM crm_profiles WHERE user_id = 15440;M+ INTERNAL_WEBHOOK SETUPtrait OpportunitySyncTrait565SELECT * FROMEjiminny_storagecrm_profiles WHERE crm_configuration_id = 555;A33 X2 X 19566SEL*-KUIMIcrm_configurations WHERE id = 555;M+ licenses.md561SELECT * FROMUsers WHERE 10 = 15440; # team. So1, gr. 15440, pL. 5911, act. T1ELd 102182M Makefile1018private function resolveForecastCategory(?string $forecastCategory): stringf...}O package-lock.json11O28=568SELECT569CONCAT(u.id, CASE WHEN U.id = t.owner_id THEN ' (owner)' ELSE "' END) AS user_id,Ephpstan.neon.dist2 usages570U.emall,onostan-oaselne.neom1022private function importExternalFieldDataarray $properties, int SopportunityId): void=571sa.x<> phounit xml1050572t.owner_id FROM social_accounts sale raw sal query.sal1001$crmFields = $this->get0pportunitySyncableFields();573JOIN users u on u.id = sa.sociable_idM+ README.mdệ sonar-project.properties1004$this->importOpportunityCrmFieldData($properties, $crmFields,$opportunityId);574JOIN teams t 1.n<->1: on t.id = u.team_id1033E test.py575WHERE U.team_id = 581 and sa.provider = 'salesforce':1034576<> Untitled Diagram.xml2 usages.577SELECT * FROM automated_report_results order by id desc;Is vetur.config.jsM.WEBHOOK FILIERING IMPUE1035private function importOpportunityContacts(Opportunity $opportunity, array $associations): voidf….=5781048579select * fromfeatures;•n -xternal Lioraries1049**F580select * fromveal Teatures wiere Teature 10 = 40%v = Scratches and Consoles* Sync opportunity contacts using differential approachS8llv M Database Consoles1051* This comoares current vs new associations and onlu makes necessaru changes584select * from teams where id = 556;V AEU1052J00A console [EU]lusaee584select * from automated_reports where id = 54; # 4Fdd41f6-dcf0-30d0-b339-7345381b6044 , ["pdf", "podcast"]4 DEAL RISKS [EU]1000private function syncOpportunityContactsDifferential(Opportunity $opportunity, array $contactAssociations): void{...}585A DI [EU]1070select * from automated_report_results order by id desc;A EU [EU]586SELECT * FROM automated_report_results WHERE uuid_to_bin('822fa41b-afd3-43a9-a248-86b0e36f3131') = uuid:Tusaue587v A jiminny@localhostprivate function getCurrentContactCrmIds(Opportunity $opportunity): array{...}-588SELECT * FROM automated_report_results WHERE id = 1919;A console [jiminny@localt4 DI [jiminny@localhost]1077589select * from automated_report_results WHERE cepontaid = 54;1 usage590A HS_local jiminny@local1078private function logContactAssociationChanges(591select x Tro1opportunities where id = 7594349;A SF [jiminny@localhost]Opportunity Sopportunity,—592A zoho_dev [jiminny@locaarray ncurrent contaccurillos.vAPRUD=593SHLECT * FROM teams WHERE name LIKE '%Les%'; # 711, 692, 16067B - jiminnyintegration@lesmills.com1081array scontaccassoclations594vselect * fromplaybooks where team_id = 711;& console ProI1082alldy scunlaclsionuu.SELECT * FROM playbook_categories WHERE playbook_id = 4142;A console_1 [PROD]array $contactsToRemoveA DI [PROD]): void f...r100% C•Fri 17 Apr 15:28:19Services+,®0~ D DatabaseVdEU4 console 1 s 59 msv djiminny@localhost4SFc moocallV A PROD<console s 300 mSA STAGINGA consoleDockerGajiminny v034 A1 A33 X 61# OutputŒB # 711, 692, 16067B -..[EMAIL] x12 rowсid YTx: Auto vO wuid (UUID with time-low a.T : Eteam_id T4142 a2d6059b-a5df-4b40-bed0-a7877c5cfb394143 cdf0ce24-8e94-4540-8e17-864ad78632984148 1897440d-87f9-4bc4-b983-8ac740b3e55f4149 576d61fe-091a-4669-b459-7ae3ec1229d5448 [CREDIT_CARD]-8241-14970101 0a4373 5724b2d0-5ca8-4bab-aea4-4ead61ef9b954374 ab6bf89b-95d7-4d3e-a2a9-002ff12f85a74920 9a41525f-4d20-47d1-8c77-639e647df5ff4954 4627c0e3-ec8d-4a1b-838b-29962776bdd25515 8d9e50bb-4e8a-4f61-86e3-5b30347058e15516 4fd32ad0-78a3-4d4a-a446-2efc12fde5395520 98550621-37df-4553-a4e7-0003c9de8859J activity_type TGactivity_field_id Y711 event711 event711 task711 task711 event711 task711 task711 task711 event711 event711 event711 event! name T226147 LMUS CX Playbook226147 Zone 2 Playbook226139 Enablement Team226139 Outbound BDSouoneKA Playbook226139 Test226139 Testtest22o10y Pipe & lerricory rlanning226147 Test UK226147 LMUS CX Playbook test226147 LMUS CX Playbook test226147 LMUS CX Playbook testing! is_selectable T1Mai_activity_type_detection_enabled Y1 created_at T07075-06-1814.07190 2023-05-18 14:11:110 2023-05-22 15:35:110 2023-05-22 16:09:530 2023-07-06 21:59:170 2025-09-11 12:33:100 2023-09-11 12:47:500 2024-08-19 10:49:200112074-04-0710.04.4009006-04-16 07.119940 2026-04-16 07:17:440 2026-04-16 08:14:07CSVvI updated_at T2025-05-51 17:57.569095-05-18 14911•112025-07-24 02:33:272023-05-22 16:09:530S-0-00OOS7004-09-1117.54•142023-09-11 12:48:012024-08-19 10:49:201074-07-0919-091949026-94-16 07.179292026-04-16 07:18:352026-04-16 08:14:07IO deleted_at<hUILL<null><null>ShULL2025-07-06 242023-09-11 122023-09-11 12ShULL2024-09-09 1519006-04-16 02026-04-16 07ChULL12 rows retrieved starting from 1 in 645 ms (execution: 173 ms, fetching: 472 ms)SUM: 226147winasun leams594:220ulr-d4 spaces...
|
NULL
|
9111908406817599828
|
NULL
|
click
|
ocr
|
NULL
|
PhpStormFileEditViewNavigateCodeLaravelRefactorRun PhpStormFileEditViewNavigateCodeLaravelRefactorRunToolsWindowHelpj Tech Day Review - in 1h 32 mAFV faVsco.s vT° JY-20692-fix-integration-app-[API_KEY]© AutomatedReportsService.php© SendReportJob.php© SendReportMailJob.php© ReportController.php© TokenBuilder.php= custom.log= laravel.logA SF [jiminny@localhost]A HS_local [iminny@localhost]A console (EU]4 console [PROD] XA console [STAGING]# dev.isonC TeamSetupController.phppnp apl.onp• Filesystem.phpC Team.php© CreateHeldActivityEvent.phpTrackProviderInstalledEvent.phpTx: AutovPlayground=ids.txt© RequestGenerateReportJob.php& OpportunitySyncTrait.php x© Opportunity.php€ InteractsWithPivotTable.php© OpportunityUpdated.phpE infection.json.distM+ INSTALL.mdQ-cacheastadesCc W .*563SELECT * FROM activities WHERE id = 76822967;T.8 :564SELECT * FROM crm_profiles WHERE user_id = 15440;M+ INTERNAL_WEBHOOK SETUPtrait OpportunitySyncTrait565SELECT * FROMEjiminny_storagecrm_profiles WHERE crm_configuration_id = 555;A33 X2 X 19566SEL*-KUIMIcrm_configurations WHERE id = 555;M+ licenses.md561SELECT * FROMUsers WHERE 10 = 15440; # team. So1, gr. 15440, pL. 5911, act. T1ELd 102182M Makefile1018private function resolveForecastCategory(?string $forecastCategory): stringf...}O package-lock.json11O28=568SELECT569CONCAT(u.id, CASE WHEN U.id = t.owner_id THEN ' (owner)' ELSE "' END) AS user_id,Ephpstan.neon.dist2 usages570U.emall,onostan-oaselne.neom1022private function importExternalFieldDataarray $properties, int SopportunityId): void=571sa.x<> phounit xml1050572t.owner_id FROM social_accounts sale raw sal query.sal1001$crmFields = $this->get0pportunitySyncableFields();573JOIN users u on u.id = sa.sociable_idM+ README.mdệ sonar-project.properties1004$this->importOpportunityCrmFieldData($properties, $crmFields,$opportunityId);574JOIN teams t 1.n<->1: on t.id = u.team_id1033E test.py575WHERE U.team_id = 581 and sa.provider = 'salesforce':1034576<> Untitled Diagram.xml2 usages.577SELECT * FROM automated_report_results order by id desc;Is vetur.config.jsM.WEBHOOK FILIERING IMPUE1035private function importOpportunityContacts(Opportunity $opportunity, array $associations): voidf….=5781048579select * fromfeatures;•n -xternal Lioraries1049**F580select * fromveal Teatures wiere Teature 10 = 40%v = Scratches and Consoles* Sync opportunity contacts using differential approachS8llv M Database Consoles1051* This comoares current vs new associations and onlu makes necessaru changes584select * from teams where id = 556;V AEU1052J00A console [EU]lusaee584select * from automated_reports where id = 54; # 4Fdd41f6-dcf0-30d0-b339-7345381b6044 , ["pdf", "podcast"]4 DEAL RISKS [EU]1000private function syncOpportunityContactsDifferential(Opportunity $opportunity, array $contactAssociations): void{...}585A DI [EU]1070select * from automated_report_results order by id desc;A EU [EU]586SELECT * FROM automated_report_results WHERE uuid_to_bin('822fa41b-afd3-43a9-a248-86b0e36f3131') = uuid:Tusaue587v A jiminny@localhostprivate function getCurrentContactCrmIds(Opportunity $opportunity): array{...}-588SELECT * FROM automated_report_results WHERE id = 1919;A console [jiminny@localt4 DI [jiminny@localhost]1077589select * from automated_report_results WHERE cepontaid = 54;1 usage590A HS_local jiminny@local1078private function logContactAssociationChanges(591select x Tro1opportunities where id = 7594349;A SF [jiminny@localhost]Opportunity Sopportunity,—592A zoho_dev [jiminny@locaarray ncurrent contaccurillos.vAPRUD=593SHLECT * FROM teams WHERE name LIKE '%Les%'; # 711, 692, 16067B - jiminnyintegration@lesmills.com1081array scontaccassoclations594vselect * fromplaybooks where team_id = 711;& console ProI1082alldy scunlaclsionuu.SELECT * FROM playbook_categories WHERE playbook_id = 4142;A console_1 [PROD]array $contactsToRemoveA DI [PROD]): void f...r100% C•Fri 17 Apr 15:28:19Services+,®0~ D DatabaseVdEU4 console 1 s 59 msv djiminny@localhost4SFc moocallV A PROD<console s 300 mSA STAGINGA consoleDockerGajiminny v034 A1 A33 X 61# OutputŒB # 711, 692, 16067B -..[EMAIL] x12 rowсid YTx: Auto vO wuid (UUID with time-low a.T : Eteam_id T4142 a2d6059b-a5df-4b40-bed0-a7877c5cfb394143 cdf0ce24-8e94-4540-8e17-864ad78632984148 1897440d-87f9-4bc4-b983-8ac740b3e55f4149 576d61fe-091a-4669-b459-7ae3ec1229d5448 [CREDIT_CARD]-8241-14970101 0a4373 5724b2d0-5ca8-4bab-aea4-4ead61ef9b954374 ab6bf89b-95d7-4d3e-a2a9-002ff12f85a74920 9a41525f-4d20-47d1-8c77-639e647df5ff4954 4627c0e3-ec8d-4a1b-838b-29962776bdd25515 8d9e50bb-4e8a-4f61-86e3-5b30347058e15516 4fd32ad0-78a3-4d4a-a446-2efc12fde5395520 98550621-37df-4553-a4e7-0003c9de8859J activity_type TGactivity_field_id Y711 event711 event711 task711 task711 event711 task711 task711 task711 event711 event711 event711 event! name T226147 LMUS CX Playbook226147 Zone 2 Playbook226139 Enablement Team226139 Outbound BDSouoneKA Playbook226139 Test226139 Testtest22o10y Pipe & lerricory rlanning226147 Test UK226147 LMUS CX Playbook test226147 LMUS CX Playbook test226147 LMUS CX Playbook testing! is_selectable T1Mai_activity_type_detection_enabled Y1 created_at T07075-06-1814.07190 2023-05-18 14:11:110 2023-05-22 15:35:110 2023-05-22 16:09:530 2023-07-06 21:59:170 2025-09-11 12:33:100 2023-09-11 12:47:500 2024-08-19 10:49:200112074-04-0710.04.4009006-04-16 07.119940 2026-04-16 07:17:440 2026-04-16 08:14:07CSVvI updated_at T2025-05-51 17:57.569095-05-18 14911•112025-07-24 02:33:272023-05-22 16:09:530S-0-00OOS7004-09-1117.54•142023-09-11 12:48:012024-08-19 10:49:201074-07-0919-091949026-94-16 07.179292026-04-16 07:18:352026-04-16 08:14:07IO deleted_at<hUILL<null><null>ShULL2025-07-06 242023-09-11 122023-09-11 12ShULL2024-09-09 1519006-04-16 02026-04-16 07ChULL12 rows retrieved starting from 1 in 645 ms (execution: 173 ms, fetching: 472 ms)SUM: 226147winasun leams594:220ulr-d4 spaces...
|
48172
|
|
54771
|
1183
|
20
|
2026-04-20T09:18:54.410292+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676734410_m1.jpg...
|
PhpStorm
|
faVsco.js – AutomatedReportsSendCommand.php
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Console\Commands\Reports;
use Illuminate\Console\Command;
use Illuminate\Contracts\Bus\Dispatcher as BusDispatcher;
use Jiminny\Jobs\AutomatedReports\SendReportJob;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Repositories\AutomatedReportsRepository;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Psr\Log\LoggerInterface;
use Symfony\Component\Console\Command\Command as CommandAlias;
class AutomatedReportsSendCommand extends Command
{
private const string LOG_PREFIX = '[automated-reports:send]';
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'automated-reports:send
{--result-id= : Force send a specific AutomatedReportResult by ID, bypassing the scheduled time check}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Sends automated reports based on user timezone';
public function __construct(
private readonly LoggerInterface $logger,
private readonly AutomatedReportsRepository $reportRepository,
private readonly AutomatedReportsService $automatedReportsService,
private readonly BusDispatcher $dispatcher,
) {
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle(): int
{
$resultId = $this->option('result-id');
if ($resultId !== null) {
return $this->handleForceSend((int) $resultId);
}
$reportResults = $this->reportRepository->getGeneratedNotSentResults();
foreach ($reportResults as $reportResult) {
/** @var AutomatedReportResult $reportResult */
$validRecipients = $this->automatedReportsService->getValidRecipientUsers($reportResult->getReport());
if ($this->automatedReportsService->shouldSendReport($validRecipients, $reportResult->getGeneratedAt())) {
$this->logger->info(self::LOG_PREFIX . ' Dispatching job', [
'uuid' => $reportResult->getUuid(),
]);
$this->dispatcher->dispatch(new SendReportJob($reportResult->getUuid()));
}
}
return CommandAlias::SUCCESS;
}
private function handleForceSend(int $resultId): int
{
$reportResult = AutomatedReportResult::find($resultId);
if ($reportResult === null) {
$this->logger->error(self::LOG_PREFIX . ' Result not found', ['result_id' => $resultId]);
return CommandAlias::FAILURE;
}
$validRecipients = $this->automatedReportsService->getValidRecipientUsers($reportResult->getReport());
if (empty($validRecipients)) {
$this->logger->error(self::LOG_PREFIX . ' No valid recipients found', [
'result_id' => $resultId,
'uuid' => $reportResult->getUuid(),
]);
return CommandAlias::FAILURE;
}
$this->logger->info(self::LOG_PREFIX . ' Force dispatching job', [
'result_id' => $resultId,
'uuid' => $reportResult->getUuid(),
]);
$this->dispatcher->dispatch(new SendReportJob($reportResult->getUuid()));
return CommandAlias::SUCCESS;
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
10
12
2
4
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select * from teams where id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM automated_reports where id = 68;
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 ask_anything_prompts;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01'
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app
.circleci
.cursor
.github
.sonarlint
.vscode
.windsurf
app, sources root
Actions
Component
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
EventSubscriber, folder
FilterDefinition, folder
DealInsights, folder
Security
TeamInsights
ActivityActualDate.php, class
ActivityChannel.php, final class
ActivityDurationRange.php, class
ActivityFilter.php, final class
ActivityPlaylistIn.php, final class
ActivityProviderIn.php, final class
ActivityRecorded.php, class
ActivityRecordingStopped.php, final class
ActivityScheduledDate.php, final class
ActivityStatusIn.php, class
ActivityType.php, final class
ActivityUpdatedDate.php, final class
AiCallScoreFilter.php, final class
AutoScoreFilter.php, final class
ClosedDealsFilter.php, final class
CoachingFeedbackAverageScore.php, final class
CoachingFeedbackCoachUserIn.php, final class
CommentCountRange.php, final class
CrmFieldCollection.php, final class
CurrentStage.php, final class
Customer.php, final class
CustomerMonologueDuration.php, final class
CustomerQuestionCount.php, final class
DealAge.php, final class
DealCloseDate.php, final class
DealValue.php, final class
EngagingQuestionCount.php, final class
ExternalId.php, final class
HasPendingAiCrmNotes.php, final class
HasTopicTriggersFilterDefinition.php, final class
HasTranscription.php, final class
InputTypeEnum.php, final class
InsightfulQuestionCount.php, final class
LanguageFilterDefinition.php, final class
LoggedToCrm.php, final class
NudgeRunId.php, final class
OnlyActiveUsers.php, final class
OrganiserGroupIn.php, class
OrganiserTeamIn.php, final class
OrganiserUserIn.php, class
OrganiserUserNotIn.php, final class
ParticipantUserIn.php, final class
PartnerFilterDefinition.php, final class
PatienceRange.php, final class
PlaybackTopicFilterDefinition.php, final class
ProviderFilterDefinition.php, final class
ShowInternalExternalActivitiesFilter.php, final class
SortBy.php, final class
SpeechRate.php, final class...
|
[{"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":"#11894 on JY-18909-automated-reports-ask-jiminny, menu","depth":5,"help_text":"Pull request #11894 exists for current branch JY-18909-automated-reports-ask-jiminny","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":"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":"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":"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\\Console\\Commands\\Reports;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Bus\\Dispatcher as BusDispatcher;\nuse Jiminny\\Jobs\\AutomatedReports\\SendReportJob;\nuse Jiminny\\Models\\AutomatedReportResult;\nuse Jiminny\\Repositories\\AutomatedReportsRepository;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService;\nuse Psr\\Log\\LoggerInterface;\nuse Symfony\\Component\\Console\\Command\\Command as CommandAlias;\n\nclass AutomatedReportsSendCommand extends Command\n{\n private const string LOG_PREFIX = '[automated-reports:send]';\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected $signature = 'automated-reports:send\n {--result-id= : Force send a specific AutomatedReportResult by ID, bypassing the scheduled time check}';\n\n /**\n * The console command description.\n *\n * @var string\n */\n protected $description = 'Sends automated reports based on user timezone';\n\n\n public function __construct(\n private readonly LoggerInterface $logger,\n private readonly AutomatedReportsRepository $reportRepository,\n private readonly AutomatedReportsService $automatedReportsService,\n private readonly BusDispatcher $dispatcher,\n ) {\n parent::__construct();\n }\n\n /**\n * Execute the console command.\n *\n * @return int\n */\n public function handle(): int\n {\n $resultId = $this->option('result-id');\n\n if ($resultId !== null) {\n return $this->handleForceSend((int) $resultId);\n }\n\n $reportResults = $this->reportRepository->getGeneratedNotSentResults();\n\n foreach ($reportResults as $reportResult) {\n /** @var AutomatedReportResult $reportResult */\n $validRecipients = $this->automatedReportsService->getValidRecipientUsers($reportResult->getReport());\n if ($this->automatedReportsService->shouldSendReport($validRecipients, $reportResult->getGeneratedAt())) {\n $this->logger->info(self::LOG_PREFIX . ' Dispatching job', [\n 'uuid' => $reportResult->getUuid(),\n ]);\n\n $this->dispatcher->dispatch(new SendReportJob($reportResult->getUuid()));\n }\n }\n\n return CommandAlias::SUCCESS;\n }\n\n private function handleForceSend(int $resultId): int\n {\n $reportResult = AutomatedReportResult::find($resultId);\n\n if ($reportResult === null) {\n $this->logger->error(self::LOG_PREFIX . ' Result not found', ['result_id' => $resultId]);\n\n return CommandAlias::FAILURE;\n }\n\n $validRecipients = $this->automatedReportsService->getValidRecipientUsers($reportResult->getReport());\n\n if (empty($validRecipients)) {\n $this->logger->error(self::LOG_PREFIX . ' No valid recipients found', [\n 'result_id' => $resultId,\n 'uuid' => $reportResult->getUuid(),\n ]);\n\n return CommandAlias::FAILURE;\n }\n\n $this->logger->info(self::LOG_PREFIX . ' Force dispatching job', [\n 'result_id' => $resultId,\n 'uuid' => $reportResult->getUuid(),\n ]);\n\n $this->dispatcher->dispatch(new SendReportJob($reportResult->getUuid()));\n\n return CommandAlias::SUCCESS;\n }\n}","depth":4,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Console\\Commands\\Reports;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Bus\\Dispatcher as BusDispatcher;\nuse Jiminny\\Jobs\\AutomatedReports\\SendReportJob;\nuse Jiminny\\Models\\AutomatedReportResult;\nuse Jiminny\\Repositories\\AutomatedReportsRepository;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService;\nuse Psr\\Log\\LoggerInterface;\nuse Symfony\\Component\\Console\\Command\\Command as CommandAlias;\n\nclass AutomatedReportsSendCommand extends Command\n{\n private const string LOG_PREFIX = '[automated-reports:send]';\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected $signature = 'automated-reports:send\n {--result-id= : Force send a specific AutomatedReportResult by ID, bypassing the scheduled time check}';\n\n /**\n * The console command description.\n *\n * @var string\n */\n protected $description = 'Sends automated reports based on user timezone';\n\n\n public function __construct(\n private readonly LoggerInterface $logger,\n private readonly AutomatedReportsRepository $reportRepository,\n private readonly AutomatedReportsService $automatedReportsService,\n private readonly BusDispatcher $dispatcher,\n ) {\n parent::__construct();\n }\n\n /**\n * Execute the console command.\n *\n * @return int\n */\n public function handle(): int\n {\n $resultId = $this->option('result-id');\n\n if ($resultId !== null) {\n return $this->handleForceSend((int) $resultId);\n }\n\n $reportResults = $this->reportRepository->getGeneratedNotSentResults();\n\n foreach ($reportResults as $reportResult) {\n /** @var AutomatedReportResult $reportResult */\n $validRecipients = $this->automatedReportsService->getValidRecipientUsers($reportResult->getReport());\n if ($this->automatedReportsService->shouldSendReport($validRecipients, $reportResult->getGeneratedAt())) {\n $this->logger->info(self::LOG_PREFIX . ' Dispatching job', [\n 'uuid' => $reportResult->getUuid(),\n ]);\n\n $this->dispatcher->dispatch(new SendReportJob($reportResult->getUuid()));\n }\n }\n\n return CommandAlias::SUCCESS;\n }\n\n private function handleForceSend(int $resultId): int\n {\n $reportResult = AutomatedReportResult::find($resultId);\n\n if ($reportResult === null) {\n $this->logger->error(self::LOG_PREFIX . ' Result not found', ['result_id' => $resultId]);\n\n return CommandAlias::FAILURE;\n }\n\n $validRecipients = $this->automatedReportsService->getValidRecipientUsers($reportResult->getReport());\n\n if (empty($validRecipients)) {\n $this->logger->error(self::LOG_PREFIX . ' No valid recipients found', [\n 'result_id' => $resultId,\n 'uuid' => $reportResult->getUuid(),\n ]);\n\n return CommandAlias::FAILURE;\n }\n\n $this->logger->info(self::LOG_PREFIX . ' Force dispatching job', [\n 'result_id' => $resultId,\n 'uuid' => $reportResult->getUuid(),\n ]);\n\n $this->dispatcher->dispatch(new SendReportJob($reportResult->getUuid()));\n\n return CommandAlias::SUCCESS;\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,"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":"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":"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":"AXStaticText","text":"10","depth":4,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":4,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":4,"role_description":"text"},{"role":"AXStaticText","text":"4","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 a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\nselect * from teams where id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM automated_reports where id = 68;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01'\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;","depth":4,"value":"SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\nselect * from teams where id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM automated_reports where id = 68;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01'\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;","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,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"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, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ActionItems, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Activity, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ActivityAnalytics, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ActivitySearch, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"EventSubscriber, folder","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"FilterDefinition, folder","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"DealInsights, folder","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"Security","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"TeamInsights","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ActivityActualDate.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ActivityChannel.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ActivityDurationRange.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ActivityFilter.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ActivityPlaylistIn.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ActivityProviderIn.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ActivityRecorded.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ActivityRecordingStopped.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ActivityScheduledDate.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ActivityStatusIn.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ActivityType.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ActivityUpdatedDate.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"AiCallScoreFilter.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"AutoScoreFilter.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ClosedDealsFilter.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"CoachingFeedbackAverageScore.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"CoachingFeedbackCoachUserIn.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"CommentCountRange.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"CrmFieldCollection.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"CurrentStage.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"Customer.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"CustomerMonologueDuration.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"CustomerQuestionCount.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"DealAge.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"DealCloseDate.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"DealValue.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"EngagingQuestionCount.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ExternalId.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"HasPendingAiCrmNotes.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"HasTopicTriggersFilterDefinition.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"HasTranscription.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"InputTypeEnum.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"InsightfulQuestionCount.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"LanguageFilterDefinition.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"LoggedToCrm.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"NudgeRunId.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"OnlyActiveUsers.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"OrganiserGroupIn.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"OrganiserTeamIn.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"OrganiserUserIn.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"OrganiserUserNotIn.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ParticipantUserIn.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"PartnerFilterDefinition.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"PatienceRange.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"PlaybackTopicFilterDefinition.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ProviderFilterDefinition.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ShowInternalExternalActivitiesFilter.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"SortBy.php, final class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"SpeechRate.php, final class","depth":11,"role_description":"text"}]...
|
9111520511639911499
|
-2392927015067478459
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Console\Commands\Reports;
use Illuminate\Console\Command;
use Illuminate\Contracts\Bus\Dispatcher as BusDispatcher;
use Jiminny\Jobs\AutomatedReports\SendReportJob;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Repositories\AutomatedReportsRepository;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Psr\Log\LoggerInterface;
use Symfony\Component\Console\Command\Command as CommandAlias;
class AutomatedReportsSendCommand extends Command
{
private const string LOG_PREFIX = '[automated-reports:send]';
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'automated-reports:send
{--result-id= : Force send a specific AutomatedReportResult by ID, bypassing the scheduled time check}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Sends automated reports based on user timezone';
public function __construct(
private readonly LoggerInterface $logger,
private readonly AutomatedReportsRepository $reportRepository,
private readonly AutomatedReportsService $automatedReportsService,
private readonly BusDispatcher $dispatcher,
) {
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle(): int
{
$resultId = $this->option('result-id');
if ($resultId !== null) {
return $this->handleForceSend((int) $resultId);
}
$reportResults = $this->reportRepository->getGeneratedNotSentResults();
foreach ($reportResults as $reportResult) {
/** @var AutomatedReportResult $reportResult */
$validRecipients = $this->automatedReportsService->getValidRecipientUsers($reportResult->getReport());
if ($this->automatedReportsService->shouldSendReport($validRecipients, $reportResult->getGeneratedAt())) {
$this->logger->info(self::LOG_PREFIX . ' Dispatching job', [
'uuid' => $reportResult->getUuid(),
]);
$this->dispatcher->dispatch(new SendReportJob($reportResult->getUuid()));
}
}
return CommandAlias::SUCCESS;
}
private function handleForceSend(int $resultId): int
{
$reportResult = AutomatedReportResult::find($resultId);
if ($reportResult === null) {
$this->logger->error(self::LOG_PREFIX . ' Result not found', ['result_id' => $resultId]);
return CommandAlias::FAILURE;
}
$validRecipients = $this->automatedReportsService->getValidRecipientUsers($reportResult->getReport());
if (empty($validRecipients)) {
$this->logger->error(self::LOG_PREFIX . ' No valid recipients found', [
'result_id' => $resultId,
'uuid' => $reportResult->getUuid(),
]);
return CommandAlias::FAILURE;
}
$this->logger->info(self::LOG_PREFIX . ' Force dispatching job', [
'result_id' => $resultId,
'uuid' => $reportResult->getUuid(),
]);
$this->dispatcher->dispatch(new SendReportJob($reportResult->getUuid()));
return CommandAlias::SUCCESS;
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
10
12
2
4
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select * from teams where id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM automated_reports where id = 68;
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 ask_anything_prompts;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01'
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app
.circleci
.cursor
.github
.sonarlint
.vscode
.windsurf
app, sources root
Actions
Component
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
EventSubscriber, folder
FilterDefinition, folder
DealInsights, folder
Security
TeamInsights
ActivityActualDate.php, class
ActivityChannel.php, final class
ActivityDurationRange.php, class
ActivityFilter.php, final class
ActivityPlaylistIn.php, final class
ActivityProviderIn.php, final class
ActivityRecorded.php, class
ActivityRecordingStopped.php, final class
ActivityScheduledDate.php, final class
ActivityStatusIn.php, class
ActivityType.php, final class
ActivityUpdatedDate.php, final class
AiCallScoreFilter.php, final class
AutoScoreFilter.php, final class
ClosedDealsFilter.php, final class
CoachingFeedbackAverageScore.php, final class
CoachingFeedbackCoachUserIn.php, final class
CommentCountRange.php, final class
CrmFieldCollection.php, final class
CurrentStage.php, final class
Customer.php, final class
CustomerMonologueDuration.php, final class
CustomerQuestionCount.php, final class
DealAge.php, final class
DealCloseDate.php, final class
DealValue.php, final class
EngagingQuestionCount.php, final class
ExternalId.php, final class
HasPendingAiCrmNotes.php, final class
HasTopicTriggersFilterDefinition.php, final class
HasTranscription.php, final class
InputTypeEnum.php, final class
InsightfulQuestionCount.php, final class
LanguageFilterDefinition.php, final class
LoggedToCrm.php, final class
NudgeRunId.php, final class
OnlyActiveUsers.php, final class
OrganiserGroupIn.php, class
OrganiserTeamIn.php, final class
OrganiserUserIn.php, class
OrganiserUserNotIn.php, final class
ParticipantUserIn.php, final class
PartnerFilterDefinition.php, final class
PatienceRange.php, final class
PlaybackTopicFilterDefinition.php, final class
ProviderFilterDefinition.php, final class
ShowInternalExternalActivitiesFilter.php, final class
SortBy.php, final class
SpeechRate.php, final class...
|
54768
|
|
61002
|
1314
|
23
|
2026-04-21T06:30:53.557331+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776753053557_m1.jpg...
|
Firefox
|
Pipelines - jiminny/app — Work
|
True
|
app.circleci.com/pipelines/github/jiminny/app
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Pipelines - jiminny/app
app.circleci.com
Platform Pipelines - jiminny/app
app.circleci.com
Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
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
Pipelines - jiminny/app
Pipelines - jiminny/app
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Close bookmarks (⌘B)
Bookmarks
Bookmarks
Close sidebar...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":4,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app.circleci.com","depth":4,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"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-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":"[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":"JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app","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":false},{"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":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Pipelines - 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":"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":"Close bookmarks (⌘B)","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Bookmarks","depth":5,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Bookmarks","depth":6,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close sidebar","depth":6,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
9111293123785115274
|
3516735723592938921
|
visual_change
|
accessibility
|
NULL
|
Pipelines - jiminny/app
app.circleci.com
Platform Pipelines - jiminny/app
app.circleci.com
Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
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
Pipelines - jiminny/app
Pipelines - jiminny/app
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Close bookmarks (⌘B)
Bookmarks
Bookmarks
Close sidebar...
|
NULL
|
|
57247
|
1234
|
5
|
2026-04-20T11:47:28.176499+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776685648176_m2.jpg...
|
Firefox
|
Firefox
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxJy 19798 evaluation for ai activityJY-20553 FirefoxJy 19798 evaluation for ai activityJY-20553 | Improve crm-sync dela|SRD-6793) Les Mills activity typeJY-20698 handle failed field sync•JY-20692 change confirmation pa(JY-20543) AJ Reports > Trackina(UY-18909) (Part2) Automated rep/Ask Jiminny Reports by nikolay-ya8 Jiminnyu Product Growth Plattorm UserpilgU Useroilot I Loaaed-activityfix(security): composer dependerPipelines - jiminny/app) Feed - jiminny - Sentry(JY-20692] Issue with reconnectituy-206921 Issue with reconnectinJY-20692 change confirmation pa(JY-20692] Issue with reconnect[SRD-6787) Issue with reconnecti& Jiminny MCP Connector - Product-7 [JY-206761 Notify the user if a PaiProject Phoenix - Figma© Pipelines - jiminny/app+ New TabcalVIewMistorbookmarksProtllesToolsWindowmelp• • app.dev.jiminny.com/ondemand?page=BookmarksSaved searchesQ Search bookmarksleamv la bookmarks loolba• Sprint Board$ SRD QueueGithubSearch teamsHostsearch team membersJiminny DEVAsk Jiminny Reports by nikolay-yankov. ..© Circle Cl& PROD US8 Staginga Sentry1IOAlso search as participantParticivantSearch team membersCustomer ®> bookmarks Menu() Customer or SubiectI… Other BookmarksTranscript ®• Search transcriotsaid bvAnyonePeriodAll timeTopicsActivity typesearch activitv tyDesDuration ®Min (minutes)Max (minutes)Al call scorelSelect Al call scoreCoaching scoreSelect coaching scoreCoachStage at callSearch stagedCurrent stageO activitiesDuration: 1m and above x)Recorded: Only Recorded X Save Search @ Clear allSorry, we didn't find any matches for your filters.Sort by: Most recent©ARdgFA Get NotifiedLk @ InspectorFilter URLSAll HTML CSSMethod500200500200200200403500500POSTPOST# ConsoleDebuggerT1 Network() Style EditoreaaWolhenapp.dev.jiminny.comsearch?statuslecomoleted&sortbv=dateHeldy xhAapp.dev.jiminny.comA xhrapp.dev.jiminny.com" xhA app.dev.jiminny.com•A xhA app.dev.jiminny.comA xhAapp.dev.jiminny.comA xhrapi-iam.intercom.icA app.dev.jiminny.comapp.dev.jiminny.comAapp.dev.jiminny.comsearch?status[]=completed&sort_by=dateHeld&sort xhsearch?statusl=completed&sort_by=dateHeld&sort xhsearch?statusll=completed&sort_by=dateHelds +a xhr100% LzMon 20 Apr 14:47:27@ PerformanceU Memory »0310••X.•Disable Cache No Throttling : djsonOB 0ms11.30 K8 | 16632B |156811.30 kB 16534.09 kB|205927.11 kB 230796 в | 1295231 B | 179 n11.30 KB | 283 г11.30 kB11.30 kB• 11 requests88.04 kB / 91.61 kB transferredontl andod. 061 me lnad. 102 g...
|
NULL
|
9111166713565293730
|
NULL
|
visual_change
|
ocr
|
NULL
|
FirefoxJy 19798 evaluation for ai activityJY-20553 FirefoxJy 19798 evaluation for ai activityJY-20553 | Improve crm-sync dela|SRD-6793) Les Mills activity typeJY-20698 handle failed field sync•JY-20692 change confirmation pa(JY-20543) AJ Reports > Trackina(UY-18909) (Part2) Automated rep/Ask Jiminny Reports by nikolay-ya8 Jiminnyu Product Growth Plattorm UserpilgU Useroilot I Loaaed-activityfix(security): composer dependerPipelines - jiminny/app) Feed - jiminny - Sentry(JY-20692] Issue with reconnectituy-206921 Issue with reconnectinJY-20692 change confirmation pa(JY-20692] Issue with reconnect[SRD-6787) Issue with reconnecti& Jiminny MCP Connector - Product-7 [JY-206761 Notify the user if a PaiProject Phoenix - Figma© Pipelines - jiminny/app+ New TabcalVIewMistorbookmarksProtllesToolsWindowmelp• • app.dev.jiminny.com/ondemand?page=BookmarksSaved searchesQ Search bookmarksleamv la bookmarks loolba• Sprint Board$ SRD QueueGithubSearch teamsHostsearch team membersJiminny DEVAsk Jiminny Reports by nikolay-yankov. ..© Circle Cl& PROD US8 Staginga Sentry1IOAlso search as participantParticivantSearch team membersCustomer ®> bookmarks Menu() Customer or SubiectI… Other BookmarksTranscript ®• Search transcriotsaid bvAnyonePeriodAll timeTopicsActivity typesearch activitv tyDesDuration ®Min (minutes)Max (minutes)Al call scorelSelect Al call scoreCoaching scoreSelect coaching scoreCoachStage at callSearch stagedCurrent stageO activitiesDuration: 1m and above x)Recorded: Only Recorded X Save Search @ Clear allSorry, we didn't find any matches for your filters.Sort by: Most recent©ARdgFA Get NotifiedLk @ InspectorFilter URLSAll HTML CSSMethod500200500200200200403500500POSTPOST# ConsoleDebuggerT1 Network() Style EditoreaaWolhenapp.dev.jiminny.comsearch?statuslecomoleted&sortbv=dateHeldy xhAapp.dev.jiminny.comA xhrapp.dev.jiminny.com" xhA app.dev.jiminny.com•A xhA app.dev.jiminny.comA xhAapp.dev.jiminny.comA xhrapi-iam.intercom.icA app.dev.jiminny.comapp.dev.jiminny.comAapp.dev.jiminny.comsearch?status[]=completed&sort_by=dateHeld&sort xhsearch?statusl=completed&sort_by=dateHeld&sort xhsearch?statusll=completed&sort_by=dateHelds +a xhr100% LzMon 20 Apr 14:47:27@ PerformanceU Memory »0310••X.•Disable Cache No Throttling : djsonOB 0ms11.30 K8 | 16632B |156811.30 kB 16534.09 kB|205927.11 kB 230796 в | 1295231 B | 179 n11.30 KB | 283 г11.30 kB11.30 kB• 11 requests88.04 kB / 91.61 kB transferredontl andod. 061 me lnad. 102 g...
|
NULL
|
|
29568
|
604
|
67
|
2026-04-15T14:43:08.030830+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776264188030_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
134051700118042035198/200Imperial Age--Light Caval 134051700118042035198/200Imperial Age--Light Cavalry Created---Warning: You are being attacked byPlayer 8 Almish Yiltawar!!!-5 Magnus Olafsson: 41156/41156 B TV1 kovaliklukas: 39993/399938 Almish Yiltawar: 31370/31370Rafyapala: 23265/232656Lвez6 П. 12011/120147 Maximilian of Habsburg: 6531/6531-63 Hunscám: 5966152661 Lowig VI: 5792/5702...
|
NULL
|
9110889106504041019
|
NULL
|
visual_change
|
ocr
|
NULL
|
134051700118042035198/200Imperial Age--Light Caval 134051700118042035198/200Imperial Age--Light Cavalry Created---Warning: You are being attacked byPlayer 8 Almish Yiltawar!!!-5 Magnus Olafsson: 41156/41156 B TV1 kovaliklukas: 39993/399938 Almish Yiltawar: 31370/31370Rafyapala: 23265/232656Lвez6 П. 12011/120147 Maximilian of Habsburg: 6531/6531-63 Hunscám: 5966152661 Lowig VI: 5792/5702...
|
NULL
|
|
41155
|
875
|
17
|
2026-04-17T06:03:46.677455+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776405826677_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
PhpStormFileEditViewNavigateCodeLaravelRefactorRu PhpStormFileEditViewNavigateCodeLaravelRefactorRunToolsGitWindowHelpEU (ssh)DOCKERDEV (-zsh)О 882APP (-zsh)883-zshXI11 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(allA* Review screenpipe U...100% 1478Fri 17 Apr 9:03:46181*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
|
9110740962044391255
|
NULL
|
click
|
ocr
|
NULL
|
PhpStormFileEditViewNavigateCodeLaravelRefactorRu PhpStormFileEditViewNavigateCodeLaravelRefactorRunToolsGitWindowHelpEU (ssh)DOCKERDEV (-zsh)О 882APP (-zsh)883-zshXI11 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(allA* Review screenpipe U...100% 1478Fri 17 Apr 9:03:46181*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
|
|
13574
|
296
|
11
|
2026-04-14T12:34:04.472321+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776170044472_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
SlackFileEditViewGoHistoryWindowHelp(MySQL 11.4.9- SlackFileEditViewGoHistoryWindowHelp(MySQL 11.4.9-MariaDB-log) PROD/jiminny/leads• leaFieldTABLES_ lead_stagesleadsiduuidteam_idcrm_conf...stage_idstage_up...record_ty…converte...converte...converte...converte...crm_prov...user_idowner_idcompanydomaincountry_..nametitleemailphoneext+INDEXESTypeINTBINARYINTINTINTDATETIMEINTTIMESTAMPINTINTINTVARCHARINTIVARCHARVARCHARVARCHARCHARVARCHARVARCHARVARCHARVARCHARCHARLength1016101010101010101282Non_unique11Key_namePRIMARYleads_u...leads_c...leads_c...leads_t...leads_S...leads_c...leads_c...leads_c...leads_r...leads_u...ІаSнC nSeq_in_ind...Column_nameiduuidcrm_config...crm_provid...team_idstage_idconverted_...converted_...converted_...record_typ...user_iderm sanfin+CollationCardin87568875688387568686977960758379125092292Q1@v+EDHomeD-DMsActivityFilesLater.*•MoreRetro - Platform • in 1h 26 m100% <7Tue 14 Apr 15:34:04Search Jiminny IncJiminny ...+tcncrel# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesVasil VasilevAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...0. Adelina Petrova. Galya Dimitrova *0g Nikolay Nikolov "Y2Galya Dimitrova, Ni...2Galya Dimitrova, Ni...Nikolay Yankov::: AppsThread Direct message with 3 otherseenViVUTURULukas Kovalik Today at 1:59 PMemail ще го ви-Lukas Kovalikза второто е направено да браща веднагасамо при onе-off, иначе си праща когато мудойде време през нощтаи тука мога да му да добавя параметьр самоза тестване и да прати веднага ако се подадена командаNikolay Yankov 44 minutes agoда, да направим за да го тестваме, иначе нямада можемLukas Kovalik 4 minutes agoготовОphp artisan automated-reports:send --result-id {RESULT ID}след като е генериран може да се пуска такаNikolay Yankov 3 minutes agoдобре, но аз не съм логнат там, можеш ли даго пуснешпуснах нов репорт test 7Lukas Kovalik 1 minute agoмога ако ми дадеш result idне ти ли работи инстанция?ToastReply...Jira CloudGoogle Cale...Also send to the group+......
|
NULL
|
9110392502403488384
|
NULL
|
visual_change
|
ocr
|
NULL
|
SlackFileEditViewGoHistoryWindowHelp(MySQL 11.4.9- SlackFileEditViewGoHistoryWindowHelp(MySQL 11.4.9-MariaDB-log) PROD/jiminny/leads• leaFieldTABLES_ lead_stagesleadsiduuidteam_idcrm_conf...stage_idstage_up...record_ty…converte...converte...converte...converte...crm_prov...user_idowner_idcompanydomaincountry_..nametitleemailphoneext+INDEXESTypeINTBINARYINTINTINTDATETIMEINTTIMESTAMPINTINTINTVARCHARINTIVARCHARVARCHARVARCHARCHARVARCHARVARCHARVARCHARVARCHARCHARLength1016101010101010101282Non_unique11Key_namePRIMARYleads_u...leads_c...leads_c...leads_t...leads_S...leads_c...leads_c...leads_c...leads_r...leads_u...ІаSнC nSeq_in_ind...Column_nameiduuidcrm_config...crm_provid...team_idstage_idconverted_...converted_...converted_...record_typ...user_iderm sanfin+CollationCardin87568875688387568686977960758379125092292Q1@v+EDHomeD-DMsActivityFilesLater.*•MoreRetro - Platform • in 1h 26 m100% <7Tue 14 Apr 15:34:04Search Jiminny IncJiminny ...+tcncrel# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesVasil VasilevAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...0. Adelina Petrova. Galya Dimitrova *0g Nikolay Nikolov "Y2Galya Dimitrova, Ni...2Galya Dimitrova, Ni...Nikolay Yankov::: AppsThread Direct message with 3 otherseenViVUTURULukas Kovalik Today at 1:59 PMemail ще го ви-Lukas Kovalikза второто е направено да браща веднагасамо при onе-off, иначе си праща когато мудойде време през нощтаи тука мога да му да добавя параметьр самоза тестване и да прати веднага ако се подадена командаNikolay Yankov 44 minutes agoда, да направим за да го тестваме, иначе нямада можемLukas Kovalik 4 minutes agoготовОphp artisan automated-reports:send --result-id {RESULT ID}след като е генериран може да се пуска такаNikolay Yankov 3 minutes agoдобре, но аз не съм логнат там, можеш ли даго пуснешпуснах нов репорт test 7Lukas Kovalik 1 minute agoмога ако ми дадеш result idне ти ли работи инстанция?ToastReply...Jira CloudGoogle Cale...Also send to the group+......
|
NULL
|
|
16497
|
363
|
88
|
2026-04-14T15:19:04.122866+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776179944122_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
47045514020021/25Feudal Age7 Vikramaditya I: 666/6 47045514020021/25Feudal Age7 Vikramaditya I: 666/6664 Wen Tianxiang: 660/6608 Ellac the Hun: 649/6496 Prithviraj Chauhan: 631/6313 Mari Djata I: 621/6212 Yekuno Amlak: 617/6171 kovaliklukas: 564/5645 Danylo Kobiakovych: 544/544Town Center0/157 3/5kovaliklukas (Britons)Researching 93%Feudal Age2400/2400...
|
NULL
|
9110200701582252224
|
NULL
|
visual_change
|
ocr
|
NULL
|
47045514020021/25Feudal Age7 Vikramaditya I: 666/6 47045514020021/25Feudal Age7 Vikramaditya I: 666/6664 Wen Tianxiang: 660/6608 Ellac the Hun: 649/6496 Prithviraj Chauhan: 631/6313 Mari Djata I: 621/6212 Yekuno Amlak: 617/6171 kovaliklukas: 564/5645 Danylo Kobiakovych: 544/544Town Center0/157 3/5kovaliklukas (Britons)Researching 93%Feudal Age2400/2400...
|
NULL
|
|
37902
|
779
|
1
|
2026-04-16T12:56:15.702881+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776344175702_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
•%?21010020012/15toDark AgeTown Centerkovaliklukas •%?21010020012/15toDark AgeTown Centerkovaliklukas (Dravidian3/5Creating 47%Villager12400/240004 Roger II of Sicily: 349/3493 Anastasios I Dikoros: 338/3387 Themistocles: 327/3276 Emperor Karel IV: 327/3275 Manuel I: 324/3242 Zbigniew Olesnicki: 317/3171 kovaliklukas: 304/3048 Mundzuk the Hun: 298/298...
|
NULL
|
9110105399164385894
|
NULL
|
visual_change
|
ocr
|
NULL
|
•%?21010020012/15toDark AgeTown Centerkovaliklukas •%?21010020012/15toDark AgeTown Centerkovaliklukas (Dravidian3/5Creating 47%Villager12400/240004 Roger II of Sicily: 349/3493 Anastasios I Dikoros: 338/3387 Themistocles: 327/3276 Emperor Karel IV: 327/3275 Manuel I: 324/3242 Zbigniew Olesnicki: 317/3171 kovaliklukas: 304/3048 Mundzuk the Hun: 298/298...
|
NULL
|
|
34518
|
NULL
|
0
|
2026-04-16T08:47:24.411234+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776329244411_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhpStormFileFditViewNavigateCodelaravelRetactonToo PhpStormFileFditViewNavigateCodelaravelRetactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny kProject vC ReportController.phpG TokenBuilder.phpC) TeamSetupController.php Xphp api.php(©) SendReportJob.php= custom.log= laravel.loge SF (iminny@localhostc HS_local fiminny@localhost¿ console (EU]Yc) PlavlistController.nhi© Pushercontroller.php(C SlackController.pnp(C) SupportController.prc leamserupcontrolle(C) UserAutomatedRepc(©) WelcomeController.r>_ MiddlewareRequests>D Resources>_Responses> MSerializers> M TransformersC Kernel.phpT) PlavlistTrackResourceTT ValidateCrmConnection› _ Integrations› _ Interactionsv → Jobs>D Activity→ AlAutomationD AjReports> D Audio~ [ AutomatedReports(e) RequestGenerareas›(C) recuestcenerterelsелакероплов.pпp(©) SendReportMailJob.lCalendarD CrmDealRisks_ Mailbox→ MeetingBotMid dlleware> 07 Streaming> MTeam> M Telephonv>MUserC AutomatedReportsCommand.phpAskJiminnykeporscontroller.onoC AutomatedReportsCommandTest.php4 console [PROD1L console [STAGING] X© AutomatedReportsSendCommand.php© Team.php© AutomatedReportsRepository.phpIX. AUlo vHaycround vMa lminny vC AutomatedReportsService.phpC CreateHeldActivityEvent.phpC) TrackProviderInstalledEvent.php018 416 ×13 ^C CreateActivityLoggedEvent.php© UserPilotActivityListener.phpActivityLoagea.onpFRUM playdooks pJoin playbook_cacegories pc1<->1..n: on p.id = pc.plavbook idwnere orrealio = ano p.acmury tvoe ='event.)AutomatedRenortscallbackservice.onv© RequestGenerateAskJiminnyReportJob.php© RequestGenerateReportJob.phpC AutomatedReportResult.php(C AutomatedReport.php548549SELECT * FROM crm_fields WHERE crm confiquration id = 1 and object type = 'event":class TeamSetupController extends Controllerpublic function integrationAppConnectO: JsonResponse44X2 ^550551SELECT * FROM crm field values WHERE crm_ field id = 4:select * from crm_layouts cl Join playbook_layouts pul<->l.n: on cl.ld = pl.layout_1dreturn response)->json([success= false,"nessade"someching went wrong. soclal account is cannot be round..where crm_configurat1on_1d = 1 and pl.playbook_1d = 175556select * rrom teams:Euee** -rur autonared redorts-›sersraruscode code•Jsonkesponse:.HIIP_FALLEU_DEPENDENCY):$socialAccount->setAttribute('state', SocialAccount::STATE_CONNECTED):SsocialAccount->saveO:Joln teams t on r.ueam 1a = t.10WHERE r.freguency = 'daily'and r.status = 1AND t.status = 'active'AND (r. expiresat >= now oR r.expires.at Is NULD):212214sthis->logger→>info('[IntegrationApp] Social account is connected.', L'team_1d => Steam->getid),'lapp_provider' => srealProviderKey,'provider'= $crmproviderKey.l'state' => SocialAccount::STATE_CONNECTED,1):Sthis->eventDispatcher->dispatchtnew SocialAccountConnected($socialAccount)):560561563565566567568 v569— 5/1572573- 574select * from automated_report_results where neportond IN (18, 35);select * from activity_searches where 1d = 10932*select * trom acuvity_search_tiluers where aculvity_searcn_1d = 10752;select * trom aucomaced_reports order dy za desciselect * trom aucomaced_report_resulus order by za desc,select x TroIautomated_report_results where report id IN (37);select * from users where id IN (7160. 32480:SELECT * FROM automated_reports WHERE uuid_to_bin('18a06a75-afd2-476f-aadc-14d4057bdda2') = wuid;return responseo->1son (l'success = true.'message' => sprintflformat: "s 1s successfully connected',Providers::getintegratzonAppProv1derLabel(srealProviderKey)Local changesShelfConcoleLog XChanges 8 files= .env.local appActivityController.php app/Http/Controllers/API© JiminnyDebugCommand.php app/Console/Commandspip logging.pnp contigC) PlaybackService.php app/services(C) ReportController.php app/Http/Controllers/Webhook(C SyncTolntercom.php app/Jobs/Teampip web.one roules›Unversioned Files 8 filesSide-by-side viewerDo not ignoreHighlight words* 15@a0a9685c app/Jobs/Team/SyncTolntercom.phg\Jiminny \Jobs\Team > SyncTolntercomIntercomService SintercomService,ActivityProv1derReg1stry sactivityProv1derReg1stry.TeamRepos1tory steamRepos1tory,: VOld&steam = schis->ceam;// we don't want to sync parcher accounts to Incercom.if ($team->isPartnerDefault( === false) (recurnrcurrent version(Jiminny \Jobs\Team > SyncTolntercom vIntercomService SintercomService.ActivityProviderregistry sactivityProviderRegistry,TeamRepository steamRepository,): void {return;pteam = schis->ceam;// We don't want to sync partner accounts to Intercom.if (Steam->isPartnerDefaultO === false) «return,$crm = Steam->getCrmConfiqurationO:Create remote IntercomcolllpallysintercomService->createCompany(l"name= steam->getName)"company_1d'= $team->getUuid().'size' => $team->seats,"renore created at'= Steam->geccreacedAt()->geclimestamp),$crm = Steam->getCrmConfigurationO:stler = steam->getliero:stlerlltle = stier?->getlitle ?? 'Unknown';// Create remote Intercom company.# Try sonargube cloud for tree / Download sonargube server |/ Learn more // Don't ask again (14 minutes ago)a Support Daily • in 3 h 13 mA]100% 145Thu 16 Apr 11:47:24U AutomatedReportsCommandTest-CascadeIntegration App Conneconnection.disconnected // boolean - false = OAuth completed, tStep 4 - Only if connection.disconnected === false, the backend is called" javascrip'if (connection && connection.disconnected === false) {awalt axlos.post aolvlincecracion-app-connectrStep 5 - Backend integrationAppConnect marks the SocialAccount asconnecredTeanSetuncontroller.0hn:24%-718• php$socialAccount->setAttribute('state', SocialAccount:: STATE_CONNE"soclalAccount→ssavesthas->eventDispatcher->oispatchlnew SocialAccountconnectedssocIt does not call Integration App's APl to verity. It just trusts the frontend.summary — wnat Neeas to be Presenttor the whole ining toWorkWnarWnereMust maveValid JWT tokenSocialAccount.provider user tokenTeam UUlD as id, signedwith correct secret. notProvider nameCRM configuration → RouteProviderl istMust match Integration Appintegration key exactlysocla lAccountrecordDB, provider = "inteCreated during integrationAnnlloken calllPromise resolves disconnected: falseIntegration App SDKUser must complete OAuthin the modaAsk anything (2+L)+ @ CodeClaude Sonnet 4.64 anlerencesWWinasun leams214:45uir-oia 4 spaces...
|
NULL
|
9110072353737037879
|
NULL
|
visual_change
|
ocr
|
NULL
|
PhpStormFileFditViewNavigateCodelaravelRetactonToo PhpStormFileFditViewNavigateCodelaravelRetactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny kProject vC ReportController.phpG TokenBuilder.phpC) TeamSetupController.php Xphp api.php(©) SendReportJob.php= custom.log= laravel.loge SF (iminny@localhostc HS_local fiminny@localhost¿ console (EU]Yc) PlavlistController.nhi© Pushercontroller.php(C SlackController.pnp(C) SupportController.prc leamserupcontrolle(C) UserAutomatedRepc(©) WelcomeController.r>_ MiddlewareRequests>D Resources>_Responses> MSerializers> M TransformersC Kernel.phpT) PlavlistTrackResourceTT ValidateCrmConnection› _ Integrations› _ Interactionsv → Jobs>D Activity→ AlAutomationD AjReports> D Audio~ [ AutomatedReports(e) RequestGenerareas›(C) recuestcenerterelsелакероплов.pпp(©) SendReportMailJob.lCalendarD CrmDealRisks_ Mailbox→ MeetingBotMid dlleware> 07 Streaming> MTeam> M Telephonv>MUserC AutomatedReportsCommand.phpAskJiminnykeporscontroller.onoC AutomatedReportsCommandTest.php4 console [PROD1L console [STAGING] X© AutomatedReportsSendCommand.php© Team.php© AutomatedReportsRepository.phpIX. AUlo vHaycround vMa lminny vC AutomatedReportsService.phpC CreateHeldActivityEvent.phpC) TrackProviderInstalledEvent.php018 416 ×13 ^C CreateActivityLoggedEvent.php© UserPilotActivityListener.phpActivityLoagea.onpFRUM playdooks pJoin playbook_cacegories pc1<->1..n: on p.id = pc.plavbook idwnere orrealio = ano p.acmury tvoe ='event.)AutomatedRenortscallbackservice.onv© RequestGenerateAskJiminnyReportJob.php© RequestGenerateReportJob.phpC AutomatedReportResult.php(C AutomatedReport.php548549SELECT * FROM crm_fields WHERE crm confiquration id = 1 and object type = 'event":class TeamSetupController extends Controllerpublic function integrationAppConnectO: JsonResponse44X2 ^550551SELECT * FROM crm field values WHERE crm_ field id = 4:select * from crm_layouts cl Join playbook_layouts pul<->l.n: on cl.ld = pl.layout_1dreturn response)->json([success= false,"nessade"someching went wrong. soclal account is cannot be round..where crm_configurat1on_1d = 1 and pl.playbook_1d = 175556select * rrom teams:Euee** -rur autonared redorts-›sersraruscode code•Jsonkesponse:.HIIP_FALLEU_DEPENDENCY):$socialAccount->setAttribute('state', SocialAccount::STATE_CONNECTED):SsocialAccount->saveO:Joln teams t on r.ueam 1a = t.10WHERE r.freguency = 'daily'and r.status = 1AND t.status = 'active'AND (r. expiresat >= now oR r.expires.at Is NULD):212214sthis->logger→>info('[IntegrationApp] Social account is connected.', L'team_1d => Steam->getid),'lapp_provider' => srealProviderKey,'provider'= $crmproviderKey.l'state' => SocialAccount::STATE_CONNECTED,1):Sthis->eventDispatcher->dispatchtnew SocialAccountConnected($socialAccount)):560561563565566567568 v569— 5/1572573- 574select * from automated_report_results where neportond IN (18, 35);select * from activity_searches where 1d = 10932*select * trom acuvity_search_tiluers where aculvity_searcn_1d = 10752;select * trom aucomaced_reports order dy za desciselect * trom aucomaced_report_resulus order by za desc,select x TroIautomated_report_results where report id IN (37);select * from users where id IN (7160. 32480:SELECT * FROM automated_reports WHERE uuid_to_bin('18a06a75-afd2-476f-aadc-14d4057bdda2') = wuid;return responseo->1son (l'success = true.'message' => sprintflformat: "s 1s successfully connected',Providers::getintegratzonAppProv1derLabel(srealProviderKey)Local changesShelfConcoleLog XChanges 8 files= .env.local appActivityController.php app/Http/Controllers/API© JiminnyDebugCommand.php app/Console/Commandspip logging.pnp contigC) PlaybackService.php app/services(C) ReportController.php app/Http/Controllers/Webhook(C SyncTolntercom.php app/Jobs/Teampip web.one roules›Unversioned Files 8 filesSide-by-side viewerDo not ignoreHighlight words* 15@a0a9685c app/Jobs/Team/SyncTolntercom.phg\Jiminny \Jobs\Team > SyncTolntercomIntercomService SintercomService,ActivityProv1derReg1stry sactivityProv1derReg1stry.TeamRepos1tory steamRepos1tory,: VOld&steam = schis->ceam;// we don't want to sync parcher accounts to Incercom.if ($team->isPartnerDefault( === false) (recurnrcurrent version(Jiminny \Jobs\Team > SyncTolntercom vIntercomService SintercomService.ActivityProviderregistry sactivityProviderRegistry,TeamRepository steamRepository,): void {return;pteam = schis->ceam;// We don't want to sync partner accounts to Intercom.if (Steam->isPartnerDefaultO === false) «return,$crm = Steam->getCrmConfiqurationO:Create remote IntercomcolllpallysintercomService->createCompany(l"name= steam->getName)"company_1d'= $team->getUuid().'size' => $team->seats,"renore created at'= Steam->geccreacedAt()->geclimestamp),$crm = Steam->getCrmConfigurationO:stler = steam->getliero:stlerlltle = stier?->getlitle ?? 'Unknown';// Create remote Intercom company.# Try sonargube cloud for tree / Download sonargube server |/ Learn more // Don't ask again (14 minutes ago)a Support Daily • in 3 h 13 mA]100% 145Thu 16 Apr 11:47:24U AutomatedReportsCommandTest-CascadeIntegration App Conneconnection.disconnected // boolean - false = OAuth completed, tStep 4 - Only if connection.disconnected === false, the backend is called" javascrip'if (connection && connection.disconnected === false) {awalt axlos.post aolvlincecracion-app-connectrStep 5 - Backend integrationAppConnect marks the SocialAccount asconnecredTeanSetuncontroller.0hn:24%-718• php$socialAccount->setAttribute('state', SocialAccount:: STATE_CONNE"soclalAccount→ssavesthas->eventDispatcher->oispatchlnew SocialAccountconnectedssocIt does not call Integration App's APl to verity. It just trusts the frontend.summary — wnat Neeas to be Presenttor the whole ining toWorkWnarWnereMust maveValid JWT tokenSocialAccount.provider user tokenTeam UUlD as id, signedwith correct secret. notProvider nameCRM configuration → RouteProviderl istMust match Integration Appintegration key exactlysocla lAccountrecordDB, provider = "inteCreated during integrationAnnlloken calllPromise resolves disconnected: falseIntegration App SDKUser must complete OAuthin the modaAsk anything (2+L)+ @ CodeClaude Sonnet 4.64 anlerencesWWinasun leams214:45uir-oia 4 spaces...
|
NULL
|
|
23910
|
516
|
48
|
2026-04-15T11:49:39.757189+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776253779757_m1.jpg...
|
Finder
|
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
+FinderFileEditViewGoWindowHelpHomeDMsActivityFile +FinderFileEditViewGoWindowHelpHomeDMsActivityFilesLater..•More+→Search Jiminny IncJiminny ...+# 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 Vasilev XSteliyan GeorgievAdelina Petrova, Ili...P. Adelina PetrovaP. Nikolay Nikolov l®!2 Galya Dimitrova, Ni...#: AppsJira CloudToast# releases8 226 0+MessagesO FilesBookmarksCircleCl APPTodayDeployment successful!Project: appWhen:04/15/202609:51:25Tag:View JobGitHub APP1:53 PM2 new commits pushed tomasterby des-d0344ab16 - JY-20151: Enhance waveformdisplay with talk-to-listen ratio and stylingadjustments3c043232 - Merge pull request #11967from jiminny/JY-20151-add-talk-to-listen-to-the-waveform( jiminny/app Added by GitHubCircleCl APP2:18 PMDeployment Successful!Project: appWhen:04/15/202611:18:51Tag:View JobMessage #releasesAa...NelActivity MonitorAll ProcessesProcess NameWindowServerFirefoxCP Isolated Web ContentFirefoxFirefoxCursorUlViewService (Not Responding)FirefoxCP Isolated Web ContentFirefox GPU HelperFirefoxCP Isolated Web ContentFirefox GPU HelperFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentSlack Helper (Renderer)FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentNotion Calendar Helper (Renderer)claudeNotion Helper (Renderer)FirefoxCP Isolated Web ContentClaude Helper (Renderer)iTerm2FirefoxCP Isolated Web ContentCode Helper (Renderer)FirefoxCP Isolated Web ContentClaudeFirefoxCP Isolated Web ContentMEMORY PRESSURE# Support Daily • in 11 mMem...1,09 GB960,9 MB920,7 MB837,4 MB770,1 MB734,2 MB544,3 MB525,3 MB501,8 MB472,2 MB442,4 MB439,0 MB436,3 MB386,5 MB383,3 MB372,0 MB365,9 MB342,7 MB326,1 MB322,9 MB293,7 MB258,8 MB252,5 MB232,9 MB214,7 MB204,3 MB191,6 MB189,8 MBPhysical Memory:Memory Used:Cached Files:Swap Used:100% (C47Wed 15 Apr 14:49:39CPUMemoryDiskThreads20267383325262429232415252626232315132027152718285925EnergyPorts19 2171267311 20319 542125250125241119123184123124127121119172723131242091 792125247129724123PID40742974801414664842420301467336713801935480352764186335831436524301648173368982654850910114835833605194878561388534048298604917429516,00 GB13,49 GB <2,45 GB2,85 GBApp Memory:Wired Memory:Compressed:NetworkUser_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas5,14 GB2,32 GB5,47 GB...
|
NULL
|
9110068242709861259
|
NULL
|
visual_change
|
ocr
|
NULL
|
+FinderFileEditViewGoWindowHelpHomeDMsActivityFile +FinderFileEditViewGoWindowHelpHomeDMsActivityFilesLater..•More+→Search Jiminny IncJiminny ...+# 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 Vasilev XSteliyan GeorgievAdelina Petrova, Ili...P. Adelina PetrovaP. Nikolay Nikolov l®!2 Galya Dimitrova, Ni...#: AppsJira CloudToast# releases8 226 0+MessagesO FilesBookmarksCircleCl APPTodayDeployment successful!Project: appWhen:04/15/202609:51:25Tag:View JobGitHub APP1:53 PM2 new commits pushed tomasterby des-d0344ab16 - JY-20151: Enhance waveformdisplay with talk-to-listen ratio and stylingadjustments3c043232 - Merge pull request #11967from jiminny/JY-20151-add-talk-to-listen-to-the-waveform( jiminny/app Added by GitHubCircleCl APP2:18 PMDeployment Successful!Project: appWhen:04/15/202611:18:51Tag:View JobMessage #releasesAa...NelActivity MonitorAll ProcessesProcess NameWindowServerFirefoxCP Isolated Web ContentFirefoxFirefoxCursorUlViewService (Not Responding)FirefoxCP Isolated Web ContentFirefox GPU HelperFirefoxCP Isolated Web ContentFirefox GPU HelperFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentSlack Helper (Renderer)FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentNotion Calendar Helper (Renderer)claudeNotion Helper (Renderer)FirefoxCP Isolated Web ContentClaude Helper (Renderer)iTerm2FirefoxCP Isolated Web ContentCode Helper (Renderer)FirefoxCP Isolated Web ContentClaudeFirefoxCP Isolated Web ContentMEMORY PRESSURE# Support Daily • in 11 mMem...1,09 GB960,9 MB920,7 MB837,4 MB770,1 MB734,2 MB544,3 MB525,3 MB501,8 MB472,2 MB442,4 MB439,0 MB436,3 MB386,5 MB383,3 MB372,0 MB365,9 MB342,7 MB326,1 MB322,9 MB293,7 MB258,8 MB252,5 MB232,9 MB214,7 MB204,3 MB191,6 MB189,8 MBPhysical Memory:Memory Used:Cached Files:Swap Used:100% (C47Wed 15 Apr 14:49:39CPUMemoryDiskThreads20267383325262429232415252626232315132027152718285925EnergyPorts19 2171267311 20319 542125250125241119123184123124127121119172723131242091 792125247129724123PID40742974801414664842420301467336713801935480352764186335831436524301648173368982654850910114835833605194878561388534048298604917429516,00 GB13,49 GB <2,45 GB2,85 GBApp Memory:Wired Memory:Compressed:NetworkUser_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas5,14 GB2,32 GB5,47 GB...
|
NULL
|