|
84867
|
2914
|
17
|
2026-05-28T12:01:41.778460+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969701778_m1.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM
11:55 AM
здрасти Васко, може ли един approve
https://github.com/jiminny/app/pull/12136...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 19th at 9:18:56 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12082","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12082","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with white check mark emoji","depth":16,"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 10:29:42 AM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:29 AM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"благодаря","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 11:55:58 AM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:55 AM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти Васко, може ли един approve","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12136","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-4319698547626359871
|
-1280758867518387860
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM
11:55 AM
здрасти Васко, може ли един approve
https://github.com/jiminny/app/pull/12136
FirefoxFileEditViewHistoryBookmarksProfilesToolsDOCKER#_####_#####\###1\#/V~'881DEV (-zsh)O 82-zshWindowHelpN3ec2-user@ip-10-30-129-190:~screenpipe"O ₴4‹ >0 lahl100% <478• Thu 28 May 15:01:41-zshSupport Dailynow - 3-3:15 PM= Notes - Support Daily.C Join Google MeetAmazon Linux 2023 (ECS Optimized)For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecs1closed.31FirefoxVersion 2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update"#_####_#####\\###||\#/for full release and version update infoAmazon Linux 2023 (ECS Optimized)/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
84865
|
NULL
|
NULL
|
NULL
|
|
84866
|
2915
|
18
|
2026-05-28T12:01:41.431202+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969701431_m2.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.026595745,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.5746209,"width":0.023271276,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5969673,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0063164895,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.020944148,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"bounds":{"left":0.67852396,"top":0.10055866,"width":0.008976064,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"bounds":{"left":0.69148934,"top":0.09177973,"width":0.020279255,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"bounds":{"left":0.70079786,"top":0.10055866,"width":0.00831117,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"bounds":{"left":0.71276593,"top":0.09177973,"width":0.010970744,"height":0.030327214},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.015957447,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.007978723,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"bounds":{"left":0.7726064,"top":0.12689546,"width":0.049867023,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"bounds":{"left":0.60738033,"top":0.11572227,"width":0.007978723,"height":0.0071827616},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.11572227,"width":0.007978723,"height":0.0071827616},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"bounds":{"left":0.6180186,"top":0.11572227,"width":0.07114362,"height":0.007980846},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"bounds":{"left":0.60738033,"top":0.13567439,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.13567439,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"bounds":{"left":0.6180186,"top":0.13328013,"width":0.059175532,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 19th at 9:18:56 AM","depth":16,"bounds":{"left":0.60738033,"top":0.15961692,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.15961692,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12082","depth":16,"bounds":{"left":0.6180186,"top":0.15722266,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12082","depth":17,"bounds":{"left":0.6180186,"top":0.15722266,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with white check mark emoji","depth":16,"bounds":{"left":0.6180186,"top":0.1763767,"width":0.014295213,"height":0.01915403},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":17,"bounds":{"left":0.62732714,"top":0.17956904,"width":0.0023271276,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":16,"bounds":{"left":0.6336436,"top":0.1763767,"width":0.011303191,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.6180186,"top":0.20510775,"width":0.027593086,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.6456117,"top":0.20670392,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 10:29:42 AM","depth":15,"bounds":{"left":0.64793885,"top":0.20909816,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:29 AM","depth":16,"bounds":{"left":0.64793885,"top":0.20909816,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"благодаря","depth":16,"bounds":{"left":0.6180186,"top":0.22426178,"width":0.023936171,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
849333927172532272
|
-1262744468470462100
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
@ со)nolsen lsen abessowДохов2ов иниколсо саееисиоли оданаднле ват ие иоледсанивхитало давдекокосос он зоаддси солоесоя млкее накаоошою!uоuсошеNd9S: nalisenlsenHTHLIRNOXD MURMNOTWEHOENa spc желoy seyКДОИЛОИНОХ РАЙ ВОХНЕЯ ОУЕНИДОКІРОКЕРОКЕОКО СООЕССА ПРКОРООДРИЕ НОДАРУКОРД ЧОВРУЛОООНЯ ФЛИВНИКОЯ ПООМИВЕРПОСКОФОДЕ Ч Е ВОСОБРЕИЕЧОД К ОСИНОКОДРЕЗИРОИОНТИНИШЕВЕРОИОСИЕИНУОСВОВИЕЕИДЕКОМЕ РОМООООИКЕНЕ СОВ РОДУТРОЕЕИЕВОККОДНЯМ ЕРХОУХОРОЛЬТКОЛАОЕ ЗОРДОННОХ ВРОЯРООЛИКЕНЕ СОВ РОЛУ РРЕСК РОЗКОКОИЬЯХСОИВЕАЕoeteteindooehuuitilwos.enuenoonuiammI.двсмиnvse n мн MnoteholsensenNolie ahenos seuwieetcoou cewoneddoneh miint ne dhnonNa OoZ nolsen lsen19071/lind/dde/kuuш!//wox'qnuysrsony+ Su4 SaUeSENUes pPwCNOSN^ 09THlGOl XeMo7 nut94990009seolPoee5sooyemeye samee nWUANONOSал Pe1wwora cenvisoozeweis зopolas• елодішію елсуpsuryses oyfediNowol UElOIsCnoUenois yois eCAOSION CUeAaltansenisenoaDsessow PaJduiod wodu dusasnoл-yuee #uoddns #wscop #wopueл #дэхрц-шодеа #39-AUUjCl#ojus-weas-ngl#esueчp-enuaefeoese, posojuybСерцzq"Addey #eJauas #Suussuisus #song *puayped s…***KuurwirЦиржsolowododsieswosexopoydesahUaundweelni^ayа digeedoisagose9eмед еаdud asejetur eubisdoisdyd jouay (aoosued oedisoyaonowodeaya rostavanseieponeunsyedyd sonnugsgereponpunsyeOEOSUDELSEEL4TAUOACAdyaabeuewssesoidetepon aоца зохорuодоскдидиз (сsa/ueuodwoe^dde =^o dinoouos olooehrbed azuewwns30G+MiwooeJe unra Aauaueluudd si ssodose aui pue ano silee toues au e pell au, ui uoncdexo ueXN YaM Z0S1t puenies sitone abuis2nonspaausivibooenenonsouamaneoi oeousnomna pue puonasoot mnes moec cante319202/SO/LZ 3e ENaSION CUENao00000vw0etsw0owuwyrey wopeidtos teuosteewuшr &ROSTBAHAONOSON KOLROWESDe woetos owe ouososP UO bUDIeM "D'a) yonis siab ssapoid pluo auo tIaiP buIyeola ei sayeu беномTun suendom lallesed au8e puesipeddo, Pip non ento xogaotylhosen Unuele sa e4hu hc sahs ti sc c t te.ne esteoae eenoes mmteosatses petenedd aut ui soniss asos aut o mewtuns argeuuees bous e s wohoon whw bo soun poswosonsanssi asour 1o luewwns vous aш an6A Old [e IuItsowooqnurbg1OHпоризмSdeluyul - soupsdy oManiC...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84865
|
2914
|
16
|
2026-05-28T12:01:29.231691+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969689231_m1.jpg...
|
Firefox
|
Jy 20910 schedule parallel update target processin Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app — Work...
|
1
|
github.com/jiminny/app/pull/12130/changes
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Close tab
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
Main menu
Open mode picker, currently 3.1 Pro
Gemini
3.1 Pro
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Copy prompt
Gemini said
Gemini said
Here is a summary of the changes in the provided git diff for
UpdateProcessManagerTest.php
:
Structural and Dependency Changes
Structural and Dependency Changes
Replaced Datadog:
Removed the
ChaseConey\LaravelDatadogHelper\Datadog
dependency and replaced it with
Jiminny\Component\ES\ReindexTargetStatsReporter
.
Added Constants and Properties:
Introduced a new
ENVIRONMENT
constant (set to
'testing'
) and a
$statsReporter
property to hold the mock for the new stats reporter.
Processor Instantiation:
Updated the
getProcessor()
method to inject the new
$statsReporter
mock into the
UpdateProcessManager
and utilize the
ENVIRONMENT
constant.
Test Case Modifications
Test Case Modifications
Removed Memory Logging Tests:
Deleted
testLogMemoryUsageEmitsGaugeWhenLockIsAbsent
and
testLogMemoryUsageSkipsGaugeWhenLockIsPresent
entirely, as the Redis lock and Datadog gauge logic were removed.
Added Empty Selection Test:
Introduced
testEmptySelectionLogsAndReturnsFalse
to verify that processing an empty selection logs a debug message, skips batch manager operations (
generateName
,
scheduleWork
,
finishWork
), skips the stats reporter, and cleanly returns
false
.
Updated Existing Tests:
Modified
testRunUpdate
and
testRunDoUpdateButThrottled
to assert that the
$statsReporter->report()
method is called and to utilize the updated status manager mock.
Helper Method Refactoring
Helper Method Refactoring
Dynamic Status Manager Assertions:
Updated the
prepareStatusManager(int $invokeTimes = 0)
method to accept an integer. This allows tests to dynamically assert exactly how many times methods like
generateName
,
setUpdateTarget
,
scheduleWork
, and
finishWork
are invoked.
Removed Obsolete Helpers:
Deleted the
prepareLogger()
and
silenceDatadogAndRedisLock()
helper methods, replacing their inline functionality with standard
Log::shouldReceive
expectations where needed.
Good response
Bad response
Share & export...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"BE upgrade libraries","depth":4,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Text relay","depth":4,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Deleted object error","depth":4,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Login | Salesforce","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Login | Salesforce","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"transcript ss issue","depth":4,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Jiminny","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Tab","depth":4,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"on_screen":true,"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,"on_screen":true,"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,"on_screen":true,"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,"on_screen":true,"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,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"AI Chat settings","depth":3,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":3,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Main menu","depth":5,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open mode picker, currently 3.1 Pro","depth":6,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Gemini","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3.1 Pro","depth":11,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Chat","depth":5,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open menu for conversation actions.","depth":5,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Conversation with Gemini","depth":7,"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Conversation with Gemini","depth":8,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\\Unit\\Component\\ES;5namespace Tests\\Unit\\Component\\ES;667-use ChaseConey\\LaravelDatadogHelper\\Datadog;8use Elastica\\Index;7use Elastica\\Index;9use Illuminate\\Support\\Facades\\App;8use Illuminate\\Support\\Facades\\App;10use Illuminate\\Support\\Facades\\Log;9use Illuminate\\Support\\Facades\\Log;@@ -20,6 +19,7 @@20use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;19use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;21use Jiminny\\Component\\ES\\Processor\\UpdateTarget;20use Jiminny\\Component\\ES\\Processor\\UpdateTarget;22use Jiminny\\Component\\ES\\QueuePriorityEnum;21use Jiminny\\Component\\ES\\QueuePriorityEnum;22+use Jiminny\\Component\\ES\\ReindexTargetStatsReporter;23use Jiminny\\Component\\ES\\UpdateProcessManager;23use Jiminny\\Component\\ES\\UpdateProcessManager;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;25use PHPUnit\\Framework\\Attributes\\CoversClass;25use PHPUnit\\Framework\\Attributes\\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \\Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.","depth":13,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"You said","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\\Unit\\Component\\ES;5namespace Tests\\Unit\\Component\\ES;667-use ChaseConey\\LaravelDatadogHelper\\Datadog;8use Elastica\\Index;7use Elastica\\Index;9use Illuminate\\Support\\Facades\\App;8use Illuminate\\Support\\Facades\\App;10use Illuminate\\Support\\Facades\\Log;9use Illuminate\\Support\\Facades\\Log;@@ -20,6 +19,7 @@20use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;19use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;21use Jiminny\\Component\\ES\\Processor\\UpdateTarget;20use Jiminny\\Component\\ES\\Processor\\UpdateTarget;22use Jiminny\\Component\\ES\\QueuePriorityEnum;21use Jiminny\\Component\\ES\\QueuePriorityEnum;22+use Jiminny\\Component\\ES\\ReindexTargetStatsReporter;23use Jiminny\\Component\\ES\\UpdateProcessManager;23use Jiminny\\Component\\ES\\UpdateProcessManager;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;25use PHPUnit\\Framework\\Attributes\\CoversClass;25use PHPUnit\\Framework\\Attributes\\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \\Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Expand","depth":13,"on_screen":false,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Copy prompt","depth":12,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Gemini said","depth":12,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Gemini said","depth":13,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Here is a summary of the changes in the provided git diff for","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UpdateProcessManagerTest.php","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Structural and Dependency Changes","depth":15,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Structural and Dependency Changes","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Replaced Datadog:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Removed the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ChaseConey\\LaravelDatadogHelper\\Datadog","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"dependency and replaced it with","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny\\Component\\ES\\ReindexTargetStatsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Added Constants and Properties:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Introduced a new","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ENVIRONMENT","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"constant (set to","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'testing'","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":") and a","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$statsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"property to hold the mock for the new stats reporter.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Processor Instantiation:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"getProcessor()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"method to inject the new","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$statsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mock into the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UpdateProcessManager","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and utilize the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ENVIRONMENT","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"constant.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Test Case Modifications","depth":15,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Test Case Modifications","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Removed Memory Logging Tests:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deleted","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testLogMemoryUsageEmitsGaugeWhenLockIsAbsent","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testLogMemoryUsageSkipsGaugeWhenLockIsPresent","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"entirely, as the Redis lock and Datadog gauge logic were removed.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Added Empty Selection Test:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Introduced","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testEmptySelectionLogsAndReturnsFalse","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to verify that processing an empty selection logs a debug message, skips batch manager operations (","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"generateName","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleWork","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"finishWork","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"), skips the stats reporter, and cleanly returns","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"false","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated Existing Tests:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Modified","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testRunUpdate","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testRunDoUpdateButThrottled","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to assert that the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$statsReporter->report()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"method is called and to utilize the updated status manager mock.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Helper Method Refactoring","depth":15,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Helper Method Refactoring","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Dynamic Status Manager Assertions:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"prepareStatusManager(int $invokeTimes = 0)","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"method to accept an integer. This allows tests to dynamically assert exactly how many times methods like","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"generateName","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"setUpdateTarget","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleWork","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", and","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"finishWork","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"are invoked.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Removed Obsolete Helpers:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deleted the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"prepareLogger()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"silenceDatadogAndRedisLock()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"helper methods, replacing their inline functionality with standard","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Log::shouldReceive","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"expectations where needed.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Good response","depth":15,"on_screen":false,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Bad response","depth":15,"on_screen":false,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Share & export","depth":14,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
8316739313118030763
|
-3114910844299218812
|
click
|
accessibility
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Close tab
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
Main menu
Open mode picker, currently 3.1 Pro
Gemini
3.1 Pro
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Copy prompt
Gemini said
Gemini said
Here is a summary of the changes in the provided git diff for
UpdateProcessManagerTest.php
:
Structural and Dependency Changes
Structural and Dependency Changes
Replaced Datadog:
Removed the
ChaseConey\LaravelDatadogHelper\Datadog
dependency and replaced it with
Jiminny\Component\ES\ReindexTargetStatsReporter
.
Added Constants and Properties:
Introduced a new
ENVIRONMENT
constant (set to
'testing'
) and a
$statsReporter
property to hold the mock for the new stats reporter.
Processor Instantiation:
Updated the
getProcessor()
method to inject the new
$statsReporter
mock into the
UpdateProcessManager
and utilize the
ENVIRONMENT
constant.
Test Case Modifications
Test Case Modifications
Removed Memory Logging Tests:
Deleted
testLogMemoryUsageEmitsGaugeWhenLockIsAbsent
and
testLogMemoryUsageSkipsGaugeWhenLockIsPresent
entirely, as the Redis lock and Datadog gauge logic were removed.
Added Empty Selection Test:
Introduced
testEmptySelectionLogsAndReturnsFalse
to verify that processing an empty selection logs a debug message, skips batch manager operations (
generateName
,
scheduleWork
,
finishWork
), skips the stats reporter, and cleanly returns
false
.
Updated Existing Tests:
Modified
testRunUpdate
and
testRunDoUpdateButThrottled
to assert that the
$statsReporter->report()
method is called and to utilize the updated status manager mock.
Helper Method Refactoring
Helper Method Refactoring
Dynamic Status Manager Assertions:
Updated the
prepareStatusManager(int $invokeTimes = 0)
method to accept an integer. This allows tests to dynamically assert exactly how many times methods like
generateName
,
setUpdateTarget
,
scheduleWork
, and
finishWork
are invoked.
Removed Obsolete Helpers:
Deleted the
prepareLogger()
and
silenceDatadogAndRedisLock()
helper methods, replacing their inline functionality with standard
Log::shouldReceive
expectations where needed.
Good response
Bad response
Share & export...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84864
|
2915
|
17
|
2026-05-28T12:01:29.136125+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969689136_m2.jpg...
|
Firefox
|
Jy 20910 schedule parallel update target processin Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app — Work...
|
1
|
github.com/jiminny/app/pull/12130/changes
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Close tab
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0018284575,"top":0.0518755,"width":0.038065158,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"bounds":{"left":0.039893616,"top":0.0518755,"width":0.037898935,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.09497207,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.10614525,"width":0.039228722,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"BE upgrade libraries","depth":4,"bounds":{"left":0.0028257978,"top":0.13288109,"width":0.03939495,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":4,"bounds":{"left":0.0,"top":0.15203512,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.1632083,"width":0.12799202,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Text relay","depth":4,"bounds":{"left":0.0028257978,"top":0.18994413,"width":0.020279255,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Deleted object error","depth":4,"bounds":{"left":0.0028257978,"top":0.21428572,"width":0.039228722,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":4,"bounds":{"left":0.0028257978,"top":0.23782921,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":5,"bounds":{"left":0.015957447,"top":0.2490024,"width":0.11402926,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":4,"bounds":{"left":0.0028257978,"top":0.27055067,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":5,"bounds":{"left":0.015957447,"top":0.28172386,"width":0.14245346,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Login | Salesforce","depth":4,"bounds":{"left":0.0,"top":0.30327216,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Login | Salesforce","depth":5,"bounds":{"left":0.013297873,"top":0.31444532,"width":0.030917553,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":4,"bounds":{"left":0.0,"top":0.33599362,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":5,"bounds":{"left":0.013297873,"top":0.3471668,"width":0.24301861,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.0,"top":0.36871508,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.013297873,"top":0.37988827,"width":0.09740692,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":4,"bounds":{"left":0.0,"top":0.40143654,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.41260973,"width":0.08543883,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.43415803,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.44533122,"width":0.013131649,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0,"top":0.4668795,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.47805268,"width":0.10106383,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"transcript ss issue","depth":4,"bounds":{"left":0.0028257978,"top":0.5047885,"width":0.036070477,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0028257978,"top":0.528332,"width":0.07679521,"height":0.032721467},"on_screen":true,"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.015957447,"top":0.5395052,"width":0.013297873,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"bounds":{"left":0.0028257978,"top":0.56105345,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":5,"bounds":{"left":0.015957447,"top":0.57222664,"width":0.1271609,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":4,"bounds":{"left":0.0028257978,"top":0.5937749,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":5,"bounds":{"left":0.015957447,"top":0.6049481,"width":0.12799202,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":4,"bounds":{"left":0.0028257978,"top":0.62649643,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":5,"bounds":{"left":0.015957447,"top":0.63766956,"width":0.12134308,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.6592179,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.6703911,"width":0.013131649,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.69193935,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.70311254,"width":0.18201463,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.06732048,"top":0.69912213,"width":0.007978723,"height":0.01915403},"on_screen":true,"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.72625697,"width":0.07413564,"height":0.025538707},"on_screen":true,"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},"on_screen":true,"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.013796543,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"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},"on_screen":true,"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},"on_screen":true,"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},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"AI Chat settings","depth":3,"bounds":{"left":0.35854387,"top":0.055067837,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":3,"bounds":{"left":0.37051198,"top":0.055067837,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
426904441491657512
|
-3105408620207737629
|
click
|
accessibility
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Close tab
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close...
|
84863
|
NULL
|
NULL
|
NULL
|
|
84863
|
2915
|
16
|
2026-05-28T12:01:25.930361+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969685930_m2.jpg...
|
Firefox
|
Jy 20910 schedule parallel update target processin Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app — Work...
|
1
|
github.com/jiminny/app/pull/12130/changes
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Close tab
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
Main menu
Open mode picker, currently 3.1 Pro
Gemini
3.1 Pro
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Copy prompt
Gemini said
Gemini said
Here is a summary of the changes in the provided git diff for
UpdateProcessManagerTest.php
:
Structural and Dependency Changes
Structural and Dependency Changes
Replaced Datadog:
Removed the
ChaseConey\LaravelDatadogHelper\Datadog
dependency and replaced it with
Jiminny\Component\ES\ReindexTargetStatsReporter
.
Added Constants and Properties:
Introduced a new
ENVIRONMENT
constant (set to
'testing'
) and a
$statsReporter
property to hold the mock for the new stats reporter.
Processor Instantiation:
Updated the
getProcessor()
method to inject the new
$statsReporter
mock into the
UpdateProcessManager
and utilize the
ENVIRONMENT
constant.
Test Case Modifications
Test Case Modifications
Removed Memory Logging Tests:
Deleted
testLogMemoryUsageEmitsGaugeWhenLockIsAbsent
and
testLogMemoryUsageSkipsGaugeWhenLockIsPresent
entirely, as the Redis lock and Datadog gauge logic were removed.
Added Empty Selection Test:
Introduced
testEmptySelectionLogsAndReturnsFalse
to verify that processing an empty selection logs a debug message, skips batch manager operations (
generateName
,
scheduleWork
,
finishWork
), skips the stats reporter, and cleanly returns
false
.
Updated Existing Tests:
Modified
testRunUpdate
and
testRunDoUpdateButThrottled
to assert that the
$statsReporter->report()
method is called and to utilize the updated status manager mock.
Helper Method Refactoring
Helper Method Refactoring
Dynamic Status Manager Assertions:
Updated the
prepareStatusManager(int $invokeTimes = 0)
method to accept an integer. This allows tests to dynamically assert exactly how many times methods like
generateName
,
setUpdateTarget
,
scheduleWork
, and
finishWork
are invoked.
Removed Obsolete Helpers:
Deleted the
prepareLogger()
and
silenceDatadogAndRedisLock()
helper methods, replacing their inline functionality with standard
Log::shouldReceive
expectations where needed.
Good response
Bad response
Share & export
Copy
Show more options
You said find potential issues
You said
find potential issues
Copy prompt
Gemini said
Gemini said
Based on the provided git diff of
UpdateProcessManagerTest.php
, here are the potential issues, risks, and improvements identified in the changes:
1. Missing setUpdateTarget Expectation in testEmptySelectionLogsAndReturnsFalse
1. Missing
setUpdateTarget
Expectation in...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0018284575,"top":0.0518755,"width":0.038065158,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"bounds":{"left":0.039893616,"top":0.0518755,"width":0.037898935,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.09497207,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.10614525,"width":0.039228722,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"BE upgrade libraries","depth":4,"bounds":{"left":0.0028257978,"top":0.13288109,"width":0.03939495,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":4,"bounds":{"left":0.0,"top":0.15203512,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.1632083,"width":0.12799202,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Text relay","depth":4,"bounds":{"left":0.0028257978,"top":0.18994413,"width":0.020279255,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Deleted object error","depth":4,"bounds":{"left":0.0028257978,"top":0.21428572,"width":0.039228722,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":4,"bounds":{"left":0.0028257978,"top":0.23782921,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":5,"bounds":{"left":0.015957447,"top":0.2490024,"width":0.11402926,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":4,"bounds":{"left":0.0028257978,"top":0.27055067,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":5,"bounds":{"left":0.015957447,"top":0.28172386,"width":0.14245346,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Login | Salesforce","depth":4,"bounds":{"left":0.0,"top":0.30327216,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Login | Salesforce","depth":5,"bounds":{"left":0.013297873,"top":0.31444532,"width":0.030917553,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":4,"bounds":{"left":0.0,"top":0.33599362,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":5,"bounds":{"left":0.013297873,"top":0.3471668,"width":0.24301861,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.0,"top":0.36871508,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.013297873,"top":0.37988827,"width":0.09740692,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":4,"bounds":{"left":0.0,"top":0.40143654,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.41260973,"width":0.08543883,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.43415803,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.44533122,"width":0.013131649,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0,"top":0.4668795,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.47805268,"width":0.10106383,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"transcript ss issue","depth":4,"bounds":{"left":0.0028257978,"top":0.5047885,"width":0.036070477,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0028257978,"top":0.528332,"width":0.07679521,"height":0.032721467},"on_screen":true,"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.015957447,"top":0.5395052,"width":0.013297873,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"bounds":{"left":0.0028257978,"top":0.56105345,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":5,"bounds":{"left":0.015957447,"top":0.57222664,"width":0.1271609,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":4,"bounds":{"left":0.0028257978,"top":0.5937749,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":5,"bounds":{"left":0.015957447,"top":0.6049481,"width":0.12799202,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":4,"bounds":{"left":0.0028257978,"top":0.62649643,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":5,"bounds":{"left":0.015957447,"top":0.63766956,"width":0.12134308,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.6592179,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.6703911,"width":0.013131649,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.69193935,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.70311254,"width":0.18201463,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.06732048,"top":0.69912213,"width":0.007978723,"height":0.01915403},"on_screen":true,"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.72625697,"width":0.07413564,"height":0.025538707},"on_screen":true,"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},"on_screen":true,"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.013796543,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"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},"on_screen":true,"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},"on_screen":true,"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},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"AI Chat settings","depth":3,"bounds":{"left":0.35854387,"top":0.055067837,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":3,"bounds":{"left":0.37051198,"top":0.055067837,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Main menu","depth":5,"bounds":{"left":0.08228058,"top":0.09736632,"width":0.015957447,"height":0.03830806},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open mode picker, currently 3.1 Pro","depth":6,"bounds":{"left":0.09823803,"top":0.10694334,"width":0.047539894,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Gemini","depth":13,"bounds":{"left":0.1022274,"top":0.10853951,"width":0.017121011,"height":0.016360734},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3.1 Pro","depth":11,"bounds":{"left":0.12084442,"top":0.10853951,"width":0.013796543,"height":0.015961692},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Chat","depth":5,"bounds":{"left":0.35854387,"top":0.10215483,"width":0.011968086,"height":0.028731046},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open menu for conversation actions.","depth":5,"bounds":{"left":0.37051198,"top":0.10215483,"width":0.011968086,"height":0.028731046},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Conversation with Gemini","depth":7,"bounds":{"left":0.079288565,"top":0.14445332,"width":0.0003324468,"height":0.0007980846},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Conversation with Gemini","depth":8,"bounds":{"left":0.079288565,"top":0.14684756,"width":0.1200133,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\\Unit\\Component\\ES;5namespace Tests\\Unit\\Component\\ES;667-use ChaseConey\\LaravelDatadogHelper\\Datadog;8use Elastica\\Index;7use Elastica\\Index;9use Illuminate\\Support\\Facades\\App;8use Illuminate\\Support\\Facades\\App;10use Illuminate\\Support\\Facades\\Log;9use Illuminate\\Support\\Facades\\Log;@@ -20,6 +19,7 @@20use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;19use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;21use Jiminny\\Component\\ES\\Processor\\UpdateTarget;20use Jiminny\\Component\\ES\\Processor\\UpdateTarget;22use Jiminny\\Component\\ES\\QueuePriorityEnum;21use Jiminny\\Component\\ES\\QueuePriorityEnum;22+use Jiminny\\Component\\ES\\ReindexTargetStatsReporter;23use Jiminny\\Component\\ES\\UpdateProcessManager;23use Jiminny\\Component\\ES\\UpdateProcessManager;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;25use PHPUnit\\Framework\\Attributes\\CoversClass;25use PHPUnit\\Framework\\Attributes\\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \\Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.","depth":13,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"You said","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\\Unit\\Component\\ES;5namespace Tests\\Unit\\Component\\ES;667-use ChaseConey\\LaravelDatadogHelper\\Datadog;8use Elastica\\Index;7use Elastica\\Index;9use Illuminate\\Support\\Facades\\App;8use Illuminate\\Support\\Facades\\App;10use Illuminate\\Support\\Facades\\Log;9use Illuminate\\Support\\Facades\\Log;@@ -20,6 +19,7 @@20use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;19use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;21use Jiminny\\Component\\ES\\Processor\\UpdateTarget;20use Jiminny\\Component\\ES\\Processor\\UpdateTarget;22use Jiminny\\Component\\ES\\QueuePriorityEnum;21use Jiminny\\Component\\ES\\QueuePriorityEnum;22+use Jiminny\\Component\\ES\\ReindexTargetStatsReporter;23use Jiminny\\Component\\ES\\UpdateProcessManager;23use Jiminny\\Component\\ES\\UpdateProcessManager;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;25use PHPUnit\\Framework\\Attributes\\CoversClass;25use PHPUnit\\Framework\\Attributes\\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \\Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Expand","depth":13,"on_screen":false,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Copy prompt","depth":12,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Gemini said","depth":12,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Gemini said","depth":13,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Here is a summary of the changes in the provided git diff for","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UpdateProcessManagerTest.php","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Structural and Dependency Changes","depth":15,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Structural and Dependency Changes","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Replaced Datadog:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Removed the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ChaseConey\\LaravelDatadogHelper\\Datadog","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"dependency and replaced it with","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny\\Component\\ES\\ReindexTargetStatsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Added Constants and Properties:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Introduced a new","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ENVIRONMENT","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"constant (set to","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'testing'","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":") and a","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$statsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"property to hold the mock for the new stats reporter.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Processor Instantiation:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"getProcessor()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"method to inject the new","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$statsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mock into the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UpdateProcessManager","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and utilize the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ENVIRONMENT","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"constant.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Test Case Modifications","depth":15,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Test Case Modifications","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Removed Memory Logging Tests:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deleted","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testLogMemoryUsageEmitsGaugeWhenLockIsAbsent","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testLogMemoryUsageSkipsGaugeWhenLockIsPresent","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"entirely, as the Redis lock and Datadog gauge logic were removed.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Added Empty Selection Test:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Introduced","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testEmptySelectionLogsAndReturnsFalse","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to verify that processing an empty selection logs a debug message, skips batch manager operations (","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"generateName","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleWork","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"finishWork","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"), skips the stats reporter, and cleanly returns","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"false","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated Existing Tests:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Modified","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testRunUpdate","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testRunDoUpdateButThrottled","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to assert that the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$statsReporter->report()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"method is called and to utilize the updated status manager mock.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Helper Method Refactoring","depth":15,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Helper Method Refactoring","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Dynamic Status Manager Assertions:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"prepareStatusManager(int $invokeTimes = 0)","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"method to accept an integer. This allows tests to dynamically assert exactly how many times methods like","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"generateName","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"setUpdateTarget","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleWork","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", and","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"finishWork","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"are invoked.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Removed Obsolete Helpers:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deleted the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"prepareLogger()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"silenceDatadogAndRedisLock()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"helper methods, replacing their inline functionality with standard","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Log::shouldReceive","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"expectations where needed.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Good response","depth":15,"on_screen":false,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Bad response","depth":15,"on_screen":false,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Share & export","depth":14,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Copy","depth":15,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Show more options","depth":14,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"You said find potential issues","depth":13,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"You said","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"find potential issues","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy prompt","depth":12,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Gemini said","depth":12,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Gemini said","depth":13,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Based on the provided git diff of","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UpdateProcessManagerTest.php","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", here are the potential issues, risks, and improvements identified in the changes:","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"1. Missing setUpdateTarget Expectation in testEmptySelectionLogsAndReturnsFalse","depth":15,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1. Missing","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"setUpdateTarget","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Expectation in","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
6205363060592581292
|
-3114347894345797500
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Close tab
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
Main menu
Open mode picker, currently 3.1 Pro
Gemini
3.1 Pro
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Copy prompt
Gemini said
Gemini said
Here is a summary of the changes in the provided git diff for
UpdateProcessManagerTest.php
:
Structural and Dependency Changes
Structural and Dependency Changes
Replaced Datadog:
Removed the
ChaseConey\LaravelDatadogHelper\Datadog
dependency and replaced it with
Jiminny\Component\ES\ReindexTargetStatsReporter
.
Added Constants and Properties:
Introduced a new
ENVIRONMENT
constant (set to
'testing'
) and a
$statsReporter
property to hold the mock for the new stats reporter.
Processor Instantiation:
Updated the
getProcessor()
method to inject the new
$statsReporter
mock into the
UpdateProcessManager
and utilize the
ENVIRONMENT
constant.
Test Case Modifications
Test Case Modifications
Removed Memory Logging Tests:
Deleted
testLogMemoryUsageEmitsGaugeWhenLockIsAbsent
and
testLogMemoryUsageSkipsGaugeWhenLockIsPresent
entirely, as the Redis lock and Datadog gauge logic were removed.
Added Empty Selection Test:
Introduced
testEmptySelectionLogsAndReturnsFalse
to verify that processing an empty selection logs a debug message, skips batch manager operations (
generateName
,
scheduleWork
,
finishWork
), skips the stats reporter, and cleanly returns
false
.
Updated Existing Tests:
Modified
testRunUpdate
and
testRunDoUpdateButThrottled
to assert that the
$statsReporter->report()
method is called and to utilize the updated status manager mock.
Helper Method Refactoring
Helper Method Refactoring
Dynamic Status Manager Assertions:
Updated the
prepareStatusManager(int $invokeTimes = 0)
method to accept an integer. This allows tests to dynamically assert exactly how many times methods like
generateName
,
setUpdateTarget
,
scheduleWork
, and
finishWork
are invoked.
Removed Obsolete Helpers:
Deleted the
prepareLogger()
and
silenceDatadogAndRedisLock()
helper methods, replacing their inline functionality with standard
Log::shouldReceive
expectations where needed.
Good response
Bad response
Share & export
Copy
Show more options
You said find potential issues
You said
find potential issues
Copy prompt
Gemini said
Gemini said
Based on the provided git diff of
UpdateProcessManagerTest.php
, here are the potential issues, risks, and improvements identified in the changes:
1. Missing setUpdateTarget Expectation in testEmptySelectionLogsAndReturnsFalse
1. Missing
setUpdateTarget
Expectation in...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84862
|
2915
|
15
|
2026-05-28T12:01:21.931405+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969681931_m2.jpg...
|
Firefox
|
Jy 20910 schedule parallel update target processin Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app — Work...
|
1
|
github.com/jiminny/app/pull/12130/commits
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Close tab
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
Main menu
Open mode picker, currently 3.1 Pro
Gemini
3.1 Pro
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Copy prompt
Gemini said
Gemini said
Here is a summary of the changes in the provided git diff for
UpdateProcessManagerTest.php
:
Structural and Dependency Changes
Structural and Dependency Changes
Replaced Datadog:
Removed the
ChaseConey\LaravelDatadogHelper\Datadog
dependency and replaced it with
Jiminny\Component\ES\ReindexTargetStatsReporter
.
Added Constants and Properties:
Introduced a new
ENVIRONMENT
constant (set to
'testing'
) and a
$statsReporter
property to hold the mock for the new stats reporter.
Processor Instantiation:
Updated the
getProcessor()
method to inject the new
$statsReporter
mock into the
UpdateProcessManager
and utilize the
ENVIRONMENT
constant.
Test Case Modifications
Test Case Modifications
Removed Memory Logging Tests:
Deleted
testLogMemoryUsageEmitsGaugeWhenLockIsAbsent
and
testLogMemoryUsageSkipsGaugeWhenLockIsPresent
entirely, as the Redis lock and Datadog gauge logic were removed.
Added Empty Selection Test:
Introduced
testEmptySelectionLogsAndReturnsFalse
to verify that processing an empty selection logs a debug message, skips batch manager operations (
generateName
,
scheduleWork
,
finishWork
), skips the stats reporter, and cleanly returns
false
.
Updated Existing Tests:
Modified
testRunUpdate
and
testRunDoUpdateButThrottled
to assert that the
$statsReporter->report()
method is called and to utilize the updated status manager mock.
Helper Method Refactoring
Helper Method Refactoring
Dynamic Status Manager Assertions:
Updated the
prepareStatusManager(int $invokeTimes = 0)
method to accept an integer. This allows tests to dynamically assert exactly how many times methods like
generateName
,
setUpdateTarget
,
scheduleWork
, and
finishWork
are invoked.
Removed Obsolete Helpers:
Deleted the
prepareLogger()
and
silenceDatadogAndRedisLock()
helper methods, replacing their inline functionality with standard
Log::shouldReceive
expectations where needed.
Good response
Bad response
Share & export
Copy
Show more options
You said find potential issues
You said
find potential issues...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0018284575,"top":0.0518755,"width":0.038065158,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"bounds":{"left":0.039893616,"top":0.0518755,"width":0.037898935,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.09497207,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.10614525,"width":0.039228722,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"BE upgrade libraries","depth":4,"bounds":{"left":0.0028257978,"top":0.13288109,"width":0.03939495,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":4,"bounds":{"left":0.0,"top":0.15203512,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.1632083,"width":0.12799202,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Text relay","depth":4,"bounds":{"left":0.0028257978,"top":0.18994413,"width":0.020279255,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Deleted object error","depth":4,"bounds":{"left":0.0028257978,"top":0.21428572,"width":0.039228722,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":4,"bounds":{"left":0.0028257978,"top":0.23782921,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":5,"bounds":{"left":0.015957447,"top":0.2490024,"width":0.11402926,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":4,"bounds":{"left":0.0028257978,"top":0.27055067,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":5,"bounds":{"left":0.015957447,"top":0.28172386,"width":0.14245346,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Login | Salesforce","depth":4,"bounds":{"left":0.0,"top":0.30327216,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Login | Salesforce","depth":5,"bounds":{"left":0.013297873,"top":0.31444532,"width":0.030917553,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":4,"bounds":{"left":0.0,"top":0.33599362,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":5,"bounds":{"left":0.013297873,"top":0.3471668,"width":0.24301861,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.0,"top":0.36871508,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.013297873,"top":0.37988827,"width":0.09740692,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":4,"bounds":{"left":0.0,"top":0.40143654,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.41260973,"width":0.08543883,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.43415803,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.44533122,"width":0.013131649,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0,"top":0.4668795,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.47805268,"width":0.10106383,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"transcript ss issue","depth":4,"bounds":{"left":0.0028257978,"top":0.5047885,"width":0.036070477,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0028257978,"top":0.528332,"width":0.07679521,"height":0.032721467},"on_screen":true,"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.015957447,"top":0.5395052,"width":0.013297873,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"bounds":{"left":0.0028257978,"top":0.56105345,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":5,"bounds":{"left":0.015957447,"top":0.57222664,"width":0.1271609,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":4,"bounds":{"left":0.0028257978,"top":0.5937749,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":5,"bounds":{"left":0.015957447,"top":0.6049481,"width":0.12799202,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":4,"bounds":{"left":0.0028257978,"top":0.62649643,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":5,"bounds":{"left":0.015957447,"top":0.63766956,"width":0.12134308,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.6592179,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.6703911,"width":0.013131649,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.69193935,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.70311254,"width":0.18201463,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.06732048,"top":0.69912213,"width":0.007978723,"height":0.01915403},"on_screen":true,"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.72625697,"width":0.07413564,"height":0.025538707},"on_screen":true,"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},"on_screen":true,"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.013796543,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"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},"on_screen":true,"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},"on_screen":true,"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},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"AI Chat settings","depth":3,"bounds":{"left":0.35854387,"top":0.055067837,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":3,"bounds":{"left":0.37051198,"top":0.055067837,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Main menu","depth":5,"bounds":{"left":0.08228058,"top":0.09736632,"width":0.015957447,"height":0.03830806},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open mode picker, currently 3.1 Pro","depth":6,"bounds":{"left":0.09823803,"top":0.10694334,"width":0.047539894,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Gemini","depth":13,"bounds":{"left":0.1022274,"top":0.10853951,"width":0.017121011,"height":0.016360734},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3.1 Pro","depth":11,"bounds":{"left":0.12084442,"top":0.10853951,"width":0.013796543,"height":0.015961692},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Chat","depth":5,"bounds":{"left":0.35854387,"top":0.10215483,"width":0.011968086,"height":0.028731046},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open menu for conversation actions.","depth":5,"bounds":{"left":0.37051198,"top":0.10215483,"width":0.011968086,"height":0.028731046},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Conversation with Gemini","depth":7,"bounds":{"left":0.079288565,"top":0.14445332,"width":0.0003324468,"height":0.0007980846},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Conversation with Gemini","depth":8,"bounds":{"left":0.079288565,"top":0.14684756,"width":0.1200133,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\\Unit\\Component\\ES;5namespace Tests\\Unit\\Component\\ES;667-use ChaseConey\\LaravelDatadogHelper\\Datadog;8use Elastica\\Index;7use Elastica\\Index;9use Illuminate\\Support\\Facades\\App;8use Illuminate\\Support\\Facades\\App;10use Illuminate\\Support\\Facades\\Log;9use Illuminate\\Support\\Facades\\Log;@@ -20,6 +19,7 @@20use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;19use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;21use Jiminny\\Component\\ES\\Processor\\UpdateTarget;20use Jiminny\\Component\\ES\\Processor\\UpdateTarget;22use Jiminny\\Component\\ES\\QueuePriorityEnum;21use Jiminny\\Component\\ES\\QueuePriorityEnum;22+use Jiminny\\Component\\ES\\ReindexTargetStatsReporter;23use Jiminny\\Component\\ES\\UpdateProcessManager;23use Jiminny\\Component\\ES\\UpdateProcessManager;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;25use PHPUnit\\Framework\\Attributes\\CoversClass;25use PHPUnit\\Framework\\Attributes\\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \\Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.","depth":13,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"You said","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\\Unit\\Component\\ES;5namespace Tests\\Unit\\Component\\ES;667-use ChaseConey\\LaravelDatadogHelper\\Datadog;8use Elastica\\Index;7use Elastica\\Index;9use Illuminate\\Support\\Facades\\App;8use Illuminate\\Support\\Facades\\App;10use Illuminate\\Support\\Facades\\Log;9use Illuminate\\Support\\Facades\\Log;@@ -20,6 +19,7 @@20use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;19use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;21use Jiminny\\Component\\ES\\Processor\\UpdateTarget;20use Jiminny\\Component\\ES\\Processor\\UpdateTarget;22use Jiminny\\Component\\ES\\QueuePriorityEnum;21use Jiminny\\Component\\ES\\QueuePriorityEnum;22+use Jiminny\\Component\\ES\\ReindexTargetStatsReporter;23use Jiminny\\Component\\ES\\UpdateProcessManager;23use Jiminny\\Component\\ES\\UpdateProcessManager;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;25use PHPUnit\\Framework\\Attributes\\CoversClass;25use PHPUnit\\Framework\\Attributes\\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \\Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Expand","depth":13,"on_screen":false,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Copy prompt","depth":12,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Gemini said","depth":12,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Gemini said","depth":13,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Here is a summary of the changes in the provided git diff for","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UpdateProcessManagerTest.php","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Structural and Dependency Changes","depth":15,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Structural and Dependency Changes","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Replaced Datadog:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Removed the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ChaseConey\\LaravelDatadogHelper\\Datadog","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"dependency and replaced it with","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny\\Component\\ES\\ReindexTargetStatsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Added Constants and Properties:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Introduced a new","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ENVIRONMENT","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"constant (set to","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'testing'","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":") and a","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$statsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"property to hold the mock for the new stats reporter.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Processor Instantiation:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"getProcessor()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"method to inject the new","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$statsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mock into the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UpdateProcessManager","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and utilize the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ENVIRONMENT","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"constant.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Test Case Modifications","depth":15,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Test Case Modifications","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Removed Memory Logging Tests:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deleted","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testLogMemoryUsageEmitsGaugeWhenLockIsAbsent","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testLogMemoryUsageSkipsGaugeWhenLockIsPresent","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"entirely, as the Redis lock and Datadog gauge logic were removed.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Added Empty Selection Test:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Introduced","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testEmptySelectionLogsAndReturnsFalse","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to verify that processing an empty selection logs a debug message, skips batch manager operations (","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"generateName","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleWork","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"finishWork","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"), skips the stats reporter, and cleanly returns","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"false","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated Existing Tests:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Modified","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testRunUpdate","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testRunDoUpdateButThrottled","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to assert that the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$statsReporter->report()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"method is called and to utilize the updated status manager mock.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Helper Method Refactoring","depth":15,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Helper Method Refactoring","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Dynamic Status Manager Assertions:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"prepareStatusManager(int $invokeTimes = 0)","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"method to accept an integer. This allows tests to dynamically assert exactly how many times methods like","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"generateName","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"setUpdateTarget","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleWork","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", and","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"finishWork","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"are invoked.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Removed Obsolete Helpers:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deleted the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"prepareLogger()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"silenceDatadogAndRedisLock()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"helper methods, replacing their inline functionality with standard","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Log::shouldReceive","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"expectations where needed.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Good response","depth":15,"on_screen":false,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Bad response","depth":15,"on_screen":false,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Share & export","depth":14,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Copy","depth":15,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Show more options","depth":14,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"You said find potential issues","depth":13,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"You said","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"find potential issues","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
3074199837489611954
|
-3114910844299218812
|
click
|
accessibility
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Close tab
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
Main menu
Open mode picker, currently 3.1 Pro
Gemini
3.1 Pro
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Copy prompt
Gemini said
Gemini said
Here is a summary of the changes in the provided git diff for
UpdateProcessManagerTest.php
:
Structural and Dependency Changes
Structural and Dependency Changes
Replaced Datadog:
Removed the
ChaseConey\LaravelDatadogHelper\Datadog
dependency and replaced it with
Jiminny\Component\ES\ReindexTargetStatsReporter
.
Added Constants and Properties:
Introduced a new
ENVIRONMENT
constant (set to
'testing'
) and a
$statsReporter
property to hold the mock for the new stats reporter.
Processor Instantiation:
Updated the
getProcessor()
method to inject the new
$statsReporter
mock into the
UpdateProcessManager
and utilize the
ENVIRONMENT
constant.
Test Case Modifications
Test Case Modifications
Removed Memory Logging Tests:
Deleted
testLogMemoryUsageEmitsGaugeWhenLockIsAbsent
and
testLogMemoryUsageSkipsGaugeWhenLockIsPresent
entirely, as the Redis lock and Datadog gauge logic were removed.
Added Empty Selection Test:
Introduced
testEmptySelectionLogsAndReturnsFalse
to verify that processing an empty selection logs a debug message, skips batch manager operations (
generateName
,
scheduleWork
,
finishWork
), skips the stats reporter, and cleanly returns
false
.
Updated Existing Tests:
Modified
testRunUpdate
and
testRunDoUpdateButThrottled
to assert that the
$statsReporter->report()
method is called and to utilize the updated status manager mock.
Helper Method Refactoring
Helper Method Refactoring
Dynamic Status Manager Assertions:
Updated the
prepareStatusManager(int $invokeTimes = 0)
method to accept an integer. This allows tests to dynamically assert exactly how many times methods like
generateName
,
setUpdateTarget
,
scheduleWork
, and
finishWork
are invoked.
Removed Obsolete Helpers:
Deleted the
prepareLogger()
and
silenceDatadogAndRedisLock()
helper methods, replacing their inline functionality with standard
Log::shouldReceive
expectations where needed.
Good response
Bad response
Share & export
Copy
Show more options
You said find potential issues
You said
find potential issues...
|
84860
|
NULL
|
NULL
|
NULL
|
|
84861
|
2914
|
15
|
2026-05-28T12:01:21.827015+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969681827_m1.jpg...
|
Firefox
|
Jy 20910 schedule parallel update target processin Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app — Work...
|
1
|
github.com/jiminny/app/pull/12130/commits
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Close tab
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
Main menu
Open mode picker, currently 3.1 Pro
Gemini
3.1 Pro
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Copy prompt
Gemini said
Gemini said
Here is a summary of the changes in the provided git diff for
UpdateProcessManagerTest.php
:
Structural and Dependency Changes
Structural and Dependency Changes
Replaced Datadog:
Removed the
ChaseConey\LaravelDatadogHelper\Datadog
dependency and replaced it with
Jiminny\Component\ES\ReindexTargetStatsReporter
.
Added Constants and Properties:
Introduced a new
ENVIRONMENT
constant (set to
'testing'
) and a
$statsReporter
property to hold the mock for the new stats reporter.
Processor Instantiation:
Updated the
getProcessor()
method to inject the new
$statsReporter...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"BE upgrade libraries","depth":4,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Text relay","depth":4,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Deleted object error","depth":4,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Login | Salesforce","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Login | Salesforce","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"transcript ss issue","depth":4,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Jiminny","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Tab","depth":4,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"on_screen":true,"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,"on_screen":true,"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,"on_screen":true,"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,"on_screen":true,"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,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"AI Chat settings","depth":3,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":3,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Main menu","depth":5,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open mode picker, currently 3.1 Pro","depth":6,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Gemini","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3.1 Pro","depth":11,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Chat","depth":5,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open menu for conversation actions.","depth":5,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Conversation with Gemini","depth":7,"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Conversation with Gemini","depth":8,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\\Unit\\Component\\ES;5namespace Tests\\Unit\\Component\\ES;667-use ChaseConey\\LaravelDatadogHelper\\Datadog;8use Elastica\\Index;7use Elastica\\Index;9use Illuminate\\Support\\Facades\\App;8use Illuminate\\Support\\Facades\\App;10use Illuminate\\Support\\Facades\\Log;9use Illuminate\\Support\\Facades\\Log;@@ -20,6 +19,7 @@20use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;19use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;21use Jiminny\\Component\\ES\\Processor\\UpdateTarget;20use Jiminny\\Component\\ES\\Processor\\UpdateTarget;22use Jiminny\\Component\\ES\\QueuePriorityEnum;21use Jiminny\\Component\\ES\\QueuePriorityEnum;22+use Jiminny\\Component\\ES\\ReindexTargetStatsReporter;23use Jiminny\\Component\\ES\\UpdateProcessManager;23use Jiminny\\Component\\ES\\UpdateProcessManager;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;25use PHPUnit\\Framework\\Attributes\\CoversClass;25use PHPUnit\\Framework\\Attributes\\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \\Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.","depth":13,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"You said","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\\Unit\\Component\\ES;5namespace Tests\\Unit\\Component\\ES;667-use ChaseConey\\LaravelDatadogHelper\\Datadog;8use Elastica\\Index;7use Elastica\\Index;9use Illuminate\\Support\\Facades\\App;8use Illuminate\\Support\\Facades\\App;10use Illuminate\\Support\\Facades\\Log;9use Illuminate\\Support\\Facades\\Log;@@ -20,6 +19,7 @@20use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;19use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;21use Jiminny\\Component\\ES\\Processor\\UpdateTarget;20use Jiminny\\Component\\ES\\Processor\\UpdateTarget;22use Jiminny\\Component\\ES\\QueuePriorityEnum;21use Jiminny\\Component\\ES\\QueuePriorityEnum;22+use Jiminny\\Component\\ES\\ReindexTargetStatsReporter;23use Jiminny\\Component\\ES\\UpdateProcessManager;23use Jiminny\\Component\\ES\\UpdateProcessManager;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;25use PHPUnit\\Framework\\Attributes\\CoversClass;25use PHPUnit\\Framework\\Attributes\\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \\Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Expand","depth":13,"on_screen":false,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Copy prompt","depth":12,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Gemini said","depth":12,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Gemini said","depth":13,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Here is a summary of the changes in the provided git diff for","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UpdateProcessManagerTest.php","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Structural and Dependency Changes","depth":15,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Structural and Dependency Changes","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Replaced Datadog:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Removed the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ChaseConey\\LaravelDatadogHelper\\Datadog","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"dependency and replaced it with","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny\\Component\\ES\\ReindexTargetStatsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Added Constants and Properties:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Introduced a new","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ENVIRONMENT","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"constant (set to","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'testing'","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":") and a","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$statsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"property to hold the mock for the new stats reporter.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Processor Instantiation:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"getProcessor()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"method to inject the new","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$statsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-9168078173168365973
|
-3259026032374026108
|
click
|
accessibility
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Close tab
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
Main menu
Open mode picker, currently 3.1 Pro
Gemini
3.1 Pro
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Copy prompt
Gemini said
Gemini said
Here is a summary of the changes in the provided git diff for
UpdateProcessManagerTest.php
:
Structural and Dependency Changes
Structural and Dependency Changes
Replaced Datadog:
Removed the
ChaseConey\LaravelDatadogHelper\Datadog
dependency and replaced it with
Jiminny\Component\ES\ReindexTargetStatsReporter
.
Added Constants and Properties:
Introduced a new
ENVIRONMENT
constant (set to
'testing'
) and a
$statsReporter
property to hold the mock for the new stats reporter.
Processor Instantiation:
Updated the
getProcessor()
method to inject the new
$statsReporter...
|
84858
|
NULL
|
NULL
|
NULL
|
|
84860
|
2915
|
14
|
2026-05-28T12:01:19.846383+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969679846_m2.jpg...
|
Firefox
|
Jy 20910 schedule parallel update target processin Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app — Work...
|
1
|
github.com/jiminny/app/pull/12130/commits
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Close tab
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0018284575,"top":0.0518755,"width":0.038065158,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"bounds":{"left":0.039893616,"top":0.0518755,"width":0.037898935,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.09497207,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.10614525,"width":0.039228722,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"BE upgrade libraries","depth":4,"bounds":{"left":0.0028257978,"top":0.13288109,"width":0.03939495,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":4,"bounds":{"left":0.0,"top":0.15203512,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.1632083,"width":0.12799202,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Text relay","depth":4,"bounds":{"left":0.0028257978,"top":0.18994413,"width":0.020279255,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Deleted object error","depth":4,"bounds":{"left":0.0028257978,"top":0.21428572,"width":0.039228722,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":4,"bounds":{"left":0.0028257978,"top":0.23782921,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":5,"bounds":{"left":0.015957447,"top":0.2490024,"width":0.11402926,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":4,"bounds":{"left":0.0028257978,"top":0.27055067,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":5,"bounds":{"left":0.015957447,"top":0.28172386,"width":0.14245346,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Login | Salesforce","depth":4,"bounds":{"left":0.0,"top":0.30327216,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Login | Salesforce","depth":5,"bounds":{"left":0.013297873,"top":0.31444532,"width":0.030917553,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":4,"bounds":{"left":0.0,"top":0.33599362,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":5,"bounds":{"left":0.013297873,"top":0.3471668,"width":0.24301861,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.0,"top":0.36871508,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.013297873,"top":0.37988827,"width":0.09740692,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":4,"bounds":{"left":0.0,"top":0.40143654,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.41260973,"width":0.08543883,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.43415803,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.44533122,"width":0.013131649,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0,"top":0.4668795,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.47805268,"width":0.10106383,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"transcript ss issue","depth":4,"bounds":{"left":0.0028257978,"top":0.5047885,"width":0.036070477,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0028257978,"top":0.528332,"width":0.07679521,"height":0.032721467},"on_screen":true,"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.015957447,"top":0.5395052,"width":0.013297873,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"bounds":{"left":0.0028257978,"top":0.56105345,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":5,"bounds":{"left":0.015957447,"top":0.57222664,"width":0.1271609,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":4,"bounds":{"left":0.0028257978,"top":0.5937749,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":5,"bounds":{"left":0.015957447,"top":0.6049481,"width":0.12799202,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":4,"bounds":{"left":0.0028257978,"top":0.62649643,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":5,"bounds":{"left":0.015957447,"top":0.63766956,"width":0.12134308,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.6592179,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.6703911,"width":0.013131649,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.69193935,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.70311254,"width":0.18201463,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.06732048,"top":0.69912213,"width":0.007978723,"height":0.01915403},"on_screen":true,"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.72625697,"width":0.07413564,"height":0.025538707},"on_screen":true,"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},"on_screen":true,"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.013796543,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"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},"on_screen":true,"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},"on_screen":true,"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},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
-1860515063492607853
|
-3106536994015218461
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Close tab
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84859
|
2915
|
13
|
2026-05-28T12:01:18.897474+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969678897_m2.jpg...
|
Firefox
|
Jy 20910 schedule parallel update target processin Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app — Work...
|
1
|
github.com/jiminny/app/pull/12130/commits
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Close tab
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
Main menu
Open mode picker, currently 3.1 Pro
Gemini
3.1 Pro
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Copy prompt
Gemini said
Gemini said
Here is a summary of the changes in the provided git diff for
UpdateProcessManagerTest.php
:
Structural and Dependency Changes
Structural and Dependency Changes
Replaced Datadog:
Removed the
ChaseConey\LaravelDatadogHelper\Datadog
dependency and replaced it with
Jiminny\Component\ES\ReindexTargetStatsReporter
.
Added Constants and Properties:
Introduced a new
ENVIRONMENT
constant (set to
'testing'
) and a
$statsReporter
property to hold the mock for the new stats reporter.
Processor Instantiation:
Updated the
getProcessor()
method to inject the new
$statsReporter
mock into the
UpdateProcessManager
and utilize the
ENVIRONMENT
constant.
Test Case Modifications
Test Case Modifications
Removed Memory Logging Tests:
Deleted
testLogMemoryUsageEmitsGaugeWhenLockIsAbsent
and
testLogMemoryUsageSkipsGaugeWhenLockIsPresent...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0018284575,"top":0.0518755,"width":0.038065158,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"bounds":{"left":0.039893616,"top":0.0518755,"width":0.037898935,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.09497207,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.10614525,"width":0.039228722,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"BE upgrade libraries","depth":4,"bounds":{"left":0.0028257978,"top":0.13288109,"width":0.03939495,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":4,"bounds":{"left":0.0,"top":0.15203512,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.1632083,"width":0.12799202,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Text relay","depth":4,"bounds":{"left":0.0028257978,"top":0.18994413,"width":0.020279255,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Deleted object error","depth":4,"bounds":{"left":0.0028257978,"top":0.21428572,"width":0.039228722,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":4,"bounds":{"left":0.0028257978,"top":0.23782921,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":5,"bounds":{"left":0.015957447,"top":0.2490024,"width":0.11402926,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":4,"bounds":{"left":0.0028257978,"top":0.27055067,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":5,"bounds":{"left":0.015957447,"top":0.28172386,"width":0.14245346,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Login | Salesforce","depth":4,"bounds":{"left":0.0,"top":0.30327216,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Login | Salesforce","depth":5,"bounds":{"left":0.013297873,"top":0.31444532,"width":0.030917553,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":4,"bounds":{"left":0.0,"top":0.33599362,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":5,"bounds":{"left":0.013297873,"top":0.3471668,"width":0.24301861,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.0,"top":0.36871508,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.013297873,"top":0.37988827,"width":0.09740692,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":4,"bounds":{"left":0.0,"top":0.40143654,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.41260973,"width":0.08543883,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.43415803,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.44533122,"width":0.013131649,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0,"top":0.4668795,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.47805268,"width":0.10106383,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"transcript ss issue","depth":4,"bounds":{"left":0.0028257978,"top":0.5047885,"width":0.036070477,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0028257978,"top":0.528332,"width":0.07679521,"height":0.032721467},"on_screen":true,"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.015957447,"top":0.5395052,"width":0.013297873,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"bounds":{"left":0.0028257978,"top":0.56105345,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":5,"bounds":{"left":0.015957447,"top":0.57222664,"width":0.1271609,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":4,"bounds":{"left":0.0028257978,"top":0.5937749,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":5,"bounds":{"left":0.015957447,"top":0.6049481,"width":0.12799202,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":4,"bounds":{"left":0.0028257978,"top":0.62649643,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":5,"bounds":{"left":0.015957447,"top":0.63766956,"width":0.12134308,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.6592179,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.6703911,"width":0.013131649,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.69193935,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.70311254,"width":0.18201463,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.06732048,"top":0.69912213,"width":0.007978723,"height":0.01915403},"on_screen":true,"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.72625697,"width":0.07413564,"height":0.025538707},"on_screen":true,"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},"on_screen":true,"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.013796543,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"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},"on_screen":true,"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},"on_screen":true,"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},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"AI Chat settings","depth":3,"bounds":{"left":0.35854387,"top":0.055067837,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":3,"bounds":{"left":0.37051198,"top":0.055067837,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Main menu","depth":5,"bounds":{"left":0.08228058,"top":0.09736632,"width":0.015957447,"height":0.03830806},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open mode picker, currently 3.1 Pro","depth":6,"bounds":{"left":0.09823803,"top":0.10694334,"width":0.047539894,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Gemini","depth":13,"bounds":{"left":0.1022274,"top":0.10853951,"width":0.017121011,"height":0.016360734},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3.1 Pro","depth":11,"bounds":{"left":0.12084442,"top":0.10853951,"width":0.013796543,"height":0.015961692},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Chat","depth":5,"bounds":{"left":0.35854387,"top":0.10215483,"width":0.011968086,"height":0.028731046},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open menu for conversation actions.","depth":5,"bounds":{"left":0.37051198,"top":0.10215483,"width":0.011968086,"height":0.028731046},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Conversation with Gemini","depth":7,"bounds":{"left":0.079288565,"top":0.14445332,"width":0.0003324468,"height":0.0007980846},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Conversation with Gemini","depth":8,"bounds":{"left":0.079288565,"top":0.14684756,"width":0.1200133,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\\Unit\\Component\\ES;5namespace Tests\\Unit\\Component\\ES;667-use ChaseConey\\LaravelDatadogHelper\\Datadog;8use Elastica\\Index;7use Elastica\\Index;9use Illuminate\\Support\\Facades\\App;8use Illuminate\\Support\\Facades\\App;10use Illuminate\\Support\\Facades\\Log;9use Illuminate\\Support\\Facades\\Log;@@ -20,6 +19,7 @@20use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;19use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;21use Jiminny\\Component\\ES\\Processor\\UpdateTarget;20use Jiminny\\Component\\ES\\Processor\\UpdateTarget;22use Jiminny\\Component\\ES\\QueuePriorityEnum;21use Jiminny\\Component\\ES\\QueuePriorityEnum;22+use Jiminny\\Component\\ES\\ReindexTargetStatsReporter;23use Jiminny\\Component\\ES\\UpdateProcessManager;23use Jiminny\\Component\\ES\\UpdateProcessManager;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;25use PHPUnit\\Framework\\Attributes\\CoversClass;25use PHPUnit\\Framework\\Attributes\\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \\Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.","depth":13,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"You said","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\\Unit\\Component\\ES;5namespace Tests\\Unit\\Component\\ES;667-use ChaseConey\\LaravelDatadogHelper\\Datadog;8use Elastica\\Index;7use Elastica\\Index;9use Illuminate\\Support\\Facades\\App;8use Illuminate\\Support\\Facades\\App;10use Illuminate\\Support\\Facades\\Log;9use Illuminate\\Support\\Facades\\Log;@@ -20,6 +19,7 @@20use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;19use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;21use Jiminny\\Component\\ES\\Processor\\UpdateTarget;20use Jiminny\\Component\\ES\\Processor\\UpdateTarget;22use Jiminny\\Component\\ES\\QueuePriorityEnum;21use Jiminny\\Component\\ES\\QueuePriorityEnum;22+use Jiminny\\Component\\ES\\ReindexTargetStatsReporter;23use Jiminny\\Component\\ES\\UpdateProcessManager;23use Jiminny\\Component\\ES\\UpdateProcessManager;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;25use PHPUnit\\Framework\\Attributes\\CoversClass;25use PHPUnit\\Framework\\Attributes\\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \\Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Expand","depth":13,"on_screen":false,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Copy prompt","depth":12,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Gemini said","depth":12,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Gemini said","depth":13,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Here is a summary of the changes in the provided git diff for","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UpdateProcessManagerTest.php","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Structural and Dependency Changes","depth":15,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Structural and Dependency Changes","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Replaced Datadog:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Removed the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ChaseConey\\LaravelDatadogHelper\\Datadog","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"dependency and replaced it with","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny\\Component\\ES\\ReindexTargetStatsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Added Constants and Properties:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Introduced a new","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ENVIRONMENT","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"constant (set to","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'testing'","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":") and a","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$statsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"property to hold the mock for the new stats reporter.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Processor Instantiation:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"getProcessor()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"method to inject the new","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$statsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mock into the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UpdateProcessManager","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and utilize the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ENVIRONMENT","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"constant.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Test Case Modifications","depth":15,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Test Case Modifications","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Removed Memory Logging Tests:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deleted","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testLogMemoryUsageEmitsGaugeWhenLockIsAbsent","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testLogMemoryUsageSkipsGaugeWhenLockIsPresent","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
5331559769789552230
|
-3259026032374026108
|
click
|
accessibility
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Close tab
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
Main menu
Open mode picker, currently 3.1 Pro
Gemini
3.1 Pro
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Copy prompt
Gemini said
Gemini said
Here is a summary of the changes in the provided git diff for
UpdateProcessManagerTest.php
:
Structural and Dependency Changes
Structural and Dependency Changes
Replaced Datadog:
Removed the
ChaseConey\LaravelDatadogHelper\Datadog
dependency and replaced it with
Jiminny\Component\ES\ReindexTargetStatsReporter
.
Added Constants and Properties:
Introduced a new
ENVIRONMENT
constant (set to
'testing'
) and a
$statsReporter
property to hold the mock for the new stats reporter.
Processor Instantiation:
Updated the
getProcessor()
method to inject the new
$statsReporter
mock into the
UpdateProcessManager
and utilize the
ENVIRONMENT
constant.
Test Case Modifications
Test Case Modifications
Removed Memory Logging Tests:
Deleted
testLogMemoryUsageEmitsGaugeWhenLockIsAbsent
and
testLogMemoryUsageSkipsGaugeWhenLockIsPresent...
|
84857
|
NULL
|
NULL
|
NULL
|
|
84858
|
2914
|
14
|
2026-05-28T12:01:18.794864+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969678794_m1.jpg...
|
Firefox
|
Jy 20910 schedule parallel update target processin Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app — Work...
|
1
|
github.com/jiminny/app/pull/12130/commits
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"BE upgrade libraries","depth":4,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Text relay","depth":4,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Deleted object error","depth":4,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Login | Salesforce","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Login | Salesforce","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"transcript ss issue","depth":4,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Jiminny","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
-5778729345955138604
|
7269754279703737575
|
click
|
accessibility
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84857
|
2915
|
12
|
2026-05-28T12:01:16.629514+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969676629_m2.jpg...
|
Firefox
|
[SRD-6881] [On demand] Transcription in saved sear [SRD-6881] [On demand] Transcription in saved search disappears - Jira — Work...
|
1
|
jiminny.atlassian.net/jira/servicedesk/projects/SR jiminny.atlassian.net/jira/servicedesk/projects/SRD/queues/custom/37/SRD-6881...
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Close tab
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
Main menu
Open mode picker, currently 3.1 Pro
Gemini
3.1 Pro
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Copy prompt
Gemini said
Gemini said
Here is a summary of the changes in the provided git diff for
UpdateProcessManagerTest.php
:
Structural and Dependency Changes
Structural and Dependency Changes
Replaced Datadog:
Removed the
ChaseConey\LaravelDatadogHelper\Datadog
dependency and replaced it with
Jiminny\Component\ES\ReindexTargetStatsReporter
.
Added Constants and Properties:
Introduced a new
ENVIRONMENT
constant (set to
'testing'
) and a
$statsReporter
property to hold the mock for the new stats reporter.
Processor Instantiation:
Updated the
getProcessor()
method to inject the new
$statsReporter
mock into the
UpdateProcessManager
and utilize the
ENVIRONMENT
constant.
Test Case Modifications
Test Case Modifications
Removed Memory Logging Tests:
Deleted
testLogMemoryUsageEmitsGaugeWhenLockIsAbsent
and
testLogMemoryUsageSkipsGaugeWhenLockIsPresent
entirely, as the Redis lock and Datadog gauge logic were removed.
Added Empty Selection Test:...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0018284575,"top":0.0518755,"width":0.038065158,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"bounds":{"left":0.039893616,"top":0.0518755,"width":0.037898935,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.09497207,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.10614525,"width":0.039228722,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"BE upgrade libraries","depth":4,"bounds":{"left":0.0028257978,"top":0.13288109,"width":0.03939495,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":4,"bounds":{"left":0.0,"top":0.15203512,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20613] Allow owner's role to be selected when setting up a trial - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.1632083,"width":0.12799202,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Text relay","depth":4,"bounds":{"left":0.0028257978,"top":0.18994413,"width":0.020279255,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Deleted object error","depth":4,"bounds":{"left":0.0028257978,"top":0.21428572,"width":0.039228722,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":4,"bounds":{"left":0.0028257978,"top":0.23782921,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Uncovered Lines on New Code - app in Jiminny SonarQube Cloud","depth":5,"bounds":{"left":0.015957447,"top":0.2490024,"width":0.11402926,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":4,"bounds":{"left":0.0028257978,"top":0.27055067,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app","depth":5,"bounds":{"left":0.015957447,"top":0.28172386,"width":0.14245346,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Login | Salesforce","depth":4,"bounds":{"left":0.0,"top":0.30327216,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Login | Salesforce","depth":5,"bounds":{"left":0.013297873,"top":0.31444532,"width":0.030917553,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":4,"bounds":{"left":0.0,"top":0.33599362,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny\\Exceptions\\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app","depth":5,"bounds":{"left":0.013297873,"top":0.3471668,"width":0.24301861,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.0,"top":0.36871508,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Inbox (1,733) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.013297873,"top":0.37988827,"width":0.09740692,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":4,"bounds":{"left":0.0,"top":0.40143654,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20979] Resolve PHP 8.5.5 deprications - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.41260973,"width":0.08543883,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.43415803,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.44533122,"width":0.013131649,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0,"top":0.4668795,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.47805268,"width":0.10106383,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"transcript ss issue","depth":4,"bounds":{"left":0.0028257978,"top":0.5047885,"width":0.036070477,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0028257978,"top":0.528332,"width":0.07679521,"height":0.032721467},"on_screen":true,"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.015957447,"top":0.5395052,"width":0.013297873,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":4,"bounds":{"left":0.0028257978,"top":0.56105345,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"[SRD-6881] [On demand] Transcription in saved search disappears - Jira","depth":5,"bounds":{"left":0.015957447,"top":0.57222664,"width":0.1271609,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.06732048,"top":0.56823623,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":4,"bounds":{"left":0.0028257978,"top":0.5937749,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket","depth":5,"bounds":{"left":0.015957447,"top":0.6049481,"width":0.12799202,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":4,"bounds":{"left":0.0028257978,"top":0.62649643,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket","depth":5,"bounds":{"left":0.015957447,"top":0.63766956,"width":0.12134308,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.6592179,"width":0.07962101,"height":0.032721467},"on_screen":true,"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.6703911,"width":0.013131649,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.69193935,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.70311254,"width":0.18201463,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.0028257978,"top":0.72625697,"width":0.07413564,"height":0.025538707},"on_screen":true,"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},"on_screen":true,"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.013796543,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"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},"on_screen":true,"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},"on_screen":true,"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},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"AI Chat settings","depth":3,"bounds":{"left":0.35854387,"top":0.055067837,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":3,"bounds":{"left":0.37051198,"top":0.055067837,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Main menu","depth":5,"bounds":{"left":0.08228058,"top":0.09736632,"width":0.015957447,"height":0.03830806},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open mode picker, currently 3.1 Pro","depth":6,"bounds":{"left":0.09823803,"top":0.10694334,"width":0.047539894,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Gemini","depth":13,"bounds":{"left":0.1022274,"top":0.10853951,"width":0.017121011,"height":0.016360734},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3.1 Pro","depth":11,"bounds":{"left":0.12084442,"top":0.10853951,"width":0.013796543,"height":0.015961692},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Chat","depth":5,"bounds":{"left":0.35854387,"top":0.10215483,"width":0.011968086,"height":0.028731046},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open menu for conversation actions.","depth":5,"bounds":{"left":0.37051198,"top":0.10215483,"width":0.011968086,"height":0.028731046},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Conversation with Gemini","depth":7,"bounds":{"left":0.079288565,"top":0.14445332,"width":0.0003324468,"height":0.0007980846},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Conversation with Gemini","depth":8,"bounds":{"left":0.079288565,"top":0.14684756,"width":0.1200133,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\\Unit\\Component\\ES;5namespace Tests\\Unit\\Component\\ES;667-use ChaseConey\\LaravelDatadogHelper\\Datadog;8use Elastica\\Index;7use Elastica\\Index;9use Illuminate\\Support\\Facades\\App;8use Illuminate\\Support\\Facades\\App;10use Illuminate\\Support\\Facades\\Log;9use Illuminate\\Support\\Facades\\Log;@@ -20,6 +19,7 @@20use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;19use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;21use Jiminny\\Component\\ES\\Processor\\UpdateTarget;20use Jiminny\\Component\\ES\\Processor\\UpdateTarget;22use Jiminny\\Component\\ES\\QueuePriorityEnum;21use Jiminny\\Component\\ES\\QueuePriorityEnum;22+use Jiminny\\Component\\ES\\ReindexTargetStatsReporter;23use Jiminny\\Component\\ES\\UpdateProcessManager;23use Jiminny\\Component\\ES\\UpdateProcessManager;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;25use PHPUnit\\Framework\\Attributes\\CoversClass;25use PHPUnit\\Framework\\Attributes\\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \\Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.","depth":13,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"You said","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\\Unit\\Component\\ES;5namespace Tests\\Unit\\Component\\ES;667-use ChaseConey\\LaravelDatadogHelper\\Datadog;8use Elastica\\Index;7use Elastica\\Index;9use Illuminate\\Support\\Facades\\App;8use Illuminate\\Support\\Facades\\App;10use Illuminate\\Support\\Facades\\Log;9use Illuminate\\Support\\Facades\\Log;@@ -20,6 +19,7 @@20use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;19use Jiminny\\Component\\ES\\Processor\\TargetEntitiesSelector;21use Jiminny\\Component\\ES\\Processor\\UpdateTarget;20use Jiminny\\Component\\ES\\Processor\\UpdateTarget;22use Jiminny\\Component\\ES\\QueuePriorityEnum;21use Jiminny\\Component\\ES\\QueuePriorityEnum;22+use Jiminny\\Component\\ES\\ReindexTargetStatsReporter;23use Jiminny\\Component\\ES\\UpdateProcessManager;23use Jiminny\\Component\\ES\\UpdateProcessManager;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;24use Jiminny\\Contracts\\ES\\UpdateTargetEnum;25use PHPUnit\\Framework\\Attributes\\CoversClass;25use PHPUnit\\Framework\\Attributes\\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \\Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Expand","depth":13,"on_screen":false,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Copy prompt","depth":12,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Gemini said","depth":12,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Gemini said","depth":13,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Here is a summary of the changes in the provided git diff for","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UpdateProcessManagerTest.php","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Structural and Dependency Changes","depth":15,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Structural and Dependency Changes","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Replaced Datadog:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Removed the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ChaseConey\\LaravelDatadogHelper\\Datadog","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"dependency and replaced it with","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny\\Component\\ES\\ReindexTargetStatsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Added Constants and Properties:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Introduced a new","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ENVIRONMENT","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"constant (set to","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'testing'","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":") and a","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$statsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"property to hold the mock for the new stats reporter.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Processor Instantiation:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"getProcessor()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"method to inject the new","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$statsReporter","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mock into the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UpdateProcessManager","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and utilize the","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ENVIRONMENT","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"constant.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Test Case Modifications","depth":15,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Test Case Modifications","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Removed Memory Logging Tests:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Deleted","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testLogMemoryUsageEmitsGaugeWhenLockIsAbsent","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"testLogMemoryUsageSkipsGaugeWhenLockIsPresent","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"entirely, as the Redis lock and Datadog gauge logic were removed.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Added Empty Selection Test:","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
119423289684348227
|
-3258990848001937276
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 5 Q2 - Platform Team - Scrum Board Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Pipelines - jiminny/app
Pipelines - jiminny/app
BE upgrade libraries
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
[JY-20613] Allow owner's role to be selected when setting up a trial - Jira
Text relay
Deleted object error
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
Uncovered Lines on New Code - app in Jiminny SonarQube Cloud
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
JY-20963 fix deleted object import by LakyLak · Pull Request #12121 · jiminny/app
Login | Salesforce
Login | Salesforce
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Jiminny\Exceptions\EmailActivityImportException: [Email Import] Failed for InboxEmail ID: 125695762: Error: Request failed — jiminny — app
Inbox (1,733) - [EMAIL] - Jiminny Mail
Inbox (1,733) - [EMAIL] - Jiminny Mail
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
[JY-20979] Resolve PHP 8.5.5 deprications - Jira
Jiminny
Jiminny
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 5 Q2 - Platform Team - Scrum Board - Jira
transcript ss issue
Jiminny
Jiminny
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
[SRD-6881] [On demand] Transcription in saved search disappears - Jira
Close tab
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Sona Subramanian at 27/05/2026, 17:46:08 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Iliyana Netseva at 27/05/2026, 18:48:18 - Session Replay - LogRocket
Jiminny
Jiminny
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
Jy 20910 schedule parallel update target processing by Vasil-Jiminny · Pull Request #12130 · jiminny/app
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
Main menu
Open mode picker, currently 3.1 Pro
Gemini
3.1 Pro
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
You said I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>Jy 20910 schedule parallel update target processin</tabTitle>” with “<selection>@@ -4,7 +4,6 @@445namespace Tests\Unit\Component\ES;5namespace Tests\Unit\Component\ES;667-use ChaseConey\LaravelDatadogHelper\Datadog;8use Elastica\Index;7use Elastica\Index;9use Illuminate\Support\Facades\App;8use Illuminate\Support\Facades\App;10use Illuminate\Support\Facades\Log;9use Illuminate\Support\Facades\Log;@@ -20,6 +19,7 @@20use Jiminny\Component\ES\Processor\TargetEntitiesSelector;19use Jiminny\Component\ES\Processor\TargetEntitiesSelector;21use Jiminny\Component\ES\Processor\UpdateTarget;20use Jiminny\Component\ES\Processor\UpdateTarget;22use Jiminny\Component\ES\QueuePriorityEnum;21use Jiminny\Component\ES\QueuePriorityEnum;22+use Jiminny\Component\ES\ReindexTargetStatsReporter;23use Jiminny\Component\ES\UpdateProcessManager;23use Jiminny\Component\ES\UpdateProcessManager;24use Jiminny\Contracts\ES\UpdateTargetEnum;24use Jiminny\Contracts\ES\UpdateTargetEnum;25use PHPUnit\Framework\Attributes\CoversClass;25use PHPUnit\Framework\Attributes\CoversClass;@@ -31,6 +31,7 @@ class UpdateProcessManagerTest extends TestCase31{31{32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';32private const string BATCH_NAME = '9440de7a-1c0f-4541-a235-592f2117bb20';33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;33private const string UPDATE_TARGET = UpdateTarget::ACTIVITY;34+private const string ENVIRONMENT = 'testing';343535private array $normalPriority = [];36private array $normalPriority = [];36private array $highPriority = [];37private array $highPriority = [];@@ -40,6 +41,7 @@ class UpdateProcessManagerTest extends TestCase40private ?SimpleCollection $documentsToUpdate = null;41private ?SimpleCollection $documentsToUpdate = null;414242private BatchStatusManager|MockObject|null $batchStatusManager = null;43private BatchStatusManager|MockObject|null $batchStatusManager = null;44+private ReindexTargetStatsReporter|MockObject|null $statsReporter = null;43private Index|MockObject|null $targetIndex = null;45private Index|MockObject|null $targetIndex = null;444645private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;47private string|UpdateTargetEnum $updateTargetEntity = UpdateTarget::ACTIVITY;@@ -68,8 +70,13 @@ protected function setUp(): void68array_diff($allEntities, $deleteIds)70array_diff($allEntities, $deleteIds)69 );71 );707271-$this->prepareStatusManager();73+$this->statsReporter = $this->createMock(ReindexTargetStatsReporter::class);72-$this->prepareLogger();74+$this->statsReporter->expects($this->once())75+ ->method('setEnvironment')76+ ->with(self::ENVIRONMENT);77+$this->statsReporter->expects($this->once())78+ ->method('setUpdateTarget')79+ ->with(self::UPDATE_TARGET);73 }80 }748175/**82/**@@ -81,76 +88,75 @@ public function testRunUpdate(): void81// Also test that the trait works with entities and strings alike88// Also test that the trait works with entities and strings alike82$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;89$this->updateTargetEntity = UpdateTargetEnum::ACTIVITY;839084-$this->silenceDatadogAndRedisLock();91+ Log::shouldReceive('info')->withAnyArgs();92+ Log::shouldReceive('debug')->withAnyArgs();93+94+$this->statsReporter->expects($this->once())->method('report');95+96+$this->prepareStatusManager(1);859786$processor = $this->getProcessor();98$processor = $this->getProcessor();879988// There are exactly 250 chunks100// There are exactly 250 chunks89$this->assertTrue($processor->doUpdateEntitiesChunk());101$this->assertTrue($processor->doUpdateEntitiesChunk());102+90// But the second execution is on empty set103// But the second execution is on empty set91$this->assertFalse($processor->doUpdateEntitiesChunk());104$this->assertFalse($processor->doUpdateEntitiesChunk());92 }105 }9310694-/**107+public function testEmptySelectionLogsAndReturnsFalse(): void95- * When no Redis lock exists, logMemoryUsage should set the lock and emit a Datadog gauge96- * with the correct stat name, sample rate, and environment/type tags.97- */98-public function testLogMemoryUsageEmitsGaugeWhenLockIsAbsent(): void99 {108 {100-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);109+$batchStatusManager = $this->createMock(BatchStatusManager::class);101-110+$batchStatusManager->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);102- Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(null);111+$batchStatusManager->expects($this->never())->method('generateName');103- Redis::shouldReceive('set')->once()->with($gaugeLockKey, true);112+$batchStatusManager->expects($this->never())->method('scheduleWork');104- Redis::shouldReceive('expire')->once()->with($gaugeLockKey, 60);113+$batchStatusManager->expects($this->never())->method('finishWork');105-106- Datadog::shouldReceive('increment')->once()->withAnyArgs();107- Datadog::shouldReceive('gauge')108- ->once()109- ->with(110-'jiminny.reindex-memory-usage',111- \Mockery::type('int'),112-1,113- ['environment' => 'staging', 'type' => self::UPDATE_TARGET]114- );115-116-$processor = $this->getProcessor();117-$processor->setEnvironment('staging');118114119-$processor->doUpdateEntitiesChunk();115+$emptySelection = $this->createMock(SelectionList::class);120-}116+ $emptySelection->expects($this->once())->method('isEmpty')->willReturn(true);121117122-/**118+$entitySelector = $this->createMock(TargetEntitiesSelector::class);123- * When a Redis lock already exists, logMemoryUsage should return early119+$entitySelector->expects($this->once())->method('setUpdateTarget')->with(self::UPDATE_TARGET);124- * and not emit a Datadog gauge.120+$entitySelector->expects($this->once())->method('setBatchStatusManager')->with($batchStatusManager);125- */121+$entitySelector->expects($this->once())->method('select')->willReturn($emptySelection);126-public function testLogMemoryUsageSkipsGaugeWhenLockIsPresent(): void127- {128-$gaugeLockKey = sprintf('%s-process-manager-lock', self::UPDATE_TARGET);129122130-Redis::shouldReceive('get')->once()->with($gaugeLockKey)->andReturn(true);123+Log::shouldReceive('debug')131-Redis::shouldReceive('set')->never();124+ ->once()132-Redis::shouldReceive('expire')->never();125+ ->with('[ EsUpdateProcessManager ] Empty selection', ['update_target' => self::UPDATE_TARGET]);133126134- Datadog::shouldReceive('increment')->once()->withAnyArgs();127+$this->statsReporter->expects($this->never())->method('report');135- Datadog::shouldReceive('gauge')->never();136128137-$processor = $this->getProcessor();129+$processor = new UpdateProcessManager(138-$processor->setEnvironment('staging');130+ esClient: $this->getEsClientMock(),131+ entitySelector: $entitySelector,132+ batchStatusManager: $batchStatusManager,133+ deleteDocumentsAction: $this->createMock(DeleteDocumentsAction::class),134+ upsertDocumentsAction: $this->createMock(UpsertDocumentsAction::class),135+ loadDocumentsAction: $this->createMock(LoadDocumentsAction::class),136+ statsReporter: $this->statsReporter,137+ );138+$processor->setEnvironment(self::ENVIRONMENT);139+$processor->setUpdateTarget(self::UPDATE_TARGET);140+$processor->bootstrap();139141140-$processor->doUpdateEntitiesChunk();142+$this->assertFalse($processor->doUpdateEntitiesChunk());141 }143 }142144143public function testRunDoUpdateButThrottled(): void145public function testRunDoUpdateButThrottled(): void144 {146 {145$this->isThrottled = true;147$this->isThrottled = true;146148147-$this->silenceDatadogAndRedisLock();149+ Log::shouldReceive('info')->withAnyArgs();150+151+$this->statsReporter->expects($this->once())->method('report');148152149// Reschedule High priority153// Reschedule High priority150 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);154 Redis::shouldReceive('saddarray')->with('activities-for-update-priority', $this->highPriority);151// Reschedule low priority155// Reschedule low priority152 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);156 Redis::shouldReceive('saddarray')->with('activities-for-update', $this->normalPriority);153157158+$this->prepareStatusManager(1);159+154$processor = $this->getProcessor();160$processor = $this->getProcessor();155161156$this->assertTrue($processor->doUpdateEntitiesChunk());162$this->assertTrue($processor->doUpdateEntitiesChunk());@@ -165,10 +171,11 @@ private function getProcessor(): UpdateProcessManager165 deleteDocumentsAction: $this->getDeleteActionMock(),171 deleteDocumentsAction: $this->getDeleteActionMock(),166 upsertDocumentsAction: $this->getUpsertActionMock(),172 upsertDocumentsAction: $this->getUpsertActionMock(),167 loadDocumentsAction: $this->getLoadDocumentsMock(),173 loadDocumentsAction: $this->getLoadDocumentsMock(),174+ statsReporter: $this->statsReporter,168 );175 );169176170$updateProcessor->setUpdateTarget($this->updateTargetEntity);177$updateProcessor->setUpdateTarget($this->updateTargetEntity);171-$updateProcessor->setEnvironment('test-env');178+$updateProcessor->setEnvironment(self::ENVIRONMENT);172179173$updateProcessor->bootstrap();180$updateProcessor->bootstrap();174181@@ -195,23 +202,6 @@ private function getEsClientMock(): Client|MockObject195return $clientMock;202return $clientMock;196 }203 }197204198-private function prepareLogger(): void199- {200- Log::shouldReceive('info')201- ->atLeast()202- ->once()203- ->with('[ EsUpdateProcessManager ] Finished updating entities in ES', $this->anything());204- }205-206-private function silenceDatadogAndRedisLock(): void207- {208- Datadog::shouldReceive('increment')->atLeast()->once()->withAnyArgs();209- Datadog::shouldReceive('gauge')->withAnyArgs();210- Redis::shouldReceive('get')->withAnyArgs()->andReturn(null);211- Redis::shouldReceive('set')->withAnyArgs();212- Redis::shouldReceive('expire')->withAnyArgs();213- }214-215private function getDeleteActionMock(): DeleteDocumentsAction|MockObject205private function getDeleteActionMock(): DeleteDocumentsAction|MockObject216 {206 {217$deleteAction = $this->createMock(DeleteDocumentsAction::class);207$deleteAction = $this->createMock(DeleteDocumentsAction::class);@@ -320,26 +310,30 @@ private function mockSelection(): SelectionList|MockObject320return $selectionList;310return $selectionList;321 }311 }322312323-private function prepareStatusManager(): void313+private function prepareStatusManager(int $invokeTimes = 0): void324 {314 {325$batchStatusManager = $this->createMock(BatchStatusManager::class);315$batchStatusManager = $this->createMock(BatchStatusManager::class);326316327-$batchStatusManager->expects($this->atLeastOnce())317+if ($invokeTimes) {318+$batchStatusManager->expects($this->once())319+ ->method('setUpdateTarget')320+ ->with(self::UPDATE_TARGET);321+ } else {322+$batchStatusManager->expects($this->never())->method('setUpdateTarget');323+ }324+325+$batchStatusManager->expects($this->exactly($invokeTimes))328 ->method('generateName')326 ->method('generateName')329 ->willReturn(self::BATCH_NAME);327 ->willReturn(self::BATCH_NAME);330328331-$batchStatusManager->expects($this->atLeastOnce())329+$batchStatusManager->expects($this->exactly($invokeTimes))332- ->method('setUpdateTarget')333- ->with(self::UPDATE_TARGET);334-335-$batchStatusManager->expects($this->atLeastOnce())336 ->method('scheduleWork')330 ->method('scheduleWork')337 ->with(331 ->with(338array_merge($this->highPriority, $this->normalPriority),332array_merge($this->highPriority, $this->normalPriority),339self::BATCH_NAME333self::BATCH_NAME340 );334 );341335342-$batchStatusManager->expects($this->atLeastOnce())336+$batchStatusManager->expects($this->exactly($invokeTimes))343 ->method('finishWork')337 ->method('finishWork')344 ->with(self::BATCH_NAME);338 ->with(self::BATCH_NAME);345339</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Copy prompt
Gemini said
Gemini said
Here is a summary of the changes in the provided git diff for
UpdateProcessManagerTest.php
:
Structural and Dependency Changes
Structural and Dependency Changes
Replaced Datadog:
Removed the
ChaseConey\LaravelDatadogHelper\Datadog
dependency and replaced it with
Jiminny\Component\ES\ReindexTargetStatsReporter
.
Added Constants and Properties:
Introduced a new
ENVIRONMENT
constant (set to
'testing'
) and a
$statsReporter
property to hold the mock for the new stats reporter.
Processor Instantiation:
Updated the
getProcessor()
method to inject the new
$statsReporter
mock into the
UpdateProcessManager
and utilize the
ENVIRONMENT
constant.
Test Case Modifications
Test Case Modifications
Removed Memory Logging Tests:
Deleted
testLogMemoryUsageEmitsGaugeWhenLockIsAbsent
and
testLogMemoryUsageSkipsGaugeWhenLockIsPresent
entirely, as the Redis lock and Datadog gauge logic were removed.
Added Empty Selection Test:...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84856
|
2915
|
11
|
2026-05-28T12:01:06.466590+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969666466_m2.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM
11:55 AM
здрасти Васко, може ли един approve
https://github.com/jiminny/app/pull/12136
https://github.com/jiminny/app/pull/12136...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.026595745,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.5746209,"width":0.023271276,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5969673,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0063164895,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.020944148,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"bounds":{"left":0.67852396,"top":0.10055866,"width":0.008976064,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"bounds":{"left":0.69148934,"top":0.09177973,"width":0.020279255,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"bounds":{"left":0.70079786,"top":0.10055866,"width":0.00831117,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"bounds":{"left":0.71276593,"top":0.09177973,"width":0.010970744,"height":0.030327214},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.015957447,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.007978723,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"bounds":{"left":0.7726064,"top":0.12689546,"width":0.049867023,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"bounds":{"left":0.60738033,"top":0.11572227,"width":0.007978723,"height":0.0071827616},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.11572227,"width":0.007978723,"height":0.0071827616},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"bounds":{"left":0.6180186,"top":0.11572227,"width":0.07114362,"height":0.007980846},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"bounds":{"left":0.60738033,"top":0.13567439,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.13567439,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"bounds":{"left":0.6180186,"top":0.13328013,"width":0.059175532,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 19th at 9:18:56 AM","depth":16,"bounds":{"left":0.60738033,"top":0.15961692,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.15961692,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12082","depth":16,"bounds":{"left":0.6180186,"top":0.15722266,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12082","depth":17,"bounds":{"left":0.6180186,"top":0.15722266,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with white check mark emoji","depth":16,"bounds":{"left":0.6180186,"top":0.1763767,"width":0.014295213,"height":0.01915403},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":17,"bounds":{"left":0.62732714,"top":0.17956904,"width":0.0023271276,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":16,"bounds":{"left":0.6336436,"top":0.1763767,"width":0.011303191,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.6180186,"top":0.20510775,"width":0.027593086,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.6456117,"top":0.20670392,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 10:29:42 AM","depth":15,"bounds":{"left":0.64793885,"top":0.20909816,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:29 AM","depth":16,"bounds":{"left":0.64793885,"top":0.20909816,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"благодаря","depth":16,"bounds":{"left":0.6180186,"top":0.22426178,"width":0.023936171,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"bounds":{"left":0.7849069,"top":0.254589,"width":0.025265958,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.6180186,"top":0.2857143,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.64893615,"top":0.28731045,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 11:55:58 AM","depth":15,"bounds":{"left":0.6515958,"top":0.2897047,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:55 AM","depth":16,"bounds":{"left":0.6515958,"top":0.2897047,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти Васко, може ли един approve","depth":16,"bounds":{"left":0.6180186,"top":0.3048683,"width":0.08809841,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12136","depth":16,"bounds":{"left":0.70611703,"top":0.3048683,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12136","depth":17,"bounds":{"left":0.70611703,"top":0.3048683,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"text"}]...
|
6405668804926614907
|
-1280758867518518932
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM
11:55 AM
здрасти Васко, може ли един approve
https://github.com/jiminny/app/pull/12136
https://github.com/jiminny/app/pull/12136
@ со)nolsen lsen abessonДохов2ов иниколсо саееисиоли оданаднле ват ие иоледсанивхитало давдекокосос он зоаддси солоесоя млкее накаоошою!uоuсошеNd9S: nalisenlsenHTKLIRNEXD MURNNON WEHONNa Spc Muenoy sexmКДОИЛОИНОХ РАЙ ВОХНЕЯ ОУЕНИДОКІРОКЕРОКЕОКО СООЕССА ПРКОРООДРИЕ НОДАРУКОРД ЧОВРУЛОООНЯ ФЛИВНИКОЯ ПООМИВЕРПОСКОФОДЕ Ч Е ВОСОБРЕИЕЧОД К ОСИНОКОДРЕЗИРОИОНТИНИШЕВЕРОИОСИЕИНУОСВОВИЕЕИДЕКОМЕ РОМООООИКЕНЕ СОВ РОДУТРОЕЕИЕВОККОДНЯМ ЕРХОУХОРОЛЬТКОЛАОЕ ЗОРДОННОХ ВРОЯРООЛИКЕНЕ СОВ РОЛУ РРЕСК РОЗКОКОИЬЯХСОИВЕАЕoeteteindooehuuitilwos.enuenoonuiammI.двсмиnvse n мн MnoteholsensenNolie ahenos seuwieetcoou cewoneddoneh miint ne dhnonNa OoZ nolsen lsen19071/lind/dde/kuuш!//wox'qnuysrsony+ Su4 SaUeSEAUES PPN CONOSN^ 09aetnoltXem o7 nut94990009seolPoee5sooyemeye samee nWUANONOSал Pe1wwora cenvisoozeweis зopolas• елодішію елсуpsuryses oyfediNowol UElOIsCnoUenois yois eCAOSION CUeAaltansenisenoaDsessow PaJduiod wodu dusasnoл-yuee #uoddns swscop #uopues#дэхрц-шодеа #Nco ruoneees39-AUUjCl#ojus-weas-ngl#esueчp-enuaСерцzq"Addey #eJauas#Suussuisus #song *puayped s•***KuuiшirЦирж0,090 - 4Р3TSN OOZIUDOSDN TOU SOMN DSOISONTUoieoueesuwonsowoouiuneDot ooeneowsonnU9449998 4990270910oisno 01 idolwou wuintePSоI XIOмUOISIHAaAnOYL889-G8S 1Fbed azuewwns30G+MiwooeJe unra Aauaueluudd si ssodose aui pue ano silee toues au e pell au, ui uoncdexo ueXN YaM Z0S"D'a puewwos siwiole a buis2nonspaausivibooenenonsouamaneoi oeousnomna pue puonasoot mnes moec canteDe wwostos lose ouososP UO bUDIeM "D'a) yonis siab ssapoid pluo auo tIaiP buIyeola ei sayeu беномTun suendom lallesed au8e puesipeddo, Pip non ento xogaotylhosen Unuele sa e4hu hc sahs ti sc c t te.ne esteoae eenoes mmteosatses petenewponeinee eirpoyes dlooe we319202/S0/LZ se enasioN cutlaNouroeorerwoet wooX 1 [putшep uo) (1889-0851wuwyrey wopeidtos teuosteewuшr &ROSTBAHAONOSON KOLROWEANptwwspoonooenswotedd aut ui soniss asos aut o mewtuns argeuuees bous e s wohoon whw bo soun poswosonsanssi asour 1o luewwns vous aш an6A Old [e IuItsoлорuмOOS BUNSHOUMS MOIM CIOAZONOSdeluyul - soupsdy oManiC...
|
84854
|
NULL
|
NULL
|
NULL
|
|
84855
|
2914
|
13
|
2026-05-28T12:01:06.362407+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969666362_m1.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM
11:55 AM
здрасти Васко, може ли един approve
https://github.com/jiminny/app/pull/12136
https://github.com/jiminny/app/pull/12136
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
Today at 12:00:25 PM
12:00 PM
Здрасти, Лукаш
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 19th at 9:18:56 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12082","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12082","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with white check mark emoji","depth":16,"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 10:29:42 AM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:29 AM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"благодаря","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 11:55:58 AM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:55 AM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти Васко, може ли един approve","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12136","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12136","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:00:25 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Здрасти, Лукаш","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
5169179371728153013
|
-1280829235989935764
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM
11:55 AM
здрасти Васко, може ли един approve
https://github.com/jiminny/app/pull/12136
https://github.com/jiminny/app/pull/12136
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
Today at 12:00:25 PM
12:00 PM
Здрасти, Лукаш
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
FirefoxFileEditViewHistoryBookmarksProfilesToolsDOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O 82-zshWindowHelpN3ec2-user@ip-10-30-129-190:~screenpipe"(ah]100% <78• Thu 28 May 15:01:05-zshSupport Dailynow - 3-3:15 PM= Notes - Support Daily.C Join Google MeetAmazon Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
84853
|
NULL
|
NULL
|
NULL
|
|
84854
|
2915
|
10
|
2026-05-28T12:01:04.212696+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969664212_m2.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"}]...
|
-2980788361395771722
|
-5774506732591563009
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
@ со)nolsen lsen abessonДохов2ов иниколсо саееисиоли оданаднле ват ие иоледсанивхитало давдекокосос он зоаддси солоесоя млкее накаоошою!uоuсошеNd9S: nalisenlsenHTKLIRNEXD MURNNON WEHONNa Spc Muenoy sexmКДОИЛОИНОХ РАЙ ВОХНЕЯ ОУЕНИДОКІРОКЕРОКЕОКО СООЕССА ПРКОРООДРИЕ НОДАРУКОРД ЧОВРУЛОООНЯ ФЛИВНИКОЯ ПООМИВЕРПОСКОФОДЕ Ч Е ВОСОБРЕИЕЧОД К ОСИНОКОДРЕЗИРОИОНТИНИШЕВЕРОИОСИЕИНУОСВОВИЕЕИДЕКОМЕ РОМООООИКЕНЕ СОВ РОДУТРОЕЕИЕВОККОДНЯМ ЕРХОУХОРОЛЬТКОЛАОЕ ЗОРДОННОХ ВРОЯРООЛИКЕНЕ СОВ РОЛУ РРЕСК РОЗКОКОИЬЯХСОИВЕАЕoeteteindooehuuitilwos.enuenoonuiammI.двсмиnvse n мн MnoteholsensenNolie ahenos seuwieetcoou cewoneddoneh miint ne dhnonNa OoZ nolsen lsen19071/lind/dde/kuuш!//wox'qnuysrsony+ Su4 SaUeSEAUES PPN CONOSN. 99netnoltXem o7 nut94990009seolPoee5sooyemeye samee nWUANONOSал Pe1wwora cenvisoozeweis зopolas• елодішію елсуpsuryses oyfediNowol UElOIsCnoUenois yois eCAOSION CUeAaltansenisenoaDsessow PaJduiod wodu dusasnoл-yuee #uoddns swscop #uopues#дэхрц-шодеа #Nco ruoneees39-AUUjCl#ojus-weas-ngl#esueчp-enuaСерцzq"Addey #eJauas#Suussuisus #song *puayped s•***KuuiшirЦирж0,090 - 4Р3TSN OOZIUDOSDN TOU SOMN DSOISONTUoieoueesuwonsowoouiuneDot ooeneowsonnU9449998 4990270910oisno 01 idolwou wuintePSоI XIOмUOISIHAaAnOYL889-G8S 1Fbed azuewwns30G+MiwooeJe unra Aauaueluudd si ssodose aui pue ano silee toues au e pell au, ui uoncdexo ueXN YaM Z0S"D'a puewwos siwiole a buis2nonspaausivibooenenonsouamaneoi oeousnomna pue puonasoot mnes moec canteDe wwostos lose ouososP UO bUDIeM "D'a) yonis siab ssapoid pluo auo tIaiP buIyeola ei sayeu беномTun suendom lallesed au8e puesipeddo, Pip non ento xogaotylhosen Unuele sa e4hu hc sahs ti sc c t te.ne esteoae eenoes mmteosatses petenewponeinee eirpoyes dlooe we319202/S0/LZ se enasioN cutlaNouroeorerwoet wooX 1 [putшep uo) (1889-0851wuwyrey wopeidtos teuosteewuшr &ROSTBAHAONOSON KOLROWEANptwwspoonooenswotedd aut ui soniss asos aut o mewtuns argeuuees bous e s wohoon whw bo soun poswosonsanssi asour 1o luewwns vous aш an6A Old [e IuItsoлорuмOOS BUNSHOUMS MOIM CIOAZONOSdeluyul - soupsdy oManiC...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84853
|
2914
|
12
|
2026-05-28T12:01:04.107539+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969664107_m1.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
6734776981510800042
|
-1271707408626184850
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
FirefoxFileEditViewHistoryBookmarksProfilesToolsDOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O 82-zshWindowHelpN3ec2-user@ip-10-30-129-190:~screenpipe"84(ah]100% <78• Thu 28 May 15:01:03-zshSupport Dailynow - 3-3:15 PM= Notes - Support Daily.C Join Google MeetAmazon Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84852
|
2914
|
11
|
2026-05-28T12:01:00.610048+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969660610_m1.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 19th at 9:18:56 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12082","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12082","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with white check mark emoji","depth":16,"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 10:29:42 AM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:29 AM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"благодаря","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 11:55:58 AM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
2313043645142549201
|
-1280829238410049172
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM
FirefoxFileEditViewHistoryBookmarksProfilesToolsDOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O 82-zshWindowHelpN3ec2-user@ip-10-30-129-190:~screenpipe"X4(ah]100% <78 • Thu 28 May 15:01:00-zshSupport Dailynow - 3-3:15 PM= Notes - Support Daily.C Join Google MeetAmazon Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
84850
|
NULL
|
NULL
|
NULL
|
|
84851
|
2915
|
9
|
2026-05-28T12:00:59.343784+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969659343_m2.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
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...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-4955353713447221713
|
-8120951495743817545
|
click
|
hybrid
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
@ со)nolsen lsen abessonДохов2ов иниколсо саееисиоли оданаднле ват ие иоледсанивхитало давдекокосос он зоаддси солоесоя млкее накаоошою!uоuсошеNd9S: nalisenlsenHTKLIRNEXD MURNNON WEHONNa Spc Muenoy sexmКДОИЛОИНОХ РАЙ ВОХНЕЯ ОУЕНИДОКІРОКЕРОКЕОКО СООЕССА ПРКОРООДРИЕ НОДАРУКОРД ЧОВРУЛОООНЯ ФЛИВНИКОЯ ПООМИВЕРПОСКОФОДЕ Ч Е ВОСОБРЕИЕЧОД К ОСИНОКОДРЕЗИРОИОНТИНИШЕВЕРОИОСИЕИНУОСВОВИЕЕИДЕКОМЕ РОМООООИКЕНЕ СОВ РОДУТРОЕЕИЕВОККОДНЯМ ЕРХОУХОРОЛЬТКОЛАОЕ ЗОРДОННОХ ВРОЯРООЛИКЕНЕ СОВ РОЛУ РРЕСК РОЗКОКОИЬЯХСОИВЕАЕoeteteindooehuuitilwos.enuenoonuiammI.двсмиnvse n мн MnoteholsensenNolie ahenos seuwieetcoou cewoneddoneh miint ne dhnonNa OoZ nolsen lsen19071/lind/dde/kuuш!//wox'qnuysrsony+ Su4 SaUeSEAUES PPN CONOSN. 9939:00:9L Aey 82 ngl94990009seolPoee5sooyemeye samee nWUANONOSал Pe1wwora cenvisoozeweis зopolas• елодішію елсуpsuryses oyfediNowol UElOIsCnoUenois yois eCAOSION CUeAaltansenisenoaDsessow PaJduiod wodu dusasnoл-yuee #uoddns swscop #uopues#дэхрц-шодеа #39-AUUjCl#ojus-weas-ngl#esueчp-enuaСерцzq"Addey #eJauas#Suussuisus #song *puayped s•***KuuiшirЦирж0,090 - 4Р3TSN OOZIUDOSDN TOU SOMN DSOISONTUoieoueesuwonsowoouiuneDot ooeneowsonnU9449998 4990270910oisno 01 idolwou wuwetSоI XIOмUOISIHAaAnOYL889-G8S 1Fbed azuewwns30G+MiwooeJe unra Aauaueluudd si ssodose aui pue ano silee toues au e pell au, ui uoncdexo ueXN YaM Z0S"D'a puewwos siwiole a buis2nonspaausivibooenenonsouamaneoi oeousnomna pue puonasoot mnes moec canteDe wwostos lose ouososP UO bUDIeM "D'a) yonis siab ssapoid pluo auo tIaiP buIyeola ei sayeu беномTun suendom lallesed au8e puesipeddo, Pip non ento xogaotylhosen Unuele sa e4hu hc sahs ti sc c t te.ne esteoae eenoes mmteosatses petenewponeinee eirpoyes dlooe we319202/SO/LZ 3e ENaSION CUENaNouroeorerwoet wooX 1 [putшep uo) (1889-0851wuwyrey wopeidtos teuosteewuшr &ROSTBAHAONOSON KOLROWEANptwwspoonooenswotedd aut ui soniss asos aut o mewtuns argeuuees bous e s wohoon whw bo soun poswosonsanssi asour 1o luewwns vous aш an6A Old [e IuItsoлорuмOOS BUNSHOUMS MOIM CIOAZONOSdeuuшl - saupdy oManiC...
|
84848
|
NULL
|
NULL
|
NULL
|
|
84850
|
2914
|
10
|
2026-05-28T12:00:59.242821+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969659242_m1.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"}]...
|
1995592033073043151
|
-5801313908413022494
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
FirefoxFileEditViewHistoryBookmarksProfilesToolsDOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O 82-zshWindowHelpN3ec2-user@ip-10-30-129-190:~screenpipe"O &4(ah]100% <78• Thu 28 May 15:00:58-zshSupport Dailynow - 3-3:15 PM= Notes - Support Daily.C Join Google MeetAmazon Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84849
|
2914
|
9
|
2026-05-28T12:00:49.717056+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969649717_m1.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM
11:55 AM
здрасти Васко, може ли един approve
https://github.com/jiminny/app/pull/12136
https://github.com/jiminny/app/pull/12136
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
Today at 12:00:25 PM
12:00 PM
Здрасти, Лукаш
React with white_check_mark
React with eyes
React with raised_hands...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 19th at 9:18:56 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12082","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12082","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with white check mark emoji","depth":16,"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 10:29:42 AM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:29 AM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"благодаря","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 11:55:58 AM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:55 AM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти Васко, може ли един approve","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12136","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12136","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:00:25 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Здрасти, Лукаш","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-448165942488328019
|
-1280829235989935764
|
idle
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM
11:55 AM
здрасти Васко, може ли един approve
https://github.com/jiminny/app/pull/12136
https://github.com/jiminny/app/pull/12136
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
Today at 12:00:25 PM
12:00 PM
Здрасти, Лукаш
React with white_check_mark
React with eyes
React with raised_hands
FirefoxFileEditViewHistoryBookmarksProfilesToolsDOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O 82-zshWindowHelpN3ec2-user@ip-10-30-129-190:~screenpipe"O &4(ah]100% <78 • Thu 28 May 15:00:49-zshSupport Dailynow - 3-3:15 PM= Notes - Support Daily.C Join Google MeetAmazon Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
84847
|
NULL
|
NULL
|
NULL
|
|
84848
|
2915
|
8
|
2026-05-28T12:00:49.475138+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969649475_m2.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.026595745,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.5746209,"width":0.023271276,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5969673,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0063164895,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.020944148,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"bounds":{"left":0.67852396,"top":0.10055866,"width":0.008976064,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"bounds":{"left":0.69148934,"top":0.09177973,"width":0.020279255,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"bounds":{"left":0.70079786,"top":0.10055866,"width":0.00831117,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"bounds":{"left":0.71276593,"top":0.09177973,"width":0.010970744,"height":0.030327214},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.015957447,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.007978723,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"bounds":{"left":0.7726064,"top":0.12689546,"width":0.049867023,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"bounds":{"left":0.60738033,"top":0.11572227,"width":0.007978723,"height":0.0071827616},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.11572227,"width":0.007978723,"height":0.0071827616},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"bounds":{"left":0.6180186,"top":0.11572227,"width":0.07114362,"height":0.007980846},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"bounds":{"left":0.60738033,"top":0.13567439,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.13567439,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"bounds":{"left":0.6180186,"top":0.13328013,"width":0.059175532,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 19th at 9:18:56 AM","depth":16,"bounds":{"left":0.60738033,"top":0.15961692,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.15961692,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12082","depth":16,"bounds":{"left":0.6180186,"top":0.15722266,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12082","depth":17,"bounds":{"left":0.6180186,"top":0.15722266,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with white check mark emoji","depth":16,"bounds":{"left":0.6180186,"top":0.1763767,"width":0.014295213,"height":0.01915403},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":17,"bounds":{"left":0.62732714,"top":0.17956904,"width":0.0023271276,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":16,"bounds":{"left":0.6336436,"top":0.1763767,"width":0.011303191,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.6180186,"top":0.20510775,"width":0.027593086,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.6456117,"top":0.20670392,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 10:29:42 AM","depth":15,"bounds":{"left":0.64793885,"top":0.20909816,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:29 AM","depth":16,"bounds":{"left":0.64793885,"top":0.20909816,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"благодаря","depth":16,"bounds":{"left":0.6180186,"top":0.22426178,"width":0.023936171,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-4899468847692378871
|
-1280758867518387860
|
idle
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
@ со)nolsen lsen abessowДохов2ов иниколсо саееисиоли оданаднле ват ие иоледсанивхитало давдекокосос он зоаддси солоесоя млкее накаоошою!uоuсошеNd9S: nalisenlsenHTKLIRNEXD MURNNON WEHONNa Spc Muenoy sexmКДОИЛОИНОХ РАЙ ВОХНЕЯ ОУЕНИДОКІРОКЕРОКЕОКО СООЕССА ПРКОРООДРИЕ НОДАРУКОРД ЧОВРУЛОООНЯ ФЛИВНИКОЯ ПООМИВЕРПОСКОФОДЕ Ч Е ВОСОБРЕИЕЧОД К ОСИНОКОДРЕЗИРОИОНТИНИШЕВЕРОИОСИЕИНУОСВОВИЕЕИДЕКОМЕ РОМООООИКЕНЕ СОВ РОДУТРОЕЕИЕВОККОДНЯМ ЕРХОУХОРОЛЬТКОЛАОЕ ЗОРДОННОХ ВРОЯРООЛИКЕНЕ СОВ РОЛУ РРЕСК РОЗКОКОИЬЯХСОИВЕАЕoeteteindooehuuitilwos.enuenoonuiammI.двсмиnvse n мн MnoteholsensenNolie ahenos seuwieetcoou cewoneddoneh miint ne dhnonNa OoZ nolsen lsen19071/lind/dde/kuuш!//wox'qnuysrsony+ Su4 SaUeSEAUES PPN CONOSN^ 0957:00:9L Key 82 ngl94990009seolPoee5sooyemeye samee nWUANONOSал Pe1wwora cenvisoozeweis зopolas• елодішію елсуpsuryses oyfediNowol UElOIsCnoUenois yois eCAOSION CUeAaltansenisenoaDsessow PaJduiod wodu dusasnoл-yuee #uoddns swscop #uopues#дэхрц-шодеа #39-AUUjCl#ojus-weas-ngl#esueчp-enuaСерцzq"Addey #eJauas#Suussuisus #song *puayped s•***KuuiшirЦирж0,090 - 4Р3TSN OOZIUDOSDN TOU SOMN DSOISONTUoieoueesuwonsowoouiuneDot ooeneowsonnU9449998 4990270910oisno 01 idolwou wuwetSоI XIOмUOISIHAaAnOYL889-G8S 1Fbed azuewwns30G+MiwooeJe unra Aauaueluudd si ssodose aui pue ano silee toues au e pell au, ui uoncdexo ueXN YaM Z0S"D'a puewwos siwiole a buis2nonspaausivibooenenonsouamaneoi oeousnomna pue puonasoot mnes moec canteDe wwostos lose ouososP UO bUDIeM "D'a) yonis siab ssapoid pluo auo tIaiP buIyeola ei sayeu беномTun suendom lallesed au8e puesipeddo, Pip non ento xogaotylhosen Unuele sa e4hu hc sahs ti sc c t te.ne esteoae eenoes mmteosatses petenewponeinee eirpoyes dlooe we319202/SO/LZ 3e ENaSION CUENaNouroeorerwoet wooX 1 [putшep uo) (1889-0851wuwyrey wopeidtos teuosteewuшr &ROSTBAHAONOSON KOLROWEANptwwspoonooenswotedd aut ui soniss asos aut o mewtuns argeuuees bous e s wohoon whw bo soun poswosonsanssi asour 1o luewwns vous aш an6A Old [e IuItsoлорuмOOS BUNSHOUMS MOIM CIOAZONOSdeuuшl - saupdy oManiC...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84847
|
2914
|
8
|
2026-05-28T12:00:18.822814+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969618822_m1.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM
11:55 AM
здрасти Васко, може ли един approve
https://github.com/jiminny/app/pull/12136
https://github.com/jiminny/app/pull/12136
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 19th at 9:18:56 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12082","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12082","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with white check mark emoji","depth":16,"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 10:29:42 AM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:29 AM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"благодаря","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 11:55:58 AM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:55 AM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти Васко, може ли един approve","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12136","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12136","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
3503530903193980422
|
-1280829235989935796
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM
11:55 AM
здрасти Васко, може ли един approve
https://github.com/jiminny/app/pull/12136
https://github.com/jiminny/app/pull/12136
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
FirefoxFileEditViewHistoryBookmarksProfilesToolsDOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O 82-zshWindowHelpN3ec2-user@ip-10-30-129-190:~screenpipe"?84(ah]100% <78• Thu 28 May 15:00:18-zshSupport Dailynow - 3-3:15 PM= Notes - Support Daily.C Join Google MeetAmazon Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84846
|
2915
|
7
|
2026-05-28T12:00:18.718795+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969618718_m2.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM
11:55 AM
здрасти Васко, може ли един approve
https://github.com/jiminny/app/pull/12136
https://github.com/jiminny/app/pull/12136
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
Today at 12:00:25 PM
12:00 PM
Здрасти, Лукаш
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.026595745,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.5746209,"width":0.023271276,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5969673,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0063164895,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.020944148,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"bounds":{"left":0.67852396,"top":0.10055866,"width":0.008976064,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"bounds":{"left":0.69148934,"top":0.09177973,"width":0.020279255,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"bounds":{"left":0.70079786,"top":0.10055866,"width":0.00831117,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"bounds":{"left":0.71276593,"top":0.09177973,"width":0.010970744,"height":0.030327214},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.015957447,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.007978723,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"bounds":{"left":0.7726064,"top":0.12689546,"width":0.049867023,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"bounds":{"left":0.60738033,"top":0.11572227,"width":0.007978723,"height":0.0071827616},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.11572227,"width":0.007978723,"height":0.0071827616},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"bounds":{"left":0.6180186,"top":0.11572227,"width":0.07114362,"height":0.007980846},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"bounds":{"left":0.60738033,"top":0.13567439,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.13567439,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"bounds":{"left":0.6180186,"top":0.13328013,"width":0.059175532,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 19th at 9:18:56 AM","depth":16,"bounds":{"left":0.60738033,"top":0.15961692,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.15961692,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12082","depth":16,"bounds":{"left":0.6180186,"top":0.15722266,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12082","depth":17,"bounds":{"left":0.6180186,"top":0.15722266,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with white check mark emoji","depth":16,"bounds":{"left":0.6180186,"top":0.1763767,"width":0.014295213,"height":0.01915403},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":17,"bounds":{"left":0.62732714,"top":0.17956904,"width":0.0023271276,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":16,"bounds":{"left":0.6336436,"top":0.1763767,"width":0.011303191,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.6180186,"top":0.20510775,"width":0.027593086,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.6456117,"top":0.20670392,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 10:29:42 AM","depth":15,"bounds":{"left":0.64793885,"top":0.20909816,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:29 AM","depth":16,"bounds":{"left":0.64793885,"top":0.20909816,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"благодаря","depth":16,"bounds":{"left":0.6180186,"top":0.22426178,"width":0.023936171,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"bounds":{"left":0.7849069,"top":0.254589,"width":0.025265958,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.6180186,"top":0.2857143,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.64893615,"top":0.28731045,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 11:55:58 AM","depth":15,"bounds":{"left":0.6515958,"top":0.2897047,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:55 AM","depth":16,"bounds":{"left":0.6515958,"top":0.2897047,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти Васко, може ли един approve","depth":16,"bounds":{"left":0.6180186,"top":0.3048683,"width":0.08809841,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12136","depth":16,"bounds":{"left":0.70611703,"top":0.3048683,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12136","depth":17,"bounds":{"left":0.70611703,"top":0.3048683,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.6180186,"top":0.3272147,"width":0.027593086,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.6456117,"top":0.32881084,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:00:25 PM","depth":15,"bounds":{"left":0.64793885,"top":0.3312051,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00 PM","depth":16,"bounds":{"left":0.64793885,"top":0.3312051,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Здрасти, Лукаш","depth":16,"bounds":{"left":0.6180186,"top":0.3463687,"width":0.03656915,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
7654215002925220535
|
-1280829235989935764
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM
11:55 AM
здрасти Васко, може ли един approve
https://github.com/jiminny/app/pull/12136
https://github.com/jiminny/app/pull/12136
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
Today at 12:00:25 PM
12:00 PM
Здрасти, Лукаш
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
@ со)nolsen lsen abessowДохов2ов иниколсо саееисиоли оданаднле ват ие иоледсанивхитало давдекокосос он зоаддси солоесоя млкее накаоошою!uоuсошеNd9S: nalisenlsenHTKLIRNEXD MURNNON WEHONNa Spc Muenoy sexmКДОИЛОИНОХ РАЙ ВОХНЕЯ ОУЕНИДОКІРОКЕРОКЕОКО СООЕССА ПРКОРООДРИЕ НОДАРУКОРД ЧОВРУЛОООНЯ ФЛИВНИКОЯ ПООМИВЕРПОСКОФОДЕ Ч Е ВОСОБРЕИЕЧОД К ОСИНОКОДРЕЗИРОИОНТИНИШЕВЕРОИОСИЕИНУОСВОВИЕЕИДЕКОМЕ РОМООООИКЕНЕ СОВ РОДУТРОЕЕИЕВОККОДНЯМ ЕРХОУХОРОЛЬТКОЛАОЕ ЗОРДОННОХ ВРОЯРООЛИКЕНЕ СОВ РОЛУ РРЕСК РОЗКОКОИЬЯХСОИВЕАЕoeteteindooehuuitilwos.enuenoonuiammI.двсмиnvse n мн MnoteholsensenNolie ahenos seuwieetcoou cewoneddoneh miint ne dhnonNa OoZ nolsen lsenACpOL19071/lind/dde/kuuш!//wox'qnuysrsony+ Su4 SaUeSEAUES PPN CONOSN. 99Iennol XeM o7 nut94990009seolPoee5sooyemeye samee nWUANONOSал Pe1wwora cenvisoozeweis зopolas• елодішію елсуpsuryses oyfediNowol UElOIsCnoUenois yois eCAOSION CUeAaltansenisenoaDsessow PaJduiod wodu dusasnoл-yuee #uoddns swscop #uopues#дэхрц-шодеа #Nco ruoneees39-AUUjCl#ojus-weas-ngl#esueчp-enuaСерцzq"Addey #eJauas#Suussuisus #song *puayped s•***KuuiшirЦирж0,090 - 4Р3TSN OOZIUDOSDN TOU SOMN DSOISONTUoieoueesuwonsowoouiuneDot ooeneowsonnU9449998 4990270910oisno 01 idolwou wuintePSоI XIOмUOISIHAaAnOYL889-G8S 1Fbed azuewwns30G+MiwooeJe unra Aauaueluudd si ssodose aui pue ano silee toues au e pell au, ui uoncdexo ueXN YaM Z0S"D'a puewwos siwiole a buis2nonspaausivibooenenonsouamaneoi oeousnomna pue puonasoot mnes moec canteDe wwostos lose ouososP UO bUDIeM "D'a) yonis siab ssapoid pluo auo tIaiP buIyeola ei sayeu беномTun suendom lallesed au8e puesipeddo, Pip non ento xogaotylhosen Unuele sa e4hu hc sahs ti sc c t te.ne esteoae eenoes mmteosatses petenewponeinee eirpoyes dlooe we319202/S0/LZ se enasioN cutlaNouroeorerwoet wooX 1 [putшep uo) (1889-0851wuwyrey wopeidtos teuosteewuшr &ROSTBAHAONOSON KOLROWEANptwwspoonooenswotedd aut ui soniss asos aut o mewtuns argeuuees bous e s wohsanssi asour 1o luewwns vous aш an6A Old [e IuItsoпоримoon whw bo soun poswosonOOS BUNSHOUMS MOIM CIOAZONOSdeluyul - soupsdy oManiC...
|
84845
|
NULL
|
NULL
|
NULL
|
|
84845
|
2915
|
6
|
2026-05-28T12:00:16.226161+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969616226_m2.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.026595745,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.5746209,"width":0.023271276,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5969673,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0063164895,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.010970744,"height":0.030327214},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.015957447,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.007978723,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":14,"bounds":{"left":0.6412899,"top":0.23224261,"width":0.041888297,"height":0.021548284},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":16,"bounds":{"left":0.6412899,"top":0.23383878,"width":0.04055851,"height":0.018355945},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":14,"bounds":{"left":0.60339093,"top":0.29848364,"width":0.08676862,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":14,"bounds":{"left":0.69015956,"top":0.29768556,"width":0.045212764,"height":0.018355945},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":15,"bounds":{"left":0.69082445,"top":0.29848364,"width":0.043882977,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":14,"bounds":{"left":0.73537236,"top":0.29848364,"width":0.1505984,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":13,"bounds":{"left":0.60339093,"top":0.33040702,"width":0.035904255,"height":0.028731046},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"bounds":{"left":0.7849069,"top":0.3830806,"width":0.025265958,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.6180186,"top":0.4142059,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.64893615,"top":0.41580206,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":15,"bounds":{"left":0.6515958,"top":0.41819632,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":16,"bounds":{"left":0.6515958,"top":0.41819632,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":16,"bounds":{"left":0.6180186,"top":0.43335995,"width":0.061835106,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.6180186,"top":0.4557063,"width":0.034574468,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.65226066,"top":0.45730248,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":15,"bounds":{"left":0.6549202,"top":0.45969674,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":16,"bounds":{"left":0.6549202,"top":0.45969674,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":16,"bounds":{"left":0.6180186,"top":0.47486034,"width":0.07480053,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.6180186,"top":0.49720672,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.64893615,"top":0.49880287,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":15,"bounds":{"left":0.6515958,"top":0.5011971,"width":0.014960106,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52 PM","depth":16,"bounds":{"left":0.6515958,"top":0.5011971,"width":0.014960106,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, да но мисля че няма нужда вече","depth":16,"bounds":{"left":0.6180186,"top":0.51636076,"width":0.09541223,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:52:47 PM","depth":16,"bounds":{"left":0.60738033,"top":0.54269755,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52","depth":17,"bounds":{"left":0.60738033,"top":0.54269755,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"чухме се със Стоян и той беше запознат и по този кейс","depth":16,"bounds":{"left":0.6180186,"top":0.5403033,"width":0.12699468,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:53:22 PM","depth":16,"bounds":{"left":0.60738033,"top":0.5666401,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:53","depth":17,"bounds":{"left":0.60738033,"top":0.5666401,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"под този кейс имам предвид","depth":16,"bounds":{"left":0.6180186,"top":0.5642458,"width":0.06781915,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":16,"bounds":{"left":0.68583775,"top":0.5642458,"width":0.10305851,"height":0.014365523},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":17,"bounds":{"left":0.68583775,"top":0.5642458,"width":0.10305851,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.6180186,"top":0.58739024,"width":0.018949468,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Jira Cloud","depth":15,"bounds":{"left":0.63829786,"top":0.58739024,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Remove preview","depth":17,"bounds":{"left":0.61136967,"top":0.6057462,"width":0.0066489363,"height":0.016759777},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize","depth":17,"bounds":{"left":0.6180186,"top":0.60415006,"width":0.15957446,"height":0.1348763},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"[On demand] Transcription in saved search disappears","depth":18,"bounds":{"left":0.63829786,"top":0.6177175,"width":0.1200133,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Bug SRD-6881 in Jira Cloud","depth":19,"bounds":{"left":0.63829786,"top":0.63367915,"width":0.053523935,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":19,"bounds":{"left":0.63829786,"top":0.63367915,"width":0.03125,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Status","depth":18,"bounds":{"left":0.63829786,"top":0.65682364,"width":0.011968086,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ready for customer","depth":18,"bounds":{"left":0.63962764,"top":0.67597765,"width":0.04255319,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Assignee","depth":18,"bounds":{"left":0.69148934,"top":0.65682364,"width":0.016954787,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":19,"bounds":{"left":0.7017952,"top":0.67677575,"width":0.026263298,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"(you)","depth":19,"bounds":{"left":0.7293883,"top":0.67677575,"width":0.009640957,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"As of today at 2:53 PM","depth":19,"bounds":{"left":0.62234044,"top":0.71428573,"width":0.043882977,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Refresh","depth":19,"bounds":{"left":0.6672208,"top":0.71747804,"width":0.01462766,"height":0.006384677},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Jira","depth":19,"bounds":{"left":0.70711434,"top":0.7094972,"width":0.03125,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"✨ Summarize","depth":19,"bounds":{"left":0.7393617,"top":0.7094972,"width":0.03523936,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Open in browser","depth":18,"bounds":{"left":0.7144282,"top":0.6177175,"width":0.022606382,"height":0.025538707},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Open","depth":19,"bounds":{"left":0.7237367,"top":0.62330407,"width":0.010638298,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Share Bug SRD-6881","depth":18,"bounds":{"left":0.7400266,"top":0.6177175,"width":0.010638298,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":18,"bounds":{"left":0.7506649,"top":0.6177175,"width":0.010638298,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":18,"bounds":{"left":0.7613032,"top":0.6177175,"width":0.010638298,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8597614884760294567
|
-1429446797479739056
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
SluCkcolVIChRotonWindonHelpv Gooc e GeminiPipelines - jiminny/appGemini 3.1 Pro ~reavors now ownerstoe tooAxUemered tines on New codJY-20963 fix deleted object implm cwdsycaotionslEmnlltcthtteM Inbox (1,733) - lukas.kovaliklimlioonre Reso ve php 81.15 ded8 Jiminm,Platform Sorint 5.02 - Platform Te8 Jiminny(SRD-6881) (On demand) Tr. XSona Subramanian at 27/05/202aIliyana Netseva at 27/05/2026, 1€es w 20910 schedule oarallel wednrgive me snort summary of these issuesHere is a short, scannable summary of the core issues in the PR:€ Critical & High-Risk IssuesShared Elasticsearch Sockets: Because pentl. fork( clones file descriotors. both childprocesses will share the exact same HIIP/TCP socket tor tlasticsearch. Since you dian't resetthe ES client in resetAfterFork() (like vou did for Redis and DB), the parallel workers willcollide at the network layer, causing corrupted data and cURL exceptionsSupervisor Shutdown Deadlock:In reapChildren.callina ocntl_waitpid without theANOHANG Tlag makes it a blocking call. It one child process gets stuck (e.g., warting on anetwork timeout), the parent supervisor will freeze indefinitely and completely ignore your 10-coccnelatse nichueounleatA Logic & Concurrency FlawsNon-Atomic Redis Locks: The new ReindexTargetStatsReporter checks the lock with getand then creates it with set . Because the workers are truly parallel, they can both read nullatthe exaci same microsecond and botn pusn duplicate metnics to Datadog. Inis neeas to be asinale, atomic command (e.q.lset with NX).Corruoted Ston Sianal State: The rund) loop in EntityivoeReindexer marks the processas "unsafe to stop", does the work, and then marks it "safe". If the Elasticsearch update throwsan exception in the middle, the scriot bails out and the process is oermanentlv left in anunsafe to stop" state. This must be wrapped in a try...finally blocksô:elcomintYour lim nou chate trhn" uend to imnroy our moddle Camioiie 4l1t cao mata mtake co donbls chack " Yoir oracy & CaminSummarize page1ouCx1 SHU-000ActivityHistoryWork logAdd internal noteReply to custoPro tioe mress M to commenLuxas Rovallksucone dc0nun order to save a transcriot, the cient"nererore, " was not recoenized as aEdit - DeleteHoeActivityLateMoneiJiminnY …# backend# buescontusion-dinig# donut_time# engineering# generall# happy_birthdayeuintocne intemall all# infra-chansedPihiesnuen#bu-team-infoi liminnv-benlattormeteam# platform-ticketsworooudauncho# random# released# suppor# thank-yousthe neonle ortim6? Direct message.0 llivana NetsevaA Stefka StovanovaStoyan TomovPetko KashinskiGola Nimitrous: Todor Stamator1 Stelivan Georsie.Ves&r MireNikolav Vanko&o James Grahamuukas Kovalky#:AppsEl tie GloudToastai Gooele Cale.TO0% L7inu co moy to.uu.l@ Describe what you are looking for* lliyana Netseva** Add canvas +llivana NetsevaThis conversation is lust between @llivana Netseva and you. Check out their prohle to learn more about them.Vew PronleodhywLukas Kovalik 12:32 PMздоавеи, имаш ли минуткаlivann Neseva 7S.PMokolo 4 chasa svoboden li shte si?tukae Kovslik 2.c0.otздрасти, да но мисля че няма нужда вечеUNMMO CO CWAETЛOM И TAU NOIG 13B0HNST 1 CA TÔNM MGUпод този кейс имам предвид https://fiminny.atlassian.net/browse/SRD-6883lira Gloud*% Bus 5e0 s8el i ira crirOn demand) Transcription in saved search disappear:Randv tor ductom enLukas Kovalik (you)As of today at 2:58 PMOoen in rau Cummarineвиж коментари и ако трябва нешо пруго може ла се чуемIliyana Netseva 2:56 PMvidgh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata meidu tova koeto pravi ta i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search•apopravi me ako greshaukac Kowalik 2i67.o1nRMnu AunaTamhice monch no ranscrintMessage llivana Netseva- Aa...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84844
|
2914
|
7
|
2026-05-28T12:00:16.122948+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969616122_m1.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":14,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":14,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":14,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":14,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":13,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-2546341158878857925
|
-5892514146348268718
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
FirefoxFileEditViewHistoryBookmarksProfilesToolsDOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O 82-zshWindowHelpN3ec2-user@ip-10-30-129-190:~screenpipe"O &4(ah]100% <78• Thu 28 May 15:00:15-zshSupport Dailynow - 3-3:15 PM= Notes - Support Daily.C Join Google MeetAmazon Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
84843
|
NULL
|
NULL
|
NULL
|
|
84843
|
2914
|
6
|
2026-05-28T12:00:13.954747+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969613954_m1.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:56:40 PM
2:56 PM
vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a
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 2:56:55 PM
2:56
popravi me ako gresha
React with white_check_mark
React with eyes
React with raised_hands...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":14,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":14,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":14,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":14,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":13,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, да но мисля че няма нужда вече","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:52:47 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"чухме се със Стоян и той беше запознат и по този кейс","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:53:22 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:53","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"под този кейс имам предвид","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Remove preview","depth":17,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize","depth":17,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"[On demand] Transcription in saved search disappears","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Bug SRD-6881 in Jira Cloud","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Status","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ready for customer","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Assignee","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"(you)","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"As of today at 2:53 PM","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Refresh","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Jira","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"✨ Summarize","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Open in browser","depth":18,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Open","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Share Bug SRD-6881","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:54:12 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:54","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"виж коментари и ако трябва нещо друго може да се чуем","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:56:40 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:56 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:56:55 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:56","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"popravi me ako gresha","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
8731367574514319887
|
-1717817773580189616
|
idle
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:56:40 PM
2:56 PM
vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a
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 2:56:55 PM
2:56
popravi me ako gresha
React with white_check_mark
React with eyes
React with raised_hands
FirefoxFileEditViewHistoryBookmarksProfilesToolsDOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O 82-zshWindowHelpN3ec2-user@ip-10-30-129-190:~screenpipe"O &4(ah]100% <78• Thu 28 May 15:00:13-zshSupport Dailynow - 3-3:15 PM= Notes - Support Daily.C Join Google MeetAmazon Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84842
|
2915
|
5
|
2026-05-28T12:00:13.756436+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969613756_m2.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"}]...
|
-8276566832937135362
|
-8141359511730962697
|
idle
|
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
1
Directories
platform-backend-engineers
SluCkcolVIChRotonWindowHelpv Gooc e GeminiPipelines - jiminny/appGemini 3.1 Pro ~reavors now ownerstoe tooAxUemered tines on New codJY-20963 fix deleted object implm cwdsycaotionslEmnlltcthtteM Inbox (1,733) - lukas.kovaliklimlioonre Reso ve php 81.15 ded8 Jiminm,Platform Sorint 5.02 - Platform Te8 Jiminny(SRD-6881) (On demand) Tr. XSona Subramanian at 27/05/202aIliyana Netseva at 27/05/2026, 1€es w 20910 schedule oarallel wednrgive me snort summary of these issuesHere is a short, scannable summary of the core issues in the PR:€ Critical & High-Risk IssuesShared Elasticsearch Sockets: Because pentl. fork( clones file descriotors. both childprocesses will share the exact same HIIP/TCP socket tor tlasticsearch. Since you dian't resetthe ES client in resetAfterFork() (like vou did for Redis and DB), the parallel workers willcollide at the network layer, causing corrupted data and cURL exceptionsSupervisor Shutdown Deadlock:In reapChildren.callina ocntl_waitpid without theANOHANG Tlag makes it a blocking call. It one child process gets stuck (e.g., warting on anetwork timeout), the parent supervisor will freeze indefinitely and completely ignore your 10-coccnelatse nichueounleatA Logic & Concurrency FlawsNon-Atomic Redis Locks: The new ReindexTargetStatsReporter checks the lock with getand then creates it with set . Because the workers are truly parallel, they can both read nullatthe exaci same microsecond and botn pusn duplicate metnics to Datadog. Inis neeas to be asinale, atomic command (e.q.lset with NX).Corruoted Ston Sianal State: The rund) loop in EntityivoeReindexer marks the processas "unsafe to stop", does the work, and then marks it "safe". If the Elasticsearch update throwsan exception in the middle, the scriot bails out and the process is oermanentlv left in anunsafe to stop" state. This must be wrapped in a try...finally blocksô:elcomintYour lim nou chate trhn" uend to imnroy our moddle Camioiie 4l1t cao mata mtake co donbls chack " Yoir oracy & CaminSummarize page1ouCx1 SHU-000Attachments 1ActivityHistoryWork logAdd internal noteReply to custoPro tioe mress M to commenLuxas Rovallksucone dc0nun order to save a transcriot, the cient"nererore, " was not recoenized as aEdit - DeleteHoeActivityLateMoneiJiminnY ….# backend# buescontusion-dinig# donut_time# engineering# general# happy_birthdayeuintocne intemall all# infra-chansedPihiesnuen#bu-team-infoi liminnv-benlattormeteam# platform-ticketsworooudauncho# random# released# suppon# thank-yousthe neonle ortim6? Direct message.0 llivana NetsevaA Stefka StovanovaStoyan TomovPetko KashinskiGaiva Dimitrova D: Todor Stamator1 Stelivan Georsie.Ves&r MireNikolav Vanko&o James Grahamuukas Kovalky#:AppsEl tie GloudToastai Gooele Cale.TO0% L7inu co woy to.uo.@ Describe what you are looking for* lliyana Netseva** Add canvas +llivana NetsevaThis conversation is lust between @llivana Netseva and you. Check out their prohle to learn more about them.Vew PronleodhywLukas Kovalik 12:32 PMздоавеи, имаш ли минуткаlliyana Netseva 2:51 PMokolo 4 chasa svoboden li shte si?tukae Kovslik 2.c0.otздрасти, да но мисля че няма нужда вечеUNMMO CO CWAETЛOM И TAU NOIG 13B0HNST 1 CA TÔNM MGUпод този кейс имам предвид https://fiminny.atlassian.net/browse/SRD-6883lira Gloud*% Bus 5e0 s8el i ira crirOn demand) Transcription in saved search disappear:Randv tor ductom enLukas Kovalik (you)As of today at 2:58 PMOoen in rau Cummarineвиж коментари и ако трябва нешо пруго може ла се чуемIliyana Netseva 2:56 PMvidgh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata meidu tova koeto pravi ta i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search•apopravi me ako greshaukac Kowalik 2i67.o1nRMnu AunaTamhice monch no ranscrintMessage llivana Netseva- Aa...
|
84840
|
NULL
|
NULL
|
NULL
|
|
84841
|
2914
|
5
|
2026-05-28T11:59:43.121606+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969583121_m1.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:56:40 PM
2:56 PM
vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a
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 2:56:55 PM
2:56
popravi me ako gresha
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":14,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":14,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":14,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":14,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":13,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, да но мисля че няма нужда вече","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:52:47 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"чухме се със Стоян и той беше запознат и по този кейс","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:53:22 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:53","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"под този кейс имам предвид","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Remove preview","depth":17,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize","depth":17,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"[On demand] Transcription in saved search disappears","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Bug SRD-6881 in Jira Cloud","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Status","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ready for customer","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Assignee","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"(you)","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"As of today at 2:53 PM","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Refresh","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Jira","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"✨ Summarize","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Open in browser","depth":18,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Open","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Share Bug SRD-6881","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:54:12 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:54","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"виж коментари и ако трябва нещо друго може да се чуем","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:56:40 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:56 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:56:55 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:56","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"popravi me ako gresha","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
3588121599118086942
|
-1717817773546618800
|
idle
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:56:40 PM
2:56 PM
vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a
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 2:56:55 PM
2:56
popravi me ako gresha
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
FirefoxFileEditViewHistoryBookmarksProfilesToolsDOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O 82-zshWindowHelpN3ec2-user@ip-10-30-129-190:~screenpipe"O ₴4(ah]100% <78• Thu 28 May 14:59:421₴1-zshSupport Dailyin 1m - 3-3:15 PM= Notes - Support Daily.C Join Google MeetAmazon Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
84839
|
NULL
|
NULL
|
NULL
|
|
84840
|
2915
|
4
|
2026-05-28T11:59:43.014345+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969583014_m2.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.026595745,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.5746209,"width":0.023271276,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5969673,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0063164895,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.010970744,"height":0.030327214},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.015957447,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.007978723,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":14,"bounds":{"left":0.6412899,"top":0.23224261,"width":0.041888297,"height":0.021548284},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":16,"bounds":{"left":0.6412899,"top":0.23383878,"width":0.04055851,"height":0.018355945},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":14,"bounds":{"left":0.60339093,"top":0.29848364,"width":0.08676862,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":14,"bounds":{"left":0.69015956,"top":0.29768556,"width":0.045212764,"height":0.018355945},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":15,"bounds":{"left":0.69082445,"top":0.29848364,"width":0.043882977,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":14,"bounds":{"left":0.73537236,"top":0.29848364,"width":0.1505984,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":13,"bounds":{"left":0.60339093,"top":0.33040702,"width":0.035904255,"height":0.028731046},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"bounds":{"left":0.7849069,"top":0.3830806,"width":0.025265958,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.6180186,"top":0.4142059,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.64893615,"top":0.41580206,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":15,"bounds":{"left":0.6515958,"top":0.41819632,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":16,"bounds":{"left":0.6515958,"top":0.41819632,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":16,"bounds":{"left":0.6180186,"top":0.43335995,"width":0.061835106,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.6180186,"top":0.4557063,"width":0.034574468,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.65226066,"top":0.45730248,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":15,"bounds":{"left":0.6549202,"top":0.45969674,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":16,"bounds":{"left":0.6549202,"top":0.45969674,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":16,"bounds":{"left":0.6180186,"top":0.47486034,"width":0.07480053,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.6180186,"top":0.49720672,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8396597305803389107
|
-5892514129168399534
|
idle
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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
SluCkcolVIChRotonWindowHelpv Gooc e GeminiPipelines - jiminny/appGemini 3.1 Pro ~reavors now ownerstoe tooAxUemered tines on New codJY-20963 fix deleted object implm cwdsycaotionslEmnlltcthtteM Inbox (1,733) - lu/cas.kovalikSlimlioonre Reso ve php 81.15 ded8 Jiminm,Platform Sorint 5.02 - Platform Te8 Jiminny(SRD-6881) (On demand) Tr. XSona Subramanian at 27/05/202aIliyana Netsova at 27/05/2026, 18es w 20910 schedule oarallel wednrgive me snort summary of these issuesHere is a short, scannable summary of the core issues in the PR:€ Critical & High-Risk IssuesShared Elasticsearch Sockets: Because pentl. fork( clones file descriotors. both childprocesses will share the exact same HIIP/TCP socket tor tlasticsearch. Since you dian't resetthe ES client in resetAfterFork() (like vou did for Redis and DB), the parallel workers willcollide at the network layer, causing corrupted data and cURL exceptionsSupervisor Shutdown Deadlock:In reapChildren.callina ocntl_waitpid without theANOHANG Tlag makes it a blocking call. It one child process gets stuck (e.g., warting on anetwork timeout), the parent supervisor will freeze indefinitely and completely ignore your 10-coccnelatse nichueounleatA Logic & Concurrency FlawsNon-Atomic Redis Locks: The new ReindexTargetStatsReporter checks the lock with getand then creates it with set . Because the workers are truly parallel, they can both read nullatthe exaci same microsecond and botn pusn duplicate metnics to Datadog. Inis neeas to be asinale, atomic command (e.q.lset with NX).Corruoted Ston Sianal State: The rund) loop in EntityivoeReindexer marks the processas "unsafe to stop", does the work, and then marks it "safe". If the Elasticsearch update throwsan exception in the middle, the scriot bails out and the process is oermanentlv left in anunsafe to stop" state. This must be wrapped in a try...finally blocksô:elcomintYour lim nou chate trhn" uend to imnroy our moddle Camioiie 4l1t cao mata mtake co donbls chack " Yoir oracy & CaminSummarize page1ouCx1 SHU-000Attachments 1ActivityHistoryWork logAdd internal notelReply to custoPro tioe mress M to commenLuxas Rovallksucone dc0nun order to save a transcriot, the cient"nererore, " was not recoenized as aEdit - DeleteHoeActivityLateMoneiJiminnY ….# backend# buescontusion-dinig# donut_time# engineering# general# happy_birthdayeuintocne intemall all# infra-chansedPihiesnuen#bu-team-infoi liminnv-benlattormeteam# platform-ticketsworooudauncho# random# released# suppon# thank-yousthe neonle ortim6? Direct message.0 llivana NetsevaA Stefka StovanovaStoyan TomovPetko KashinskiGaiva Dimitrova D: Todor Stamator1 Stelivan Georsie.Ves&r MireNikolav Vanko&o James Grahamuukas Kovalky#:AppsEl tie GloudToastai Gooele Cale.TO0% L7• Thu 28 May 14:59:42@ Describe what you are looking for* lliyana Netseva** Add canvas +llivana NetsevaThis conversation is lust between @llivana Netseva and you. Check out their prohle to learn more about them.Vew PronleodhywLukas Kovalik 12:32 PMздоавеи, имаш ли минуткаlliyana Netseva 2:51 PMokolo 4 chasa svoboden li shte si?tukae Kovslik 2.c0.otздрасти, да но мисля че няма нужда вечеUNMMO CO CWAETЛOM И TAU NOIG 13B0HNST 1 CA TÔNM MGUпод този кейс имам предвид https://fiminny.atlassian.net/browse/SRD-6883lira Gloud*% Bus 5e0 s8el i ira crirOn demand) Transcription in saved search disappear:Randv tor ductom enLukas Kovalik (you)As of today at 2:58 PMOoen in rau Cummarineвиж коментари и ако трябва нешо пруго може ла се чуемIliyana Netseva 2:56 PMvidgh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata meidu tova koeto pravi ta i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search•apopravi me ako greshaukac Kowalik 2i67.o1nRMnu AunaTamhice monch no ranscrintMessage llivana Netseva- Aa...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84839
|
2914
|
4
|
2026-05-28T11:59:12.333272+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969552333_m1.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:56:40 PM
2:56 PM
vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a
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 2:56:55 PM...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":14,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":14,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":14,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":14,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":13,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, да но мисля че няма нужда вече","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:52:47 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"чухме се със Стоян и той беше запознат и по този кейс","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:53:22 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:53","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"под този кейс имам предвид","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Remove preview","depth":17,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize","depth":17,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"[On demand] Transcription in saved search disappears","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Bug SRD-6881 in Jira Cloud","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Status","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ready for customer","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Assignee","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"(you)","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"As of today at 2:53 PM","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Refresh","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Jira","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"✨ Summarize","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Open in browser","depth":18,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Open","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Share Bug SRD-6881","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:54:12 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:54","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"виж коментари и ако трябва нещо друго може да се чуем","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:56:40 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:56 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:56:55 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
267311108656248187
|
-1717817773546635184
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:56:40 PM
2:56 PM
vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a
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 2:56:55 PM
FirefoxFileEditViewHistoryBookmarksProfilesToolsDOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O 82-zshWindowHelpN3ec2-user@ip-10-30-129-190:~screenpipe"O ₴4(ah]100% <78• Thu 28 May 14:59:121₴1-zshSupport Dailyin 1m - 3-3:15 PM= Notes - Support Daily.C Join Google MeetAmazon Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84838
|
2915
|
3
|
2026-05-28T11:59:12.228233+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969552228_m2.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Iliyana Netseva (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.026595745,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.5746209,"width":0.023271276,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5969673,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0063164895,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.010970744,"height":0.030327214},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.015957447,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.007978723,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":14,"bounds":{"left":0.6412899,"top":0.23224261,"width":0.041888297,"height":0.021548284},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":16,"bounds":{"left":0.6412899,"top":0.23383878,"width":0.04055851,"height":0.018355945},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":14,"bounds":{"left":0.60339093,"top":0.29848364,"width":0.08676862,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":14,"bounds":{"left":0.69015956,"top":0.29768556,"width":0.045212764,"height":0.018355945},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":15,"bounds":{"left":0.69082445,"top":0.29848364,"width":0.043882977,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":14,"bounds":{"left":0.73537236,"top":0.29848364,"width":0.1505984,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":13,"bounds":{"left":0.60339093,"top":0.33040702,"width":0.035904255,"height":0.028731046},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"bounds":{"left":0.7849069,"top":0.3830806,"width":0.025265958,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.6180186,"top":0.4142059,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.64893615,"top":0.41580206,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":15,"bounds":{"left":0.6515958,"top":0.41819632,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":16,"bounds":{"left":0.6515958,"top":0.41819632,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":16,"bounds":{"left":0.6180186,"top":0.43335995,"width":0.061835106,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.6180186,"top":0.4557063,"width":0.034574468,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.65226066,"top":0.45730248,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":15,"bounds":{"left":0.6549202,"top":0.45969674,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":16,"bounds":{"left":0.6549202,"top":0.45969674,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":16,"bounds":{"left":0.6180186,"top":0.47486034,"width":0.07480053,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.6180186,"top":0.49720672,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.64893615,"top":0.49880287,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":15,"bounds":{"left":0.6515958,"top":0.5011971,"width":0.014960106,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52 PM","depth":16,"bounds":{"left":0.6515958,"top":0.5011971,"width":0.014960106,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, да но мисля че няма нужда вече","depth":16,"bounds":{"left":0.6180186,"top":0.51636076,"width":0.09541223,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:52:47 PM","depth":16,"bounds":{"left":0.60738033,"top":0.54269755,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52","depth":17,"bounds":{"left":0.60738033,"top":0.54269755,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"чухме се със Стоян и той беше запознат и по този кейс","depth":16,"bounds":{"left":0.6180186,"top":0.5403033,"width":0.12699468,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:53:22 PM","depth":16,"bounds":{"left":0.60738033,"top":0.5666401,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:53","depth":17,"bounds":{"left":0.60738033,"top":0.5666401,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"под този кейс имам предвид","depth":16,"bounds":{"left":0.6180186,"top":0.5642458,"width":0.06781915,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":16,"bounds":{"left":0.68583775,"top":0.5642458,"width":0.10305851,"height":0.014365523},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":17,"bounds":{"left":0.68583775,"top":0.5642458,"width":0.10305851,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.6180186,"top":0.58739024,"width":0.018949468,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Jira Cloud","depth":15,"bounds":{"left":0.63829786,"top":0.58739024,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true}]...
|
-3700223582151107836
|
-1280827835863891886
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
SluCkcolVIChRotonWindonHelpv Gooc e GeminiPipelines - jiminny/appGemini 3.1 Pro ~reavors now ownerstoe tooAxUemered tines on New codJY-20963 fix deleted object implm cwdsycaotionslEmnlltcthtteM Inbox (1,733) - lu/cas.kovalikSlimlioonre Reso ve php 81.15 ded8 Jiminm,Platform Sorint 5.02 - Platform Te8 Jiminny(SRD-6881) (On demand) Tr. XSona Subramanian at 27/05/202aIliyana Netsova at 27/05/2026, 18es w 20910 schedule oarallel wednrgive me snort summary of these issuesHere is a short, scannable summary of the core issues in the PR:€ Critical & High-Risk IssuesShared Elasticsearch Sockets: Because pentl. fork( clones file descriotors. both childprocesses will share the exact same HIIP/TCP socket tor tlasticsearch. Since you dian't resetthe ES client in resetAfterFork() (like vou did for Redis and DB), the parallel workers willcollide at the network layer, causing corrupted data and cURL exceptionsSupervisor Shutdown Deadlock:In reapChildren.callina ocntl_waitpid without theANOHANG Tlag makes it a blocking call. It one child process gets stuck (e.g., warting on anetwork timeout), the parent supervisor will freeze indefinitely and completely ignore your 10-coccnelatse nichueounleatA Logic & Concurrency FlawsNon-Atomic Redis Locks: The new ReindexTargetStatsReporter checks the lock with getand then creates it with set . Because the workers are truly parallel, they can both read nullatthe exaci same microsecond and botn pusn duplicate metnics to Datadog. Inis neeas to be asinale, atomic command (e.q.lset with NX).Corruoted Ston Sianal State: The rund) loop in EntityivoeReindexer marks the processas "unsafe to stop", does the work, and then marks it "safe". If the Elasticsearch update throwsan exception in the middle, the scriot bails out and the process is oermanentlv left in anunsafe to stop" state. This must be wrapped in a try...finally blocksô:elcomintYour lim nou chate trhn" uend to imnroy our moddle Camioiie 4l1t cao mata mtake co donbls chack " Yoir oracy & CaminSummarize page1ouCx1 SHU-000Attachments 1ActivityHistoryWork logAdd internal notelReply to custoPro tioe mress M to commenLuxas Rovallksucone dc0nun order to save a transcriot, the cient"nererore, " was not recoenized as aEdit - DeleteHoeActivityLateMoneiJiminnY ….# backend# buescontusion-dinig# donut_time# engineering# general# happy_birthdayeuintocne intemall all# infra-chansedPihiesnuen#bu-team-infoi liminnv-benlattormeteam# platform-ticketsworooudauncho# random# released# suppon# thank-yousthe neonle ortim6? Direct message.0 llivana NetsevaA Stefka StovanovaStoyan TomovPetko KashinskiGaiva Dimitrova D: Todor Stamator1 Stelivan Georsie.Ves&r MireNikolav Vanko&o James Grahamuukas Kovalky#:AppsEl tie GloudToastai Gooele Cale.TO0% L7• Thu 28 May 14:59:11@ Describe what you are looking for* lliyana Netseva** Add canvas +llivana NetsevaThis conversation is lust between @llivana Netseva and you. Check out their prohle to learn more about them.Vew PronleodhywLukas Kovalik 12:32 PMздоавеи, имаш ли минуткаlliyana Netseva 2:51 PMokolo 4 chasa svoboden li shte si?tukae Kovslik 2.c0.otздрасти, да но мисля че няма нужда вечеUNMMO CO CWAETЛOM И TAU NOIG 13B0HNST 1 CA TÔNM MGUпод този кейс имам предвид https://fiminny.atlassian.net/browse/SRD-6883lira Gloud*% Bus 5e0 s8el i ira crirOn demand) Transcription in saved search disappear:Randv tor ductom enLukas Kovalik (you)As of today at 2:58 PMOoen in rau Cummarineвиж коментари и ако трябва нешо пруго може ла се чуемIliyana Netseva 2:56 PMvidgh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata meidu tova koeto pravi ta i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search•apopravi me ako greshaukac Kowalik 2i67.o1nRMnu AunaTamhice monch no ranscrintMessage llivana Netseva— Аa...
|
84836
|
NULL
|
NULL
|
NULL
|
|
84837
|
2914
|
3
|
2026-05-28T11:59:04.864969+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969544864_m1.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"}]...
|
6189510296368209593
|
-1190147748632294490
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
FirefoxFileEditViewHistoryBookmarksProfilesToolsDOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O 82-zshWindowHelpN3ec2-user@ip-10-30-129-190:~ffmpegX4(ah]100% <78• Thu 28 May 14:59:041₴1-zshSupport Dailyin 1m - 3-3:15 PM= Notes - Support Daily.C Join Google MeetAmazon Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
84835
|
NULL
|
NULL
|
NULL
|
|
84836
|
2915
|
2
|
2026-05-28T11:59:04.761813+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969544761_m2.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.026595745,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.5746209,"width":0.023271276,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":16,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5969673,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.020944148,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
7488096866061775406
|
-1204264670949303714
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
@ со)nalisenlisen abessowДохов2ов иниколсо саееисиоли оданаднле ват ие иоледсанивхитало давдекокосос он зоаддси солоесоя млкее накаоошою!uоuсошеNd9S: nalisenlsenHKLIRNEXD MURNNONWEONEКДОИЛОИНОХ РАЙ ВОХНЕЯ ОУЕНИДОКІРОКЕРОКЕОКО СООЕССА ПРКОРООДРИЕ НОДАРУКОРД ЧОВРУЛОООНЯ ФЛИВНИКОЯ ПООМИВЕРПОСКОФОДЕ Ч Е ВОСОБРЕИЕЧОД К ОСИНОКОДРЕЗИРОИОНТИНИШЕВЕРОИОСИЕИНУОСВОВИЕЕИДЕКОМЕ РОМООООИКЕНЕ СОВ РОДУТРОЕЕИЕВОККОДНЯМ ЕРХОУХОРОЛЬТКОЛАОЕ ЗОРДОННОХ ВРОЯРООЛИКЕНЕ СОВ РОЛУ РРЕСК РОЗКОКОИЬЯХСОИВЕАЕoeteteindooehuuitilwos.enuenoonuiammI.двсмиnvse n мн MnoteholsensenNa OoZ nolsen lsenAepol19071/lind/dde/kuuш!//wox'qnuysrsony+ Su4 SaUeSENUes pPwCNOSN^ e90:69:0l Mewa2ne94990009seolPoee5sooyemeye samee nWUANONOSал Pe1wwora cenvisoozeweis зopolas• елодішію елсуpsuryses oyfediNowol UElOIsUenois yois dCAOSION CUeAaltansenisenoaDsessow PaJduiod wodu dusasnoл-yuee #uoddns #wscop #uopues #дэхрц-шодеа #39-AUUjCl#ojus-weas-ngl#esueчp-enuaСерцzq"Addey #eJauas #Suussuisus #song *puayped s…***KuurwirЦирж0,090 - 4Р3TSN OOZIUDOSDN TOU SOMN DSOISONTUoieoueesuwonsowoouiSUTeOor OO%SENeONsonaU9449998 4990270910oisno 01 idolwou wuwetSоI XIOмUOISIHAaAnOYL889-G8S 1Fbed azuewwns30G+MiwooeJe unra Aauaueluudd si ssodose aui pue ano silee toues au e pell au, ui uoncdexo ueXN YaM Z0S1t puenies sitone abuis2nonspaausivibooenenonsouamaneoi oeousnomna pue puonasoot mnes moec canteSDe woetos ow ouosoP UO bUDIeM "D'a) yonis siab ssapoid pluo auo tIaiP buIyeola ei sayeu беномTun suendom lallesed au8e puesipeddo, Pip non ento xogaotylhosen Unuele sa e4hu hc sahs ti sc c t te.ne esteoae eenoes mmteosatses petenedd aut ui soniss asos dut o mewtuns afgeuueos bous e s. wohsanssi asour 1o luewwns vous aш an6A Old [e IuItsoпоримwponeinee eirpoyes dlooe we319202/S0/LZ se enasioN cutlaNouroeorerwoet wooX 1 [putшep uo) (1889-0851wuwyrey wopeidtos teuosteewuшr &ROSTBAHAONOSON KOLROWEANptwwspoonooenswoteoon whw bo soun poswosonOON BIONSOUMS MOIY CIONANOESdeuuшl - saupdy oManiC...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84835
|
2914
|
2
|
2026-05-28T11:59:03.464526+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969543464_m1.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 19th at 9:18:56 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12082","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12082","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with white check mark emoji","depth":16,"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 10:29:42 AM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:29 AM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"благодаря","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8389314644248054653
|
-1263025943447302804
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
FirefoxFileEditViewHistoryBookmarksProfilesToolsDOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O 82-zshWindowHelpec2-user@ip-10-30-129-190:~N3ffmpeg(ah]100% <78• Thu 28 May 14:59:03-zshSupport Dailyin 1m - 3-3:15 PM= Notes - Support Daily.C Join Google MeetAmazon Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84834
|
2915
|
1
|
2026-05-28T11:58:44.903145+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969524903_m2.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":16,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.026595745,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.5746209,"width":0.023271276,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5969673,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.020944148,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"bounds":{"left":0.67852396,"top":0.10055866,"width":0.008976064,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"bounds":{"left":0.69148934,"top":0.09177973,"width":0.020279255,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"bounds":{"left":0.70079786,"top":0.10055866,"width":0.00831117,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"bounds":{"left":0.71276593,"top":0.09177973,"width":0.010970744,"height":0.030327214},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.015957447,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.007978723,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"bounds":{"left":0.60738033,"top":0.11572227,"width":0.007978723,"height":0.0071827616},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.11572227,"width":0.007978723,"height":0.0071827616},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"bounds":{"left":0.6180186,"top":0.11572227,"width":0.07114362,"height":0.007980846},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"bounds":{"left":0.60738033,"top":0.13567439,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.13567439,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"bounds":{"left":0.6180186,"top":0.13328013,"width":0.059175532,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-4589525776309179573
|
-1271179646802948756
|
idle
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
@ со)nolsen lsen abessowДохов2ов иниколсо саееисиоли оданаднле ват ие иоледсанивхитало давдекокосос он зоаддси солоесоя млкее накаоошою!uоuсошеNd9S: nalisenlsenHKLIRNEXD MURNNONWEONEКДОИЛОИНОХ РАЙ ВОХНЕЯ ОУЕНИДОКІРОКЕРОКЕОКО СООЕССА ПРКОРООДРИЕ НОДАРУКОРД ЧОВРУЛОООНЯ ФЛИВНИКОЯ ПООМИВЕРПОСКОФОДЕ Ч Е ВОСОБРЕИЕЧОД К ОСИНОКОДРЕЗИРОИОНТИНИШЕВЕРОИОСИЕИНУОСВОВИЕЕИДЕКОМЕ РОМООООИКЕНЕ СОВ РОДУТРОЕЕИЕВОККОДНЯМ ЕРХОУХОРОЛЬТКОЛАОЕ ЗОРДОННОХ ВРОЯРООЛИКЕНЕ СОВ РОЛУ РРЕСК РОЗКОКОИЬЯХСОИВЕАЕoeteteindooehuuitilwos.enuenoonuiammI.двсмиnvse n мн MnoteholsensenWa oozs nolsenlsenACpOL19071/lind/dde/kuuш!//wox'qnuysrsony+ Su4 SaUeSEAUES PPN CONOSN^ 09wOOITXOw O7 nut94990009seolPoee5sooyemeye samee nWUANONOSал Pe1wwora cenvisoozeweis зopolas• елодішію елсуpsuryses oyfediNowol UElOIsCnoUenois yois eCAOSION CUeAaltansenisenoaDsessow PaJduiod wodu dusasnoл-yuee #uoddns swscop #uopues#дэхрц-шодеа #Nco ruoneees39-AUUjCl#ojus-weas-ngl#esueчp-enuaСерцzq"Addey #eJauas#Suussuisus #song *puayped s•***KuuiшirЦирж0,090 - 4Р3TSN OOZIUDOSDN TOU SOMN DSOISONTUoieoueesuwonsowoouiSUTeOor OO%SENeONsonaUe440900 4 99029201910oisno 01 idolwou wuintePSоI XIOмUOISIHAaAnOYL889-G8S 1Fbed azuewwns30G+MiwooeJe unra Aauaueluudd si ssodose aui pue ano silee toues au e pell au, ui uoncdexo ueXN YaM Z0S"D'a puewwos siwiole a buis2nonspaausivibooenenonsouamaneoi oeousnomna pue puonasoot mnes moec canteSDe woetos ow ouosoP UO bUDIeM "D'a) yonis siab ssapoid pluo auo tIaiP buIyeola ei sayeu беномTun suendom lallesed au8e puesipeddo, Pip non ento xogaotylhosen Unuele sa e4hu hc sahs ti sc c t te.ne esteoae eenoes mmteosatses petenedd aut ui soniss asos dut o mewtuns afgeuueos bous e s. wohwponeinee eirpoyes dlooe we319202/S0/LZ se enasioN cutlaNouroeorerwoet wooX 1 [putшep uo) (1889-0851wuwyrey wopeidtos teuosteewuшr &ROSTBAHAONOSON KOLROWEANptwwspoonooenswotesanssi asour 1o luewwns vous aш an6A Old [e IuItsoпоримoon whw bo soun poswosonOON BIONSOUMS MOIY CIONANOESdeuuшl - saupdy oManiC...
|
84832
|
NULL
|
NULL
|
NULL
|
|
84833
|
2914
|
1
|
2026-05-28T11:58:43.580530+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969523580_m1.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 19th at 9:18:56 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12082","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12082","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with white check mark emoji","depth":16,"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 10:29:42 AM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:29 AM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"благодаря","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-3049813648614468485
|
-1263025943447827092
|
idle
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpec2-user@ip-10-30-129-190:~screenpipe"O &4‹$0(ah]БГ100% <78• Thu 28 May 14:58:43181ec2-user@ip-10-30-140-…₴7DOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O [EMAIL] Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
84831
|
NULL
|
NULL
|
NULL
|
|
84832
|
2915
|
0
|
2026-05-28T11:58:14.128592+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969494128_m2.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":16,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.026595745,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.5746209,"width":0.023271276,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5969673,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.020944148,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"bounds":{"left":0.67852396,"top":0.10055866,"width":0.008976064,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"bounds":{"left":0.69148934,"top":0.09177973,"width":0.020279255,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"bounds":{"left":0.70079786,"top":0.10055866,"width":0.00831117,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"bounds":{"left":0.71276593,"top":0.09177973,"width":0.010970744,"height":0.030327214},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.015957447,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.007978723,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"bounds":{"left":0.60738033,"top":0.11572227,"width":0.007978723,"height":0.0071827616},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.11572227,"width":0.007978723,"height":0.0071827616},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"bounds":{"left":0.6180186,"top":0.11572227,"width":0.07114362,"height":0.007980846},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"bounds":{"left":0.60738033,"top":0.13567439,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.13567439,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"bounds":{"left":0.6180186,"top":0.13328013,"width":0.059175532,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 19th at 9:18:56 AM","depth":16,"bounds":{"left":0.60738033,"top":0.15961692,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.15961692,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12082","depth":16,"bounds":{"left":0.6180186,"top":0.15722266,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12082","depth":17,"bounds":{"left":0.6180186,"top":0.15722266,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with white check mark emoji","depth":16,"bounds":{"left":0.6180186,"top":0.1763767,"width":0.014295213,"height":0.01915403},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":17,"bounds":{"left":0.62732714,"top":0.17956904,"width":0.0023271276,"height":0.011971269},"on_screen":true,"role_description":"text"}]...
|
8107971204878889277
|
-1271742871634408084
|
idle
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
@ со)nolsen lsen abessowДохов2ов иниколсо саееисиоли оданаднле ват ие иоледсанивхитало давдекокосос он зоаддси солоесоя млкее накаоошою!uоuсошеNd9S: nalisenlsenHKLIRNEXD MURNNONWEONEКДОИЛОИНОХ РАЙ ВОХНЕЯ ОУЕНИДОКІРОКЕРОКЕОКО СООЕССА ПРКОРООДРИЕ НОДАРУКОРД ЧОВРУЛОООНЯ ФЛИВНИКОЯ ПООМИВЕРПОСКОФОДЕ Ч Е ВОСОБРЕИЕЧОД К ОСИНОКОДРЕЗИРОИОНТИНИШЕВЕРОИОСИЕИНУОСВОВИЕЕИДЕКОМЕ РОМООООИКЕНЕ СОВ РОДУТРОЕЕИЕВОККОДНЯМ ЕРХОУХОРОЛЬТКОЛАОЕ ЗОРДОННОХ ВРОЯРООЛИКЕНЕ СОВ РОЛУ РРЕСК РОЗКОКОИЬЯХСОИВЕАЕoeteteindooehuuitilwos.enuenoonuiammI.двсмиnvse n мн MnoteholsensenWa oozs nolsenlsenACpOL19071/lind/dde/kuuш!//wox'qnuysrsony+ Su4 SaUeSEAUES PPN CONOSN^ 09HOOIN XOW OY NUTO94990009seolPoee5sooyemeye samee nWUANONOSал Pe1wwora cenvisoozeweis зopolas• елодішію елсуpsuryses oyfediNowol UElOIsCnoUenois yois eCAOSION CUeAaltansenisenoaDsessow PaJduiod wodu dusasnoл-yuee #uoddns swscop #uopues#дэхрц-шодеа #Nco ruoneees39-AUUjCl#ojus-weas-ngl#esueчp-enuaСерцzq"Addey #eJauas#Suussuisus #song *puayped s•***KuuiшirЦирж0,090 - 4Р3TSN OOZIUDOSDN TOU SOMN DSOISONTUoieoueesuwonsowoouiSUTeOor OO%SENeONsonaUe440900 4 99029201910oisno 01 idolwou wuintePSоI XIOмUOISIHAaAnOYL889-G8S 1Fbed azuewwns30G+MiwooeJe unra Aauaueluudd si ssodose aui pue ano silee toues au e pell au, ui uoncdexo ueXN YaM Z0S"D'a puewwos siwiole a buis2nonspaausivibooenenonsouamaneoi oeousnomna pue puonasoot mnes moec canteSDe woetos ow ouosoP UO bUDIeM "D'a) yonis siab ssapoid pluo auo tIaiP buIyeola ei sayeu беномTun suendom lallesed au8e puesipeddo, Pip non ento xogaotylhosen Unuele sa e4hu hc sahs ti sc c t te.ne esteoae eenoes mmteosatses petenedd aut ui soniss asos dut o mewtuns afgeuueos bous e s. wohwponeinee eirpoyes dlooe we319202/S0/LZ se enasioN cutlaNouroeorerwoet wooX 1 [putшep uo) (1889-0851wuwyrey wopeidtos teuosteewuшr &ROSTBAHAONOSON KOLROWEANptwwspoonooenswotesanssi asour 1o luewwns vous aш an6A Old [e IuItsoпоримoon whw bo soun poswosonOON BIONSOUMS MOIY CIONANOESdeuuшl - saupdy oManiC...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84831
|
2914
|
0
|
2026-05-28T11:58:13.114446+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969493114_m1.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 19th at 9:18:56 AM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12082","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12082","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with white check mark emoji","depth":16,"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-5611430233129699828
|
-1262814837215818388
|
idle
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpec2-user@ip-10-30-129-190:~screenpipe"O &4‹$0(ah]БГ100% <78• Thu 28 May 14:58:13181ec2-user@ip-10-30-140-…₴7DOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O [EMAIL] Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84830
|
NULL
|
0
|
2026-05-28T11:57:43.317467+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969463317_m2.jpg...
|
Slack
|
Vasil Vasilev (DM) - Jiminny Inc - 2 new items - S Vasil Vasilev (DM) - Jiminny Inc - 2 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Iliyana Netseva
Vasil Vasilev
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM
11:55 AM
здрасти Васко, може ли един approve
https://github.com/jiminny/app/pull/12136
https://github.com/jiminny/app/pull/12136
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
Today at 12:00:25 PM
12:00 PM
Здрасти, Лукаш
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5746209,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":16,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.026595745,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.5969673,"width":0.023271276,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.020944148,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":11,"bounds":{"left":0.67852396,"top":0.10055866,"width":0.008976064,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Pins","depth":9,"bounds":{"left":0.69148934,"top":0.09177973,"width":0.020279255,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pins","depth":11,"bounds":{"left":0.70079786,"top":0.10055866,"width":0.00831117,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"bounds":{"left":0.71276593,"top":0.09177973,"width":0.010970744,"height":0.030327214},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.015957447,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.007978723,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:33 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"видях","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:42 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"получавам в slack нотификации от toast","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:39:57 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a da","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 18th at 10:40:43 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":16,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-05-18 at 10.40.05.png","depth":18,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 18th at 10:40:54 AM","depth":16,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:40","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"не знам дали го ползваш, но е много полезен туул","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"bounds":{"left":0.7726064,"top":0.12689546,"width":0.049867023,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:49 AM","depth":15,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18 AM","depth":16,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, Лукаш","depth":16,"bounds":{"left":0.6180186,"top":0.11572227,"width":0.04488032,"height":0.007980846},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 9:18:52 AM","depth":16,"bounds":{"left":0.60738033,"top":0.13567439,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.13567439,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"когато имаш днес възможност","depth":16,"bounds":{"left":0.6180186,"top":0.13328013,"width":0.07114362,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 19th at 9:18:55 AM","depth":16,"bounds":{"left":0.60738033,"top":0.15961692,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.15961692,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"моля те погледни тоя ПР:","depth":16,"bounds":{"left":0.6180186,"top":0.15722266,"width":0.059175532,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"May 19th at 9:18:56 AM","depth":16,"bounds":{"left":0.60738033,"top":0.18355946,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:18","depth":17,"bounds":{"left":0.60738033,"top":0.18355946,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12082","depth":16,"bounds":{"left":0.6180186,"top":0.1811652,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12082","depth":17,"bounds":{"left":0.6180186,"top":0.1811652,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with white check mark emoji","depth":16,"bounds":{"left":0.6180186,"top":0.20031923,"width":0.014295213,"height":0.01915403},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":17,"bounds":{"left":0.62732714,"top":0.20351157,"width":0.0023271276,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":16,"bounds":{"left":0.6336436,"top":0.20031923,"width":0.011303191,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.6180186,"top":0.22905028,"width":0.027593086,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.6456117,"top":0.23064645,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 19th at 10:29:42 AM","depth":15,"bounds":{"left":0.64793885,"top":0.2330407,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:29 AM","depth":16,"bounds":{"left":0.64793885,"top":0.2330407,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"благодаря","depth":16,"bounds":{"left":0.6180186,"top":0.2482043,"width":0.023936171,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"bounds":{"left":0.7849069,"top":0.27853152,"width":0.025265958,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.6180186,"top":0.30965683,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.6555851,"top":0.31125298,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 11:55:58 AM","depth":15,"bounds":{"left":0.65824467,"top":0.31364724,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:55 AM","depth":16,"bounds":{"left":0.65824467,"top":0.31364724,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти Васко, може ли един approve","depth":16,"bounds":{"left":0.6180186,"top":0.32881084,"width":0.08809841,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12136","depth":16,"bounds":{"left":0.70611703,"top":0.32881084,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12136","depth":17,"bounds":{"left":0.70611703,"top":0.32881084,"width":0.09474734,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.6180186,"top":0.35115722,"width":0.027593086,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"bounds":{"left":0.6456117,"top":0.3527534,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:00:25 PM","depth":15,"bounds":{"left":0.64793885,"top":0.35514766,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00 PM","depth":16,"bounds":{"left":0.64793885,"top":0.35514766,"width":0.01761968,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Здрасти, Лукаш","depth":16,"bounds":{"left":0.6180186,"top":0.37031126,"width":0.03656915,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-620289553889090562
|
-1280758583778047668
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Iliyana Netseva
Vasil Vasilev
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Files
Files
Pins
Pins
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Vasil Vasilev
May 18th at 10:39:33 AM
10:39 AM
видях
May 18th at 10:39:42 AM
10:39
получавам в slack нотификации от toast
(edited)
Lukas Kovalik
May 18th at 10:39:57 AM
10:39 AM
a da
Vasil Vasilev
May 18th at 10:40:43 AM
10:40 AM
Screenshot 2026-05-18 at 10.40.05.png
Toggle file
Screenshot 2026-05-18 at 10.40.05.png
May 18th at 10:40:54 AM
10:40
не знам дали го ползваш, но е много полезен туул
Jump to date
Vasil Vasilev
May 19th at 9:18:49 AM
9:18 AM
Добро утро, Лукаш
May 19th at 9:18:52 AM
9:18
когато имаш днес възможност
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:55 AM
9:18
моля те погледни тоя ПР:
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
May 19th at 9:18:56 AM
9:18
https://github.com/jiminny/app/pull/12082
https://github.com/jiminny/app/pull/12082
1 reaction, react with white check mark emoji
1
Add reaction…
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
May 19th at 10:29:42 AM
10:29 AM
благодаря
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
Lukas Kovalik
Today at 11:55:58 AM
11:55 AM
здрасти Васко, може ли един approve
https://github.com/jiminny/app/pull/12136
https://github.com/jiminny/app/pull/12136
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Vasil Vasilev
Today at 12:00:25 PM
12:00 PM
Здрасти, Лукаш
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
SluCkcolVIChRotonWindowHelpv Gooc e GeminiPipelines - jiminny/appGemini 3.1 Pro ~rezuots now ownersroe toexUewredtines on New codJY-20963 fix deleted object impm.cwdSycaotionslsmalldcthatteM Inbox (1,733) - lukas.kovaliklimlioonre Reso ve php 81.15 ded8 Jiminm,Platform Sorint 5.02 - Platform Te8 Jiminny(SRD-6881) (On demand) Tr. XSona Subramanian at 27/05/202aIliyana Netsova at 27/05/2026, 18es w 20910 schedule oarallel wednrgive me snort summary of these issuesHere is a short, scannable summary of the core issues in the PR:€ Critical & High-Risk IssuesShared Elasticsearch Sockets: Because pentl. fork( clones file descriotors. both childprocesses will share the exact same HIIP/TCP socket tor tlasticsearch. Since you dian't resetthe ES client in resetAfterFork() (like vou did for Redis and DB), the parallel workers willcollide at the network layer, causing corrupted data and cURL exceptionsSupervisor Shutdown Deadlock:In reapChildren.callina pcntl_waitpid without theANOHANG Tlag makes it a blocking call. It one child process gets stuck (e.g., warting on anetwork timeout), the parent supervisor will freeze indefinitely and completely ignore your 10-coccneletce thichtldewwnlodtsA Logic & Concurrency FlawsNon-Atomic Redis Locks: The new ReindexTargetStatsReporter checks the lock with getand then creates it with set . Because the workers are truly parallel, they can both read nullatthe exaci same microsecond and botn pusn duplicate metnics to Datadog. Inis neeas to be asinale, atomic command (e.q.lset with NX).Corruoted Ston Sianal State: The rund) loop in EntityivoeReindexer marks the processas "unsafe to stop", does the work, and then marks it "safe". If the Elasticsearch update throwsan exception in the middle, the scriot bails out and the process is oermanentlv left in anunsafe to stop" state. This must be wrapped in a try...finally blocksô:elcomintYour lim nou chate trhn" uend to imnroy our moddle Camioiie 4l1t cao mata mtake co donbls chack " Yoir oracy & CaminSummarize page1ouCxX SRD-6881Attachments 1ActivityHistoryWork logAdd internal notelReply to custoPro tioe mress M to commenLuxas Rovallksucone dc0nun order to save a transcriot. the client"nererore, " was not recoonized as aEdit - DeleteHoeActivityLateMoneiJiminnY …# backend# buescontusion-dinig# donut_time# engineering# generall# happy_birthdayeuintocne intemall all# infra-chansedPihiesnuen#bu-team-infoi liminnv-benlattormeteam# platform-ticketsworooudauncho# random# released# suppor# thank-yousthe neonle ortim6? Direct messages0 llivana NetsevaA Stefka StovanovaStoyan TomovPetko KashinskiGaiva Dimitrova D: Todor Stamator1 Stelivan Georsie.Ves&r MireNikolav Vanko&o James Grahamunkas Kovall#:AppsEl tie GloudToastai Gooele Cale.TO0У L7Thu 28 May 14:57:43@ Describe what you are looking forVasil Vasileve MessagerNoA0d canvisMorevкотато имаш днес вызможностUCanyMaywneмоля те погледни тоя ПРhttps://sithub.com/fiminny/app/pull/1208%Vasil Vasilev 10:29 AMолагодар;Lukas Kovalik 11:55 AMзпрасти Васко, може ли слин approve httos://sithub.com/riminny/app/pull/12136Vasil Vasilev 12:00 PMSaoacти. JlykaшToT0b Chмалко по кьсно и на мен ще ми трябва ревю за един голям featureHOLTLA TU GUIIR KATO A COTOR ЗA СЛAЛИНА NATAAILukas Kovalik 12:11 PMok, mershVasil Vasilev 1:23 PMwato wMaш RooMd. maRcnonal To?и MuTeoOcoиl!? hlowctnub.com/aminnyaon/oulth?akoмаписах supersor клaс/Asуncupoatesмрeуком който се пали от suрелуісолсти като тоя клас /дsулсuссате мретуког пуска лва паралелни пооцеса елин заовозоотка на активита ипроцесите са отделни, за да не се борят за място под сльнцето в един и сьщо процес, да можем да им мерим поотделно кой колко памет яде, и съответно даwwaciMe osreoatsekyoennohи да не си пречат, когато има данни за индескиране в опашките и за activity и за opportunityLukas Kovalik2:45 PMНе знам това дали с релевантно1. Shared Elasticsearch Sockets: Because pentl_fork@ clones hle descriptors, both child processes will share the exact same HTTP/TCP socket for Elasticsearch. Sinceyou didn't reset the ES client in resetAfterFork (like you did for Redis and DB), the parallel workers will collide at the network layer, causing corrupted data and CURL2. Supervisor Shutdown Deadlock: In reapChildren®. callinz pentlwaitpide without the WNOHANG flaz makes it a blockinz call. If one child process gets stuck (e.gwaiting on a network timeout), the parent supervisor will freeze indehnitely and completely ignore your 10-second graceful shutdown lozic. (edited)3. Non-Atomic Redis Locks: The new ReindexTargetStatsReporter checks the lock with oet and then creates it with set. Because the workers are truly parallel, they canboth read null at the exact same microsecond and both push duplicate metrics to Datadog. This needs to be a single, atomic command (e.g. set with NX).WcllvaGlleu sichov1 е добър коментарe intentonnMessage Vasil Vasiley— Аa...
|
84828
|
NULL
|
NULL
|
NULL
|
|
84829
|
NULL
|
0
|
2026-05-28T11:57:42.705690+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969462705_m1.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":14,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":14,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":14,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":14,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":13,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52 PM","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, да но мисля че няма нужда вече","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:52:47 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"чухме се със Стоян и той беше запознат и по този кейс","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":17,"on_screen":false,"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":17,"on_screen":false,"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":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":17,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":17,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":17,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:53:22 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:53","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"под този кейс имам предвид","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Remove preview","depth":17,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize","depth":17,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"[On demand] Transcription in saved search disappears","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Bug SRD-6881 in Jira Cloud","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Status","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ready for customer","depth":18,"on_screen":true,"role_description":"text"}]...
|
-9157916942121256190
|
-1285331609403883182
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpec2-user@ip-10-30-129-190:~screenpipe"O ₴4‹$0(ah]БГ100% <78• Thu 28 May 14:57:42181ec2-user@ip-10-30-140-…₴7DOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O [EMAIL] Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
84827
|
NULL
|
NULL
|
NULL
|
|
84828
|
2913
|
53
|
2026-05-28T11:57:41.573714+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969461573_m2.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.027593086,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0033244682,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.5455452,"top":0.5746209,"width":0.024268618,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5969673,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.010970744,"height":0.030327214},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.015957447,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.007978723,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.6412899,"top":0.23224261,"width":0.041888297,"height":0.021548284},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":17,"bounds":{"left":0.6412899,"top":0.23383878,"width":0.04055851,"height":0.018355945},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":15,"bounds":{"left":0.60339093,"top":0.29848364,"width":0.08676862,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":15,"bounds":{"left":0.69015956,"top":0.29768556,"width":0.045212764,"height":0.018355945},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":16,"bounds":{"left":0.69082445,"top":0.29848364,"width":0.043882977,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":15,"bounds":{"left":0.73537236,"top":0.29848364,"width":0.1505984,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":14,"bounds":{"left":0.60339093,"top":0.33040702,"width":0.035904255,"height":0.028731046},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":15,"bounds":{"left":0.7849069,"top":0.3830806,"width":0.025265958,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"bounds":{"left":0.6180186,"top":0.4142059,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.6555851,"top":0.41580206,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":16,"bounds":{"left":0.65824467,"top":0.41819632,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":17,"bounds":{"left":0.65824467,"top":0.41819632,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":17,"bounds":{"left":0.6180186,"top":0.43335995,"width":0.061835106,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":16,"bounds":{"left":0.6180186,"top":0.4557063,"width":0.034574468,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.65226066,"top":0.45730248,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":16,"bounds":{"left":0.6549202,"top":0.45969674,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":17,"bounds":{"left":0.6549202,"top":0.45969674,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":17,"bounds":{"left":0.6180186,"top":0.47486034,"width":0.07480053,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"bounds":{"left":0.6180186,"top":0.49720672,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.6555851,"top":0.49880287,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":16,"bounds":{"left":0.65824467,"top":0.5011971,"width":0.014960106,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
8469633656794100917
|
-5892514146348268718
|
typing_pause
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
SluCkcolVIChRotonWindonHelpv Gooc e GeminiPipelines - jiminny/appGemini 3.1 Pro ~reavors now ownerstoe tooAxUewredtines on New codJY-20963 fix deleted object impm.cwdSycaotionslsmolldcthatteM Inbox (1,733) - lu/cas.kovalikSlimlioonre Reso ve php 81.15 ded8 Jiminm,Platform Sorint 5.02 - Platform Te8 Jiminny(SRD-6881) (On demand) Tr. XSona Subramanian at 27/05/202aIliyana Netsova at 27/05/2026, 18es w 20910 schedule oarallel wednrgive me snort summary of these issuesHere is a short, scannable summary of the core issues in the PR:€ Critical & High-Risk IssuesShared Elasticsearch Sockets: Because pentl. fork( clones file descriotors. both childprocesses will share the exact same HIIP/TCP socket tor tlasticsearch. Since you dian't resetthe ES client in resetAfterFork() (like vou did for Redis and DB), the parallel workers willcollide at the network layer, causing corrupted data and cURL exceptionsSupervisor Shutdown Deadlock:In reapChildren.callina ocntl_waitpid without theANOHANG Tlag makes it a blocking call. It one child process gets stuck (e.g., warting on anetwork timeout), the parent supervisor will freeze indefinitely and completely ignore your 10-second gracerul snutdown logic.A Logic & Concurrency FlawsNon-Atomic Redis Locks: The new ReindexTargetStatsReporter checks the lock with getand then creates it with set . Because the workers are truly parallel, they can both read nullatthe exaci same microsecond and botn pusn duplicate metnics to Datadog. Inis neeas to be asinale, atomic command (e.q.lset with NX).Corruoted Ston Sianal State: The rund) loop in EntityivoeReindexer marks the processas "unsafe to stop", does the work, and then marks it "safe". If the Elasticsearch update throwsan exception in the middle, the scriot bails out and the process is oermanently left in anunsafe to stop" state. This must be wrapped in a try... finally block.sô:elcomintYour lim nou chate tehn" uend to imnroy our moddle Camioiie 4l1t cao mata mtake co donbls chack " Yoir oracy & CaminSummarize page1ouCxXF SRD-6881Attachments 1ActivityHoeActivityHistoryWork logAdd internal notelReply to custoPro tioe mess M to commentLuxas Rovallksucone dc0nun order to save a transcriot, the cient"nererore, " was not recoenized as aMoneiwanschcooied ocroooJiminnY …# backend# buescontusion-dinig# donut_time# engineering# general# happy_birthdayeuintocne intemall all# infra-chansedPihiesnuen#bu-team-infoi liminnv-benlattormeteam# platform-ticketsworooudauncho# random# released# suppor# thank-yousthe neonle ortim6? Direct message.0 llivana NetsevaA Stefka StovanovaStoyan TomovPetko KashinskiGola Nimitrous: Todor Stamator1 Stelivan Georsie.Ves&r MireNikolav Vanko&o James GrahamROOSEl tie GloudToastai Gooele Cale.Edit - DeleteInu cowoy 14.0/.@ Describe what you are looking for* lliyana Netseva** Add canvas +llivana NetsevaThis conversation is ust between @llivana Netseva and you. Check out their prohle to learn more about them.Vew Pro.nlLukas Kovalik 12:32 PMзлравей, имаш ли минуткаlliyana Netseva 2:51 PMakald dchacs sunhodon li chtnd 2Lukas Kovalik 2:52 PMздрасти, да но мисля че няма нужда вечечмуме се сиє стодн и той беше запознат м по този кріаnon tozu veur umay nneneun hhnse niminny atiscian notlhrouice/5R0adhXy*% On demand) TranscriptOn demand Transcription in saved search disappearsReady tor customene Lukas Kovalik (you)As of todi at 2:58 PM"Cummanizвиж коментари и ако трябва нещо друго може да се чуемivana Netseva 2-6k pyvidah kakvo si napisal, neshtoto koeto mi e stranno e che razlikata meidu tova koeto pravi ta i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-amanaw meko orachaLukas Kovalik 2-57PMOAL MNH AVnAYAла се тьрси nо transcriot- AaShift + Return to aid a now in...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84827
|
2912
|
59
|
2026-05-28T11:57:41.364136+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969461364_m1.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:56:40 PM
2:56 PM
vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":14,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":15,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, да но мисля че няма нужда вече","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:52:47 PM","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"чухме се със Стоян и той беше запознат и по този кейс","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:53:22 PM","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:53","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"под този кейс имам предвид","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Jira Cloud","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Remove preview","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"[On demand] Transcription in saved search disappears","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Bug SRD-6881 in Jira Cloud","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Status","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ready for customer","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Assignee","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"(you)","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"As of today at 2:53 PM","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Refresh","depth":20,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Jira","depth":20,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"✨ Summarize","depth":20,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Open in browser","depth":19,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Open","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Share Bug SRD-6881","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:54:12 PM","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:54","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"виж коментари и ако трябва нещо друго може да се чуем","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:56:40 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:56 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a","depth":17,"on_screen":true,"role_description":"text"}]...
|
-1801678776411147937
|
-1717818048693239728
|
typing_pause
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:56:40 PM
2:56 PM
vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a
FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpec2-user@ip-10-30-129-190:~ffmpeg- 884‹$0(ah]БГ100% <78• Thu 28 May 14:57:41181ec2-user@ip-10-30-140-….₴7DOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O [EMAIL] Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84826
|
2912
|
58
|
2026-05-28T11:57:38.456733+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969458456_m1.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:56:40 PM
2:56 PM
vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a
React with white_check_mark
React with eyes...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":14,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":15,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, да но мисля че няма нужда вече","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:52:47 PM","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"чухме се със Стоян и той беше запознат и по този кейс","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:53:22 PM","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:53","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"под този кейс имам предвид","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Jira Cloud","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Remove preview","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"[On demand] Transcription in saved search disappears","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Bug SRD-6881 in Jira Cloud","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Status","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ready for customer","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Assignee","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"(you)","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"As of today at 2:53 PM","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Refresh","depth":20,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Jira","depth":20,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"✨ Summarize","depth":20,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Open in browser","depth":19,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Open","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Share Bug SRD-6881","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:54:12 PM","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:54","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"виж коментари и ако трябва нещо друго може да се чуем","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:56:40 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:56 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
4769458765327290357
|
-1717818048701628326
|
typing_pause
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:56:40 PM
2:56 PM
vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a
React with white_check_mark
React with eyes
FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpec2-user@ip-10-30-129-190:~ffmpeg‹$0loolБГ100% <78• Thu 28 May 14:57:38181ec2-user@ip-10-30-140-….₴7DOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O [EMAIL] Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
84824
|
NULL
|
NULL
|
NULL
|
|
84825
|
2913
|
52
|
2026-05-28T11:57:38.145243+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969458145_m2.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
React with white_check_mark...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.027593086,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0033244682,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.5455452,"top":0.5746209,"width":0.024268618,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5969673,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.010970744,"height":0.030327214},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.015957447,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.007978723,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.6412899,"top":0.25618514,"width":0.041888297,"height":0.021548284},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":17,"bounds":{"left":0.6412899,"top":0.25778133,"width":0.04055851,"height":0.018355945},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":15,"bounds":{"left":0.60339093,"top":0.32242617,"width":0.08676862,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":15,"bounds":{"left":0.69015956,"top":0.3216281,"width":0.045212764,"height":0.018355945},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":16,"bounds":{"left":0.69082445,"top":0.32242617,"width":0.043882977,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":15,"bounds":{"left":0.73537236,"top":0.32242617,"width":0.1505984,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":14,"bounds":{"left":0.60339093,"top":0.35434955,"width":0.035904255,"height":0.028731046},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":15,"bounds":{"left":0.7849069,"top":0.40702313,"width":0.025265958,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"bounds":{"left":0.6180186,"top":0.43814844,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.6555851,"top":0.43974462,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":16,"bounds":{"left":0.65824467,"top":0.44213888,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":17,"bounds":{"left":0.65824467,"top":0.44213888,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":17,"bounds":{"left":0.6180186,"top":0.45730248,"width":0.061835106,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":16,"bounds":{"left":0.6180186,"top":0.47964883,"width":0.034574468,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.65226066,"top":0.481245,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":16,"bounds":{"left":0.6549202,"top":0.48363927,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":17,"bounds":{"left":0.6549202,"top":0.48363927,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":17,"bounds":{"left":0.6180186,"top":0.49880287,"width":0.07480053,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"bounds":{"left":0.6180186,"top":0.5211492,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.6555851,"top":0.52274543,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":16,"bounds":{"left":0.65824467,"top":0.5251397,"width":0.014960106,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52 PM","depth":17,"bounds":{"left":0.65824467,"top":0.5251397,"width":0.014960106,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, да но мисля че няма нужда вече","depth":17,"bounds":{"left":0.6180186,"top":0.5403033,"width":0.09541223,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
7549450805709626444
|
-1208770516569652394
|
typing_pause
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
React with white_check_mark
SluCkcolVIChRotonWindonHelpv Gooc e GeminiPipelines - jiminny/appGemini 3.1 Pro ~reavors now ownerstoe tooAxUemered tines on New codJY-20963 fix deleted object implm cwdsycaotionslEmnlltcthtteM Inbox (1,733) - lukas.kovaliklimlioonre Reso ve php 81.15 ded8 Jiminm,Platform Sorint 5.02 - Platform Te8 Jiminny(SRD-6881) (On demand) Tr. XSona Subramanian at 27/05/202aIliyana Netsova at 27/05/2026, 18es w 20910 schedule oarallel wednrgive me snort summary of these issuesHere is a short, scannable summary of the core issues in the PR:€ Critical & High-Risk IssuesShared Elasticsearch Sockets: Because pentl. fork( clones file descriotors. both childprocesses will share the exact same HIIP/TCP socket tor tlasticsearch. Since you dian't resetthe ES client in resetAfterFork() (like vou did for Redis and DB), the parallel workers willcollide at the network layer, causing corrupted data and cURL exceptionsSupervisor Shutdown Deadlock:In reapChildren.callina ocntl_waitpid without theANOHANG Tlag makes it a blocking call. It one child process gets stuck (e.g., warting on anetwork timeout), the parent supervisor will freeze indefinitely and completely ignore your 10-second gracerul snutdown logic.A Logic & Concurrency FlawsNon-Atomic Redis Locks: The new ReindexTargetStatsReporter checks the lock with getand then creates it with set . Because the workers are truly parallel, they can both read nullatthe exaci same microsecond and botn pusn duplicate metnics to Datadog. Inis neeas to be asinale, atomic command (e.q.lset with NX).Corruoted Ston Sianal State: The rund) loop in EntityivoeReindexer marks the processas "unsafe to stop", does the work, and then marks it "safe". If the Elasticsearch update throwsan exception in the middle, the scriot bails out and the process is oermanently left in anunsafe to stop" state. This must be wrapped in a try... finally block.sô:elcomintYour lim nou chate tehn" uend to imnroy our moddle Camioiie 4l1t cao mata mtake co donbls chack " Yoir oracy & CaminSummarize page1ouCxXF SRD-6881Attachments 1ActivityHistoryWork logAdd internal notelReply to custoPro tioe mess M to commentLuxas Rovallksucone dc0nun order to save a transcriot, the cient"nererore, " was not recoenized as aEdit - DeleteHoeActivityLateMoneiJiminnY …# backend# buescontusion-dinig# donut_time# engineering# general# happy birthdaveuintoche intemallall# infra-chansedPihiesnuen#bu-team-infoi liminnv-benlattormeteam# platform-ticketsworooudauncho# random# released# suppor# thank-yousthe neonle ortim6? Direct message.0 llivana NetsevaA Stefka StovanovaStoyan TomovPetko KashinskiGola Nimitrous: Todor Stamator1 Stelivan Georsie.Ves&r MireNikolav Vanko&o James Grahamunkas Kovall#:AppsEl tie GloudToastai Gooele Cale.Inu co woy 14.0/.s@ Describe what you are looking for* lliyana Netseva** Add canvas +llivana NetsevaThis conversation is ust between @llivana Netseva and you. Check out their prohle to learn more about them.Vew Pro.nlLukas Kovalik 12:32 PMзлравей, имаш ли минутк:lliyana Netseva 2:51 PMakald dchacs sunhodon li chtnd 2Lukas Kovalik 2:52 PMздрасти, да но мисля че няма нужда вечечмуме се сиє стодн и той беше запознат м по този кріаnon tozu veur umay nneneun hhnse niminny atiscian notlhrouice/5R0adhXy*% On demand) transcnOn demand Transcription in saved search disappearsReady tor customene Lukas Kovalik (you)As of todi at 2:58 PM"Cummanizвиж коментари и ако трябва нещо друго може да се чуемivana Netseva 2-6k pyvidah kakvo si napisal, neshtoto koeto mi e stranno e che razlikata meidu tova koeto pravi ta i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-amanaw meko orachaLukas Kovalik 2-57PMOAL MNH AVnAYAла се тьоси по трансири- AaShift + Return to aid a now in...
|
84823
|
NULL
|
NULL
|
NULL
|
|
84824
|
2912
|
57
|
2026-05-28T11:57:37.388582+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969457388_m1.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"}]...
|
5351031383873835193
|
-1200878092960941466
|
typing_pause
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpec2-user@ip-10-30-129-190:~ffmpeg- 884‹$0(ah]БГ100% <78• Thu 28 May 14:57:37181ec2-user@ip-10-30-140-….₴7DOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O [EMAIL] Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84823
|
2913
|
51
|
2026-05-28T11:57:36.362591+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969456362_m2.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.027593086,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0033244682,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.5455452,"top":0.5746209,"width":0.024268618,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5969673,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.010970744,"height":0.030327214},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.015957447,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.007978723,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.6412899,"top":0.25618514,"width":0.041888297,"height":0.021548284},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":17,"bounds":{"left":0.6412899,"top":0.25778133,"width":0.04055851,"height":0.018355945},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":15,"bounds":{"left":0.60339093,"top":0.32242617,"width":0.08676862,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":15,"bounds":{"left":0.69015956,"top":0.3216281,"width":0.045212764,"height":0.018355945},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":16,"bounds":{"left":0.69082445,"top":0.32242617,"width":0.043882977,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":15,"bounds":{"left":0.73537236,"top":0.32242617,"width":0.1505984,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":14,"bounds":{"left":0.60339093,"top":0.35434955,"width":0.035904255,"height":0.028731046},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":15,"bounds":{"left":0.7849069,"top":0.40702313,"width":0.025265958,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"bounds":{"left":0.6180186,"top":0.43814844,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.6555851,"top":0.43974462,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":16,"bounds":{"left":0.65824467,"top":0.44213888,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":17,"bounds":{"left":0.65824467,"top":0.44213888,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":17,"bounds":{"left":0.6180186,"top":0.45730248,"width":0.061835106,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":16,"bounds":{"left":0.6180186,"top":0.47964883,"width":0.034574468,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.65226066,"top":0.481245,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":16,"bounds":{"left":0.6549202,"top":0.48363927,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":17,"bounds":{"left":0.6549202,"top":0.48363927,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":17,"bounds":{"left":0.6180186,"top":0.49880287,"width":0.07480053,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"bounds":{"left":0.6180186,"top":0.5211492,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.6555851,"top":0.52274543,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":16,"bounds":{"left":0.65824467,"top":0.5251397,"width":0.014960106,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52 PM","depth":17,"bounds":{"left":0.65824467,"top":0.5251397,"width":0.014960106,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, да но мисля че няма нужда вече","depth":17,"bounds":{"left":0.6180186,"top":0.5403033,"width":0.09541223,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:52:47 PM","depth":17,"bounds":{"left":0.60738033,"top":0.5666401,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52","depth":18,"bounds":{"left":0.60738033,"top":0.5666401,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"чухме се със Стоян и той беше запознат и по този кейс","depth":17,"bounds":{"left":0.6180186,"top":0.5642458,"width":0.12699468,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:53:22 PM","depth":17,"bounds":{"left":0.60738033,"top":0.5905826,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:53","depth":18,"bounds":{"left":0.60738033,"top":0.5905826,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"под този кейс имам предвид","depth":17,"bounds":{"left":0.6180186,"top":0.58818835,"width":0.06781915,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":17,"bounds":{"left":0.68583775,"top":0.58818835,"width":0.10305851,"height":0.014365523},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":18,"bounds":{"left":0.68583775,"top":0.58818835,"width":0.10305851,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":16,"bounds":{"left":0.6180186,"top":0.6113328,"width":0.018949468,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Jira Cloud","depth":16,"bounds":{"left":0.63829786,"top":0.6113328,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Remove preview","depth":18,"bounds":{"left":0.61136967,"top":0.62968874,"width":0.0066489363,"height":0.016759777},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize","depth":18,"bounds":{"left":0.6180186,"top":0.6280926,"width":0.15957446,"height":0.1348763},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"[On demand] Transcription in saved search disappears","depth":19,"bounds":{"left":0.63829786,"top":0.64166003,"width":0.1200133,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Bug SRD-6881 in Jira Cloud","depth":20,"bounds":{"left":0.63829786,"top":0.6576217,"width":0.053523935,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":20,"bounds":{"left":0.63829786,"top":0.6576217,"width":0.03125,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Status","depth":19,"bounds":{"left":0.63829786,"top":0.68076617,"width":0.011968086,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ready for customer","depth":19,"bounds":{"left":0.63962764,"top":0.6999202,"width":0.04255319,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Assignee","depth":19,"bounds":{"left":0.69148934,"top":0.68076617,"width":0.016954787,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":20,"bounds":{"left":0.7017952,"top":0.7007183,"width":0.026263298,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"(you)","depth":20,"bounds":{"left":0.7293883,"top":0.7007183,"width":0.009640957,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"As of today at 2:53 PM","depth":20,"bounds":{"left":0.62234044,"top":0.73822826,"width":0.043882977,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Refresh","depth":20,"bounds":{"left":0.6672208,"top":0.74142057,"width":0.01462766,"height":0.006384677},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Jira","depth":20,"bounds":{"left":0.70711434,"top":0.73343974,"width":0.03125,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"✨ Summarize","depth":20,"bounds":{"left":0.7393617,"top":0.73343974,"width":0.03523936,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Open in browser","depth":19,"bounds":{"left":0.7144282,"top":0.64166003,"width":0.022606382,"height":0.025538707},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Open","depth":20,"bounds":{"left":0.7237367,"top":0.6472466,"width":0.010638298,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Share Bug SRD-6881","depth":19,"bounds":{"left":0.7400266,"top":0.64166003,"width":0.010638298,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":19,"bounds":{"left":0.7506649,"top":0.64166003,"width":0.010638298,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":19,"bounds":{"left":0.7613032,"top":0.64166003,"width":0.010638298,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:54:12 PM","depth":17,"bounds":{"left":0.60738033,"top":0.7765363,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:54","depth":18,"bounds":{"left":0.60738033,"top":0.7765363,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"виж коментари и ако трябва нещо друго може да се чуем","depth":17,"bounds":{"left":0.6180186,"top":0.7741421,"width":0.13364361,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
6549856997527775387
|
-1429587672407047854
|
typing_pause
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
SluCkcolVIChRotonWindonHelpv Gooc e GeminiPipelines - jiminny/appGemini 3.1 Pro ~reavors now ownerstoe tooAxUemered tines on New codJY-20963 fix deleted object implm cwdsycaotionslEmnlltcthtteM Inbox (1,733) - lukas.kovaliklimlioonre Reso ve php 81.15 ded8 Jiminm,Platform Sorint 5.02 - Platform Te8 Jiminny(SRD-6881) (On demand) Tr. XSona Subramanian at 27/05/202aIliyana Netseva at 27/05/2026, 1€es w 20910 schedule oarallel wednrgive me snort summary of these issuesHere is a short, scannable summary of the core issues in the PR:€ Critical & High-Risk IssuesShared Elasticsearch Sockets: Because pentl. fork( clones file descriotors. both childprocesses will share the exact same HIIP/TCP socket tor tlasticsearch. Since you dian't resetthe ES client in resetAfterFork() (like vou did for Redis and DB), the parallel workers willcollide at the network layer, causing corrupted data and cURL exceptionsSupervisor Shutdown Deadlock:In reapChildren.callina ocntl_waitpid without theANOHANG Tlag makes it a blocking call. It one child process gets stuck (e.g., warting on anetwork timeout), the parent supervisor will freeze indefinitely and completely ignore your 10-second gracerul snutdown logic.A Logic & Concurrency FlawsNon-Atomic Redis Locks: The new ReindexTargetStatsReporter checks the lock with getand then creates it with set . Because the workers are truly parallel, they can both read nullatthe exaci same microsecond and botn pusn duplicate metnics to Datadog. Inis neeas to be asinale, atomic command (e.q.lset with NX).Corruoted Ston Sianal State: The rund) loop in EntityivoeReindexer marks the processas "unsafe to stop", does the work, and then marks it "safe". If the Elasticsearch update throwsan exception in the middle, the scriot bails out and the process is oermanently left in anunsafe to stop" state. This must be wrapped in a try... finally block.sô:elcomintYour lim nou chate tehn" uend to imnroy our moddle Camioiie 4l1t cao mata mtake co donbls chack " Yoir oracy & CaminSummarize page1ouCxXF SRD-6881Attachments 1ActivityHistoryWork logAdd internal noteReply to custoPro tioe mess M to commentLuxas Rovallksucone dc0nun order to save a transcriot, the cient"nererore, " was not recoenized as aEdit - DeleteHoeActivityLateMoneiJiminnY …# backend# buescontusion-dinig# donut_time# engineering# general# happy birthdaveuintoche intemallall# infra-chansedPihiesnuen#bu-team-infoi liminnv-benlattormeteam# platform-ticketsworooudauncho# random# released# suppor# thank-yousthe neonle ortim6? Direct message.0 llivana NetsevaA Stefka StovanovaStoyan TomovPetko KashinskiGola Nimitrous: Todor Stamator1 Stelivan Georsie.Ves&r MireNikolav Vanko&o James Grahamunkas Kovall#:AppsEl tie GloudToastai Gooele Cale.Thu 28 May 14:57:36@ Describe what you are looking for* lliyana Netseva** Add canvas +llivana NetsevaThis conversation is ust between @llivana Netseva and you. Check out their prohle to learn more about them.Vew Pro.nlLukas Kovalik 12:32 PMзлравей, имаш ли минутк:lliyana Netseva 2:51 PMakald dchacs sunhodon li chtnd 2Lukas Kovalik 2:52 PMздрасти, да но мисля че няма нужда вечечмуме се сиє стодн и той беше запознат м по този кріаnon tozu veur umay nneneun hhnse niminny atiscian notlhrouice/5R0adhXy*% On demand) transcnOn demand Transcription in saved search disappearsReady tor customene Lukas Kovalik (you)As of todi at 2:58 PM"Cummanizвиж коментари и ако трябва нещо друго може да се чуемivana Netseva 2-6k pyvidah kakvo si napisal, neshtoto koeto mi e stranno e che razlikata meidu tova koeto pravi ta i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-amanaw meko orachaLukas Kovalik 2-57PMTAL Mnh AVnAYAла се тьоси по тра!- AaShift + Return to aid a now in...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84822
|
2912
|
56
|
2026-05-28T11:57:35.262801+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969455262_m1.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":14,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":15,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, да но мисля че няма нужда вече","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:52:47 PM","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"чухме се със Стоян и той беше запознат и по този кейс","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:53:22 PM","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:53","depth":18,"on_screen":true,"role_description":"text"}]...
|
6755851481326804900
|
-1280828110741798574
|
typing_pause
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpec2-user@ip-10-30-129-190:~ffmpeg384‹$0(ah]БГ100% <78• Thu 28 May 14:57:35181ec2-user@ip-10-30-140-….₴7DOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O [EMAIL] Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
84820
|
NULL
|
NULL
|
NULL
|
|
84821
|
2913
|
50
|
2026-05-28T11:57:34.223051+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969454223_m2.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.027593086,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0033244682,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.5455452,"top":0.5746209,"width":0.024268618,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5969673,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.010970744,"height":0.030327214},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.015957447,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.007978723,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.6412899,"top":0.25618514,"width":0.041888297,"height":0.021548284},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":17,"bounds":{"left":0.6412899,"top":0.25778133,"width":0.04055851,"height":0.018355945},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":15,"bounds":{"left":0.60339093,"top":0.32242617,"width":0.08676862,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":15,"bounds":{"left":0.69015956,"top":0.3216281,"width":0.045212764,"height":0.018355945},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":16,"bounds":{"left":0.69082445,"top":0.32242617,"width":0.043882977,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":15,"bounds":{"left":0.73537236,"top":0.32242617,"width":0.1505984,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":14,"bounds":{"left":0.60339093,"top":0.35434955,"width":0.035904255,"height":0.028731046},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":15,"bounds":{"left":0.7849069,"top":0.40702313,"width":0.025265958,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"bounds":{"left":0.6180186,"top":0.43814844,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.6555851,"top":0.43974462,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":16,"bounds":{"left":0.65824467,"top":0.44213888,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":17,"bounds":{"left":0.65824467,"top":0.44213888,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":17,"bounds":{"left":0.6180186,"top":0.45730248,"width":0.061835106,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":16,"bounds":{"left":0.6180186,"top":0.47964883,"width":0.034574468,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.65226066,"top":0.481245,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":16,"bounds":{"left":0.6549202,"top":0.48363927,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":17,"bounds":{"left":0.6549202,"top":0.48363927,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":17,"bounds":{"left":0.6180186,"top":0.49880287,"width":0.07480053,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"bounds":{"left":0.6180186,"top":0.5211492,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.6555851,"top":0.52274543,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":16,"bounds":{"left":0.65824467,"top":0.5251397,"width":0.014960106,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52 PM","depth":17,"bounds":{"left":0.65824467,"top":0.5251397,"width":0.014960106,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, да но мисля че няма нужда вече","depth":17,"bounds":{"left":0.6180186,"top":0.5403033,"width":0.09541223,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:52:47 PM","depth":17,"bounds":{"left":0.60738033,"top":0.5666401,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52","depth":18,"bounds":{"left":0.60738033,"top":0.5666401,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"чухме се със Стоян и той беше запознат и по този кейс","depth":17,"bounds":{"left":0.6180186,"top":0.5642458,"width":0.12699468,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:53:22 PM","depth":17,"bounds":{"left":0.60738033,"top":0.5905826,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:53","depth":18,"bounds":{"left":0.60738033,"top":0.5905826,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"под този кейс имам предвид","depth":17,"bounds":{"left":0.6180186,"top":0.58818835,"width":0.06781915,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":17,"bounds":{"left":0.68583775,"top":0.58818835,"width":0.10305851,"height":0.014365523},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":18,"bounds":{"left":0.68583775,"top":0.58818835,"width":0.10305851,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":16,"bounds":{"left":0.6180186,"top":0.6113328,"width":0.018949468,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Jira Cloud","depth":16,"bounds":{"left":0.63829786,"top":0.6113328,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Remove preview","depth":18,"bounds":{"left":0.61136967,"top":0.62968874,"width":0.0066489363,"height":0.016759777},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize","depth":18,"bounds":{"left":0.6180186,"top":0.6280926,"width":0.15957446,"height":0.1348763},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"[On demand] Transcription in saved search disappears","depth":19,"bounds":{"left":0.63829786,"top":0.64166003,"width":0.1200133,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Bug SRD-6881 in Jira Cloud","depth":20,"bounds":{"left":0.63829786,"top":0.6576217,"width":0.053523935,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":20,"bounds":{"left":0.63829786,"top":0.6576217,"width":0.03125,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Status","depth":19,"bounds":{"left":0.63829786,"top":0.68076617,"width":0.011968086,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ready for customer","depth":19,"bounds":{"left":0.63962764,"top":0.6999202,"width":0.04255319,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Assignee","depth":19,"bounds":{"left":0.69148934,"top":0.68076617,"width":0.016954787,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":20,"bounds":{"left":0.7017952,"top":0.7007183,"width":0.026263298,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"(you)","depth":20,"bounds":{"left":0.7293883,"top":0.7007183,"width":0.009640957,"height":0.012769354},"on_screen":true,"role_description":"text"}]...
|
7398501649873130316
|
-1285331609403883182
|
typing_pause
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
SluCkcolVIChRotonWindonHelpv Gooc e GeminiPipelines - jiminny/appGemini 3.1 Pro ~reavors now ownerstoe tooAxUemered tines on New codJY-20963 fix deleted object implm cwdsycaotionslEmnlltcthtteM Inbox (1,733) - lukas.kovaliklimlioonre Reso ve php 81.15 ded8 Jiminm,Platform Sorint 5.02 - Platform Te8 Jiminny(SRD-6881) (On demand) Tr. XSona Subramanian at 27/05/202aIliyana Netsova at 27/05/2026, 18es w 20910 schedule oarallel wednrgive me snort summary of these issuesHere is a short, scannable summary of the core issues in the PR:€ Critical & High-Risk IssuesShared Elasticsearch Sockets: Because pentl. fork( clones file descriotors. both childprocesses will share the exact same HIIP/TCP socket tor tlasticsearch. Since you dian't resetthe ES client in resetAfterFork() (like vou did for Redis and DB), the parallel workers willcollide at the network layer, causing corrupted data and cURL exceptionsSupervisor Shutdown Deadlock:In reapChildren.callina ocntl_waitpid without theANOHANG Tlag makes it a blocking call. It one child process gets stuck (e.g., warting on anetwork timeout), the parent supervisor will freeze indefinitely and completely ignore your 10-second gracerul snutdown logic.A Logic & Concurrency FlawsNon-Atomic Redis Locks: The new ReindexTargetStatsReporter checks the lock with getand then creates it with set . Because the workers are truly parallel, they can both read nullatthe exaci same microsecond and botn pusn duplicate metnics to Datadog. Inis neeas to be asinale, atomic command (e.q.lset with NX).Corruoted Ston Sianal State: The rund) loop in EntityivoeReindexer marks the processas "unsafe to stop", does the work, and then marks it "safe". If the Elasticsearch update throwsan exception in the middle, the scriot bails out and the process is oermanently left in anunsafe to stop" state. This must be wrapped in a try... finally block.sô:elcomintYour lim nou chate tehn" uend to imnroy our moddle Camioiie 4l1t cao mata mtake co donbls chack " Yoir oracy & CaminSummarize page1ouCxXF SRD-6881Attachments 1ActivityHistoryWork logAdd internal notelReply to custoPro tioe mess M to commentLuxas Rovallksucone dc0nun order to save a transcriot, the cient"nererore, " was not recoenized as aEdit - DeleteHoeActivityLateMoneiJiminnY …# backend# buescontusion-dinig# donut_time# engineering# general# happy birthdaveuintoche intemallall# infra-chansedPihiesnuen#bu-team-infoi liminnv-benlattormeteam# platform-ticketsworooudauncho# random# released# suppor# thank-yousthe neonle ortim6? Direct message.0 llivana NetsevaA Stefka StovanovaStoyan TomovPetko KashinskiGola Nimitrous: Todor Stamator1 Stelivan Georsie.Ves&r MireNikolav Vanko&o James Grahamunkas Kovall#:AppsEl tie GloudToastai Gooele Cale.Inu cowoy 14.0/.s@ Describe what you are looking for* lliyana Netseva** Add canvas +llivana NetsevaThis conversation is ust between @llivana Netseva and you. Check out their prohle to learn more about them.Vew Pro.nlLukas Kovalik 12:32 PMзлравей, имаш ли минутк:lliyana Netseva 2:51 PMakald dchacs sunhodon li chtnd 2Lukas Kovalik 2:52 PMздрасти, да но мисля че няма нужда вечечмуме се сиє стодн и той беше запознат м по този кріаnon tozu veur umay nneneun hhnse niminny atiscian notlhrouice/5R0adhXy*% On demand) transcnOn demand Transcription in saved search disappearsReady tor customene Lukas Kovalik (you)As of todi at 2:58 PM"Cummanizвиж коментари и ако трябва нещо друго може да се чуемivana Netseva 2-6k pyvidah kakvo si napisal, neshtoto koeto mi e stranno e che razlikata meidu tova koeto pravi ta i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-amanaw meko orachaLukas Kovalik 2-57PMTAL Mnh AVnAYAла се тьоси по— АaShift + Return to aid a now in...
|
84818
|
NULL
|
NULL
|
NULL
|
|
84820
|
2912
|
55
|
2026-05-28T11:57:34.120522+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969454120_m1.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":14,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":15,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, да но мисля че няма нужда вече","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:52:47 PM","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"чухме се със Стоян и той беше запознат и по този кейс","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:53:22 PM","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:53","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"под този кейс имам предвид","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Jira Cloud","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Remove preview","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"[On demand] Transcription in saved search disappears","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Bug SRD-6881 in Jira Cloud","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Status","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ready for customer","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Assignee","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"(you)","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"As of today at 2:53 PM","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Refresh","depth":20,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Jira","depth":20,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"✨ Summarize","depth":20,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Open in browser","depth":19,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Open","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Share Bug SRD-6881","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:54:12 PM","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:54","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"виж коментари и ако трябва нещо друго може да се чуем","depth":17,"on_screen":true,"role_description":"text"}]...
|
2730481613780412315
|
-1429446934927343278
|
typing_pause
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpec2-user@ip-10-30-129-190:~ffmpegX4‹$0(ah]БГ100% <78• Thu 28 May 14:57:33181ec2-user@ip-10-30-140-….₴7DOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O [EMAIL] Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
84819
|
2912
|
54
|
2026-05-28T11:57:31.806156+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969451806_m1.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Slack...
|
1
|
NULL
|
monitor_1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.56805557,"top":0.0,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.56805557,"top":0.0,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.57569444,"top":0.0,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":15,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":15,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":14,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":15,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":16,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52 PM","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, да но мисля че няма нужда вече","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:52:47 PM","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"чухме се със Стоян и той беше запознат и по този кейс","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:53:22 PM","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:53","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"под този кейс имам предвид","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Jira Cloud","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Remove preview","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize","depth":18,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"[On demand] Transcription in saved search disappears","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Bug SRD-6881 in Jira Cloud","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Status","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ready for customer","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Assignee","depth":19,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"(you)","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"As of today at 2:53 PM","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Refresh","depth":20,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Jira","depth":20,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"✨ Summarize","depth":20,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Open in browser","depth":19,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Open","depth":20,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Share Bug SRD-6881","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:54:12 PM","depth":17,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:54","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"виж коментари и ако трябва нещо друго може да се чуем","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-5779623588618721774
|
-1429587672407047854
|
typing_pause
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpec2-user@ip-10-30-129-190:~ffmpeg₴4‹$0(ah]БГ100% <78• Thu 28 May 14:57:31181ec2-user@ip-10-30-140-….₴7DOCKER#_####_#####\\###||\#/V~'881DEV (-zsh)O [EMAIL] Linux 2023 (ECS Optimized)_/m/For documentation, visit [URL_WITH_CREDENTIALS] ~]$ exitlogoutConnection to jiminny-prod-ecsi closed.lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ applukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ vprodWarning: Permanently added 'jiminny-prod-ecs1' (ED25519) to the list of known hosts.A newer release of "Amazon Linux" is available.Version 2023.10.20260330:Version 2023.11.20260406:Version 2023.11.20260413:Version2023.11.20260427:Version2023.11.20260505:Version 2023.11.20260509:Version 2023.11.20260511:Version 2023.11.20260514:Run "/usr/bin/dnf check-release-update" for full release and version update info#_~\ ####_\ #####\\###1\#/Amazon Linux 2023 (ECS Optimized)/m/'For documentation, visit [URL_WITH_CREDENTIALS] ~]$ client_loop: send disconnect: Broken pipeukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-relay) $I...
|
84816
|
NULL
|
NULL
|
NULL
|
|
84818
|
2913
|
49
|
2026-05-28T11:57:31.705743+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779969451705_m2.jpg...
|
Slack
|
Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Iliyana Netseva (DM) - Jiminny Inc - 4 new items - Slack...
|
1
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:56:40 PM
2:56 PM
vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a
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 2:56:55 PM
2:56
popravi me ako gresha
React with white_check_mark...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":6,"bounds":{"left":0.5056516,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":6,"bounds":{"left":0.50299203,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":8,"bounds":{"left":0.50664896,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":6,"bounds":{"left":0.50299203,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":8,"bounds":{"left":0.50764626,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":6,"bounds":{"left":0.50299203,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":8,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5053192,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.50764626,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":6,"bounds":{"left":0.50299203,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":8,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50797874,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5099734,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":6,"bounds":{"left":0.50299203,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":8,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.5093085,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":6,"bounds":{"left":0.50299203,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":8,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.50731385,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.5106383,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":13,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-backend-engineers","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":15,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":15,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.09736632,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54521275,"top":0.09736632,"width":0.015292553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":15,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.010638298,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.11971269,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.54521275,"top":0.11971269,"width":0.00731383,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":15,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.14205906,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54454786,"top":0.14205906,"width":0.032247342,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"donut_time","depth":15,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.025265958,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.16440542,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54521275,"top":0.16440542,"width":0.022273935,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":15,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.025930852,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.1867518,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":10,"bounds":{"left":0.54488033,"top":0.1867518,"width":0.022938829,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"general","depth":15,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.016289894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.20909816,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54488033,"top":0.20909816,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"happy_birthday","depth":15,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.033909574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.23144454,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54521275,"top":0.23144454,"width":0.030917553,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infosec_internal_all","depth":15,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.041888297,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.25379092,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":19,"bounds":{"left":0.54355055,"top":0.25379092,"width":0.040226065,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":15,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.029587766,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.27613726,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.27613726,"width":0.02825798,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"infrastructure_dev","depth":15,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.040226065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.29848364,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.54355055,"top":0.29848364,"width":0.038896278,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jbu-team-info","depth":15,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.029920213,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.32083002,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54355055,"top":0.32083002,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":15,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.023271276,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.34317636,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54355055,"top":0.34317636,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-team","depth":15,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.03158245,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.36552274,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54521275,"top":0.36552274,"width":0.028590426,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":15,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.38786912,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.38786912,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":15,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4102155,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54521275,"top":0.4102155,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":15,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.43256184,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.54421544,"top":0.43256184,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":15,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.01761968,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.45490822,"width":0.0016622341,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.54388297,"top":0.45490822,"width":0.015957447,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":15,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.017287234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.4772546,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.54454786,"top":0.4772546,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":15,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.024601065,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.49960095,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.49960095,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":15,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.045212764,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5219473,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.54421544,"top":0.5219473,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":15,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.027593086,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5746209,"width":0.0033244682,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.5455452,"top":0.5746209,"width":0.024268618,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.03324468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.5969673,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54355055,"top":0.5969673,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":15,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.037898935,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.61931366,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.54488033,"top":0.61931366,"width":0.03523936,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":15,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.64166003,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54488033,"top":0.64166003,"width":0.027925532,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":15,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6640064,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54521275,"top":0.6640064,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":15,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.03523936,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.6863527,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.6863527,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Todor Stamatov","depth":15,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.034574468,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7086991,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.54454786,"top":0.7086991,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":15,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7310455,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.54488033,"top":0.7310455,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":15,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.75339186,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.54521275,"top":0.75339186,"width":0.004986702,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Mira","depth":15,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.010305851,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.77573824,"width":0.004654255,"height":0.014365523}},{"char_start":1,"char_count":3,"bounds":{"left":0.546875,"top":0.77573824,"width":0.005319149,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":15,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.032912236,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.7980846,"width":0.0039893617,"height":0.014365523}},{"char_start":1,"char_count":13,"bounds":{"left":0.5462101,"top":0.7980846,"width":0.028922873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"James Graham","depth":15,"bounds":{"left":0.5422208,"top":0.820431,"width":0.031914894,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.820431,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.54421544,"top":0.820431,"width":0.029920213,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":15,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.030917553,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8427773,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":12,"bounds":{"left":0.54488033,"top":0.8427773,"width":0.026928192,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"you","depth":15,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.007978723,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5744681,"top":0.8427773,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":2,"bounds":{"left":0.5767952,"top":0.8427773,"width":0.0056515955,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":15,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.021941489,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.8954509,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.54421544,"top":0.8954509,"width":0.019946808,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":15,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.011635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.91779727,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":4,"bounds":{"left":0.54454786,"top":0.91779727,"width":0.00930851,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":15,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.030585106,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.5422208,"top":0.94014364,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.54587764,"top":0.94014364,"width":0.032912236,"height":0.014365523}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":9,"bounds":{"left":0.60206115,"top":0.09177973,"width":0.030917553,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":11,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.018949468,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.61136967,"top":0.10055866,"width":0.0039893617,"height":0.012769354}},{"char_start":1,"char_count":7,"bounds":{"left":0.61535907,"top":0.10055866,"width":0.014960106,"height":0.012769354}}],"role_description":"text"},{"role":"AXRadioButton","text":"Add canvas","depth":10,"bounds":{"left":0.63397604,"top":0.09177973,"width":0.034242023,"height":0.030327214},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add canvas","depth":12,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.022273935,"height":0.012769354},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.64328456,"top":0.10055866,"width":0.0033244682,"height":0.012769354}},{"char_start":1,"char_count":9,"bounds":{"left":0.6462766,"top":0.10055866,"width":0.019281914,"height":0.012769354}}],"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":9,"bounds":{"left":0.66921544,"top":0.09177973,"width":0.010970744,"height":0.030327214},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.015957447,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.007978723,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":9,"bounds":{"left":0.59640956,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Iliyana Netseva","depth":15,"bounds":{"left":0.6412899,"top":0.25618514,"width":0.041888297,"height":0.021548284},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Iliyana Netseva","depth":17,"bounds":{"left":0.6412899,"top":0.25778133,"width":0.04055851,"height":0.018355945},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"This conversation is just between","depth":15,"bounds":{"left":0.60339093,"top":0.32242617,"width":0.08676862,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"@Iliyana Netseva","depth":15,"bounds":{"left":0.69015956,"top":0.3216281,"width":0.045212764,"height":0.018355945},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"@Iliyana Netseva","depth":16,"bounds":{"left":0.69082445,"top":0.32242617,"width":0.043882977,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"and you. Check out their profile to learn more about them.","depth":15,"bounds":{"left":0.73537236,"top":0.32242617,"width":0.1505984,"height":0.016759777},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"View Profile","depth":14,"bounds":{"left":0.60339093,"top":0.35434955,"width":0.035904255,"height":0.028731046},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":15,"bounds":{"left":0.7849069,"top":0.40702313,"width":0.025265958,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"bounds":{"left":0.6180186,"top":0.43814844,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.6555851,"top":0.43974462,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:32:31 PM","depth":16,"bounds":{"left":0.65824467,"top":0.44213888,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:32 PM","depth":17,"bounds":{"left":0.65824467,"top":0.44213888,"width":0.017287234,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здравей, имаш ли минутка","depth":17,"bounds":{"left":0.6180186,"top":0.45730248,"width":0.061835106,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":16,"bounds":{"left":0.6180186,"top":0.47964883,"width":0.034574468,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.65226066,"top":0.481245,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:51:31 PM","depth":16,"bounds":{"left":0.6549202,"top":0.48363927,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:51 PM","depth":17,"bounds":{"left":0.6549202,"top":0.48363927,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"okolo 4 chasa svoboden li shte si ?","depth":17,"bounds":{"left":0.6180186,"top":0.49880287,"width":0.07480053,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":16,"bounds":{"left":0.6180186,"top":0.5211492,"width":0.030917553,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.6555851,"top":0.52274543,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:52:21 PM","depth":16,"bounds":{"left":0.65824467,"top":0.5251397,"width":0.014960106,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52 PM","depth":17,"bounds":{"left":0.65824467,"top":0.5251397,"width":0.014960106,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, да но мисля че няма нужда вече","depth":17,"bounds":{"left":0.6180186,"top":0.5403033,"width":0.09541223,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:52:47 PM","depth":17,"bounds":{"left":0.60738033,"top":0.5666401,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:52","depth":18,"bounds":{"left":0.60738033,"top":0.5666401,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"чухме се със Стоян и той беше запознат и по този кейс","depth":17,"bounds":{"left":0.6180186,"top":0.5642458,"width":0.12699468,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:53:22 PM","depth":17,"bounds":{"left":0.60738033,"top":0.5905826,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:53","depth":18,"bounds":{"left":0.60738033,"top":0.5905826,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"под този кейс имам предвид","depth":17,"bounds":{"left":0.6180186,"top":0.58818835,"width":0.06781915,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":17,"bounds":{"left":0.68583775,"top":0.58818835,"width":0.10305851,"height":0.014365523},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/SRD-6881","depth":18,"bounds":{"left":0.68583775,"top":0.58818835,"width":0.10305851,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":16,"bounds":{"left":0.6180186,"top":0.6113328,"width":0.018949468,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Jira Cloud","depth":16,"bounds":{"left":0.63829786,"top":0.6113328,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Remove preview","depth":18,"bounds":{"left":0.61136967,"top":0.62968874,"width":0.0066489363,"height":0.016759777},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize","depth":18,"bounds":{"left":0.6180186,"top":0.6280926,"width":0.15957446,"height":0.1348763},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"[On demand] Transcription in saved search disappears","depth":19,"bounds":{"left":0.63829786,"top":0.64166003,"width":0.1200133,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Bug SRD-6881 in Jira Cloud","depth":20,"bounds":{"left":0.63829786,"top":0.6576217,"width":0.053523935,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":20,"bounds":{"left":0.63829786,"top":0.6576217,"width":0.03125,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Status","depth":19,"bounds":{"left":0.63829786,"top":0.68076617,"width":0.011968086,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ready for customer","depth":19,"bounds":{"left":0.63962764,"top":0.6999202,"width":0.04255319,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Assignee","depth":19,"bounds":{"left":0.69148934,"top":0.68076617,"width":0.016954787,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":20,"bounds":{"left":0.7017952,"top":0.7007183,"width":0.026263298,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"(you)","depth":20,"bounds":{"left":0.7293883,"top":0.7007183,"width":0.009640957,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"As of today at 2:53 PM","depth":20,"bounds":{"left":0.62234044,"top":0.73822826,"width":0.043882977,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Refresh","depth":20,"bounds":{"left":0.6672208,"top":0.74142057,"width":0.01462766,"height":0.006384677},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Jira","depth":20,"bounds":{"left":0.70711434,"top":0.73343974,"width":0.03125,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"✨ Summarize","depth":20,"bounds":{"left":0.7393617,"top":0.73343974,"width":0.03523936,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Open in browser","depth":19,"bounds":{"left":0.7144282,"top":0.64166003,"width":0.022606382,"height":0.025538707},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Open","depth":20,"bounds":{"left":0.7237367,"top":0.6472466,"width":0.010638298,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Share Bug SRD-6881","depth":19,"bounds":{"left":0.7400266,"top":0.64166003,"width":0.010638298,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":19,"bounds":{"left":0.7506649,"top":0.64166003,"width":0.010638298,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":19,"bounds":{"left":0.7613032,"top":0.64166003,"width":0.010638298,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:54:12 PM","depth":17,"bounds":{"left":0.60738033,"top":0.7765363,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:54","depth":18,"bounds":{"left":0.60738033,"top":0.7765363,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"виж коментари и ако трябва нещо друго може да се чуем","depth":17,"bounds":{"left":0.6180186,"top":0.7741421,"width":0.13364361,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Iliyana Netseva","depth":16,"bounds":{"left":0.6180186,"top":0.7964884,"width":0.034574468,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":16,"bounds":{"left":0.65226066,"top":0.7980846,"width":0.0026595744,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 2:56:40 PM","depth":16,"bounds":{"left":0.6549202,"top":0.8004789,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:56 PM","depth":17,"bounds":{"left":0.6549202,"top":0.8004789,"width":0.015292553,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a","depth":17,"bounds":{"left":0.6180186,"top":0.8156425,"width":0.35538563,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"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":18,"on_screen":false,"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":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":18,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":18,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 2:56:55 PM","depth":17,"bounds":{"left":0.60738033,"top":0.84197927,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2:56","depth":18,"bounds":{"left":0.60738033,"top":0.84197927,"width":0.007978723,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"popravi me ako gresha","depth":17,"bounds":{"left":0.6180186,"top":0.839585,"width":0.04920213,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":18,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8722704572744795129
|
-1717818048424542126
|
typing_pause
|
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
1
Directories
platform-backend-engineers
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
donut_time
engineering
general
happy_birthday
infosec_internal_all
infra-changes
infrastructure_dev
jbu-team-info
jiminny-bg
platform-team
platform-tickets
product_launches
random
releases
support
thank-yous
the_people_of_jiminny
Vasil Vasilev
Iliyana Netseva
Stefka Stoyanova
Stoyan Tomov
Petko Kashinski
Galya Dimitrova
Todor Stamatov
Steliyan Georgiev
Ves
Mira
Nikolay Yankov
James Graham
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Iliyana Netseva
Iliyana Netseva
This conversation is just between
@Iliyana Netseva
@Iliyana Netseva
and you. Check out their profile to learn more about them.
View Profile
Jump to date
Lukas Kovalik
Today at 12:32:31 PM
12:32 PM
здравей, имаш ли минутка
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:51:31 PM
2:51 PM
okolo 4 chasa svoboden li shte si ?
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 2:52:21 PM
2:52 PM
здрасти, да но мисля че няма нужда вече
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 2:52:47 PM
2:52
чухме се със Стоян и той беше запознат и по този кейс
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 2:53:22 PM
2:53
под този кейс имам предвид
https://jiminny.atlassian.net/browse/SRD-6881
https://jiminny.atlassian.net/browse/SRD-6881
Jira Cloud
Jira Cloud
Remove preview
Jira Cloud Bug SRD-6881 [On demand] Transcription in saved search disappears Bug SRD-6881 in Jira Cloud Preview in Slack Status Ready for customer Assignee Lukas Kovalik(you) As of today at 2:53 PM Refresh Open in Jira ✨ Summarize
[On demand] Transcription in saved search disappears
Bug SRD-6881 in Jira Cloud
Preview in Slack
Status
Ready for customer
Assignee
Lukas Kovalik
(you)
As of today at 2:53 PM
Refresh
Open in Jira
✨ Summarize
Open in browser
Open
Share Bug SRD-6881
View conversations
More actions
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 2:54:12 PM
2:54
виж коментари и ако трябва нещо друго може да се чуем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Iliyana Netseva
Today at 2:56:40 PM
2:56 PM
vidqh kakvo si napisal, neshtoto koeto mi e stranno e che razlikata mejdu tova koeto pravi tq i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-a
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 2:56:55 PM
2:56
popravi me ako gresha
React with white_check_mark
SluCkcolVIChRotonWindonHelpv Gooc e GeminiPipelines - jiminny/appGemini 3.1 Pro ~reavors now ownerstoe tooAxUemered tines on New codJY-20963 fix deleted object implm cwdsycaotionslEmnlltcthtteM Inbox (1,733) - lukas.kovaliklimlioonre Reso ve php 81.15 ded8 Jiminm,Platform Sorint 5.02 - Platform Te8 Jiminny(SRD-6881) (On demand) Tr. XSona Subramanian at 27/05/202aIliyana Netsova at 27/05/2026, 18es w 20910 schedule oarallel wednrgive me snort summary of these issuesHere is a short, scannable summary of the core issues in the PR:€ Critical & High-Risk IssuesShared Elasticsearch Sockets: Because pentl. fork( clones file descriotors. both childprocesses will share the exact same HIIP/TCP socket tor tlasticsearch. Since you dian't resetthe ES client in resetAfterFork() (like vou did for Redis and DB), the parallel workers willcollide at the network layer, causing corrupted data and cURL exceptionsSupervisor Shutdown Deadlock:In reapChildren.callina ocntl_waitpid without theANOHANG Tlag makes it a blocking call. It one child process gets stuck (e.g., warting on anetwork timeout), the parent supervisor will freeze indefinitely and completely ignore your 10-second gracerul snutdown logic.A Logic & Concurrency FlawsNon-Atomic Redis Locks: The new ReindexTargetStatsReporter checks the lock with getand then creates it with set . Because the workers are truly parallel, they can both read nullatthe exaci same microsecond and botn pusn duplicate metnics to Datadog. Inis neeas to be asinale, atomic command (e.q.lset with NX).Corruoted Ston Sianal State: The rund) loop in EntityivoeReindexer marks the processas "unsafe to stop", does the work, and then marks it "safe". If the Elasticsearch update throwsan exception in the middle, the scriot bails out and the process is oermanently left in anunsafe to stop" state. This must be wrapped in a try... finally block.sô:elcomintYour lim nou chate tehn" uend to imnroy our moddle Camioiie 4l1t cao mata mtake co donbls chack " Yoir oracy & CaminSummarize page1ouCxXF SRD-6881Attachments 1ActivityHistoryWork logAdd internal notelReply to custoPro tioe mess M to commentLuxas Rovallksucone dc0nun order to save a transcriot, the cient"nererore, " was not recoenized as aEdit - DeleteHoeActivityLateMoneiJiminnY …# backend# buescontusion-dinig# donut_time# engineering# general# happy birthdaveuintoche intemallall# infra-chansedPihiesnuen#bu-team-infoi liminnv-benlattormeteam# platform-ticketsworooudauncho# random# released# suppor# thank-yousthe neonle ortim6? Direct message.0 llivana NetsevaA Stefka StovanovaStoyan TomovPetko KashinskiGola Nimitrous: Todor Stamator1 Stelivan Georsie.Ves&r MireNikolav Vanko&o James Grahamunkas Kovall#:AppsE tia GloudToastai Gooele Cale.Inu co moy 14:0/.s@ Describe what you are looking for* lliyana Netseva** Add canvas +llivana NetsevaThis conversation is ust between @llivana Netseva and you. Check out their prohle to learn more about them.Vew Pro.nlLukas Kovalik 12:32 PMзлравей, имаш ли минутк:lliyana Netseva 2:51 PMakald dchacs sunhodon li chtnd 2Lukas Kovalik 2:52 PMздрасти, да но мисля че няма нужда вечечмуме се сиє стодн и той беше запознат м по този кріаnon tozu veur umay nneneun hhnse niminny atiscian notlhrouice/5R0adhXy*% On demand) transcnOn demand Transcription in saved search disappearsReady tor customene Lukas Kovalik (you)As of todi at 2:58 PM"Cummanizвиж коментари и ако трябва нещо друго може да се чуемivana Netseva 2-6k pyvidah kakvo si napisal, neshtoto koeto mi e stranno e che razlikata meidu tova koeto pravi ta i tova koeto si napisal ti e natiskaneto na enter-a za da izpulni search-amanaw meko orachaLukas Kovalik 2-57PMTAL Mnh AVnAYAла се тьоси— АaShift + Return to aid a now in...
|
NULL
|
NULL
|
NULL
|
NULL
|