|
52925
|
1149
|
2
|
2026-04-20T07:49:41.804553+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776671381804_m2.jpg...
|
Slack
|
Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Slack...
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Jiminny Inc","depth":12,"bounds":{"left":0.004654255,"top":0.06304868,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Jiminny (Staging)","depth":12,"bounds":{"left":0.004654255,"top":0.10454908,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Add workspaces","depth":12,"bounds":{"left":0.004654255,"top":0.14604948,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"bounds":{"left":0.022938829,"top":0.05586592,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.009973404,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.022938829,"top":0.110135674,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"bounds":{"left":0.027593086,"top":0.14764565,"width":0.007978723,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.022938829,"top":0.16440542,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"bounds":{"left":0.025265958,"top":0.2019154,"width":0.012965426,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.022938829,"top":0.21867518,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"bounds":{"left":0.027925532,"top":0.25618514,"width":0.0076462766,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.022938829,"top":0.27294493,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"bounds":{"left":0.027260639,"top":0.3104549,"width":0.008643617,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.022938829,"top":0.3272147,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"bounds":{"left":0.027260639,"top":0.36472467,"width":0.008976064,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"More unreads","depth":17,"bounds":{"left":0.058843084,"top":0.096568234,"width":0.041888297,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Unreads","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.056848403,"top":0.09177973,"width":0.017952127,"height":0.0023942539},"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.056848403,"top":0.10215483,"width":0.017952127,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.056848403,"top":0.1245012,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.056848403,"top":0.14684756,"width":0.023936171,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":21,"bounds":{"left":0.06216755,"top":0.24102154,"width":0.043882977,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":21,"bounds":{"left":0.06216755,"top":0.26336792,"width":0.044215426,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":21,"bounds":{"left":0.06216755,"top":0.3160415,"width":0.022273935,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":21,"bounds":{"left":0.06216755,"top":0.33838788,"width":0.011968086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":21,"bounds":{"left":0.06216755,"top":0.36073422,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":21,"bounds":{"left":0.06216755,"top":0.3830806,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":21,"bounds":{"left":0.06216755,"top":0.40542698,"width":0.027593086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":21,"bounds":{"left":0.06216755,"top":0.42777336,"width":0.025598405,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"frontend","depth":21,"bounds":{"left":0.06216755,"top":0.4501197,"width":0.018949468,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"general","depth":21,"bounds":{"left":0.06216755,"top":0.47246608,"width":0.015957447,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":21,"bounds":{"left":0.06216755,"top":0.49481246,"width":0.029587766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":21,"bounds":{"left":0.06216755,"top":0.5171588,"width":0.022938829,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":21,"bounds":{"left":0.06216755,"top":0.5395052,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":21,"bounds":{"left":0.06216755,"top":0.56185156,"width":0.03856383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"random","depth":21,"bounds":{"left":0.06216755,"top":0.58419794,"width":0.01662234,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":21,"bounds":{"left":0.06216755,"top":0.6065443,"width":0.01761968,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":21,"bounds":{"left":0.06216755,"top":0.62889063,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"support","depth":21,"bounds":{"left":0.06216755,"top":0.651237,"width":0.016954787,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":21,"bounds":{"left":0.06216755,"top":0.6735834,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":21,"bounds":{"left":0.06216755,"top":0.69592977,"width":0.04488032,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.06216755,"top":0.74860334,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.7709497,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.06216755,"top":0.7932961,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":23,"bounds":{"left":0.06216755,"top":0.8156425,"width":0.030585106,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.83798885,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.09940159,"top":0.83798885,"width":0.0063164895,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"bounds":{"left":0.10206117,"top":0.83798885,"width":0.014295213,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.116023935,"top":0.8555467,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"bounds":{"left":0.116023935,"top":0.8555467,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":23,"bounds":{"left":0.06216755,"top":0.8603352,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"bounds":{"left":0.06216755,"top":0.88268155,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"bounds":{"left":0.06216755,"top":0.9050279,"width":0.026263298,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"bounds":{"left":0.06216755,"top":0.9273743,"width":0.031914894,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"bounds":{"left":0.06216755,"top":0.9497207,"width":0.0076462766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":21,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.011968086,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":21,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.021609042,"height":0.0007980846},"role_description":"text"},{"role":"AXButton","text":"Unread mentions","depth":17,"bounds":{"left":0.055851065,"top":0.96727854,"width":0.048204787,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Messages","depth":17,"bounds":{"left":0.12200798,"top":0.09177973,"width":0.030585106,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":19,"bounds":{"left":0.13131648,"top":0.10055866,"width":0.01861702,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":17,"bounds":{"left":0.15392287,"top":0.09177973,"width":0.020944148,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":19,"bounds":{"left":0.16323139,"top":0.10055866,"width":0.008976064,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Untitled","depth":17,"bounds":{"left":0.17586437,"top":0.09177973,"width":0.02925532,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Untitled","depth":19,"bounds":{"left":0.18517287,"top":0.10055866,"width":0.015957447,"height":0.012769354},"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":17,"bounds":{"left":0.20644946,"top":0.09177973,"width":0.010638298,"height":0.030327214},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.015625,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"List","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.0076462766,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.28125,"top":0.12689546,"width":0.052526597,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 11:59:18 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:59","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"когато стигнеш до това стори","depth":25,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":26,"role_description":"text"},{"role":"AXLink","text":"JY-20372 AI Reports > Empty page design and promotion","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20372 AI Reports > Empty page design and promotion","depth":28,"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Backlog","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:00:05 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"image (1).png","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"image (1).png","depth":27,"role_description":"Unlabelled image","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download image (1).png","depth":28,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: image (1).png","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 12:00:24 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"ама като стигнеш до там може би най добре да видиш с него за всеки случай","depth":25,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:01:25 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:01 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, добре ще го видя","depth":25,"role_description":"text"},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 5:34:30 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:34 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"нещо за като се върнеш -","depth":25,"bounds":{"left":0.13796543,"top":0.11572227,"width":0.059507977,"height":0.013567438},"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":25,"bounds":{"left":0.1974734,"top":0.11572227,"width":0.10139628,"height":0.013567438},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":26,"bounds":{"left":0.1974734,"top":0.11572227,"width":0.10139628,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода","depth":25,"bounds":{"left":0.13796543,"top":0.11572227,"width":0.35239363,"height":0.0311253},"role_description":"text"},{"role":"AXLink","text":"JY-20543 AJ Reports > Tracking","depth":27,"bounds":{"left":0.14328457,"top":0.15482841,"width":0.07047872,"height":0.014365523},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20543 AJ Reports > Tracking","depth":28,"bounds":{"left":0.14328457,"top":0.15482841,"width":0.07047872,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"bounds":{"left":0.14328457,"top":0.18036711,"width":0.013962766,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Closed","depth":26,"bounds":{"left":0.15691489,"top":0.18036711,"width":0.013297873,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"bounds":{"left":0.18351063,"top":0.18036711,"width":0.011303191,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"bounds":{"left":0.19481383,"top":0.18036711,"width":0.010305851,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"bounds":{"left":0.21841756,"top":0.18036711,"width":0.019281914,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Lukas","depth":26,"bounds":{"left":0.23736702,"top":0.18036711,"width":0.011303191,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.24833776,"top":0.18036711,"width":0.0013297872,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Kovalik","depth":26,"bounds":{"left":0.24933511,"top":0.18036711,"width":0.014295213,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"bounds":{"left":0.2769282,"top":0.18036711,"width":0.016289894,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"bounds":{"left":0.29321808,"top":0.18036711,"width":0.015957447,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"bounds":{"left":0.14328457,"top":0.20670392,"width":0.01861702,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"bounds":{"left":0.1462766,"top":0.21069433,"width":0.012632979,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"bounds":{"left":0.16456117,"top":0.20670392,"width":0.03324468,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"bounds":{"left":0.16755319,"top":0.21069433,"width":0.027260639,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"bounds":{"left":0.20013298,"top":0.20670392,"width":0.038896278,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"bounds":{"left":0.20844415,"top":0.21069433,"width":0.027593086,"height":0.012769354},"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"bounds":{"left":0.24135639,"top":0.20670392,"width":0.06349734,"height":0.022346368},"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"bounds":{"left":0.14328457,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"bounds":{"left":0.16057181,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"bounds":{"left":0.16057181,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with +1 emoji","depth":25,"bounds":{"left":0.13796543,"top":0.25698325,"width":0.014295213,"height":0.01915403},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":26,"bounds":{"left":0.14727394,"top":0.2601756,"width":0.0023271276,"height":0.011971269},"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":25,"bounds":{"left":0.15325798,"top":0.25698325,"width":0.011635638,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.29488033,"top":0.29369512,"width":0.025265958,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.32482043,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17519946,"top":0.3264166,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:39:38 AM","depth":24,"bounds":{"left":0.17785904,"top":0.32881084,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":25,"bounds":{"left":0.17785904,"top":0.32881084,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"здрасти","depth":25,"bounds":{"left":0.13796543,"top":0.34397447,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:39:49 AM","depth":25,"bounds":{"left":0.125,"top":0.37031126,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":26,"bounds":{"left":0.125,"top":0.37031126,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"имам два бързи въпроса","depth":25,"bounds":{"left":0.13796543,"top":0.367917,"width":0.05651596,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.40625,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.4168883,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.4275266,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.4381649,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"bounds":{"left":0.4488032,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"bounds":{"left":0.45944148,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"bounds":{"left":0.47007978,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"bounds":{"left":0.48071808,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:42:21 AM","depth":25,"bounds":{"left":0.125,"top":0.3942538,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:42","depth":26,"bounds":{"left":0.125,"top":0.3942538,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?","depth":25,"bounds":{"left":0.13796543,"top":0.39185953,"width":0.34906915,"height":0.031923383},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:43:09 AM","depth":25,"bounds":{"left":0.125,"top":0.43575418,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43","depth":26,"bounds":{"left":0.125,"top":0.43575418,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо","depth":25,"bounds":{"left":0.13796543,"top":0.43335995,"width":0.27260637,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.13796543,"top":0.4557063,"width":0.036236703,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17420213,"top":0.45730248,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:38 AM","depth":24,"bounds":{"left":0.17652926,"top":0.45969674,"width":0.017952127,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"bounds":{"left":0.17652926,"top":0.45969674,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"ако искаш да се чуем да го видим","depth":25,"bounds":{"left":0.13796543,"top":0.47486034,"width":0.078125,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.49720672,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17519946,"top":0.49880287,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:59 AM","depth":24,"bounds":{"left":0.17785904,"top":0.5011971,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"bounds":{"left":0.17785904,"top":0.5011971,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"добре, дано да ми работи вече аудио","depth":25,"bounds":{"left":0.13796543,"top":0.51636076,"width":0.08643617,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A huddle happened","depth":24,"bounds":{"left":0.13796543,"top":0.5403033,"width":0.043218084,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.18118352,"top":0.5403033,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:44:06 AM","depth":24,"bounds":{"left":0.18384309,"top":0.54269755,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:44 AM","depth":25,"bounds":{"left":0.18384309,"top":0.54269755,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"You and","depth":24,"bounds":{"left":0.13796543,"top":0.55786115,"width":0.01861702,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.15658244,"top":0.55786115,"width":0.03523936,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"were in the huddle for","depth":24,"bounds":{"left":0.19148937,"top":0.55786115,"width":0.05119681,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"5m","depth":24,"bounds":{"left":0.24235372,"top":0.55786115,"width":0.00731383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":".","depth":24,"bounds":{"left":0.24933511,"top":0.55786115,"width":0.0013297872,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.5802075,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17519946,"top":0.5818037,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:45:03 AM","depth":24,"bounds":{"left":0.17785904,"top":0.58419794,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:45 AM","depth":25,"bounds":{"left":0.17785904,"top":0.58419794,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"ask-jiminny-report-generated","depth":25,"bounds":{"left":0.13796543,"top":0.59936154,"width":0.06382979,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.13796543,"top":0.6217079,"width":0.036236703,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17420213,"top":0.62330407,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:47:45 AM","depth":24,"bounds":{"left":0.17652926,"top":0.6256983,"width":0.017952127,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:47 AM","depth":25,"bounds":{"left":0.17652926,"top":0.6256983,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":25,"bounds":{"left":0.13796543,"top":0.6408619,"width":0.07646277,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.21442819,"top":0.6408619,"width":0.0013297872,"height":0.014365523},"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"bounds":{"left":0.21575798,"top":0.6400638,"width":0.0066489363,"height":0.015961692},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":27,"bounds":{"left":0.13796543,"top":0.66001594,"width":0.07978723,"height":0.23383878},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download Screenshot 2026-04-20 at 10.47.21.png","depth":28,"bounds":{"left":0.1705452,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: Screenshot 2026-04-20 at 10.47.21.png","depth":28,"bounds":{"left":0.18118352,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"bounds":{"left":0.19182181,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"bounds":{"left":0.20246011,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward file…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"","depth":23,"bounds":{"left":0.12367021,"top":0.91380686,"width":0.36768618,"height":0.030327214},"value":"","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"No exact matches. Search for: shared-activi, 1 of 2 suggestions","depth":11,"bounds":{"left":0.0,"top":0.9992019,"width":0.026263298,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova: . Image: No alt text. 1 attachment.","depth":11,"bounds":{"left":0.0,"top":0.9992019,"width":0.025265958,"height":0.0007980846},"role_description":"text"}]...
|
-9218245258814534702
|
-3875041992842510246
|
visual_change
|
hybrid
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment.
Slack•0 ЕlActivityMoreVIewMistonWindowJiminny ...6д H 1 More unreads• Dratts & sent8 Directoriesab External connectionss Starred@ jiminny-x-integrati.•olattorm-inner-team© Channelsi ai-chanter# alerts# backend# confusion-clinic# curiosity lab# engineering# frontendai general# infra-changes#liminnv-bgst mlattorm-nckets)# product launchesa random# releases# sofia-office# support# thank-yous* the neonle of limi..^ Direct messages• Galva Dimitrovale Aneliva AngelovaN Stefka StovanovalStoyan Tomov31 Aneliva Angelova…Nikolay Nikalovt Stovan TanevVasil VasilevNikolay Ivanov• VeHeld@ Search: shared-activi* Galya Dimitrova• MessagesYr Files7 Untitledв момента гледам че е само един. Та ще трябва да се добави сThursday. April 16th v .и и R kon:JY-20543 AJ Keports > IrackingW Type: StoryLK) Assignee: Lukas KovalikT Priority: MediumASSignChange status*t Al SummariseAdded by sira cloudLukas Kovalik • 10:39 AMЗлрасти10:39 имам лва оъози въпоосаза UP tracking лобавям ask-iiminnv-report-generated покрай automated-report-generated като отлелен event. Прели съм го направил като част от pavload(report type, frequency). В UP обаче не успах ла го виля, само като draft но си стои празно, ти вил ли го някьде?Исках ла збнам как се показва и дали трябва да има и различен pavload в зависимост от тип. Правя го малко на сляпоGalya Dimitrova 10:43 AMако искаш да се чуем да го видимLukas Kovalik 10:43 AMдобре, дано да ми работи вече аудиоA huddle happened 10:44 AMVou and Calva Dimitrova were in the huddle for 5mlnkas Kovalik 10-45 AMack-liminnv-renort-generatedlGalya Dimitrova 10:47 AMshot 2026-04-20 at 10.47 21 nng •< Automated report generatede Watched Notetaker Viden‹> Watch Later Button • Notetake…< Shared.activity< Notification-provider-enabled(Lozged-activitye Dialod.outhounde› Dialod.inhoundMessage Galva Dimitrova+ Aa@ny@localnostA HS_local (jiminny@localhost]Plavaround10 = 6024:where stage 1d = 163521where business process 1d = 6024:nen id THEN I ownen)' ELSE II END) AS usen idl100% LMon 20 Apr 10:49:41+0 ..& console [PKol)4 console [EU] Xdojiminny v027 A9 A23 V3 V 105 ^"nuospots.name, COUNT(*) as cntage 10d. s.names.team_id. s.com confiquration idl..n: ON oos.stage 1d = s.1d20612.182811644.16378.16309. 5056.15223.14535.6293 12698 1168701Pulsar Group%'; # 472, 380, 15138, [EMAIL]= 472; # event 226147E nlavbook 1d = 2288;6147;om fiold 1d = 2241471id = 380;ner id THEN ' (owner)' ELSE "• END) AS user id= 'salesforce':Group Photo UrL RevRetactor UserPilot TraFindinas: What changed with Group photoAfter diaaina through both backend and frontend history. I can now aive a definitive answerBackend (Group::photo_url)Unchanged since it was tirst introduced. commit 434a4e0c "Set tlag as group photo for now", May 5 2017 added getPhotcurtaccrioutely wih the exdct country-tlag logic stilin place toddy:• Group.php:220-223return cdn('img/flags/1x1/' . strtolower($this->country_code) . '.svg');uo had no photo URL attribute at all. So at the model level. the answer is: the URL has alwavs been thecountry tlag svc (Since May 201/); there was no earlier tormulaFrontend (GroupAvatar, vue) — this is probablv what vou noticedThe avatar visual did change recently. The photoUrl (flag image) was the same, but a colored ring was drawn around it using•Before (Sep 2020 - Dec 2024, commit d8618b5a87 ):border-color="aroun.color"After commit 85a3688eaf - "Remove arouo color" (Ahmet Katranci. Dec 19 2024). part of JY-17913÷0 GrounAvatarvule.1-10l<BaseAvatarurle"aroup.ohotour"content: group.name,•.• сippy,</template>The matching backend commit aae3d5e755 ("JY-17913 Remove group color in php") dropped the color field from Group: :$f:1lable and removed detGolor!) I cetGolor!)Conclucion• The imade itself (countrv flaa) has been the same since 2017.• What changed in Dec 2024 (JY-17913) is that the colored border that surrounded the flag in the GroupAvatar componentAsk anvthina (&4L)Po. 4 spac...
|
52922
|
|
52939
|
1148
|
11
|
2026-04-20T07:50:02.702626+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776671402702_m1.jpg...
|
Slack
|
Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Slack...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Jiminny Inc","depth":12,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Jiminny (Staging)","depth":12,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Add workspaces","depth":12,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"role_description":"text"},{"role":"AXButton","text":"More unreads","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Unreads","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"frontend","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":21,"role_description":"text"},{"role":"AXButton","text":"Unread mentions","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Messages","depth":17,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":19,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":17,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":19,"role_description":"text"},{"role":"AXRadioButton","text":"Untitled","depth":17,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Untitled","depth":19,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":17,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":17,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 11:59:18 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:59","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"когато стигнеш до това стори","depth":25,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":26,"role_description":"text"},{"role":"AXLink","text":"JY-20372 AI Reports > Empty page design and promotion","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20372 AI Reports > Empty page design and promotion","depth":28,"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Backlog","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:00:05 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"image (1).png","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"image (1).png","depth":27,"role_description":"Unlabelled image","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download image (1).png","depth":28,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: image (1).png","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 12:00:24 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"ама като стигнеш до там може би най добре да видиш с него за всеки случай","depth":25,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:01:25 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:01 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, добре ще го видя","depth":25,"role_description":"text"},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 5:34:30 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:34 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"нещо за като се върнеш -","depth":25,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода","depth":25,"role_description":"text"},{"role":"AXLink","text":"JY-20543 AJ Reports > Tracking","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20543 AJ Reports > Tracking","depth":28,"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Closed","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Lukas","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Kovalik","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with +1 emoji","depth":25,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":26,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:39:38 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"здрасти","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:39:49 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"имам два бързи въпроса","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:42:21 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:42","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:43:09 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:38 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ако искаш да се чуем да го видим","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:59 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"добре, дано да ми работи вече аудио","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A huddle happened","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:44:06 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:44 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"You and","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"were in the huddle for","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"5m","depth":24,"role_description":"text"},{"role":"AXStaticText","text":".","depth":24,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:45:03 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:45 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ask-jiminny-report-generated","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:47:45 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:47 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download Screenshot 2026-04-20 at 10.47.21.png","depth":28,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: Screenshot 2026-04-20 at 10.47.21.png","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward file…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"","depth":23,"value":"","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"No exact matches. Search for: shared-activi, 1 of 2 suggestions","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova: . Image: No alt text. 1 attachment.","depth":11,"role_description":"text"}]...
|
-9218245258814534702
|
-3875041992842510246
|
visual_change
|
hybrid
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment.
iTerm2ShellEditViewSessionScriptsProfilesWindowHelp< →0 lbl 0100% (47 8 Mon 20 Apr 10:50:02DEV (docker)APP (-zsh)T&1DOCKERLast login: Mon Apr 20 10:16:41 on ttys006DEV (docker)$82Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parentsPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ devroot@docker_lamp_1:/home/jiminny#83-zsh• ₴4screenpipe"*5DEV$1PS-Slack...
|
NULL
|
|
52940
|
1149
|
8
|
2026-04-20T07:50:02.978277+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776671402978_m2.jpg...
|
Slack
|
Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Slack...
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Jiminny Inc","depth":12,"bounds":{"left":0.004654255,"top":0.06304868,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Jiminny (Staging)","depth":12,"bounds":{"left":0.004654255,"top":0.10454908,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Add workspaces","depth":12,"bounds":{"left":0.004654255,"top":0.14604948,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"bounds":{"left":0.022938829,"top":0.05586592,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.009973404,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.022938829,"top":0.110135674,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"bounds":{"left":0.027593086,"top":0.14764565,"width":0.007978723,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.022938829,"top":0.16440542,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"bounds":{"left":0.025265958,"top":0.2019154,"width":0.012965426,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.022938829,"top":0.21867518,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"bounds":{"left":0.027925532,"top":0.25618514,"width":0.0076462766,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.022938829,"top":0.27294493,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"bounds":{"left":0.027260639,"top":0.3104549,"width":0.008643617,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.022938829,"top":0.3272147,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"bounds":{"left":0.027260639,"top":0.36472467,"width":0.008976064,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"More unreads","depth":17,"bounds":{"left":0.058843084,"top":0.096568234,"width":0.041888297,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Unreads","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.056848403,"top":0.09177973,"width":0.017952127,"height":0.0023942539},"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.056848403,"top":0.10215483,"width":0.017952127,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.056848403,"top":0.1245012,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.056848403,"top":0.14684756,"width":0.023936171,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":21,"bounds":{"left":0.06216755,"top":0.24102154,"width":0.043882977,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":21,"bounds":{"left":0.06216755,"top":0.26336792,"width":0.044215426,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":21,"bounds":{"left":0.06216755,"top":0.3160415,"width":0.022273935,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":21,"bounds":{"left":0.06216755,"top":0.33838788,"width":0.011968086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":21,"bounds":{"left":0.06216755,"top":0.36073422,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":21,"bounds":{"left":0.06216755,"top":0.3830806,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":21,"bounds":{"left":0.06216755,"top":0.40542698,"width":0.027593086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":21,"bounds":{"left":0.06216755,"top":0.42777336,"width":0.025598405,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"frontend","depth":21,"bounds":{"left":0.06216755,"top":0.4501197,"width":0.018949468,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"general","depth":21,"bounds":{"left":0.06216755,"top":0.47246608,"width":0.015957447,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":21,"bounds":{"left":0.06216755,"top":0.49481246,"width":0.029587766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":21,"bounds":{"left":0.06216755,"top":0.5171588,"width":0.022938829,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":21,"bounds":{"left":0.06216755,"top":0.5395052,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":21,"bounds":{"left":0.06216755,"top":0.56185156,"width":0.03856383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"random","depth":21,"bounds":{"left":0.06216755,"top":0.58419794,"width":0.01662234,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":21,"bounds":{"left":0.06216755,"top":0.6065443,"width":0.01761968,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":21,"bounds":{"left":0.06216755,"top":0.62889063,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"support","depth":21,"bounds":{"left":0.06216755,"top":0.651237,"width":0.016954787,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":21,"bounds":{"left":0.06216755,"top":0.6735834,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":21,"bounds":{"left":0.06216755,"top":0.69592977,"width":0.04488032,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.06216755,"top":0.74860334,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.7709497,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.06216755,"top":0.7932961,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":23,"bounds":{"left":0.06216755,"top":0.8156425,"width":0.030585106,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.83798885,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.09940159,"top":0.83798885,"width":0.0063164895,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"bounds":{"left":0.10206117,"top":0.83798885,"width":0.014295213,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.116023935,"top":0.8555467,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"bounds":{"left":0.116023935,"top":0.8555467,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":23,"bounds":{"left":0.06216755,"top":0.8603352,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"bounds":{"left":0.06216755,"top":0.88268155,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"bounds":{"left":0.06216755,"top":0.9050279,"width":0.026263298,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"bounds":{"left":0.06216755,"top":0.9273743,"width":0.031914894,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"bounds":{"left":0.06216755,"top":0.9497207,"width":0.0076462766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":21,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.011968086,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":21,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.021609042,"height":0.0007980846},"role_description":"text"},{"role":"AXButton","text":"Unread mentions","depth":17,"bounds":{"left":0.055851065,"top":0.96727854,"width":0.048204787,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Messages","depth":17,"bounds":{"left":0.12200798,"top":0.09177973,"width":0.030585106,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":19,"bounds":{"left":0.13131648,"top":0.10055866,"width":0.01861702,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":17,"bounds":{"left":0.15392287,"top":0.09177973,"width":0.020944148,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":19,"bounds":{"left":0.16323139,"top":0.10055866,"width":0.008976064,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Untitled","depth":17,"bounds":{"left":0.17586437,"top":0.09177973,"width":0.02925532,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Untitled","depth":19,"bounds":{"left":0.18517287,"top":0.10055866,"width":0.015957447,"height":0.012769354},"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":17,"bounds":{"left":0.20644946,"top":0.09177973,"width":0.010638298,"height":0.030327214},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.015625,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"List","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.0076462766,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.28125,"top":0.12689546,"width":0.052526597,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 11:59:18 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:59","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"когато стигнеш до това стори","depth":25,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":26,"role_description":"text"},{"role":"AXLink","text":"JY-20372 AI Reports > Empty page design and promotion","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20372 AI Reports > Empty page design and promotion","depth":28,"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Backlog","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:00:05 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"image (1).png","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"image (1).png","depth":27,"role_description":"Unlabelled image","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download image (1).png","depth":28,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: image (1).png","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 12:00:24 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"ама като стигнеш до там може би най добре да видиш с него за всеки случай","depth":25,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:01:25 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:01 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, добре ще го видя","depth":25,"role_description":"text"},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 5:34:30 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:34 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"нещо за като се върнеш -","depth":25,"bounds":{"left":0.13796543,"top":0.11572227,"width":0.059507977,"height":0.013567438},"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":25,"bounds":{"left":0.1974734,"top":0.11572227,"width":0.10139628,"height":0.013567438},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":26,"bounds":{"left":0.1974734,"top":0.11572227,"width":0.10139628,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода","depth":25,"bounds":{"left":0.13796543,"top":0.11572227,"width":0.35239363,"height":0.0311253},"role_description":"text"},{"role":"AXLink","text":"JY-20543 AJ Reports > Tracking","depth":27,"bounds":{"left":0.14328457,"top":0.15482841,"width":0.07047872,"height":0.014365523},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20543 AJ Reports > Tracking","depth":28,"bounds":{"left":0.14328457,"top":0.15482841,"width":0.07047872,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"bounds":{"left":0.14328457,"top":0.18036711,"width":0.013962766,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Closed","depth":26,"bounds":{"left":0.15691489,"top":0.18036711,"width":0.013297873,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"bounds":{"left":0.18351063,"top":0.18036711,"width":0.011303191,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"bounds":{"left":0.19481383,"top":0.18036711,"width":0.010305851,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"bounds":{"left":0.21841756,"top":0.18036711,"width":0.019281914,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Lukas","depth":26,"bounds":{"left":0.23736702,"top":0.18036711,"width":0.011303191,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.24833776,"top":0.18036711,"width":0.0013297872,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Kovalik","depth":26,"bounds":{"left":0.24933511,"top":0.18036711,"width":0.014295213,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"bounds":{"left":0.2769282,"top":0.18036711,"width":0.016289894,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"bounds":{"left":0.29321808,"top":0.18036711,"width":0.015957447,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"bounds":{"left":0.14328457,"top":0.20670392,"width":0.01861702,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"bounds":{"left":0.1462766,"top":0.21069433,"width":0.012632979,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"bounds":{"left":0.16456117,"top":0.20670392,"width":0.03324468,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"bounds":{"left":0.16755319,"top":0.21069433,"width":0.027260639,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"bounds":{"left":0.20013298,"top":0.20670392,"width":0.038896278,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"bounds":{"left":0.20844415,"top":0.21069433,"width":0.027593086,"height":0.012769354},"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"bounds":{"left":0.24135639,"top":0.20670392,"width":0.06349734,"height":0.022346368},"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"bounds":{"left":0.14328457,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"bounds":{"left":0.16057181,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"bounds":{"left":0.16057181,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with +1 emoji","depth":25,"bounds":{"left":0.13796543,"top":0.25698325,"width":0.014295213,"height":0.01915403},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":26,"bounds":{"left":0.14727394,"top":0.2601756,"width":0.0023271276,"height":0.011971269},"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":25,"bounds":{"left":0.15325798,"top":0.25698325,"width":0.011635638,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.29488033,"top":0.29369512,"width":0.025265958,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.32482043,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.3264166,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:39:38 AM","depth":24,"bounds":{"left":0.17121011,"top":0.32881084,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":25,"bounds":{"left":0.17121011,"top":0.32881084,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"здрасти","depth":25,"bounds":{"left":0.13796543,"top":0.34397447,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:39:49 AM","depth":25,"bounds":{"left":0.125,"top":0.37031126,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":26,"bounds":{"left":0.125,"top":0.37031126,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"имам два бързи въпроса","depth":25,"bounds":{"left":0.13796543,"top":0.367917,"width":0.05651596,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.40625,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.4168883,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.4275266,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.4381649,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"bounds":{"left":0.4488032,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"bounds":{"left":0.45944148,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"bounds":{"left":0.47007978,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"bounds":{"left":0.48071808,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:42:21 AM","depth":25,"bounds":{"left":0.125,"top":0.3942538,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:42","depth":26,"bounds":{"left":0.125,"top":0.3942538,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?","depth":25,"bounds":{"left":0.13796543,"top":0.39185953,"width":0.34906915,"height":0.031923383},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:43:09 AM","depth":25,"bounds":{"left":0.125,"top":0.43575418,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43","depth":26,"bounds":{"left":0.125,"top":0.43575418,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо","depth":25,"bounds":{"left":0.13796543,"top":0.43335995,"width":0.27260637,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.13796543,"top":0.4557063,"width":0.036236703,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17420213,"top":0.45730248,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:38 AM","depth":24,"bounds":{"left":0.17652926,"top":0.45969674,"width":0.017952127,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"bounds":{"left":0.17652926,"top":0.45969674,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"ако искаш да се чуем да го видим","depth":25,"bounds":{"left":0.13796543,"top":0.47486034,"width":0.078125,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.49720672,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.49880287,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:59 AM","depth":24,"bounds":{"left":0.17121011,"top":0.5011971,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"bounds":{"left":0.17121011,"top":0.5011971,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"добре, дано да ми работи вече аудио","depth":25,"bounds":{"left":0.13796543,"top":0.51636076,"width":0.08643617,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A huddle happened","depth":24,"bounds":{"left":0.13796543,"top":0.5403033,"width":0.043218084,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.18118352,"top":0.5403033,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:44:06 AM","depth":24,"bounds":{"left":0.18384309,"top":0.54269755,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:44 AM","depth":25,"bounds":{"left":0.18384309,"top":0.54269755,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"You and","depth":24,"bounds":{"left":0.13796543,"top":0.55786115,"width":0.01861702,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.15658244,"top":0.55786115,"width":0.03523936,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"were in the huddle for","depth":24,"bounds":{"left":0.19148937,"top":0.55786115,"width":0.05119681,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"5m","depth":24,"bounds":{"left":0.24235372,"top":0.55786115,"width":0.00731383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":".","depth":24,"bounds":{"left":0.24933511,"top":0.55786115,"width":0.0013297872,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.5802075,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.5818037,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:45:03 AM","depth":24,"bounds":{"left":0.17121011,"top":0.58419794,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:45 AM","depth":25,"bounds":{"left":0.17121011,"top":0.58419794,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"ask-jiminny-report-generated","depth":25,"bounds":{"left":0.13796543,"top":0.59936154,"width":0.06382979,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.13796543,"top":0.6217079,"width":0.036236703,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17420213,"top":0.62330407,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:47:45 AM","depth":24,"bounds":{"left":0.17652926,"top":0.6256983,"width":0.017952127,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:47 AM","depth":25,"bounds":{"left":0.17652926,"top":0.6256983,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":25,"bounds":{"left":0.13796543,"top":0.6408619,"width":0.07646277,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.21442819,"top":0.6408619,"width":0.0013297872,"height":0.014365523},"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"bounds":{"left":0.21575798,"top":0.6400638,"width":0.0066489363,"height":0.015961692},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":27,"bounds":{"left":0.13796543,"top":0.66001594,"width":0.07978723,"height":0.23383878},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download Screenshot 2026-04-20 at 10.47.21.png","depth":28,"bounds":{"left":0.1705452,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: Screenshot 2026-04-20 at 10.47.21.png","depth":28,"bounds":{"left":0.18118352,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"bounds":{"left":0.19182181,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"bounds":{"left":0.20246011,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward file…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"","depth":23,"bounds":{"left":0.12367021,"top":0.91380686,"width":0.36768618,"height":0.030327214},"value":"","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"No exact matches. Search for: shared-activi, 1 of 2 suggestions","depth":11,"bounds":{"left":0.0,"top":0.9992019,"width":0.026263298,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova: . Image: No alt text. 1 attachment.","depth":11,"bounds":{"left":0.0,"top":0.9992019,"width":0.025265958,"height":0.0007980846},"role_description":"text"}]...
|
-9218245258814534702
|
-3875041992842510246
|
visual_change
|
hybrid
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment.
SlackActivityMoreVIewMistonWindowJiminny ...6д H 1 More unreadsDrafts & sent• DirectoriesAb External connections& Starred@ jiminny-x-integrati.•olattorm-inner-team© Channels# ai-chapter# alerts# backend# confusion-clinic# curiosity lab# engineering# frontendai general# infra-changes#liminnv-bg# platform-tickets# product_launchesa random# releases# sofia-office# support# thank-yous* the neonle of timi...^ Direct messagesQ. Galya Dimitrova®. Aneliya Angelovafa. Stefka StoyanovaR. Stoyan Tomov31 Aneliva Angelova…Nikolay Nikalov2. Stoyan TanevVasil VasilevC.. Nikolay Ivanove. VesHelpQ Search: shared-activiz . Galya Dimitrova• MessagesYr FilesUntitledв момента гледам че е само един. Та ще трябва да се добави сThursday, April 16th ~ зи и в кодаJY-20543 AJ Keporis > IrackingW Type: StoryLK) Assignee: Lukas KovalikT Priority: MediumASSignChange status*+ Al SummariseAdded by sira cloudLukas Kovallik 10:39 AMзпрасти10:39 имам два бързи въпросаза UP tracking лобавям ask-liminnv-report-generated покрай automated-report-generated като отлелен event. Преди съм го направил като част от pavload(report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някьде?Исках ла збнам как се показва и дали трябва да има и различен pavload в зависимост от тип. Правя го малко на сляпоGalya Dimitrova 10:43 AMако искаш да се чуем да го видимLukas Kovalik 10:43 AMдобре, дано да ми работи вече аудиоA huddle happened 10:44 AMVou and Calva Dimitrova were in the huddle for 5mlLukas Kovalik 10:45 AMack-liminnv-renort-generatediGalya Dimitrova 10:47 AMshot 2026-04-20 at 10.47 21 nng •< Automated report generated‹/› Watched Notetaker Video‹> Watch Later Button • Notetake…( Shared.activity< Notification-provider-enabled< Lozged-activityi< Dialed-outbound< Dialed-inboundMessage Galya Dimitrova+ Aa@$0laal100% LzMon 20 Apr 10:50:02A Action Required: Rotate Your GitHub Webhook Secretu received a notification from GitHub for a project hosted on CircleCl and use GitHub OAuth project triggers, follow these steps to rotate your token. Learn how to rotate your secret →Checkout sourcesecfix/composer-20260415e4e0e6d Merge branch 'master' into secfix/comooser-20260415 2Trigaer eventPush Commit pushedStart16m agosecfix/composer-20260415e4e0e6d Merge branch 'master' into secfix/comooser-20260415 Ch.JY-18909-automated-reports-ask-jiminny24292b5 Reuse existing result record on retry inRequestGenerateAskJiminnyReportJob rPush Commit pushed17m aaoPush Commit pushed19m ago1 Manage triggersDuration16m 1s1m 10c¿m 14S1m 55s1m 20sIm Z8s1m 31s9m 27s4m 40S1m. 22g57s55s15m 54s1m. 25s1m 50sS Trigger PipelineDisplay optionsActionsGGAg..GGAg.....
|
52938
|
|
52955
|
1148
|
18
|
2026-04-20T07:50:25.587266+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776671425587_m1.jpg...
|
Slack
|
Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Slack...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Jiminny Inc","depth":12,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Jiminny (Staging)","depth":12,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Add workspaces","depth":12,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"role_description":"text"},{"role":"AXButton","text":"More unreads","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Unreads","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"frontend","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":21,"role_description":"text"},{"role":"AXButton","text":"Unread mentions","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Messages","depth":17,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":19,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":17,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":19,"role_description":"text"},{"role":"AXRadioButton","text":"Untitled","depth":17,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Untitled","depth":19,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":17,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":17,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 11:59:18 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:59","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"когато стигнеш до това стори","depth":25,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":26,"role_description":"text"},{"role":"AXLink","text":"JY-20372 AI Reports > Empty page design and promotion","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20372 AI Reports > Empty page design and promotion","depth":28,"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Backlog","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:00:05 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"image (1).png","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"image (1).png","depth":27,"role_description":"Unlabelled image","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download image (1).png","depth":28,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: image (1).png","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 12:00:24 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"ама като стигнеш до там може би най добре да видиш с него за всеки случай","depth":25,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:01:25 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:01 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, добре ще го видя","depth":25,"role_description":"text"},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 5:34:30 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:34 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"нещо за като се върнеш -","depth":25,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода","depth":25,"role_description":"text"},{"role":"AXLink","text":"JY-20543 AJ Reports > Tracking","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20543 AJ Reports > Tracking","depth":28,"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Closed","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Lukas","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Kovalik","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with +1 emoji","depth":25,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":26,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:39:38 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"здрасти","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:39:49 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"имам два бързи въпроса","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:42:21 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:42","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:43:09 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:38 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ако искаш да се чуем да го видим","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:59 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"добре, дано да ми работи вече аудио","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A huddle happened","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:44:06 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:44 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"You and","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"were in the huddle for","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"5m","depth":24,"role_description":"text"},{"role":"AXStaticText","text":".","depth":24,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:45:03 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:45 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ask-jiminny-report-generated","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:47:45 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:47 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download Screenshot 2026-04-20 at 10.47.21.png","depth":28,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: Screenshot 2026-04-20 at 10.47.21.png","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward file…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"","depth":23,"value":"","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"No exact matches. Search for: shared-activi, 1 of 2 suggestions","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova: . Image: No alt text. 1 attachment.","depth":11,"role_description":"text"}]...
|
-9218245258814534702
|
-3875041992842510246
|
app_switch
|
hybrid
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment.
iTerm2ShelllEditViewSessionScriptsProfilesWindowHelpDEV (docker)APP (-zsh)|DOCKER381Last login: Mon Apr 20 10:16:41 on ttys006DEV (docker)$82Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parentsPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ devroot@docker_lamp_1:/home/jiminny# |*3‹ $0 lil100% C47 8 Mon 20 Apr 10:50:25T₴1|-zsh• *4screenpipe"• *5DEV...
|
NULL
|
|
52956
|
1149
|
17
|
2026-04-20T07:50:25.587254+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776671425587_m2.jpg...
|
Slack
|
Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Slack...
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Jiminny Inc","depth":12,"bounds":{"left":0.004654255,"top":0.06304868,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Jiminny (Staging)","depth":12,"bounds":{"left":0.004654255,"top":0.10454908,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Add workspaces","depth":12,"bounds":{"left":0.004654255,"top":0.14604948,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"bounds":{"left":0.022938829,"top":0.05586592,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.009973404,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.022938829,"top":0.110135674,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"bounds":{"left":0.027593086,"top":0.14764565,"width":0.007978723,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.022938829,"top":0.16440542,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"bounds":{"left":0.025265958,"top":0.2019154,"width":0.012965426,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.022938829,"top":0.21867518,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"bounds":{"left":0.027925532,"top":0.25618514,"width":0.0076462766,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.022938829,"top":0.27294493,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"bounds":{"left":0.027260639,"top":0.3104549,"width":0.008643617,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.022938829,"top":0.3272147,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"bounds":{"left":0.027260639,"top":0.36472467,"width":0.008976064,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"More unreads","depth":17,"bounds":{"left":0.058843084,"top":0.096568234,"width":0.041888297,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Unreads","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.056848403,"top":0.09177973,"width":0.017952127,"height":0.0023942539},"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.056848403,"top":0.10215483,"width":0.017952127,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.056848403,"top":0.1245012,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.056848403,"top":0.14684756,"width":0.023936171,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":21,"bounds":{"left":0.06216755,"top":0.24102154,"width":0.043882977,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":21,"bounds":{"left":0.06216755,"top":0.26336792,"width":0.044215426,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"bounds":{"left":0.06216755,"top":0.3160415,"width":0.022273935,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"bounds":{"left":0.06216755,"top":0.33838788,"width":0.011968086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"bounds":{"left":0.06216755,"top":0.36073422,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"bounds":{"left":0.06216755,"top":0.3830806,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"bounds":{"left":0.06216755,"top":0.40542698,"width":0.027593086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"bounds":{"left":0.06216755,"top":0.42777336,"width":0.025598405,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"frontend","depth":23,"bounds":{"left":0.06216755,"top":0.4501197,"width":0.018949468,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"bounds":{"left":0.06216755,"top":0.47246608,"width":0.015957447,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":23,"bounds":{"left":0.06216755,"top":0.49481246,"width":0.029587766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"bounds":{"left":0.06216755,"top":0.5171588,"width":0.022938829,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"bounds":{"left":0.06216755,"top":0.5395052,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"bounds":{"left":0.06216755,"top":0.56185156,"width":0.03856383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"bounds":{"left":0.06216755,"top":0.58419794,"width":0.01662234,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"bounds":{"left":0.06216755,"top":0.6065443,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"bounds":{"left":0.06216755,"top":0.62889063,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"bounds":{"left":0.06216755,"top":0.651237,"width":0.016954787,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"bounds":{"left":0.06216755,"top":0.6735834,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"bounds":{"left":0.06216755,"top":0.69592977,"width":0.04488032,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.06216755,"top":0.74860334,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.7709497,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.06216755,"top":0.7932961,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":23,"bounds":{"left":0.06216755,"top":0.8156425,"width":0.030585106,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.83798885,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.09940159,"top":0.83798885,"width":0.0063164895,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"bounds":{"left":0.10206117,"top":0.83798885,"width":0.014295213,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.116023935,"top":0.8555467,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"bounds":{"left":0.116023935,"top":0.8555467,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":23,"bounds":{"left":0.06216755,"top":0.8603352,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"bounds":{"left":0.06216755,"top":0.88268155,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"bounds":{"left":0.06216755,"top":0.9050279,"width":0.026263298,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"bounds":{"left":0.06216755,"top":0.9273743,"width":0.031914894,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"bounds":{"left":0.06216755,"top":0.9497207,"width":0.0076462766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":21,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.011968086,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":21,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.021609042,"height":0.0007980846},"role_description":"text"},{"role":"AXButton","text":"Unread mentions","depth":17,"bounds":{"left":0.055851065,"top":0.96727854,"width":0.048204787,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Messages","depth":17,"bounds":{"left":0.12200798,"top":0.09177973,"width":0.030585106,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":19,"bounds":{"left":0.13131648,"top":0.10055866,"width":0.01861702,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":17,"bounds":{"left":0.15392287,"top":0.09177973,"width":0.020944148,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":19,"bounds":{"left":0.16323139,"top":0.10055866,"width":0.008976064,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Untitled","depth":17,"bounds":{"left":0.17586437,"top":0.09177973,"width":0.02925532,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Untitled","depth":19,"bounds":{"left":0.18517287,"top":0.10055866,"width":0.015957447,"height":0.012769354},"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":17,"bounds":{"left":0.20644946,"top":0.09177973,"width":0.010638298,"height":0.030327214},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.015625,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"List","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.0076462766,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.28125,"top":0.12689546,"width":0.052526597,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 11:59:18 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:59","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"когато стигнеш до това стори","depth":25,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":26,"role_description":"text"},{"role":"AXLink","text":"JY-20372 AI Reports > Empty page design and promotion","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20372 AI Reports > Empty page design and promotion","depth":28,"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Backlog","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:00:05 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"image (1).png","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"image (1).png","depth":27,"role_description":"Unlabelled image","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download image (1).png","depth":28,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: image (1).png","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 12:00:24 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"ама като стигнеш до там може би най добре да видиш с него за всеки случай","depth":25,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:01:25 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:01 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, добре ще го видя","depth":25,"role_description":"text"},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 5:34:30 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:34 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"нещо за като се върнеш -","depth":25,"bounds":{"left":0.13796543,"top":0.11572227,"width":0.059507977,"height":0.013567438},"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":25,"bounds":{"left":0.1974734,"top":0.11572227,"width":0.10139628,"height":0.013567438},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":26,"bounds":{"left":0.1974734,"top":0.11572227,"width":0.10139628,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода","depth":25,"bounds":{"left":0.13796543,"top":0.11572227,"width":0.35239363,"height":0.0311253},"role_description":"text"},{"role":"AXLink","text":"JY-20543 AJ Reports > Tracking","depth":27,"bounds":{"left":0.14328457,"top":0.15482841,"width":0.07047872,"height":0.014365523},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20543 AJ Reports > Tracking","depth":28,"bounds":{"left":0.14328457,"top":0.15482841,"width":0.07047872,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"bounds":{"left":0.14328457,"top":0.18036711,"width":0.013962766,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Closed","depth":26,"bounds":{"left":0.15691489,"top":0.18036711,"width":0.013297873,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"bounds":{"left":0.18351063,"top":0.18036711,"width":0.011303191,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"bounds":{"left":0.19481383,"top":0.18036711,"width":0.010305851,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"bounds":{"left":0.21841756,"top":0.18036711,"width":0.019281914,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Lukas","depth":26,"bounds":{"left":0.23736702,"top":0.18036711,"width":0.011303191,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.24833776,"top":0.18036711,"width":0.0013297872,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Kovalik","depth":26,"bounds":{"left":0.24933511,"top":0.18036711,"width":0.014295213,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"bounds":{"left":0.2769282,"top":0.18036711,"width":0.016289894,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"bounds":{"left":0.29321808,"top":0.18036711,"width":0.015957447,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"bounds":{"left":0.14328457,"top":0.20670392,"width":0.01861702,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"bounds":{"left":0.1462766,"top":0.21069433,"width":0.012632979,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"bounds":{"left":0.16456117,"top":0.20670392,"width":0.03324468,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"bounds":{"left":0.16755319,"top":0.21069433,"width":0.027260639,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"bounds":{"left":0.20013298,"top":0.20670392,"width":0.038896278,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"bounds":{"left":0.20844415,"top":0.21069433,"width":0.027593086,"height":0.012769354},"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"bounds":{"left":0.24135639,"top":0.20670392,"width":0.06349734,"height":0.022346368},"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"bounds":{"left":0.14328457,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"bounds":{"left":0.16057181,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"bounds":{"left":0.16057181,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with +1 emoji","depth":25,"bounds":{"left":0.13796543,"top":0.25698325,"width":0.014295213,"height":0.01915403},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":26,"bounds":{"left":0.14727394,"top":0.2601756,"width":0.0023271276,"height":0.011971269},"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":25,"bounds":{"left":0.15325798,"top":0.25698325,"width":0.011635638,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.29488033,"top":0.29369512,"width":0.025265958,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.32482043,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.3264166,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:39:38 AM","depth":24,"bounds":{"left":0.17121011,"top":0.32881084,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":25,"bounds":{"left":0.17121011,"top":0.32881084,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"здрасти","depth":25,"bounds":{"left":0.13796543,"top":0.34397447,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:39:49 AM","depth":25,"bounds":{"left":0.125,"top":0.37031126,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":26,"bounds":{"left":0.125,"top":0.37031126,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"имам два бързи въпроса","depth":25,"bounds":{"left":0.13796543,"top":0.367917,"width":0.05651596,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.40625,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.4168883,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.4275266,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.4381649,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"bounds":{"left":0.4488032,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"bounds":{"left":0.45944148,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"bounds":{"left":0.47007978,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"bounds":{"left":0.48071808,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:42:21 AM","depth":25,"bounds":{"left":0.125,"top":0.3942538,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:42","depth":26,"bounds":{"left":0.125,"top":0.3942538,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?","depth":25,"bounds":{"left":0.13796543,"top":0.39185953,"width":0.34906915,"height":0.031923383},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:43:09 AM","depth":25,"bounds":{"left":0.125,"top":0.43575418,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43","depth":26,"bounds":{"left":0.125,"top":0.43575418,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо","depth":25,"bounds":{"left":0.13796543,"top":0.43335995,"width":0.27260637,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.13796543,"top":0.4557063,"width":0.036236703,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17420213,"top":0.45730248,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:38 AM","depth":24,"bounds":{"left":0.17652926,"top":0.45969674,"width":0.017952127,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"bounds":{"left":0.17652926,"top":0.45969674,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"ако искаш да се чуем да го видим","depth":25,"bounds":{"left":0.13796543,"top":0.47486034,"width":0.078125,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.49720672,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.49880287,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:59 AM","depth":24,"bounds":{"left":0.17121011,"top":0.5011971,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"bounds":{"left":0.17121011,"top":0.5011971,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"добре, дано да ми работи вече аудио","depth":25,"bounds":{"left":0.13796543,"top":0.51636076,"width":0.08643617,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A huddle happened","depth":24,"bounds":{"left":0.13796543,"top":0.5403033,"width":0.043218084,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.18118352,"top":0.5403033,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:44:06 AM","depth":24,"bounds":{"left":0.18384309,"top":0.54269755,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:44 AM","depth":25,"bounds":{"left":0.18384309,"top":0.54269755,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"You and","depth":24,"bounds":{"left":0.13796543,"top":0.55786115,"width":0.01861702,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.15658244,"top":0.55786115,"width":0.03523936,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"were in the huddle for","depth":24,"bounds":{"left":0.19148937,"top":0.55786115,"width":0.05119681,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"5m","depth":24,"bounds":{"left":0.24235372,"top":0.55786115,"width":0.00731383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":".","depth":24,"bounds":{"left":0.24933511,"top":0.55786115,"width":0.0013297872,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.5802075,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.5818037,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:45:03 AM","depth":24,"bounds":{"left":0.17121011,"top":0.58419794,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:45 AM","depth":25,"bounds":{"left":0.17121011,"top":0.58419794,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"ask-jiminny-report-generated","depth":25,"bounds":{"left":0.13796543,"top":0.59936154,"width":0.06382979,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.13796543,"top":0.6217079,"width":0.036236703,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17420213,"top":0.62330407,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:47:45 AM","depth":24,"bounds":{"left":0.17652926,"top":0.6256983,"width":0.017952127,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:47 AM","depth":25,"bounds":{"left":0.17652926,"top":0.6256983,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":25,"bounds":{"left":0.13796543,"top":0.6408619,"width":0.07646277,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.21442819,"top":0.6408619,"width":0.0013297872,"height":0.014365523},"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"bounds":{"left":0.21575798,"top":0.6400638,"width":0.0066489363,"height":0.015961692},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":27,"bounds":{"left":0.13796543,"top":0.66001594,"width":0.07978723,"height":0.23383878},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download Screenshot 2026-04-20 at 10.47.21.png","depth":28,"bounds":{"left":0.1705452,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: Screenshot 2026-04-20 at 10.47.21.png","depth":28,"bounds":{"left":0.18118352,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"bounds":{"left":0.19182181,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"bounds":{"left":0.20246011,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.40625,"top":0.6089386,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.4168883,"top":0.6089386,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.4275266,"top":0.6089386,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.4381649,"top":0.6089386,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"bounds":{"left":0.4488032,"top":0.6089386,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward file…","depth":26,"bounds":{"left":0.45944148,"top":0.6089386,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"bounds":{"left":0.47007978,"top":0.6089386,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"bounds":{"left":0.48071808,"top":0.6089386,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"","depth":23,"bounds":{"left":0.12367021,"top":0.91380686,"width":0.36768618,"height":0.030327214},"value":"","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"No exact matches. Search for: shared-activi, 1 of 2 suggestions","depth":11,"bounds":{"left":0.0,"top":0.9992019,"width":0.026263298,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova: . Image: No alt text. 1 attachment.","depth":11,"bounds":{"left":0.0,"top":0.9992019,"width":0.025265958,"height":0.0007980846},"role_description":"text"}]...
|
-9218245258814534702
|
-3875041992842510246
|
app_switch
|
hybrid
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment.
FirefoxEditVIewHistorybookmarksProtllesToolsWindowmelp• github.com/jiminny/app/pull/11970GMOA 04 8 Mon 20 Apr 10:50:25fix(security): composer dependency updates - 2026-04-15 #11970LakyLak merged 2 commits into master from secfix/composer-20260415 (0 @ Merge branch 'master' into secfix/composer-20260415IY [SRD-6793] Les Mills activity typeJY-20698 handle failed field syncJY-20692 change confirmation pa(UY-20543) AJ Reports > Tracking(JY-18909] (Part2) Automated rer@ Ask Jiminny Reports by nikolav-va€ New Tabu Product Growth Platform Userpilo1Useroilot I Eventsfix(security): composer depenc XPipelines - jiminnvlapr.+ New TabRookmarks• Search bookmarksv a bookmarks loolbaSprint Board# SRD QueueGithubJiminny DEVAsk liminnv Renorts bv nikolav-vankov • Pulli....© Circle CIf# Bookmarks Ment> D Mozilla FirefoxOther BookmarksVerified V e4eDe6dsonaraubecloud bot commented 9 minutes ago~ Quality Gate passedIssuesv U New issues© 0 Accepted issuesMeasuresv U security horspotsv 0.0% Coverage on New Codev 0.0% Duplication on New Codesee analvsis derails on sonarcube Cloud@ @LakyLak merged commit 12aczfl into master nowView details Revert$8 This branch has not been deployedNo denlovmentslPull request successfully merged and closedYou're all set - the sectix/comooser-20266415 oranch can ve satelv deleted.Add a commentWritePreviewHB»O1Add vour comment here…Delete branchM+ Markdown is supported@ Paste, drop. or click to add files(A) Remember. contributions to this renository should follow our GitHub Communitv Guidelines I? ProTip! Add comments to specific lines under Files changed....
|
NULL
|
|
53033
|
1149
|
57
|
2026-04-20T07:52:57.022094+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776671577022_m2.jpg...
|
Slack
|
Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Slack...
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Jiminny Inc","depth":12,"bounds":{"left":0.004654255,"top":0.06304868,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Jiminny (Staging)","depth":12,"bounds":{"left":0.004654255,"top":0.10454908,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Add workspaces","depth":12,"bounds":{"left":0.004654255,"top":0.14604948,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"bounds":{"left":0.022938829,"top":0.05586592,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.009973404,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.022938829,"top":0.110135674,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"bounds":{"left":0.027593086,"top":0.14764565,"width":0.007978723,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.022938829,"top":0.16440542,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"bounds":{"left":0.025265958,"top":0.2019154,"width":0.012965426,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.022938829,"top":0.21867518,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"bounds":{"left":0.027925532,"top":0.25618514,"width":0.0076462766,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.022938829,"top":0.27294493,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"bounds":{"left":0.027260639,"top":0.3104549,"width":0.008643617,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.022938829,"top":0.3272147,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"bounds":{"left":0.027260639,"top":0.36472467,"width":0.008976064,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"More unreads","depth":17,"bounds":{"left":0.058843084,"top":0.096568234,"width":0.041888297,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Unreads","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.056848403,"top":0.09177973,"width":0.017952127,"height":0.0023942539},"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.056848403,"top":0.10215483,"width":0.017952127,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.056848403,"top":0.1245012,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.056848403,"top":0.14684756,"width":0.023936171,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":21,"bounds":{"left":0.06216755,"top":0.24102154,"width":0.043882977,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":21,"bounds":{"left":0.06216755,"top":0.26336792,"width":0.044215426,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"bounds":{"left":0.06216755,"top":0.3160415,"width":0.022273935,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"bounds":{"left":0.06216755,"top":0.33838788,"width":0.011968086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"bounds":{"left":0.06216755,"top":0.36073422,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"bounds":{"left":0.06216755,"top":0.3830806,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"bounds":{"left":0.06216755,"top":0.40542698,"width":0.027593086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"bounds":{"left":0.06216755,"top":0.42777336,"width":0.025598405,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"frontend","depth":23,"bounds":{"left":0.06216755,"top":0.4501197,"width":0.018949468,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"bounds":{"left":0.06216755,"top":0.47246608,"width":0.015957447,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":23,"bounds":{"left":0.06216755,"top":0.49481246,"width":0.029587766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"bounds":{"left":0.06216755,"top":0.5171588,"width":0.022938829,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"bounds":{"left":0.06216755,"top":0.5395052,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"bounds":{"left":0.06216755,"top":0.56185156,"width":0.03856383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"bounds":{"left":0.06216755,"top":0.58419794,"width":0.01662234,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"bounds":{"left":0.06216755,"top":0.6065443,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"bounds":{"left":0.06216755,"top":0.62889063,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"bounds":{"left":0.06216755,"top":0.651237,"width":0.016954787,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"bounds":{"left":0.06216755,"top":0.6735834,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"bounds":{"left":0.06216755,"top":0.69592977,"width":0.04488032,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.06216755,"top":0.74860334,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.7709497,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.06216755,"top":0.7932961,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":23,"bounds":{"left":0.06216755,"top":0.8156425,"width":0.030585106,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.83798885,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.09940159,"top":0.83798885,"width":0.0063164895,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"bounds":{"left":0.10206117,"top":0.83798885,"width":0.014295213,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.116023935,"top":0.8555467,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"bounds":{"left":0.116023935,"top":0.8555467,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":23,"bounds":{"left":0.06216755,"top":0.8603352,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"bounds":{"left":0.06216755,"top":0.88268155,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"bounds":{"left":0.06216755,"top":0.9050279,"width":0.026263298,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"bounds":{"left":0.06216755,"top":0.9273743,"width":0.031914894,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"bounds":{"left":0.06216755,"top":0.9497207,"width":0.0076462766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":21,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.011968086,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":21,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.021609042,"height":0.0007980846},"role_description":"text"},{"role":"AXButton","text":"Unread mentions","depth":17,"bounds":{"left":0.055851065,"top":0.96727854,"width":0.048204787,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Messages","depth":17,"bounds":{"left":0.12200798,"top":0.09177973,"width":0.030585106,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":19,"bounds":{"left":0.13131648,"top":0.10055866,"width":0.01861702,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":17,"bounds":{"left":0.15392287,"top":0.09177973,"width":0.020944148,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":19,"bounds":{"left":0.16323139,"top":0.10055866,"width":0.008976064,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Untitled","depth":17,"bounds":{"left":0.17586437,"top":0.09177973,"width":0.02925532,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Untitled","depth":19,"bounds":{"left":0.18517287,"top":0.10055866,"width":0.015957447,"height":0.012769354},"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":17,"bounds":{"left":0.20644946,"top":0.09177973,"width":0.010638298,"height":0.030327214},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.015625,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"List","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.0076462766,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.28125,"top":0.12689546,"width":0.052526597,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 11:59:18 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:59","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"когато стигнеш до това стори","depth":25,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":26,"role_description":"text"},{"role":"AXLink","text":"JY-20372 AI Reports > Empty page design and promotion","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20372 AI Reports > Empty page design and promotion","depth":28,"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Backlog","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:00:05 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"image (1).png","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"image (1).png","depth":27,"role_description":"Unlabelled image","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download image (1).png","depth":28,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: image (1).png","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 12:00:24 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"ама като стигнеш до там може би най добре да видиш с него за всеки случай","depth":25,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:01:25 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:01 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, добре ще го видя","depth":25,"role_description":"text"},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 5:34:30 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:34 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"нещо за като се върнеш -","depth":25,"bounds":{"left":0.13796543,"top":0.11572227,"width":0.059507977,"height":0.013567438},"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":25,"bounds":{"left":0.1974734,"top":0.11572227,"width":0.10139628,"height":0.013567438},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":26,"bounds":{"left":0.1974734,"top":0.11572227,"width":0.10139628,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода","depth":25,"bounds":{"left":0.13796543,"top":0.11572227,"width":0.35239363,"height":0.0311253},"role_description":"text"},{"role":"AXLink","text":"JY-20543 AJ Reports > Tracking","depth":27,"bounds":{"left":0.14328457,"top":0.15482841,"width":0.07047872,"height":0.014365523},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20543 AJ Reports > Tracking","depth":28,"bounds":{"left":0.14328457,"top":0.15482841,"width":0.07047872,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"bounds":{"left":0.14328457,"top":0.18036711,"width":0.013962766,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Closed","depth":26,"bounds":{"left":0.15691489,"top":0.18036711,"width":0.013297873,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"bounds":{"left":0.18351063,"top":0.18036711,"width":0.011303191,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"bounds":{"left":0.19481383,"top":0.18036711,"width":0.010305851,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"bounds":{"left":0.21841756,"top":0.18036711,"width":0.019281914,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Lukas","depth":26,"bounds":{"left":0.23736702,"top":0.18036711,"width":0.011303191,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.24833776,"top":0.18036711,"width":0.0013297872,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Kovalik","depth":26,"bounds":{"left":0.24933511,"top":0.18036711,"width":0.014295213,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"bounds":{"left":0.2769282,"top":0.18036711,"width":0.016289894,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"bounds":{"left":0.29321808,"top":0.18036711,"width":0.015957447,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"bounds":{"left":0.14328457,"top":0.20670392,"width":0.01861702,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"bounds":{"left":0.1462766,"top":0.21069433,"width":0.012632979,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"bounds":{"left":0.16456117,"top":0.20670392,"width":0.03324468,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"bounds":{"left":0.16755319,"top":0.21069433,"width":0.027260639,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"bounds":{"left":0.20013298,"top":0.20670392,"width":0.038896278,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"bounds":{"left":0.20844415,"top":0.21069433,"width":0.027593086,"height":0.012769354},"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"bounds":{"left":0.24135639,"top":0.20670392,"width":0.06349734,"height":0.022346368},"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"bounds":{"left":0.14328457,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"bounds":{"left":0.16057181,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"bounds":{"left":0.16057181,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with +1 emoji","depth":25,"bounds":{"left":0.13796543,"top":0.25698325,"width":0.014295213,"height":0.01915403},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":26,"bounds":{"left":0.14727394,"top":0.2601756,"width":0.0023271276,"height":0.011971269},"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":25,"bounds":{"left":0.15325798,"top":0.25698325,"width":0.011635638,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.29488033,"top":0.29369512,"width":0.025265958,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.32482043,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.3264166,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:39:38 AM","depth":24,"bounds":{"left":0.17121011,"top":0.32881084,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":25,"bounds":{"left":0.17121011,"top":0.32881084,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"здрасти","depth":25,"bounds":{"left":0.13796543,"top":0.34397447,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:39:49 AM","depth":25,"bounds":{"left":0.125,"top":0.37031126,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":26,"bounds":{"left":0.125,"top":0.37031126,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"имам два бързи въпроса","depth":25,"bounds":{"left":0.13796543,"top":0.367917,"width":0.05651596,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.40625,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.4168883,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.4275266,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.4381649,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"bounds":{"left":0.4488032,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"bounds":{"left":0.45944148,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"bounds":{"left":0.47007978,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"bounds":{"left":0.48071808,"top":0.34397447,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:42:21 AM","depth":25,"bounds":{"left":0.125,"top":0.3942538,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:42","depth":26,"bounds":{"left":0.125,"top":0.3942538,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?","depth":25,"bounds":{"left":0.13796543,"top":0.39185953,"width":0.34906915,"height":0.031923383},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:43:09 AM","depth":25,"bounds":{"left":0.125,"top":0.43575418,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43","depth":26,"bounds":{"left":0.125,"top":0.43575418,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо","depth":25,"bounds":{"left":0.13796543,"top":0.43335995,"width":0.27260637,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.13796543,"top":0.4557063,"width":0.036236703,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17420213,"top":0.45730248,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:38 AM","depth":24,"bounds":{"left":0.17652926,"top":0.45969674,"width":0.017952127,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"bounds":{"left":0.17652926,"top":0.45969674,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"ако искаш да се чуем да го видим","depth":25,"bounds":{"left":0.13796543,"top":0.47486034,"width":0.078125,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.49720672,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.49880287,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:59 AM","depth":24,"bounds":{"left":0.17121011,"top":0.5011971,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"bounds":{"left":0.17121011,"top":0.5011971,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"добре, дано да ми работи вече аудио","depth":25,"bounds":{"left":0.13796543,"top":0.51636076,"width":0.08643617,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A huddle happened","depth":24,"bounds":{"left":0.13796543,"top":0.5403033,"width":0.043218084,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.18118352,"top":0.5403033,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:44:06 AM","depth":24,"bounds":{"left":0.18384309,"top":0.54269755,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:44 AM","depth":25,"bounds":{"left":0.18384309,"top":0.54269755,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"You and","depth":24,"bounds":{"left":0.13796543,"top":0.55786115,"width":0.01861702,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.15658244,"top":0.55786115,"width":0.03523936,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"were in the huddle for","depth":24,"bounds":{"left":0.19148937,"top":0.55786115,"width":0.05119681,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"5m","depth":24,"bounds":{"left":0.24235372,"top":0.55786115,"width":0.00731383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":".","depth":24,"bounds":{"left":0.24933511,"top":0.55786115,"width":0.0013297872,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.40625,"top":0.52593774,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.4168883,"top":0.52593774,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.4275266,"top":0.52593774,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.4381649,"top":0.52593774,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"bounds":{"left":0.4488032,"top":0.52593774,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"bounds":{"left":0.45944148,"top":0.52593774,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"bounds":{"left":0.47007978,"top":0.52593774,"width":0.010638298,"height":0.025538707},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"bounds":{"left":0.48071808,"top":0.52593774,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.5802075,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.5818037,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:45:03 AM","depth":24,"bounds":{"left":0.17121011,"top":0.58419794,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:45 AM","depth":25,"bounds":{"left":0.17121011,"top":0.58419794,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"ask-jiminny-report-generated","depth":25,"bounds":{"left":0.13796543,"top":0.59936154,"width":0.06382979,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.13796543,"top":0.6217079,"width":0.036236703,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17420213,"top":0.62330407,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:47:45 AM","depth":24,"bounds":{"left":0.17652926,"top":0.6256983,"width":0.017952127,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:47 AM","depth":25,"bounds":{"left":0.17652926,"top":0.6256983,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":25,"bounds":{"left":0.13796543,"top":0.6408619,"width":0.07646277,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.21442819,"top":0.6408619,"width":0.0013297872,"height":0.014365523},"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"bounds":{"left":0.21575798,"top":0.6400638,"width":0.0066489363,"height":0.015961692},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":27,"bounds":{"left":0.13796543,"top":0.66001594,"width":0.07978723,"height":0.23383878},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download Screenshot 2026-04-20 at 10.47.21.png","depth":28,"bounds":{"left":0.1705452,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: Screenshot 2026-04-20 at 10.47.21.png","depth":28,"bounds":{"left":0.18118352,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"bounds":{"left":0.19182181,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"bounds":{"left":0.20246011,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward file…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"","depth":23,"bounds":{"left":0.12367021,"top":0.91380686,"width":0.36768618,"height":0.030327214},"value":"","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"No exact matches. Search for: shared-activi, 1 of 2 suggestions","depth":11,"bounds":{"left":0.0,"top":0.9992019,"width":0.026263298,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova: . Image: No alt text. 1 attachment.","depth":11,"bounds":{"left":0.0,"top":0.9992019,"width":0.025265958,"height":0.0007980846},"role_description":"text"}]...
|
-9218245258814534702
|
-3875041992842510246
|
visual_change
|
hybrid
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment.
SlackActivityMoreVIewmistonWindowJiminny ...6д H 1 More unreads• Dratts & sent8 Directoriesab External connections* Starred@ jiminny-x-integrati.•olattorm-inner-team© Channelsi ai-chanter# alerts# backend# confusion-clinic# curiosity lab# engineering# frontendai generali# infra-changes#liminnv-bgst mlattorm-nckets)# product launchesa random# releasesi soha-othce# support# thank-yous* the neonle of limi..^ Direct messages• Galva Dimitrovale Aneliva AngelovaN Stefka StovanovalStoyan Tomov31 Aneliva Angelova…Nikolay Nikalovt Stovan TanevVasil VasilevNilalay lanay• VeHeld@ Search: shared-activi* Galya Dimitrova• MessagesYr FilesUntitledв момента гледам че е само един. Та ще трябва да се добави сThursday. April 16th v .и и R kon:JY-20543 AJ Keports > IrackingW Type: StoryLK) Assignee: Lukas KovalikT Priority: MediumASSignChange status*t Al SummariseAdded by sira cloudLukas Kovallik 10:39 AMзпрасти10:39 имам лва оъози въпоосаза UP tracking лобавям ask-iiminnv-report-generated покрай automated-report-generated като отлелен event. Прели съм го направил като част от pavload(report type, frequency). В UP обаче не успах ла го виля, само като draft но си стои празно, ти вил ли го някьде?Исках ла збнам как се показва и дали трябва да има и различен pavload в зависимост от тип. Правя го малко на сляпоGalya Dimitrova 10:43 AMако искаш да се чуем да го видимLukas Kovalik 10:43 AMдобре, дано да ми работи вече аудиоAhuddle hannoned 10//AMVou and Calva Dimitrova were in the huddle for 5mlukas Kovalik 10-45 AMack-liminnv-renort-generatedlGalya Dimitrova 10:47 AMshot 2026-04-20 at 10.47 21 nng •< Automated report generatede Watched Notetaker Viden‹> Watch Later Button • Notetake…< Shared.activity< Notification-provider-enabled< Logged-activitye Dialod.outhounde› Dialod.inhoundMessage Galva Dimitrova+ Aa@ny@localnostA HS_local (jiminny@localhost]& console [PKol)4 console [EU] XPlavarounddojiminny v10 = 6024:027 A9 A23 V3 V 105 ^where stage 1d = 163521where business process 1d = 6024:nen id THEN I ownen)' ELSE II END) AS usen idl= 'hubspot' ;s.name, COUNT(*) as cntage 10d. s.names.team_id. s.com confiquration idI..n: ON oos.stage 1d = s.1d20612.182811644.16378.16309. 5056.15223.14535.6293 12698 1168701Pulsar Group%'; # 472, 380, 15138, [EMAIL]= 472; # event 226147E nlavbook 1d = 2288;6147;om fiold 1d = 2241471id = 380;ner id THEN ' (owner)' ELSE "• END) AS user id= 'salesforce':100% LMon ZU AOr 10:02:00TrackAutomatedRGroup Photo UrL RevRetactor UserPilot Tra+0 ..Findinas: What changed with Group photoAfter diaaina through both backend and frontend history. I can now aive a definitive answerBackend (Group::photo_url)Unchanged since it was tirst introduced. commit 434a4e0c "Set tlag as group photo for now", May 5 2017 added getPhotcurtaccrioutely wih the exdct country-tlag logic stilin place toddy:• Group.php:220-223return cdn('img/flags/1x1/' . strtolower($this->country_code) . '.svg');uo had no photo URL attribute at all. So at the model level. the answer is: the URL has alwavs been thecountry tlag svc (Since May 201/); there was no earlier tormulaFrontend (GroupAvatar, vue) — this is probablv what vou noticedThe avatar visual did change recently. The photoUrl (flag image) was the same, but a colored ring was drawn around it using•Before (Sep 2020 - Dec 2024, commit d8618b5a87 ):border-color="aroun.color"After commit 85a3688eaf - "Remove arouo color" (Ahmet Katranci. Dec 19 2024). part of JY-17913÷0 CrounAvatarvule:1-10l<BaseAvatarurle"aroup.ohotour"content: group.name,•.• сippy,</template>The matching backend commit aae3d5e755 ("JY-17913 Remove group color in php") dropped the color field from Group: :$f:1lable and removed detGolor!) I cetGolor!)Conclucion• The imade itself (countrv flaa) has been the same since 2017.• What changed in Dec 2024 (JY-17913) is that the colored border that surrounded the flag in the GroupAvatar componentAsk anvthina (&4L)Po. 4 spac...
|
NULL
|
|
53036
|
1149
|
58
|
2026-04-20T07:52:59.080754+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776671579080_m2.jpg...
|
Slack
|
Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Slack...
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Jiminny Inc","depth":12,"bounds":{"left":0.004654255,"top":0.06304868,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Jiminny (Staging)","depth":12,"bounds":{"left":0.004654255,"top":0.10454908,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Add workspaces","depth":12,"bounds":{"left":0.004654255,"top":0.14604948,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"bounds":{"left":0.022938829,"top":0.05586592,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.009973404,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.022938829,"top":0.110135674,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"bounds":{"left":0.027593086,"top":0.14764565,"width":0.007978723,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.022938829,"top":0.16440542,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"bounds":{"left":0.025265958,"top":0.2019154,"width":0.012965426,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.022938829,"top":0.21867518,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"bounds":{"left":0.027925532,"top":0.25618514,"width":0.0076462766,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.022938829,"top":0.27294493,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"bounds":{"left":0.027260639,"top":0.3104549,"width":0.008643617,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.022938829,"top":0.3272147,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"bounds":{"left":0.027260639,"top":0.36472467,"width":0.008976064,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"More unreads","depth":17,"bounds":{"left":0.058843084,"top":0.096568234,"width":0.041888297,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Unreads","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.056848403,"top":0.09177973,"width":0.017952127,"height":0.0023942539},"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.056848403,"top":0.10215483,"width":0.017952127,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.056848403,"top":0.1245012,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.056848403,"top":0.14684756,"width":0.023936171,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":21,"bounds":{"left":0.06216755,"top":0.24102154,"width":0.043882977,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":21,"bounds":{"left":0.06216755,"top":0.26336792,"width":0.044215426,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"bounds":{"left":0.06216755,"top":0.3160415,"width":0.022273935,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"bounds":{"left":0.06216755,"top":0.33838788,"width":0.011968086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"bounds":{"left":0.06216755,"top":0.36073422,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"bounds":{"left":0.06216755,"top":0.3830806,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"bounds":{"left":0.06216755,"top":0.40542698,"width":0.027593086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"bounds":{"left":0.06216755,"top":0.42777336,"width":0.025598405,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"frontend","depth":23,"bounds":{"left":0.06216755,"top":0.4501197,"width":0.018949468,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"bounds":{"left":0.06216755,"top":0.47246608,"width":0.015957447,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":23,"bounds":{"left":0.06216755,"top":0.49481246,"width":0.029587766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"bounds":{"left":0.06216755,"top":0.5171588,"width":0.022938829,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"bounds":{"left":0.06216755,"top":0.5395052,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"bounds":{"left":0.06216755,"top":0.56185156,"width":0.03856383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"bounds":{"left":0.06216755,"top":0.58419794,"width":0.01662234,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"bounds":{"left":0.06216755,"top":0.6065443,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"bounds":{"left":0.06216755,"top":0.62889063,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"bounds":{"left":0.06216755,"top":0.651237,"width":0.016954787,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"bounds":{"left":0.06216755,"top":0.6735834,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"bounds":{"left":0.06216755,"top":0.69592977,"width":0.04488032,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.06216755,"top":0.74860334,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.7709497,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.06216755,"top":0.7932961,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":23,"bounds":{"left":0.06216755,"top":0.8156425,"width":0.030585106,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.83798885,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.09940159,"top":0.83798885,"width":0.0063164895,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"bounds":{"left":0.10206117,"top":0.83798885,"width":0.014295213,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.116023935,"top":0.8555467,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"bounds":{"left":0.116023935,"top":0.8555467,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":23,"bounds":{"left":0.06216755,"top":0.8603352,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"bounds":{"left":0.06216755,"top":0.88268155,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"bounds":{"left":0.06216755,"top":0.9050279,"width":0.026263298,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"bounds":{"left":0.06216755,"top":0.9273743,"width":0.031914894,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"bounds":{"left":0.06216755,"top":0.9497207,"width":0.0076462766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":21,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.011968086,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":21,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.021609042,"height":0.0007980846},"role_description":"text"},{"role":"AXButton","text":"Unread mentions","depth":17,"bounds":{"left":0.055851065,"top":0.96727854,"width":0.048204787,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Messages","depth":17,"bounds":{"left":0.12200798,"top":0.09177973,"width":0.030585106,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":19,"bounds":{"left":0.13131648,"top":0.10055866,"width":0.01861702,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":17,"bounds":{"left":0.15392287,"top":0.09177973,"width":0.020944148,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":19,"bounds":{"left":0.16323139,"top":0.10055866,"width":0.008976064,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Untitled","depth":17,"bounds":{"left":0.17586437,"top":0.09177973,"width":0.02925532,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Untitled","depth":19,"bounds":{"left":0.18517287,"top":0.10055866,"width":0.015957447,"height":0.012769354},"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":17,"bounds":{"left":0.20644946,"top":0.09177973,"width":0.010638298,"height":0.030327214},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.015625,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"List","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.0076462766,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.28125,"top":0.12689546,"width":0.052526597,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 11:59:18 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:59","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"когато стигнеш до това стори","depth":25,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":26,"role_description":"text"},{"role":"AXLink","text":"JY-20372 AI Reports > Empty page design and promotion","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20372 AI Reports > Empty page design and promotion","depth":28,"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Backlog","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:00:05 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"image (1).png","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"image (1).png","depth":27,"role_description":"Unlabelled image","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download image (1).png","depth":28,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: image (1).png","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 12:00:24 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"ама като стигнеш до там може би най добре да видиш с него за всеки случай","depth":25,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:01:25 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:01 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, добре ще го видя","depth":25,"role_description":"text"},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 5:34:30 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:34 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"нещо за като се върнеш -","depth":25,"bounds":{"left":0.13796543,"top":0.11572227,"width":0.059507977,"height":0.013567438},"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":25,"bounds":{"left":0.1974734,"top":0.11572227,"width":0.10139628,"height":0.013567438},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":26,"bounds":{"left":0.1974734,"top":0.11572227,"width":0.10139628,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода","depth":25,"bounds":{"left":0.13796543,"top":0.11572227,"width":0.35239363,"height":0.0311253},"role_description":"text"},{"role":"AXLink","text":"JY-20543 AJ Reports > Tracking","depth":27,"bounds":{"left":0.14328457,"top":0.15482841,"width":0.07047872,"height":0.014365523},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20543 AJ Reports > Tracking","depth":28,"bounds":{"left":0.14328457,"top":0.15482841,"width":0.07047872,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"bounds":{"left":0.14328457,"top":0.18036711,"width":0.013962766,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Closed","depth":26,"bounds":{"left":0.15691489,"top":0.18036711,"width":0.013297873,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"bounds":{"left":0.18351063,"top":0.18036711,"width":0.011303191,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"bounds":{"left":0.19481383,"top":0.18036711,"width":0.010305851,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"bounds":{"left":0.21841756,"top":0.18036711,"width":0.019281914,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Lukas","depth":26,"bounds":{"left":0.23736702,"top":0.18036711,"width":0.011303191,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.24833776,"top":0.18036711,"width":0.0013297872,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Kovalik","depth":26,"bounds":{"left":0.24933511,"top":0.18036711,"width":0.014295213,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"bounds":{"left":0.2769282,"top":0.18036711,"width":0.016289894,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"bounds":{"left":0.29321808,"top":0.18036711,"width":0.015957447,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"bounds":{"left":0.14328457,"top":0.20670392,"width":0.01861702,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"bounds":{"left":0.1462766,"top":0.21069433,"width":0.012632979,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"bounds":{"left":0.16456117,"top":0.20670392,"width":0.03324468,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"bounds":{"left":0.16755319,"top":0.21069433,"width":0.027260639,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"bounds":{"left":0.20013298,"top":0.20670392,"width":0.038896278,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"bounds":{"left":0.20844415,"top":0.21069433,"width":0.027593086,"height":0.012769354},"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"bounds":{"left":0.24135639,"top":0.20670392,"width":0.06349734,"height":0.022346368},"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"bounds":{"left":0.14328457,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"bounds":{"left":0.16057181,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"bounds":{"left":0.16057181,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with +1 emoji","depth":25,"bounds":{"left":0.13796543,"top":0.25698325,"width":0.014295213,"height":0.01915403},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":26,"bounds":{"left":0.14727394,"top":0.2601756,"width":0.0023271276,"height":0.011971269},"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":25,"bounds":{"left":0.15325798,"top":0.25698325,"width":0.011635638,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.29488033,"top":0.29369512,"width":0.025265958,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.32482043,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.3264166,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:39:38 AM","depth":24,"bounds":{"left":0.17121011,"top":0.32881084,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":25,"bounds":{"left":0.17121011,"top":0.32881084,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"здрасти","depth":25,"bounds":{"left":0.13796543,"top":0.34397447,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:39:49 AM","depth":25,"bounds":{"left":0.125,"top":0.37031126,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":26,"bounds":{"left":0.125,"top":0.37031126,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"имам два бързи въпроса","depth":25,"bounds":{"left":0.13796543,"top":0.367917,"width":0.05651596,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:42:21 AM","depth":25,"bounds":{"left":0.125,"top":0.3942538,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:42","depth":26,"bounds":{"left":0.125,"top":0.3942538,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?","depth":25,"bounds":{"left":0.13796543,"top":0.39185953,"width":0.34906915,"height":0.031923383},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:43:09 AM","depth":25,"bounds":{"left":0.125,"top":0.43575418,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43","depth":26,"bounds":{"left":0.125,"top":0.43575418,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо","depth":25,"bounds":{"left":0.13796543,"top":0.43335995,"width":0.27260637,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.13796543,"top":0.4557063,"width":0.036236703,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17420213,"top":0.45730248,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:38 AM","depth":24,"bounds":{"left":0.17652926,"top":0.45969674,"width":0.017952127,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"bounds":{"left":0.17652926,"top":0.45969674,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"ако искаш да се чуем да го видим","depth":25,"bounds":{"left":0.13796543,"top":0.47486034,"width":0.078125,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.49720672,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.49880287,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:59 AM","depth":24,"bounds":{"left":0.17121011,"top":0.5011971,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"bounds":{"left":0.17121011,"top":0.5011971,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"добре, дано да ми работи вече аудио","depth":25,"bounds":{"left":0.13796543,"top":0.51636076,"width":0.08643617,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A huddle happened","depth":24,"bounds":{"left":0.13796543,"top":0.5403033,"width":0.043218084,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.18118352,"top":0.5403033,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:44:06 AM","depth":24,"bounds":{"left":0.18384309,"top":0.54269755,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:44 AM","depth":25,"bounds":{"left":0.18384309,"top":0.54269755,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"You and","depth":24,"bounds":{"left":0.13796543,"top":0.55786115,"width":0.01861702,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.15658244,"top":0.55786115,"width":0.03523936,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"were in the huddle for","depth":24,"bounds":{"left":0.19148937,"top":0.55786115,"width":0.05119681,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"5m","depth":24,"bounds":{"left":0.24235372,"top":0.55786115,"width":0.00731383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":".","depth":24,"bounds":{"left":0.24933511,"top":0.55786115,"width":0.0013297872,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.5802075,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.5818037,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:45:03 AM","depth":24,"bounds":{"left":0.17121011,"top":0.58419794,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:45 AM","depth":25,"bounds":{"left":0.17121011,"top":0.58419794,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"ask-jiminny-report-generated","depth":25,"bounds":{"left":0.13796543,"top":0.59936154,"width":0.06382979,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.13796543,"top":0.6217079,"width":0.036236703,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17420213,"top":0.62330407,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:47:45 AM","depth":24,"bounds":{"left":0.17652926,"top":0.6256983,"width":0.017952127,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:47 AM","depth":25,"bounds":{"left":0.17652926,"top":0.6256983,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":25,"bounds":{"left":0.13796543,"top":0.6408619,"width":0.07646277,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.21442819,"top":0.6408619,"width":0.0013297872,"height":0.014365523},"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"bounds":{"left":0.21575798,"top":0.6400638,"width":0.0066489363,"height":0.015961692},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":27,"bounds":{"left":0.13796543,"top":0.66001594,"width":0.07978723,"height":0.23383878},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download Screenshot 2026-04-20 at 10.47.21.png","depth":28,"bounds":{"left":0.1705452,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: Screenshot 2026-04-20 at 10.47.21.png","depth":28,"bounds":{"left":0.18118352,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"bounds":{"left":0.19182181,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"bounds":{"left":0.20246011,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward file…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"","depth":23,"bounds":{"left":0.12367021,"top":0.91380686,"width":0.36768618,"height":0.030327214},"value":"","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"No exact matches. Search for: shared-activi, 1 of 2 suggestions","depth":11,"bounds":{"left":0.0,"top":0.9992019,"width":0.026263298,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova: . Image: No alt text. 1 attachment.","depth":11,"bounds":{"left":0.0,"top":0.9992019,"width":0.025265958,"height":0.0007980846},"role_description":"text"}]...
|
-9218245258814534702
|
-3875041992842510246
|
click
|
hybrid
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment.
SlackActivityMoreVIewMistonWindowJiminny ...6д H 1 More unreads• Dratts & sent8 Directoriesab External connectionss Starred@ jiminny-x-integrati.•olattorm-inner-team© Channelsi ai-chanter# alerts# backend# confusion-clinic# curiosity lab# engineering# frontendai general# infra-changes#liminnv-bgst mlattorm-nckets)# product launchesa random# releasesi soha-othce# support# thank-yous* the neonle of limi..^ Direct messages• Galva Dimitrovale Aneliva AngelovaN Stefka StovanovalStoyan Tomov31 Aneliva Angelova…Nikolay Nikalovt Stovan TanevVasil VasilevNilalay lanay• VeHeld@ Search: shared-activi* Galya Dimitrova• MessagesYr FilesUntitledв момента гледам че е само един. Та ще трябва да се добави сThursday. April 16th v .и и R kon:JY-20543 AJ Keports > IrackingW Type: StoryLK) Assignee: Lukas KovalikT Priority: MediumASSignChange status*t Al SummariseAdded by sira cloudLukas Kovallik 10:39 AMзпрасти10:39 имам лва оъози въпоосаза UP tracking лобавям ask-iiminnv-report-generated покрай automated-report-generated като отлелен event. Прели съм го направил като част от pavload(report type, frequency). В UP обаче не успах ла го виля, само като draft но си стои празно, ти вил ли го някьде?Исках ла збнам как се показва и дали трябва да има и различен pavload в зависимост от тип. Правя го малко на сляпоGalya Dimitrova 10:43 AMако искаш да се чуем да го видимInkas Kovalil 4042 AMдобре, дано да ми работи вече аудиоA huddle happened 10:44 AMVou and Calva Dimitrova were in the huddle for 5mlukas Kovalik 10-45 AMack-liminnv-renort-generatedlGalya Dimitrova 10:47 AMshot 2026-04-20 at 10.47 21 nng •< Automated report generatede Watched Notetaker Viden‹> Watch Later Button • Notetake…< Shared.activity< Notification-provider-enabled< Logged-activitye Dialod.outhounde› Dialod.inhoundMescae Galva Dimitrova+ Aa@ny@localnostA HS_local (jiminny@localhost]Plavaround10 = 6024:where stage 1d = 163521where business process 1d = 6024:nen id THEN I ownen)' ELSE II END) AS usen idl& console [PKol)4 console [EU] Xdojiminny v027 A9 A23 V3 V 105 ^"nuospots.name, COUNT(*) as cntage 10d. s.names.team_id. s.com confiquration idl..n: ON oos.stage 1d = s.1d20612.182811644.16378.16309. 5056.15223.14535.6293 12698 1168701Pulsar Group%'; # 472, 380, 15138, [EMAIL]= 472; # event 226147E nlavbook 1d = 2288.161/7 •om fiold 1d = 2241471id = 380;ner id THEN ' (owner)' ELSE "• END) AS user id= 'salesforce':100% LMon zU AOr 10:02'09TrackAutomatedRGroup Photo UrL RevRetactor UserPilot Tra+0 ..Findinas: What changed with Group photoAfter diaaina through both backend and frontend history. I can now aive a definitive answerBackend (Group::photo_url)Unchanged since it was tirst introduced. commit 434a4e0c "Set tlag as group photo for now", May 5 2017 added getPhotcurtaccrioutely wih the exdct country-tlag logic stilin place toddy:• Group.php:220-223return cdn('img/flags/1x1/' . strtolower($this->country_code) . '.svg');uo had no photo URL attribute at all. So at the model level. the answer is: the URL has alwavs been thecountry tlag svc (Since May 201/); there was no earlier tormulaFrontend (GroupAvatar, vue) — this is probablv what vou noticedThe avatar visual did change recently. The photoUrl (flag image) was the same, but a colored ring was drawn around it using•Before (Sep 2020 - Dec 2024, commit d8618b5a87 ):border-color="aroun.color"After commit 85a3688eaf - "Remove arouo color" (Ahmet Katranci. Dec 19 2024). part of JY-17913÷0 CrounAvatarvule:1-10l<BaseAvatarurle"aroup.ohotour"content: group.name,•.• сipрy,</template>The matching backend commit aae3d5e755 ("JY-17913 Remove group color in php") dropped the color field from Group: :$f:1lable and removed detGolor!) I cetGolor!)Conclucion• The imade itself (countrv flaa) has been the same since 2017.• What changed in Dec 2024 (JY-17913) is that the colored border that surrounded the flag in the GroupAvatar componentAsk anvthina (&4L)Po. 4 spac...
|
NULL
|
|
53041
|
1149
|
61
|
2026-04-20T07:53:06.411846+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776671586411_m2.jpg...
|
Slack
|
Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Slack...
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Jiminny Inc","depth":12,"bounds":{"left":0.004654255,"top":0.06304868,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Jiminny (Staging)","depth":12,"bounds":{"left":0.004654255,"top":0.10454908,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Add workspaces","depth":12,"bounds":{"left":0.004654255,"top":0.14604948,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"bounds":{"left":0.022938829,"top":0.05586592,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.009973404,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.022938829,"top":0.110135674,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"bounds":{"left":0.027593086,"top":0.14764565,"width":0.007978723,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.022938829,"top":0.16440542,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"bounds":{"left":0.025265958,"top":0.2019154,"width":0.012965426,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.022938829,"top":0.21867518,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"bounds":{"left":0.027925532,"top":0.25618514,"width":0.0076462766,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.022938829,"top":0.27294493,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"bounds":{"left":0.027260639,"top":0.3104549,"width":0.008643617,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.022938829,"top":0.3272147,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"bounds":{"left":0.027260639,"top":0.36472467,"width":0.008976064,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"More unreads","depth":17,"bounds":{"left":0.058843084,"top":0.096568234,"width":0.041888297,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Unreads","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.056848403,"top":0.09177973,"width":0.017952127,"height":0.0023942539},"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.056848403,"top":0.10215483,"width":0.017952127,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.056848403,"top":0.1245012,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.056848403,"top":0.14684756,"width":0.023936171,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":21,"bounds":{"left":0.06216755,"top":0.24102154,"width":0.043882977,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":21,"bounds":{"left":0.06216755,"top":0.26336792,"width":0.044215426,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"bounds":{"left":0.06216755,"top":0.3160415,"width":0.022273935,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"bounds":{"left":0.06216755,"top":0.33838788,"width":0.011968086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"bounds":{"left":0.06216755,"top":0.36073422,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"bounds":{"left":0.06216755,"top":0.3830806,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"bounds":{"left":0.06216755,"top":0.40542698,"width":0.027593086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"bounds":{"left":0.06216755,"top":0.42777336,"width":0.025598405,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"frontend","depth":23,"bounds":{"left":0.06216755,"top":0.4501197,"width":0.018949468,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"bounds":{"left":0.06216755,"top":0.47246608,"width":0.015957447,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":23,"bounds":{"left":0.06216755,"top":0.49481246,"width":0.029587766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"bounds":{"left":0.06216755,"top":0.5171588,"width":0.022938829,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"bounds":{"left":0.06216755,"top":0.5395052,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"bounds":{"left":0.06216755,"top":0.56185156,"width":0.03856383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"bounds":{"left":0.06216755,"top":0.58419794,"width":0.01662234,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"bounds":{"left":0.06216755,"top":0.6065443,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"bounds":{"left":0.06216755,"top":0.62889063,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"bounds":{"left":0.06216755,"top":0.651237,"width":0.016954787,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"bounds":{"left":0.06216755,"top":0.6735834,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"bounds":{"left":0.06216755,"top":0.69592977,"width":0.04488032,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.06216755,"top":0.74860334,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.7709497,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.06216755,"top":0.7932961,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":23,"bounds":{"left":0.06216755,"top":0.8156425,"width":0.030585106,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.83798885,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.09940159,"top":0.83798885,"width":0.0063164895,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"bounds":{"left":0.10206117,"top":0.83798885,"width":0.014295213,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.116023935,"top":0.8555467,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"bounds":{"left":0.116023935,"top":0.8555467,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":23,"bounds":{"left":0.06216755,"top":0.8603352,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"bounds":{"left":0.06216755,"top":0.88268155,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"bounds":{"left":0.06216755,"top":0.9050279,"width":0.026263298,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"bounds":{"left":0.06216755,"top":0.9273743,"width":0.031914894,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"bounds":{"left":0.06216755,"top":0.9497207,"width":0.0076462766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":21,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.011968086,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":21,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.021609042,"height":0.0007980846},"role_description":"text"},{"role":"AXButton","text":"Unread mentions","depth":17,"bounds":{"left":0.055851065,"top":0.96727854,"width":0.048204787,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Messages","depth":17,"bounds":{"left":0.12200798,"top":0.09177973,"width":0.030585106,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":19,"bounds":{"left":0.13131648,"top":0.10055866,"width":0.01861702,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":17,"bounds":{"left":0.15392287,"top":0.09177973,"width":0.020944148,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":19,"bounds":{"left":0.16323139,"top":0.10055866,"width":0.008976064,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Untitled","depth":17,"bounds":{"left":0.17586437,"top":0.09177973,"width":0.02925532,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Untitled","depth":19,"bounds":{"left":0.18517287,"top":0.10055866,"width":0.015957447,"height":0.012769354},"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":17,"bounds":{"left":0.20644946,"top":0.09177973,"width":0.010638298,"height":0.030327214},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.015625,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"List","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.0076462766,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.28125,"top":0.12689546,"width":0.052526597,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 11:59:18 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:59","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"когато стигнеш до това стори","depth":25,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":26,"role_description":"text"},{"role":"AXLink","text":"JY-20372 AI Reports > Empty page design and promotion","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20372 AI Reports > Empty page design and promotion","depth":28,"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Backlog","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:00:05 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"image (1).png","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"image (1).png","depth":27,"role_description":"Unlabelled image","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download image (1).png","depth":28,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: image (1).png","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 12:00:24 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"ама като стигнеш до там може би най добре да видиш с него за всеки случай","depth":25,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:01:25 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:01 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, добре ще го видя","depth":25,"role_description":"text"},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 5:34:30 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:34 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"нещо за като се върнеш -","depth":25,"bounds":{"left":0.13796543,"top":0.11572227,"width":0.059507977,"height":0.013567438},"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":25,"bounds":{"left":0.1974734,"top":0.11572227,"width":0.10139628,"height":0.013567438},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":26,"bounds":{"left":0.1974734,"top":0.11572227,"width":0.10139628,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода","depth":25,"bounds":{"left":0.13796543,"top":0.11572227,"width":0.35239363,"height":0.0311253},"role_description":"text"},{"role":"AXLink","text":"JY-20543 AJ Reports > Tracking","depth":27,"bounds":{"left":0.14328457,"top":0.15482841,"width":0.07047872,"height":0.014365523},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20543 AJ Reports > Tracking","depth":28,"bounds":{"left":0.14328457,"top":0.15482841,"width":0.07047872,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"bounds":{"left":0.14328457,"top":0.18036711,"width":0.013962766,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Closed","depth":26,"bounds":{"left":0.15691489,"top":0.18036711,"width":0.013297873,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"bounds":{"left":0.18351063,"top":0.18036711,"width":0.011303191,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"bounds":{"left":0.19481383,"top":0.18036711,"width":0.010305851,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"bounds":{"left":0.21841756,"top":0.18036711,"width":0.019281914,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Lukas","depth":26,"bounds":{"left":0.23736702,"top":0.18036711,"width":0.011303191,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.24833776,"top":0.18036711,"width":0.0013297872,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Kovalik","depth":26,"bounds":{"left":0.24933511,"top":0.18036711,"width":0.014295213,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"bounds":{"left":0.2769282,"top":0.18036711,"width":0.016289894,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"bounds":{"left":0.29321808,"top":0.18036711,"width":0.015957447,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"bounds":{"left":0.14328457,"top":0.20670392,"width":0.01861702,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"bounds":{"left":0.1462766,"top":0.21069433,"width":0.012632979,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"bounds":{"left":0.16456117,"top":0.20670392,"width":0.03324468,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"bounds":{"left":0.16755319,"top":0.21069433,"width":0.027260639,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"bounds":{"left":0.20013298,"top":0.20670392,"width":0.038896278,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"bounds":{"left":0.20844415,"top":0.21069433,"width":0.027593086,"height":0.012769354},"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"bounds":{"left":0.24135639,"top":0.20670392,"width":0.06349734,"height":0.022346368},"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"bounds":{"left":0.14328457,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"bounds":{"left":0.16057181,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"bounds":{"left":0.16057181,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with +1 emoji","depth":25,"bounds":{"left":0.13796543,"top":0.25698325,"width":0.014295213,"height":0.01915403},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":26,"bounds":{"left":0.14727394,"top":0.2601756,"width":0.0023271276,"height":0.011971269},"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":25,"bounds":{"left":0.15325798,"top":0.25698325,"width":0.011635638,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.29488033,"top":0.29369512,"width":0.025265958,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.32482043,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.3264166,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:39:38 AM","depth":24,"bounds":{"left":0.17121011,"top":0.32881084,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":25,"bounds":{"left":0.17121011,"top":0.32881084,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"здрасти","depth":25,"bounds":{"left":0.13796543,"top":0.34397447,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:39:49 AM","depth":25,"bounds":{"left":0.125,"top":0.37031126,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":26,"bounds":{"left":0.125,"top":0.37031126,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"имам два бързи въпроса","depth":25,"bounds":{"left":0.13796543,"top":0.367917,"width":0.05651596,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:42:21 AM","depth":25,"bounds":{"left":0.125,"top":0.3942538,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:42","depth":26,"bounds":{"left":0.125,"top":0.3942538,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?","depth":25,"bounds":{"left":0.13796543,"top":0.39185953,"width":0.34906915,"height":0.031923383},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:43:09 AM","depth":25,"bounds":{"left":0.125,"top":0.43575418,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43","depth":26,"bounds":{"left":0.125,"top":0.43575418,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо","depth":25,"bounds":{"left":0.13796543,"top":0.43335995,"width":0.27260637,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.13796543,"top":0.4557063,"width":0.036236703,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17420213,"top":0.45730248,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:38 AM","depth":24,"bounds":{"left":0.17652926,"top":0.45969674,"width":0.017952127,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"bounds":{"left":0.17652926,"top":0.45969674,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"ако искаш да се чуем да го видим","depth":25,"bounds":{"left":0.13796543,"top":0.47486034,"width":0.078125,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.49720672,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.49880287,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:59 AM","depth":24,"bounds":{"left":0.17121011,"top":0.5011971,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"bounds":{"left":0.17121011,"top":0.5011971,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"добре, дано да ми работи вече аудио","depth":25,"bounds":{"left":0.13796543,"top":0.51636076,"width":0.08643617,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A huddle happened","depth":24,"bounds":{"left":0.13796543,"top":0.5403033,"width":0.043218084,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.18118352,"top":0.5403033,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:44:06 AM","depth":24,"bounds":{"left":0.18384309,"top":0.54269755,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:44 AM","depth":25,"bounds":{"left":0.18384309,"top":0.54269755,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"You and","depth":24,"bounds":{"left":0.13796543,"top":0.55786115,"width":0.01861702,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.15658244,"top":0.55786115,"width":0.03523936,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"were in the huddle for","depth":24,"bounds":{"left":0.19148937,"top":0.55786115,"width":0.05119681,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"5m","depth":24,"bounds":{"left":0.24235372,"top":0.55786115,"width":0.00731383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":".","depth":24,"bounds":{"left":0.24933511,"top":0.55786115,"width":0.0013297872,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.5802075,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.5818037,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:45:03 AM","depth":24,"bounds":{"left":0.17121011,"top":0.58419794,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:45 AM","depth":25,"bounds":{"left":0.17121011,"top":0.58419794,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"ask-jiminny-report-generated","depth":25,"bounds":{"left":0.13796543,"top":0.59936154,"width":0.06382979,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.13796543,"top":0.6217079,"width":0.036236703,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17420213,"top":0.62330407,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:47:45 AM","depth":24,"bounds":{"left":0.17652926,"top":0.6256983,"width":0.017952127,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:47 AM","depth":25,"bounds":{"left":0.17652926,"top":0.6256983,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":25,"bounds":{"left":0.13796543,"top":0.6408619,"width":0.07646277,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.21442819,"top":0.6408619,"width":0.0013297872,"height":0.014365523},"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"bounds":{"left":0.21575798,"top":0.6400638,"width":0.0066489363,"height":0.015961692},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":27,"bounds":{"left":0.13796543,"top":0.66001594,"width":0.07978723,"height":0.23383878},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download Screenshot 2026-04-20 at 10.47.21.png","depth":28,"bounds":{"left":0.1705452,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: Screenshot 2026-04-20 at 10.47.21.png","depth":28,"bounds":{"left":0.18118352,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"bounds":{"left":0.19182181,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"bounds":{"left":0.20246011,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward file…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"","depth":23,"bounds":{"left":0.12367021,"top":0.91380686,"width":0.36768618,"height":0.030327214},"value":"","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"No exact matches. Search for: shared-activi, 1 of 2 suggestions","depth":11,"bounds":{"left":0.0,"top":0.9992019,"width":0.026263298,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova: . Image: No alt text. 1 attachment.","depth":11,"bounds":{"left":0.0,"top":0.9992019,"width":0.025265958,"height":0.0007980846},"role_description":"text"}]...
|
-9218245258814534702
|
-3875041992842510246
|
visual_change
|
hybrid
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment.
SlackActivityMoreVIewMistonWindowHeld@ Search: shared-activiJiminny ...* Galya Dimitrova6д H 1 More unreads• Messages• Dratts & sent8 Directoriesab External connections* Starred@ jiminny-x-integrati.•olattorm-inner-team© Channelsi ai-chanter# alerts# backend# confusion-clinic# curiosity lab# engineering# frontendai general# infra-changes#liminnv-bgst mlattorm-nckets)# product launchesa random# releasesic soha-othce# support# thank-yous* the neonle of limi..^ Direct messages• Galva Dimitrovale Aneliva AngelovaN Stefka StovanovalStoyan Tomov31 Aneliva Angelova…Nikolay Nikalovt Stovan TanevVasil VasilevYr Files7 Untitledв момента гледам че е само един. Та ще трябва да се добави с Thursday, April 16th ~ зи и в кодаJY-20543 AJ Keports > Iracking… Type: StoryLK) Assignee: Lukas KovalikT Priority: MediumASSignChange status*t Al SummariseAdded by sira cloudLukas Kovallik 10:39 AMзпрастиимам лва оъози въпоосаза UP tracking лобавям ask-iiminnv-report-generated покрай automated-report-generated като отлелен event. Прели съм го направил като част от pavload(report type, frequency). В UP обаче не успах ла го виля, само като draft но си стои празно, ти вил ли го някьде?Исках ла збнам как се показва и дали трябва да има и различен pavload в зависимост от тип. Правя го малко на сляпоGalya Dimitrova 10:43 AMако искаш да се чуем да го видимInkas Kovalil 4042 AMдобре, дано да ми работи вече аудиоA huddle happened 10:44 AMVou and Calva Dimitrova were in the huddle for 5mlukas Kovalik 10-45 AMack-liminnv-renort-generatediGalya Dimitrova 10:47 AMshot 2026-04-20 at 10.47 21 nng •< Automated report generatede Watched Notetaker Viden‹> Watch Later Button • Notetake…< Shared.activity< Notification-provider-enabled(Lozged-activitye Dialod.outhounde› Dialod.inhoundNilalay lyanayMessage Galga Dimitrova• Ve+ Дạ.ny@localnostA HS_local (jiminny@localhost]Plavaround10 = 6024:where stage 1d = 163521where business process 1d = 6024:nen id THEN I ownen)' ELSE II END) AS usen idl& console [PKol)4 console [EU] XMiiminny v027 A9 A23 V.3 V 105 ^= 'hubspot' ;s.name, COUNT(*) as cntage10d. s.names.team_id. s.com confiquration idl..n: ON oos.stage 1d = s.1d20612.182811644.16378.16309. 5056.15223.14535.6293 12698 1168701Pulsar Group%'; # 472, 380, 15138, [EMAIL]= 472; # event 226147E nlavbook 1d = 2288.4147•om fiold 1d = 2241471id = 380;ner id THEN ' (owner)' ELSE "• END) AS user id= 'salesforce':100% LMOn ZU AO 10:03.00TrackAutomatedRGroup Photo URL RevRetactor UserPilot Tra+0 ..Findinas: What changed with Group photoAfter diaaina through both backend and frontend history. I can now aive a definitive answerBackend (Group::photo_url)Unchanged since it was tirst introduced. commit 434a4e0c "Set tlag as group photo for now", May 5 2017 added getPhotcurtaccrioutely wih the exdct country-tlag logic stilin place toddy:• Group.php:220-223return cdn('img/flags/1x1/' . strtolower($this->country_code) . '.svg');uo had no photo URL attribute at all. So at the model level. the answer is: the URL has alwavs been thecountry tlag svc (Since May 201/); there was no earlier tormulaFrontend (GroupAvatar, vue) — this is probablv what vou noticedThe avatar visual did change recently. The photoUrl (flag image) was the same, but a colored ring was drawn around it using•Before (Sep 2020 - Dec 2024, commit d8618b5a87 ):border-color="aroun.colorllAfter commit 85a3688eaf - "Remove arouo color" (Ahmet Katranci. Dec 19 2024). part of JY-17913÷0 GrounAvatarvule.1-10l<BaseAvatarurle"aroup.ohotour"content: group.name,•.• сipрy,</template>The matching backend commit aae3d5e755 ("JY-17913 Remove group color in php") dropped the color field from Group: :$f:1lable and removed detGolor!) I cetGolor!)Conclucion• The imade itself (countrv flaa) has been the same since 2017.• What changed in Dec 2024 (JY-17913) is that the colored border that surrounded the flag in the GroupAvatar componentAsk anvthing (84D)Po. 4 spac...
|
NULL
|
|
53069
|
NULL
|
0
|
2026-04-20T07:53:53.866520+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776671633866_m1.jpg...
|
Slack
|
Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Slack...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Jiminny Inc","depth":12,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Jiminny (Staging)","depth":12,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Add workspaces","depth":12,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"role_description":"text"},{"role":"AXButton","text":"More unreads","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Unreads","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"frontend","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":21,"role_description":"text"},{"role":"AXButton","text":"Unread mentions","depth":17,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Messages","depth":17,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":19,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":17,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":19,"role_description":"text"},{"role":"AXRadioButton","text":"Untitled","depth":17,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Untitled","depth":19,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":17,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":17,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 11:59:18 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:59","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"когато стигнеш до това стори","depth":25,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":26,"role_description":"text"},{"role":"AXLink","text":"JY-20372 AI Reports > Empty page design and promotion","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20372 AI Reports > Empty page design and promotion","depth":28,"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Backlog","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:00:05 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"image (1).png","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"image (1).png","depth":27,"role_description":"Unlabelled image","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download image (1).png","depth":28,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: image (1).png","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 12:00:24 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"ама като стигнеш до там може би най добре да видиш с него за всеки случай","depth":25,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:01:25 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:01 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, добре ще го видя","depth":25,"role_description":"text"},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 5:34:30 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:34 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"нещо за като се върнеш -","depth":25,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода","depth":25,"role_description":"text"},{"role":"AXLink","text":"JY-20543 AJ Reports > Tracking","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20543 AJ Reports > Tracking","depth":28,"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Closed","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Lukas","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Kovalik","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with +1 emoji","depth":25,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":26,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:39:38 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"здрасти","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:39:49 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"имам два бързи въпроса","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:42:21 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:42","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:43:09 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:38 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ако искаш да се чуем да го видим","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:59 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"добре, дано да ми работи вече аудио","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A huddle happened","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:44:06 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:44 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"You and","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"were in the huddle for","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"5m","depth":24,"role_description":"text"},{"role":"AXStaticText","text":".","depth":24,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:45:03 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:45 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"ask-jiminny-report-generated","depth":25,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Today at 10:47:45 AM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:47 AM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download Screenshot 2026-04-20 at 10.47.21.png","depth":28,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: Screenshot 2026-04-20 at 10.47.21.png","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward file…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"","depth":23,"value":"","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"No exact matches. Search for: shared-activi, 1 of 2 suggestions","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova: . Image: No alt text. 1 attachment.","depth":11,"role_description":"text"}]...
|
-9218245258814534702
|
-3875041992842510246
|
click
|
hybrid
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment.
iTerm2Shell|EditViewSessionScriptsProfilesWindowHelpDEV (docker)APP (-zsh)|DOCKERLast login: Mon Apr 20 10:16:41 on ttys006DEV (docker)$82Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parentsPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ devroot@docker_lamp_1:/home/jiminny# |*3‹$0100% C47 8 Mon 20 Apr 10:53:53T81-zsh• ₴4screenpipe"• *5DEV...
|
53067
|
|
53070
|
1149
|
79
|
2026-04-20T07:53:53.781663+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776671633781_m2.jpg...
|
Slack
|
Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Galya Dimitrova (DM) - Jiminny Inc - 2 new items - Slack...
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Jiminny Inc","depth":12,"bounds":{"left":0.004654255,"top":0.06304868,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Jiminny (Staging)","depth":12,"bounds":{"left":0.004654255,"top":0.10454908,"width":0.010638298,"height":0.025538707},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Add workspaces","depth":12,"bounds":{"left":0.004654255,"top":0.14604948,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"bounds":{"left":0.022938829,"top":0.05586592,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.009973404,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.022938829,"top":0.110135674,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"bounds":{"left":0.027593086,"top":0.14764565,"width":0.007978723,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.022938829,"top":0.16440542,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"bounds":{"left":0.025265958,"top":0.2019154,"width":0.012965426,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.022938829,"top":0.21867518,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"bounds":{"left":0.027925532,"top":0.25618514,"width":0.0076462766,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.022938829,"top":0.27294493,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"bounds":{"left":0.027260639,"top":0.3104549,"width":0.008643617,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.022938829,"top":0.3272147,"width":0.017287234,"height":0.054269753},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"bounds":{"left":0.027260639,"top":0.36472467,"width":0.008976064,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"More unreads","depth":17,"bounds":{"left":0.058843084,"top":0.096568234,"width":0.041888297,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Unreads","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.056848403,"top":0.09177973,"width":0.017952127,"height":0.0023942539},"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.056848403,"top":0.10215483,"width":0.017952127,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.056848403,"top":0.1245012,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.056848403,"top":0.14684756,"width":0.023936171,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":21,"bounds":{"left":0.06216755,"top":0.24102154,"width":0.043882977,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":21,"bounds":{"left":0.06216755,"top":0.26336792,"width":0.044215426,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"bounds":{"left":0.06216755,"top":0.3160415,"width":0.022273935,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"bounds":{"left":0.06216755,"top":0.33838788,"width":0.011968086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"bounds":{"left":0.06216755,"top":0.36073422,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"bounds":{"left":0.06216755,"top":0.3830806,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"bounds":{"left":0.06216755,"top":0.40542698,"width":0.027593086,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"bounds":{"left":0.06216755,"top":0.42777336,"width":0.025598405,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"frontend","depth":23,"bounds":{"left":0.06216755,"top":0.4501197,"width":0.018949468,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"bounds":{"left":0.06216755,"top":0.47246608,"width":0.015957447,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"infra-changes","depth":23,"bounds":{"left":0.06216755,"top":0.49481246,"width":0.029587766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"bounds":{"left":0.06216755,"top":0.5171588,"width":0.022938829,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"bounds":{"left":0.06216755,"top":0.5395052,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"bounds":{"left":0.06216755,"top":0.56185156,"width":0.03856383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"bounds":{"left":0.06216755,"top":0.58419794,"width":0.01662234,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"bounds":{"left":0.06216755,"top":0.6065443,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"bounds":{"left":0.06216755,"top":0.62889063,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"bounds":{"left":0.06216755,"top":0.651237,"width":0.016954787,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"bounds":{"left":0.06216755,"top":0.6735834,"width":0.024268618,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"bounds":{"left":0.06216755,"top":0.69592977,"width":0.04488032,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.06216755,"top":0.74860334,"width":0.034906916,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.7709497,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.06216755,"top":0.7932961,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tomov","depth":23,"bounds":{"left":0.06216755,"top":0.8156425,"width":0.030585106,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.06216755,"top":0.83798885,"width":0.03756649,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.09940159,"top":0.83798885,"width":0.0063164895,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"bounds":{"left":0.10206117,"top":0.83798885,"width":0.014295213,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.116023935,"top":0.8555467,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"bounds":{"left":0.116023935,"top":0.8555467,"width":0.0003324468,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":23,"bounds":{"left":0.06216755,"top":0.8603352,"width":0.034242023,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"bounds":{"left":0.06216755,"top":0.88268155,"width":0.028922873,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"bounds":{"left":0.06216755,"top":0.9050279,"width":0.026263298,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"bounds":{"left":0.06216755,"top":0.9273743,"width":0.031914894,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"bounds":{"left":0.06216755,"top":0.9497207,"width":0.0076462766,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":21,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.011968086,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":21,"bounds":{"left":0.06216755,"top":0.9952115,"width":0.021609042,"height":0.0007980846},"role_description":"text"},{"role":"AXButton","text":"Unread mentions","depth":17,"bounds":{"left":0.055851065,"top":0.96727854,"width":0.048204787,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Messages","depth":17,"bounds":{"left":0.12200798,"top":0.09177973,"width":0.030585106,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":19,"bounds":{"left":0.13131648,"top":0.10055866,"width":0.01861702,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":17,"bounds":{"left":0.15392287,"top":0.09177973,"width":0.020944148,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":19,"bounds":{"left":0.16323139,"top":0.10055866,"width":0.008976064,"height":0.012769354},"role_description":"text"},{"role":"AXRadioButton","text":"Untitled","depth":17,"bounds":{"left":0.17586437,"top":0.09177973,"width":0.02925532,"height":0.030327214},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Untitled","depth":19,"bounds":{"left":0.18517287,"top":0.10055866,"width":0.015957447,"height":0.012769354},"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":17,"bounds":{"left":0.20644946,"top":0.09177973,"width":0.010638298,"height":0.030327214},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.015625,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"List","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.0076462766,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":17,"bounds":{"left":0.11635638,"top":0.0518755,"width":0.013962766,"height":0.0007980846},"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.28125,"top":0.12689546,"width":0.052526597,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 11:59:18 AM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:59","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"когато стигнеш до това стори","depth":25,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20372","depth":26,"role_description":"text"},{"role":"AXLink","text":"JY-20372 AI Reports > Empty page design and promotion","depth":27,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20372 AI Reports > Empty page design and promotion","depth":28,"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Backlog","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:00:05 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"image (1).png","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"image (1).png","depth":27,"role_description":"Unlabelled image","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download image (1).png","depth":28,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: image (1).png","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Apr 16th at 12:00:24 PM","depth":25,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:00","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"ама като стигнеш до там може би най добре да видиш с него за всеки случай","depth":25,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 12:01:25 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:01 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"здрасти, добре ще го видя","depth":25,"role_description":"text"},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"Apr 16th at 5:34:30 PM","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"5:34 PM","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"нещо за като се върнеш -","depth":25,"bounds":{"left":0.13796543,"top":0.11572227,"width":0.059507977,"height":0.013567438},"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":25,"bounds":{"left":0.1974734,"top":0.11572227,"width":0.10139628,"height":0.013567438},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20543","depth":26,"bounds":{"left":0.1974734,"top":0.11572227,"width":0.10139628,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода","depth":25,"bounds":{"left":0.13796543,"top":0.11572227,"width":0.35239363,"height":0.0311253},"role_description":"text"},{"role":"AXLink","text":"JY-20543 AJ Reports > Tracking","depth":27,"bounds":{"left":0.14328457,"top":0.15482841,"width":0.07047872,"height":0.014365523},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"JY-20543 AJ Reports > Tracking","depth":28,"bounds":{"left":0.14328457,"top":0.15482841,"width":0.07047872,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Status:","depth":26,"bounds":{"left":0.14328457,"top":0.18036711,"width":0.013962766,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Closed","depth":26,"bounds":{"left":0.15691489,"top":0.18036711,"width":0.013297873,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Type:","depth":26,"bounds":{"left":0.18351063,"top":0.18036711,"width":0.011303191,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Story","depth":26,"bounds":{"left":0.19481383,"top":0.18036711,"width":0.010305851,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Assignee:","depth":26,"bounds":{"left":0.21841756,"top":0.18036711,"width":0.019281914,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Lukas","depth":26,"bounds":{"left":0.23736702,"top":0.18036711,"width":0.011303191,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.24833776,"top":0.18036711,"width":0.0013297872,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Kovalik","depth":26,"bounds":{"left":0.24933511,"top":0.18036711,"width":0.014295213,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Priority:","depth":26,"bounds":{"left":0.2769282,"top":0.18036711,"width":0.016289894,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Medium","depth":26,"bounds":{"left":0.29321808,"top":0.18036711,"width":0.015957447,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Assign","depth":26,"bounds":{"left":0.14328457,"top":0.20670392,"width":0.01861702,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Assign","depth":28,"bounds":{"left":0.1462766,"top":0.21069433,"width":0.012632979,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"Change status","depth":26,"bounds":{"left":0.16456117,"top":0.20670392,"width":0.03324468,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Change status","depth":28,"bounds":{"left":0.16755319,"top":0.21069433,"width":0.027260639,"height":0.012769354},"role_description":"text"},{"role":"AXButton","text":"sparkles emoji AI Summarise","depth":26,"bounds":{"left":0.20013298,"top":0.20670392,"width":0.038896278,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"AI Summarise","depth":28,"bounds":{"left":0.20844415,"top":0.21069433,"width":0.027593086,"height":0.012769354},"role_description":"text"},{"role":"AXComboBox","text":"More actions...","depth":27,"bounds":{"left":0.24135639,"top":0.20670392,"width":0.06349734,"height":0.022346368},"placeholder":"More actions...","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Added by","depth":26,"bounds":{"left":0.14328457,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXLink","text":"Jira Cloud","depth":26,"bounds":{"left":0.16057181,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Jira Cloud","depth":27,"bounds":{"left":0.16057181,"top":0.2386273,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with +1 emoji","depth":25,"bounds":{"left":0.13796543,"top":0.25698325,"width":0.014295213,"height":0.01915403},"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":26,"bounds":{"left":0.14727394,"top":0.2601756,"width":0.0023271276,"height":0.011971269},"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":25,"bounds":{"left":0.15325798,"top":0.25698325,"width":0.011635638,"height":0.01915403},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.29488033,"top":0.29369512,"width":0.025265958,"height":0.022346368},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.32482043,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.3264166,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:39:38 AM","depth":24,"bounds":{"left":0.17121011,"top":0.32881084,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39 AM","depth":25,"bounds":{"left":0.17121011,"top":0.32881084,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"здрасти","depth":25,"bounds":{"left":0.13796543,"top":0.34397447,"width":0.018284574,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:39:49 AM","depth":25,"bounds":{"left":0.125,"top":0.37031126,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:39","depth":26,"bounds":{"left":0.125,"top":0.37031126,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"имам два бързи въпроса","depth":25,"bounds":{"left":0.13796543,"top":0.367917,"width":0.05651596,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:42:21 AM","depth":25,"bounds":{"left":0.125,"top":0.3942538,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:42","depth":26,"bounds":{"left":0.125,"top":0.3942538,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?","depth":25,"bounds":{"left":0.13796543,"top":0.39185953,"width":0.34906915,"height":0.031923383},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 10:43:09 AM","depth":25,"bounds":{"left":0.125,"top":0.43575418,"width":0.010305851,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43","depth":26,"bounds":{"left":0.125,"top":0.43575418,"width":0.010305851,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо","depth":25,"bounds":{"left":0.13796543,"top":0.43335995,"width":0.27260637,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.13796543,"top":0.4557063,"width":0.036236703,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17420213,"top":0.45730248,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:38 AM","depth":24,"bounds":{"left":0.17652926,"top":0.45969674,"width":0.017952127,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"bounds":{"left":0.17652926,"top":0.45969674,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"ако искаш да се чуем да го видим","depth":25,"bounds":{"left":0.13796543,"top":0.47486034,"width":0.078125,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.49720672,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.49880287,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:43:59 AM","depth":24,"bounds":{"left":0.17121011,"top":0.5011971,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:43 AM","depth":25,"bounds":{"left":0.17121011,"top":0.5011971,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"добре, дано да ми работи вече аудио","depth":25,"bounds":{"left":0.13796543,"top":0.51636076,"width":0.08643617,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A huddle happened","depth":24,"bounds":{"left":0.13796543,"top":0.5403033,"width":0.043218084,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.18118352,"top":0.5403033,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:44:06 AM","depth":24,"bounds":{"left":0.18384309,"top":0.54269755,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:44 AM","depth":25,"bounds":{"left":0.18384309,"top":0.54269755,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"You and","depth":24,"bounds":{"left":0.13796543,"top":0.55786115,"width":0.01861702,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.15658244,"top":0.55786115,"width":0.03523936,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"were in the huddle for","depth":24,"bounds":{"left":0.19148937,"top":0.55786115,"width":0.05119681,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":"5m","depth":24,"bounds":{"left":0.24235372,"top":0.55786115,"width":0.00731383,"height":0.014365523},"role_description":"text"},{"role":"AXStaticText","text":".","depth":24,"bounds":{"left":0.24933511,"top":0.55786115,"width":0.0013297872,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.13796543,"top":0.5802075,"width":0.030917553,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.16855054,"top":0.5818037,"width":0.0029920214,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:45:03 AM","depth":24,"bounds":{"left":0.17121011,"top":0.58419794,"width":0.01761968,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:45 AM","depth":25,"bounds":{"left":0.17121011,"top":0.58419794,"width":0.01761968,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"ask-jiminny-report-generated","depth":25,"bounds":{"left":0.13796543,"top":0.59936154,"width":0.06382979,"height":0.014365523},"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.13796543,"top":0.6217079,"width":0.036236703,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.17420213,"top":0.62330407,"width":0.0026595744,"height":0.014365523},"role_description":"text"},{"role":"AXLink","text":"Today at 10:47:45 AM","depth":24,"bounds":{"left":0.17652926,"top":0.6256983,"width":0.017952127,"height":0.011173184},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"10:47 AM","depth":25,"bounds":{"left":0.17652926,"top":0.6256983,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":25,"bounds":{"left":0.13796543,"top":0.6408619,"width":0.07646277,"height":0.013567438},"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.21442819,"top":0.6408619,"width":0.0013297872,"height":0.014365523},"role_description":"text"},{"role":"AXButton","text":"Toggle file","depth":25,"bounds":{"left":0.21575798,"top":0.6400638,"width":0.0066489363,"height":0.015961692},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXLink","text":"Screenshot 2026-04-20 at 10.47.21.png","depth":27,"bounds":{"left":0.13796543,"top":0.66001594,"width":0.07978723,"height":0.23383878},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Download Screenshot 2026-04-20 at 10.47.21.png","depth":28,"bounds":{"left":0.1705452,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share file: Screenshot 2026-04-20 at 10.47.21.png","depth":28,"bounds":{"left":0.18118352,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View canvas details","depth":28,"bounds":{"left":0.19182181,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":28,"bounds":{"left":0.20246011,"top":0.6711891,"width":0.010638298,"height":0.025538707},"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward file…","depth":26,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"","depth":23,"bounds":{"left":0.12367021,"top":0.91380686,"width":0.36768618,"height":0.030327214},"value":"","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"No exact matches. Search for: shared-activi, 1 of 2 suggestions","depth":11,"bounds":{"left":0.0,"top":0.9992019,"width":0.026263298,"height":0.0007980846},"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova: . Image: No alt text. 1 attachment.","depth":11,"bounds":{"left":0.0,"top":0.9992019,"width":0.025265958,"height":0.0007980846},"role_description":"text"}]...
|
-9218245258814534702
|
-3875041992842510246
|
click
|
hybrid
|
NULL
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Aneliya Angelova
Stefka Stoyanova
Stoyan Tomov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Nikolay Nikolov
Stoyan Tanev
Vasil Vasilev
Nikolay Ivanov
Ves
Toast
Jira Cloud
Unread mentions
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Apr 16th at 11:59:18 AM
11:59
когато стигнеш до това стори
https://jiminny.atlassian.net/browse/JY-20372
https://jiminny.atlassian.net/browse/JY-20372
JY-20372 AI Reports > Empty page design and promotion
JY-20372 AI Reports > Empty page design and promotion
Status:
Backlog
Type:
Story
Assignee:
Nikolay Yankov
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
Apr 16th at 12:00:05 PM
12:00
Петко е направил някакво bool поле на ниво юзър което да сетваме на true когато юзъра кликне бутона
image (1).png
Toggle file
image (1).png
Download image (1).png
Share file: image (1).png
View canvas details
More actions
Apr 16th at 12:00:24 PM
12:00
ама като стигнеш до там може би най добре да видиш с него за всеки случай
Lukas Kovalik
Apr 16th at 12:01:25 PM
12:01 PM
здрасти, добре ще го видя
Galya Dimitrova
Apr 16th at 5:34:30 PM
5:34 PM
нещо за като се върнеш -
https://jiminny.atlassian.net/browse/JY-20543
https://jiminny.atlassian.net/browse/JY-20543
- тук трябваше да има отделен евент за AJ Report и отделен за Exec Report. А в UP в момента гледам че е само един. Та ще трябва да се добави още един и да се добави и в кода
JY-20543 AJ Reports > Tracking
JY-20543 AJ Reports > Tracking
Status:
Closed
Type:
Story
Assignee:
Lukas
Kovalik
Priority:
Medium
Assign
Assign
Change status
Change status
sparkles emoji AI Summarise
AI Summarise
More actions...
Added by
Jira Cloud
Jira Cloud
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Lukas Kovalik
Today at 10:39:38 AM
10:39 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
Today at 10:39:49 AM
10:39
имам два бързи въпроса
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 10:42:21 AM
10:42
за UP tracking добавям ask-jiminny-report-generated покрай automated-report-generated като отделен event. Преди съм го направил като част от payload (report_type, frequency). В UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?
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 10:43:09 AM
10:43
Исках да збнам как се показва и дали трябва да има и различен payload в зависимост от тип. Правя го малко на сляпо
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:43:38 AM
10:43 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
Lukas Kovalik
Today at 10:43:59 AM
10:43 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
A huddle happened
Today at 10:44:06 AM
10:44 AM
You and
Galya Dimitrova
were in the huddle for
5m
.
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 10:45:03 AM
10:45 AM
ask-jiminny-report-generated
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 10:47:45 AM
10:47 AM
Screenshot 2026-04-20 at 10.47.21.png
Toggle file
Screenshot 2026-04-20 at 10.47.21.png
Download Screenshot 2026-04-20 at 10.47.21.png
Share file: Screenshot 2026-04-20 at 10.47.21.png
View canvas details
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward file…
Save for later
More actions
No exact matches. Search for: shared-activi, 1 of 2 suggestions
Galya Dimitrova: . Image: No alt text. 1 attachment.
SlackActivityMoreVIewmistonWindowHelpQ Search: shared-activiJiminny ...z . Galya Dimitrova6д H 1 More unreads• Messages@ UntitledDrafts & sent• DirectoriesAb External connections& Starred@ jiminny-x-integrati.•olattorm-inner-team© Channels# ai-chapter# alerts# backend# confusion-clinic# curiosity lab# engineering# frontendai generali# infra-changes#liminnv-bg# platform-tickets# product_launchesa random# releasesi soha-othce# support# thank-yous* the neonle of timi...^ Direct messagesQ. Galya Dimitrova®. Aneliya Angelovafa. Stefka StoyanovaR. Stoyan Tomov31 Aneliva Angelova…Nikolay Nikalov2. Stoyan TanevVasil VasilevYr Filesв момента гледам че е само един. Та ще трябва да се добави с Thursday, April 16th ~ зи и в кодаJY-20543 AJ Keports > IrackingW Type: StoryLK) Assignee: Lukas KovalikT Priority: MediumASSignChange status*+ Al SummariseAdded by sira cloudLukas Kovallik 10:39 AMЗлрастиимам два бързи въпросаза UP tracking лобавям ask-liminnv-report-generated покрай automated-report-generated като отлелен event. Преди съм го направил като част от pavload(report_type, frequency). B UP обаче не успах да го видя, само като draft но си стои празно, ти вид ли го някъде?Исках ла збнам как се показва и дали трябва да има и различен pavload в зависимост от тип. Правя го малко на сляпоGalya Dimitrova 10:43 AMако искаш да се чуем да го видимLukas Kovalik 10:43 AMдобре, дано да ми работи вече аудиоA huddle happened 10:44 AMVou and Calva Dimitrova were in the huddle for 5mlLukas Kovalik 10:45 AMack-liminnv-renort-generatediGalya Dimitrova 10:47 AMchot 2026-04-20 at 10.47.21 nng •< Automated report generated‹/› Watched Notetaker Video‹> Watch Later Button • Notetake…< Shared.activity< Notification-provider-enabledLogged-activityi< Dialed-outbound< Dialed-inboundf. Nikolay Ivanove. VesMessage Galya Efmitrova+ AaeQ Search engagement, feedback, reports, users and moreuser3%eb 2026— Last 90 days-- Previous PeriodFirst occurredFebruary 12,2026 - 11:23 AMJanuary 26, 2026 - 06:29 PMJanuary 21, 2026 - 01:37 PMJanuary 21, 2026 - 07:49 AMIanuary 21.2026 - 03•39 AM-о-Mar 2026Q.OA 0%4 8 Mon 20 Apr 10:53:53Apr 2026Last occurredApril 20, 2026 - 08:51 AMApril 20, 2026 - 08:50 AMApril 20, 2026 - 08:45 AMApril 20, 2026 - 08:45 AMAoril 20. 2026 - 08:42 AMGet Started with Userpilot?...
|
53068
|
|
24181
|
522
|
20
|
2026-04-15T12:04:20.795123+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776254660795_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
+SlackFileEditViewGoHistoryWindowHelpEDHomeDMsActi +SlackFileEditViewGoHistoryWindowHelpEDHomeDMsActivityFilesLater..•More+→Search Jiminny IncJiminny ...+# general# infra-changes# jiminny-bg# platform-tickets# product launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesStoyan TanevVes®. Galya DimitrovaAneliya Angelova, ...Vasil VasilevSteliyan GeorgievAdelina Petrova, Ili...P. Adelina PetrovaD. Nikolay Nikolov2 Galya Dimitrova, Ni...ii: AppsJira CloudToastGoogle Cale...# platform-tickets8 146 0MessagesAdd canvasO FilesHubSpot -ised withMonday, April 6thPlatform ttaur anu asaigricu tu Stoyan Tomov.The Priority is P2 MediumWednesday, April 8th~Automation for Jira APP12:02 PMSRD-6775 Jiminny creates duplicate event inHubspot has been raised with Platform teamand assigned to Stoyan Tomov. The Priority isP2 MediumThursday, April 9th~Automation for Jira APP11:22 AMSRD-6779 Unable to log in to Sidekick hasbeen raised with Platform team and assigned to**. The Priority is P2 MediumAutomation for Jira APP2:32 PMSRD-6780 Jiminny Voice issue has been raisedwith Platform team and assigned to **. ThePriority is **Today ~NewAutomation for Jira APP 2:56 PMSRD-6789 [Team insights] Filter gets resetautomatically has been raised with Platformteam and assigned to **. The Priority is **Message #platform-tickets+AaActivity MonitorAll ProcessesProcess NameWindowServerFirefoxCP Isolated Web ContentFirefoxFirefoxCursorUlViewService (Not Responding)FirefoxCP Isolated Web ContentFirefox GPU HelperFirefox GPU HelperFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentSlack Helper (Renderer)FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentNotion Calendar Helper (Renderer)Notion Helper (Renderer)claudeFirefoxCP Isolated Web ContentClaude Helper (Renderer)iTerm2FirefoxCP Isolated Web ContentCode Helper (Renderer)FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentClaudeMEMORY PRESSURESupport Daily • nowSupport Dailynow - 15:00-15:15= Notes - Support Daily.961,0 MB937,1 MB839,7 MB772,4 MB740,6 MB561,2 MB544,3 MB538,9 MB490,8 MB462,7 MB446,7 MB436,4 MB389,0 MB384,7 MB377,0 MB372,0 MB347,8 MB328,5 MB326,1 MB300,6 MB257,6 MB256,8 MB235,3 MB218,9 MB208,6 MB193,4 MB192,5 MBPhysical Memory:Memory Used:Cached Files:Swap Used:25748432531272524162426262624221520132815271827245916,00 GB13,57 GB <2,38 GB2,81 GB100% L28Wed 15 Apr 15:04:20C Join Google Meet1247311 20019 745125248254128122200123125124127122119172313721262091 789125317127122723429748014146648424203080191467336713354804186335276358314365243016368984817326548114850910358336051948785613885340482987429560491App Memory:Wired Memory:Compressed:lukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas4,75 GB2,39 GB5,88 GB...
|
NULL
|
-9217791420770776323
|
NULL
|
visual_change
|
ocr
|
NULL
|
+SlackFileEditViewGoHistoryWindowHelpEDHomeDMsActi +SlackFileEditViewGoHistoryWindowHelpEDHomeDMsActivityFilesLater..•More+→Search Jiminny IncJiminny ...+# general# infra-changes# jiminny-bg# platform-tickets# product launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesStoyan TanevVes®. Galya DimitrovaAneliya Angelova, ...Vasil VasilevSteliyan GeorgievAdelina Petrova, Ili...P. Adelina PetrovaD. Nikolay Nikolov2 Galya Dimitrova, Ni...ii: AppsJira CloudToastGoogle Cale...# platform-tickets8 146 0MessagesAdd canvasO FilesHubSpot -ised withMonday, April 6thPlatform ttaur anu asaigricu tu Stoyan Tomov.The Priority is P2 MediumWednesday, April 8th~Automation for Jira APP12:02 PMSRD-6775 Jiminny creates duplicate event inHubspot has been raised with Platform teamand assigned to Stoyan Tomov. The Priority isP2 MediumThursday, April 9th~Automation for Jira APP11:22 AMSRD-6779 Unable to log in to Sidekick hasbeen raised with Platform team and assigned to**. The Priority is P2 MediumAutomation for Jira APP2:32 PMSRD-6780 Jiminny Voice issue has been raisedwith Platform team and assigned to **. ThePriority is **Today ~NewAutomation for Jira APP 2:56 PMSRD-6789 [Team insights] Filter gets resetautomatically has been raised with Platformteam and assigned to **. The Priority is **Message #platform-tickets+AaActivity MonitorAll ProcessesProcess NameWindowServerFirefoxCP Isolated Web ContentFirefoxFirefoxCursorUlViewService (Not Responding)FirefoxCP Isolated Web ContentFirefox GPU HelperFirefox GPU HelperFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentSlack Helper (Renderer)FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentNotion Calendar Helper (Renderer)Notion Helper (Renderer)claudeFirefoxCP Isolated Web ContentClaude Helper (Renderer)iTerm2FirefoxCP Isolated Web ContentCode Helper (Renderer)FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentClaudeMEMORY PRESSURESupport Daily • nowSupport Dailynow - 15:00-15:15= Notes - Support Daily.961,0 MB937,1 MB839,7 MB772,4 MB740,6 MB561,2 MB544,3 MB538,9 MB490,8 MB462,7 MB446,7 MB436,4 MB389,0 MB384,7 MB377,0 MB372,0 MB347,8 MB328,5 MB326,1 MB300,6 MB257,6 MB256,8 MB235,3 MB218,9 MB208,6 MB193,4 MB192,5 MBPhysical Memory:Memory Used:Cached Files:Swap Used:25748432531272524162426262624221520132815271827245916,00 GB13,57 GB <2,38 GB2,81 GB100% L28Wed 15 Apr 15:04:20C Join Google Meet1247311 20019 745125248254128122200123125124127122119172313721262091 789125317127122723429748014146648424203080191467336713354804186335276358314365243016368984817326548114850910358336051948785613885340482987429560491App Memory:Wired Memory:Compressed:lukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas4,75 GB2,39 GB5,88 GB...
|
24179
|
|
50408
|
1079
|
0
|
2026-04-17T14:48:08.925817+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776437288925_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
elements|465966705
ui_events|9804622
ocr_text|1443 elements|465966705
ui_events|9804622
ocr_text|1443084543
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
-- estimate yesterday's rows
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'
UNION ALL
SELECT 'elements',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))
FROM dbstat d, elements e
WHERE d.name = 'elements'
UNION ALL
SELECT 'ui_events',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')
FROM dbstat d, ui_events e
WHERE d.name = 'ui_events';"
^CError: stepping, interrupted (9)
Program interrupted.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'"
^CError: stepping, interrupted (9)
Program interrupted.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes, COUNT(*) as pages
FROM dbstat WHERE name IN ('frames','elements','ui_events','ocr_text')
GROUP BY name;"
elements|466530643|121280
frames|1006977358|254673
ocr_text|1443956212|359424
ui_events|9826328|2576
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
SELECT 'frames', COUNT(*) FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"
frames|50235
elements|3279563
ui_events|60293
ocr_text|39114
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # 1. Measure NAS write speed (write 10MB test file, measure seconds)
SPEED=$(
dd if=/dev/urandom of="$NAS_MOUNT/.speed_test" bs=1m count=10 2>&1 | \
grep -o '[0-9.]* bytes/sec' | awk '{print $1}'
rm -f "$NAS_MOUNT/.speed_test"
)
echo "NAS write speed: $(( SPEED / 1024 / 1024 )) MB/s"
# 2. Get bytes/row for each table from dbstat
BYTES_FRAMES=$(sqlite3 "$DB_SRC" "SELECT SUM(payload)/COUNT(*) FROM dbstat,frames WHERE dbstat.name='frames';")
zsh: unknown file attribute: i
NAS write speed: 0 MB/s
zsh: command not found: #
^CError: stepping, interrupted (9)
Program interrupted.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 7525816
drwxr-xr-x 18 lukas staff 576 17 Apr 08:56 .
drwx------+ 91 lukas staff 2912 17 Apr 17:23 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 3841454080 17 Apr 17:36 db.sqlite
-rw-r--r-- 1 lukas staff 98304 17 Apr 16:11 db.sqlite-shm
-rw-r--r-- 1 lukas staff 9698512 17 Apr 17:38 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 196994 16 Apr 20:33 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 172446 17 Apr 17:38 screenpipe.2026-04-17.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:43 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ code screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ LOG_FILE="$HOME/.screenpipe/sync.log"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "$msg" | tee -a "$LOG_FILE"
[2026-04-17 17:45:23]
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenp
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"elements|465966705\nui_events|9804622\nocr_text|1443084543\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'frames' as tbl,\n COUNT(*) as total_rows,\n SUM(payload) as total_bytes,\n SUM(payload)/COUNT(*) as bytes_per_row,\n -- estimate yesterday's rows\n (SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows\nFROM dbstat d, frames f\nWHERE d.name = 'frames'\nUNION ALL\nSELECT 'elements',\n COUNT(*),\n SUM(payload),\n SUM(payload)/COUNT(*),\n (SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))\nFROM dbstat d, elements e\nWHERE d.name = 'elements'\nUNION ALL\nSELECT 'ui_events',\n COUNT(*),\n SUM(payload),\n SUM(payload)/COUNT(*),\n (SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')\nFROM dbstat d, ui_events e\nWHERE d.name = 'ui_events';\"\n\n^CError: stepping, interrupted (9)\nProgram interrupted.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'frames' as tbl,\n COUNT(*) as total_rows,\n SUM(payload) as total_bytes,\n SUM(payload)/COUNT(*) as bytes_per_row,\n (SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows \nFROM dbstat d, frames f\nWHERE d.name = 'frames'\"\n^CError: stepping, interrupted (9)\nProgram interrupted.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes, COUNT(*) as pages\nFROM dbstat WHERE name IN ('frames','elements','ui_events','ocr_text')\nGROUP BY name;\"\nelements|466530643|121280\nframes|1006977358|254673\nocr_text|1443956212|359424\nui_events|9826328|2576\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nSELECT 'frames', COUNT(*) FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;\"\nframes|50235\nelements|3279563\nui_events|60293\nocr_text|39114\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # 1. Measure NAS write speed (write 10MB test file, measure seconds)\nSPEED=$(\n dd if=/dev/urandom of=\"$NAS_MOUNT/.speed_test\" bs=1m count=10 2>&1 | \\\n grep -o '[0-9.]* bytes/sec' | awk '{print $1}'\n rm -f \"$NAS_MOUNT/.speed_test\"\n)\necho \"NAS write speed: $(( SPEED / 1024 / 1024 )) MB/s\"\n\n# 2. Get bytes/row for each table from dbstat\nBYTES_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT SUM(payload)/COUNT(*) FROM dbstat,frames WHERE dbstat.name='frames';\")\nzsh: unknown file attribute: i\nNAS write speed: 0 MB/s\nzsh: command not found: #\n^CError: stepping, interrupted (9)\nProgram interrupted.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll \ntotal 7525816\ndrwxr-xr-x 18 lukas staff 576 17 Apr 08:56 .\ndrwx------+ 91 lukas staff 2912 17 Apr 17:23 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 3841454080 17 Apr 17:36 db.sqlite\n-rw-r--r-- 1 lukas staff 98304 17 Apr 16:11 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 9698512 17 Apr 17:38 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 196994 16 Apr 20:33 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 172446 17 Apr 17:38 screenpipe.2026-04-17.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:43 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ code screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ LOG_FILE=\"$HOME/.screenpipe/sync.log\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"$msg\" | tee -a \"$LOG_FILE\"\n[2026-04-17 17:45:23] \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenp","depth":4,"value":"elements|465966705\nui_events|9804622\nocr_text|1443084543\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'frames' as tbl,\n COUNT(*) as total_rows,\n SUM(payload) as total_bytes,\n SUM(payload)/COUNT(*) as bytes_per_row,\n -- estimate yesterday's rows\n (SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows\nFROM dbstat d, frames f\nWHERE d.name = 'frames'\nUNION ALL\nSELECT 'elements',\n COUNT(*),\n SUM(payload),\n SUM(payload)/COUNT(*),\n (SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))\nFROM dbstat d, elements e\nWHERE d.name = 'elements'\nUNION ALL\nSELECT 'ui_events',\n COUNT(*),\n SUM(payload),\n SUM(payload)/COUNT(*),\n (SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')\nFROM dbstat d, ui_events e\nWHERE d.name = 'ui_events';\"\n\n^CError: stepping, interrupted (9)\nProgram interrupted.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'frames' as tbl,\n COUNT(*) as total_rows,\n SUM(payload) as total_bytes,\n SUM(payload)/COUNT(*) as bytes_per_row,\n (SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows \nFROM dbstat d, frames f\nWHERE d.name = 'frames'\"\n^CError: stepping, interrupted (9)\nProgram interrupted.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes, COUNT(*) as pages\nFROM dbstat WHERE name IN ('frames','elements','ui_events','ocr_text')\nGROUP BY name;\"\nelements|466530643|121280\nframes|1006977358|254673\nocr_text|1443956212|359424\nui_events|9826328|2576\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nSELECT 'frames', COUNT(*) FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;\"\nframes|50235\nelements|3279563\nui_events|60293\nocr_text|39114\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # 1. Measure NAS write speed (write 10MB test file, measure seconds)\nSPEED=$(\n dd if=/dev/urandom of=\"$NAS_MOUNT/.speed_test\" bs=1m count=10 2>&1 | \\\n grep -o '[0-9.]* bytes/sec' | awk '{print $1}'\n rm -f \"$NAS_MOUNT/.speed_test\"\n)\necho \"NAS write speed: $(( SPEED / 1024 / 1024 )) MB/s\"\n\n# 2. Get bytes/row for each table from dbstat\nBYTES_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT SUM(payload)/COUNT(*) FROM dbstat,frames WHERE dbstat.name='frames';\")\nzsh: unknown file attribute: i\nNAS write speed: 0 MB/s\nzsh: command not found: #\n^CError: stepping, interrupted (9)\nProgram interrupted.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll \ntotal 7525816\ndrwxr-xr-x 18 lukas staff 576 17 Apr 08:56 .\ndrwx------+ 91 lukas staff 2912 17 Apr 17:23 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 3841454080 17 Apr 17:36 db.sqlite\n-rw-r--r-- 1 lukas staff 98304 17 Apr 16:11 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 9698512 17 Apr 17:38 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 196994 16 Apr 20:33 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 172446 17 Apr 17:38 screenpipe.2026-04-17.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:43 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ code screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ LOG_FILE=\"$HOME/.screenpipe/sync.log\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"$msg\" | tee -a \"$LOG_FILE\"\n[2026-04-17 17:45:23] \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenp","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.00069444446,"top":0.06,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.0048611113,"top":0.064444445,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.12361111,"top":0.06,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12777779,"top":0.064444445,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.24652778,"top":0.06,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25069445,"top":0.064444445,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.36944443,"top":0.06,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37361112,"top":0.064444445,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.4923611,"top":0.06,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4965278,"top":0.064444445,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (claude)","depth":2,"bounds":{"left":0.61527777,"top":0.06,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61944443,"top":0.064444445,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (nc)","depth":2,"bounds":{"left":0.73819447,"top":0.06,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7423611,"top":0.064444445,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-20-6-111:~ (nc)","depth":2,"bounds":{"left":0.8611111,"top":0.06,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.86527777,"top":0.064444445,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95555556,"top":0.033333335,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.034444444,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
-9217737925240809280
|
-2782171743174857581
|
idle
|
accessibility
|
NULL
|
elements|465966705
ui_events|9804622
ocr_text|1443 elements|465966705
ui_events|9804622
ocr_text|1443084543
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
-- estimate yesterday's rows
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'
UNION ALL
SELECT 'elements',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))
FROM dbstat d, elements e
WHERE d.name = 'elements'
UNION ALL
SELECT 'ui_events',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')
FROM dbstat d, ui_events e
WHERE d.name = 'ui_events';"
^CError: stepping, interrupted (9)
Program interrupted.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'"
^CError: stepping, interrupted (9)
Program interrupted.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes, COUNT(*) as pages
FROM dbstat WHERE name IN ('frames','elements','ui_events','ocr_text')
GROUP BY name;"
elements|466530643|121280
frames|1006977358|254673
ocr_text|1443956212|359424
ui_events|9826328|2576
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
SELECT 'frames', COUNT(*) FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"
frames|50235
elements|3279563
ui_events|60293
ocr_text|39114
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # 1. Measure NAS write speed (write 10MB test file, measure seconds)
SPEED=$(
dd if=/dev/urandom of="$NAS_MOUNT/.speed_test" bs=1m count=10 2>&1 | \
grep -o '[0-9.]* bytes/sec' | awk '{print $1}'
rm -f "$NAS_MOUNT/.speed_test"
)
echo "NAS write speed: $(( SPEED / 1024 / 1024 )) MB/s"
# 2. Get bytes/row for each table from dbstat
BYTES_FRAMES=$(sqlite3 "$DB_SRC" "SELECT SUM(payload)/COUNT(*) FROM dbstat,frames WHERE dbstat.name='frames';")
zsh: unknown file attribute: i
NAS write speed: 0 MB/s
zsh: command not found: #
^CError: stepping, interrupted (9)
Program interrupted.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 7525816
drwxr-xr-x 18 lukas staff 576 17 Apr 08:56 .
drwx------+ 91 lukas staff 2912 17 Apr 17:23 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 3841454080 17 Apr 17:36 db.sqlite
-rw-r--r-- 1 lukas staff 98304 17 Apr 16:11 db.sqlite-shm
-rw-r--r-- 1 lukas staff 9698512 17 Apr 17:38 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 196994 16 Apr 20:33 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 172446 17 Apr 17:38 screenpipe.2026-04-17.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:43 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ code screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ LOG_FILE="$HOME/.screenpipe/sync.log"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "$msg" | tee -a "$LOG_FILE"
[2026-04-17 17:45:23]
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenp
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
-zsh...
|
50406
|
|
50409
|
1080
|
1
|
2026-04-17T14:48:09.101594+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776437289101_m2.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
elements|465966705
ui_events|9804622
ocr_text|1443 elements|465966705
ui_events|9804622
ocr_text|1443084543
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
-- estimate yesterday's rows
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'
UNION ALL
SELECT 'elements',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))
FROM dbstat d, elements e
WHERE d.name = 'elements'
UNION ALL
SELECT 'ui_events',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')
FROM dbstat d, ui_events e
WHERE d.name = 'ui_events';"
^CError: stepping, interrupted (9)
Program interrupted.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'"
^CError: stepping, interrupted (9)
Program interrupted.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes, COUNT(*) as pages
FROM dbstat WHERE name IN ('frames','elements','ui_events','ocr_text')
GROUP BY name;"
elements|466530643|121280
frames|1006977358|254673
ocr_text|1443956212|359424
ui_events|9826328|2576
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
SELECT 'frames', COUNT(*) FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"
frames|50235
elements|3279563
ui_events|60293
ocr_text|39114
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # 1. Measure NAS write speed (write 10MB test file, measure seconds)
SPEED=$(
dd if=/dev/urandom of="$NAS_MOUNT/.speed_test" bs=1m count=10 2>&1 | \
grep -o '[0-9.]* bytes/sec' | awk '{print $1}'
rm -f "$NAS_MOUNT/.speed_test"
)
echo "NAS write speed: $(( SPEED / 1024 / 1024 )) MB/s"
# 2. Get bytes/row for each table from dbstat
BYTES_FRAMES=$(sqlite3 "$DB_SRC" "SELECT SUM(payload)/COUNT(*) FROM dbstat,frames WHERE dbstat.name='frames';")
zsh: unknown file attribute: i
NAS write speed: 0 MB/s
zsh: command not found: #
^CError: stepping, interrupted (9)
Program interrupted.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 7525816
drwxr-xr-x 18 lukas staff 576 17 Apr 08:56 .
drwx------+ 91 lukas staff 2912 17 Apr 17:23 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 3841454080 17 Apr 17:36 db.sqlite
-rw-r--r-- 1 lukas staff 98304 17 Apr 16:11 db.sqlite-shm
-rw-r--r-- 1 lukas staff 9698512 17 Apr 17:38 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 196994 16 Apr 20:33 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 172446 17 Apr 17:38 screenpipe.2026-04-17.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:43 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ code screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ LOG_FILE="$HOME/.screenpipe/sync.log"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "$msg" | tee -a "$LOG_FILE"
[2026-04-17 17:45:23]
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenp
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"elements|465966705\nui_events|9804622\nocr_text|1443084543\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'frames' as tbl,\n COUNT(*) as total_rows,\n SUM(payload) as total_bytes,\n SUM(payload)/COUNT(*) as bytes_per_row,\n -- estimate yesterday's rows\n (SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows\nFROM dbstat d, frames f\nWHERE d.name = 'frames'\nUNION ALL\nSELECT 'elements',\n COUNT(*),\n SUM(payload),\n SUM(payload)/COUNT(*),\n (SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))\nFROM dbstat d, elements e\nWHERE d.name = 'elements'\nUNION ALL\nSELECT 'ui_events',\n COUNT(*),\n SUM(payload),\n SUM(payload)/COUNT(*),\n (SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')\nFROM dbstat d, ui_events e\nWHERE d.name = 'ui_events';\"\n\n^CError: stepping, interrupted (9)\nProgram interrupted.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'frames' as tbl,\n COUNT(*) as total_rows,\n SUM(payload) as total_bytes,\n SUM(payload)/COUNT(*) as bytes_per_row,\n (SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows \nFROM dbstat d, frames f\nWHERE d.name = 'frames'\"\n^CError: stepping, interrupted (9)\nProgram interrupted.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes, COUNT(*) as pages\nFROM dbstat WHERE name IN ('frames','elements','ui_events','ocr_text')\nGROUP BY name;\"\nelements|466530643|121280\nframes|1006977358|254673\nocr_text|1443956212|359424\nui_events|9826328|2576\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nSELECT 'frames', COUNT(*) FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;\"\nframes|50235\nelements|3279563\nui_events|60293\nocr_text|39114\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # 1. Measure NAS write speed (write 10MB test file, measure seconds)\nSPEED=$(\n dd if=/dev/urandom of=\"$NAS_MOUNT/.speed_test\" bs=1m count=10 2>&1 | \\\n grep -o '[0-9.]* bytes/sec' | awk '{print $1}'\n rm -f \"$NAS_MOUNT/.speed_test\"\n)\necho \"NAS write speed: $(( SPEED / 1024 / 1024 )) MB/s\"\n\n# 2. Get bytes/row for each table from dbstat\nBYTES_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT SUM(payload)/COUNT(*) FROM dbstat,frames WHERE dbstat.name='frames';\")\nzsh: unknown file attribute: i\nNAS write speed: 0 MB/s\nzsh: command not found: #\n^CError: stepping, interrupted (9)\nProgram interrupted.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll \ntotal 7525816\ndrwxr-xr-x 18 lukas staff 576 17 Apr 08:56 .\ndrwx------+ 91 lukas staff 2912 17 Apr 17:23 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 3841454080 17 Apr 17:36 db.sqlite\n-rw-r--r-- 1 lukas staff 98304 17 Apr 16:11 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 9698512 17 Apr 17:38 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 196994 16 Apr 20:33 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 172446 17 Apr 17:38 screenpipe.2026-04-17.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:43 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ code screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ LOG_FILE=\"$HOME/.screenpipe/sync.log\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"$msg\" | tee -a \"$LOG_FILE\"\n[2026-04-17 17:45:23] \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenp","depth":4,"value":"elements|465966705\nui_events|9804622\nocr_text|1443084543\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'frames' as tbl,\n COUNT(*) as total_rows,\n SUM(payload) as total_bytes,\n SUM(payload)/COUNT(*) as bytes_per_row,\n -- estimate yesterday's rows\n (SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows\nFROM dbstat d, frames f\nWHERE d.name = 'frames'\nUNION ALL\nSELECT 'elements',\n COUNT(*),\n SUM(payload),\n SUM(payload)/COUNT(*),\n (SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))\nFROM dbstat d, elements e\nWHERE d.name = 'elements'\nUNION ALL\nSELECT 'ui_events',\n COUNT(*),\n SUM(payload),\n SUM(payload)/COUNT(*),\n (SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')\nFROM dbstat d, ui_events e\nWHERE d.name = 'ui_events';\"\n\n^CError: stepping, interrupted (9)\nProgram interrupted.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'frames' as tbl,\n COUNT(*) as total_rows,\n SUM(payload) as total_bytes,\n SUM(payload)/COUNT(*) as bytes_per_row,\n (SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows \nFROM dbstat d, frames f\nWHERE d.name = 'frames'\"\n^CError: stepping, interrupted (9)\nProgram interrupted.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes, COUNT(*) as pages\nFROM dbstat WHERE name IN ('frames','elements','ui_events','ocr_text')\nGROUP BY name;\"\nelements|466530643|121280\nframes|1006977358|254673\nocr_text|1443956212|359424\nui_events|9826328|2576\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nSELECT 'frames', COUNT(*) FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;\"\nframes|50235\nelements|3279563\nui_events|60293\nocr_text|39114\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # 1. Measure NAS write speed (write 10MB test file, measure seconds)\nSPEED=$(\n dd if=/dev/urandom of=\"$NAS_MOUNT/.speed_test\" bs=1m count=10 2>&1 | \\\n grep -o '[0-9.]* bytes/sec' | awk '{print $1}'\n rm -f \"$NAS_MOUNT/.speed_test\"\n)\necho \"NAS write speed: $(( SPEED / 1024 / 1024 )) MB/s\"\n\n# 2. Get bytes/row for each table from dbstat\nBYTES_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT SUM(payload)/COUNT(*) FROM dbstat,frames WHERE dbstat.name='frames';\")\nzsh: unknown file attribute: i\nNAS write speed: 0 MB/s\nzsh: command not found: #\n^CError: stepping, interrupted (9)\nProgram interrupted.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll \ntotal 7525816\ndrwxr-xr-x 18 lukas staff 576 17 Apr 08:56 .\ndrwx------+ 91 lukas staff 2912 17 Apr 17:23 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 3841454080 17 Apr 17:36 db.sqlite\n-rw-r--r-- 1 lukas staff 98304 17 Apr 16:11 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 9698512 17 Apr 17:38 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 196994 16 Apr 20:33 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 172446 17 Apr 17:38 screenpipe.2026-04-17.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:43 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ code screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ LOG_FILE=\"$HOME/.screenpipe/sync.log\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"$msg\" | tee -a \"$LOG_FILE\"\n[2026-04-17 17:45:23] \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenp","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.23359375,"top":1.0,"width":0.06914063,"height":-0.037500024},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2359375,"top":1.0,"width":0.00625,"height":-0.04027772},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.30273438,"top":1.0,"width":0.06914063,"height":-0.037500024},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.30507812,"top":1.0,"width":0.00625,"height":-0.04027772},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.371875,"top":1.0,"width":0.06914063,"height":-0.037500024},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37421876,"top":1.0,"width":0.00625,"height":-0.04027772},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.44101563,"top":1.0,"width":0.06914063,"height":-0.037500024},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.44335938,"top":1.0,"width":0.00625,"height":-0.04027772},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5101563,"top":1.0,"width":0.06914063,"height":-0.037500024},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5125,"top":1.0,"width":0.00625,"height":-0.04027772},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (claude)","depth":2,"bounds":{"left":0.5792969,"top":1.0,"width":0.06914063,"height":-0.037500024},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5816406,"top":1.0,"width":0.00625,"height":-0.04027772},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (nc)","depth":2,"bounds":{"left":0.6484375,"top":1.0,"width":0.06914063,"height":-0.037500024},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6507813,"top":1.0,"width":0.00625,"height":-0.04027772},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-20-6-111:~ (nc)","depth":2,"bounds":{"left":0.7175781,"top":1.0,"width":0.06914063,"height":-0.037500024},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7199219,"top":1.0,"width":0.00625,"height":-0.04027772},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.77070314,"top":1.0,"width":0.021875,"height":-0.020833373},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.50820315,"top":1.0,"width":0.012890625,"height":-0.021527767},"role_description":"text"}]...
|
-9217737925240809280
|
-2782171743174857581
|
idle
|
accessibility
|
NULL
|
elements|465966705
ui_events|9804622
ocr_text|1443 elements|465966705
ui_events|9804622
ocr_text|1443084543
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
-- estimate yesterday's rows
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'
UNION ALL
SELECT 'elements',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))
FROM dbstat d, elements e
WHERE d.name = 'elements'
UNION ALL
SELECT 'ui_events',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')
FROM dbstat d, ui_events e
WHERE d.name = 'ui_events';"
^CError: stepping, interrupted (9)
Program interrupted.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'"
^CError: stepping, interrupted (9)
Program interrupted.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes, COUNT(*) as pages
FROM dbstat WHERE name IN ('frames','elements','ui_events','ocr_text')
GROUP BY name;"
elements|466530643|121280
frames|1006977358|254673
ocr_text|1443956212|359424
ui_events|9826328|2576
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
SELECT 'frames', COUNT(*) FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"
frames|50235
elements|3279563
ui_events|60293
ocr_text|39114
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # 1. Measure NAS write speed (write 10MB test file, measure seconds)
SPEED=$(
dd if=/dev/urandom of="$NAS_MOUNT/.speed_test" bs=1m count=10 2>&1 | \
grep -o '[0-9.]* bytes/sec' | awk '{print $1}'
rm -f "$NAS_MOUNT/.speed_test"
)
echo "NAS write speed: $(( SPEED / 1024 / 1024 )) MB/s"
# 2. Get bytes/row for each table from dbstat
BYTES_FRAMES=$(sqlite3 "$DB_SRC" "SELECT SUM(payload)/COUNT(*) FROM dbstat,frames WHERE dbstat.name='frames';")
zsh: unknown file attribute: i
NAS write speed: 0 MB/s
zsh: command not found: #
^CError: stepping, interrupted (9)
Program interrupted.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 7525816
drwxr-xr-x 18 lukas staff 576 17 Apr 08:56 .
drwx------+ 91 lukas staff 2912 17 Apr 17:23 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 3841454080 17 Apr 17:36 db.sqlite
-rw-r--r-- 1 lukas staff 98304 17 Apr 16:11 db.sqlite-shm
-rw-r--r-- 1 lukas staff 9698512 17 Apr 17:38 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 196994 16 Apr 20:33 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 172446 17 Apr 17:38 screenpipe.2026-04-17.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:43 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ code screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ LOG_FILE="$HOME/.screenpipe/sync.log"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "$msg" | tee -a "$LOG_FILE"
[2026-04-17 17:45:23]
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenp
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
-zsh...
|
NULL
|
|
75897
|
1895
|
8
|
2026-04-24T07:04:15.165671+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777014255165_m1.jpg...
|
Firefox
|
Meet - Daily - Platform — Work
|
True
|
meet.google.com/agt-teir-cwt?authuser=lukas.kovali meet.google.com/agt-teir-cwt?authuser=lukas.kovalik%40jiminny.com...
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Meet - Daily - Platform
Close tab
New Tab
Open Goo Meet - Daily - Platform
Close tab
New Tab
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Customize sidebar
Nikolay Nikolov (Presenting, annotating)
Nikolay Nikolov (Presenting, annotating)
People
7
Take notes with Gemini
Take notes with Gemini
Gemini
Gemini
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Unpin Nikolay Nikolov's presentation from your main screen
You can't unmute someone else's presentation
More options for Nikolay Nikolov
Zoom in
Open in new window
Enter Full Screen
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Pin Nikolay Nikolov to your main screen
Mute Nikolay Nikolov's microphone
More options for Nikolay Nikolov
Nikolay Nikolov
Pin Galya Dimitrova to your main screen
You can't unmute someone else
More options for Galya Dimitrova
Galya Dimitrova
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Pin Stefka Stoyanova to your main screen
Mute Stefka Stoyanova's microphone
More options for Stefka Stoyanova
Stefka Stoyanova
2 others
2 others
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
You’re continuously framed
Backgrounds and effects
More options for Lukas Kovalik
Lukas Kovalik
Others might see more of your background. Click to view your full video.
10:04
AM
Daily - Platform
Daily - Platform
Audio settings
Turn off microphone
Video settings
Turn off camera
Nikolay Nikolov is presenting
Send a reaction
Turn on captions
Raise hand (ctrl + ⌘ + h)
More options
Leave call
Meeting details
Chat with everyone
Meeting tools
Your microphone is on....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Meet - Daily - Platform","depth":4,"bounds":{"left":0.0,"top":0.072222225,"width":0.033680554,"height":0.045555554},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.0013888889,"top":0.072222225,"width":0.010416667,"height":0.016666668},"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.005902778,"top":0.12,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.0,"top":0.7977778,"width":0.033680554,"height":0.043333333},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.0,"top":0.8411111,"width":0.033680554,"height":0.038333334},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.0,"top":0.8794444,"width":0.033680554,"height":0.03888889},"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.0,"top":0.91833335,"width":0.033680554,"height":0.038333334},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.0,"top":0.95666665,"width":0.033680554,"height":0.043333333},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Nikolay Nikolov (Presenting, annotating)","depth":12,"bounds":{"left":0.07534722,"top":0.101111114,"width":0.17916666,"height":0.022222223},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Nikolay Nikolov (Presenting, annotating)","depth":13,"bounds":{"left":0.07534722,"top":0.10222222,"width":0.17916666,"height":0.020555556},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"People","depth":15,"bounds":{"left":0.8871528,"top":0.08944444,"width":0.040625,"height":0.04},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":22,"bounds":{"left":0.9149306,"top":0.101111114,"width":0.004513889,"height":0.017222222},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Take notes with Gemini","depth":14,"bounds":{"left":0.93333334,"top":0.08944444,"width":0.025,"height":0.04},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Take notes with Gemini","depth":17,"bounds":{"left":0.9361111,"top":0.101111114,"width":0.06388891,"height":0.017222222},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Gemini","depth":22,"bounds":{"left":0.96666664,"top":0.101111114,"width":0.028125,"height":0.017222222},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Gemini","depth":21,"bounds":{"left":0.96458334,"top":0.090555556,"width":0.023611112,"height":0.037777778},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Pop out this video More screens are more fun. Play this video while you do other things.","depth":15,"bounds":{"left":0.5798611,"top":0.61,"width":0.14652778,"height":0.08888889},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pop out this video","depth":17,"bounds":{"left":0.7239583,"top":0.6244444,"width":0.08090278,"height":0.018888889},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"More screens are more fun. Play this video while you do other things.","depth":16,"bounds":{"left":0.7017361,"top":0.6205556,"width":0.11076389,"height":0.05666667},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Unpin Nikolay Nikolov's presentation from your main screen","depth":13,"bounds":{"left":0.34618056,"top":0.5088889,"width":0.027777778,"height":0.044444446},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"You can't unmute someone else's presentation","depth":13,"bounds":{"left":0.37395832,"top":0.50666666,"width":0.030555556,"height":0.04888889},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"More options for Nikolay Nikolov","depth":13,"bounds":{"left":0.4045139,"top":0.5088889,"width":0.027777778,"height":0.044444446},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Zoom in","depth":13,"bounds":{"left":0.63090277,"top":0.78333336,"width":0.027777778,"height":0.044444446},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open in new window","depth":13,"bounds":{"left":0.6642361,"top":0.78333336,"width":0.027777778,"height":0.044444446},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Enter Full Screen","depth":13,"bounds":{"left":0.69756943,"top":0.78333336,"width":0.027777778,"height":0.044444446},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Pop out this video More screens are more fun. Play this video while you do other things.","depth":15,"bounds":{"left":0.78541666,"top":0.27611113,"width":0.14652778,"height":0.07722222},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pop out this video","depth":17,"bounds":{"left":0.9295139,"top":0.2911111,"width":0.07048613,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"More screens are more fun. Play this video while you do other things.","depth":16,"bounds":{"left":0.90729165,"top":0.28666666,"width":0.09270835,"height":0.045},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Pin Nikolay Nikolov to your main screen","depth":13,"bounds":{"left":0.7607639,"top":0.25111112,"width":0.027777778,"height":0.044444446},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Mute Nikolay Nikolov's microphone","depth":13,"bounds":{"left":0.7885417,"top":0.2488889,"width":0.030555556,"height":0.04888889},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"More options for Nikolay Nikolov","depth":13,"bounds":{"left":0.8190972,"top":0.25111112,"width":0.027777778,"height":0.044444446},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Nikolay Nikolov","depth":17,"bounds":{"left":0.753125,"top":0.36277777,"width":0.07847222,"height":0.022777777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Pin Galya Dimitrova to your main screen","depth":13,"bounds":{"left":0.8871528,"top":0.25111112,"width":0.027777778,"height":0.044444446},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"You can't unmute someone else","depth":13,"bounds":{"left":0.9149306,"top":0.2488889,"width":0.030555556,"height":0.04888889},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"More options for Galya Dimitrova","depth":13,"bounds":{"left":0.9454861,"top":0.25111112,"width":0.027777778,"height":0.044444446},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Galya Dimitrova","depth":17,"bounds":{"left":0.87951386,"top":0.36277777,"width":0.08194444,"height":0.022777777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Pop out this video More screens are more fun. Play this video while you do other things.","depth":15,"bounds":{"left":0.7847222,"top":0.5338889,"width":0.14652778,"height":0.07722222},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pop out this video","depth":17,"bounds":{"left":0.9288194,"top":0.54888886,"width":0.07118058,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"More screens are more fun. Play this video while you do other things.","depth":16,"bounds":{"left":0.9065972,"top":0.54444444,"width":0.0934028,"height":0.045},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Pin Stefka Stoyanova to your main screen","depth":13,"bounds":{"left":0.7607639,"top":0.5088889,"width":0.027777778,"height":0.044444446},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Mute Stefka Stoyanova's microphone","depth":13,"bounds":{"left":0.7885417,"top":0.50666666,"width":0.030555556,"height":0.04888889},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"More options for Stefka Stoyanova","depth":13,"bounds":{"left":0.8190972,"top":0.5088889,"width":0.027777778,"height":0.044444446},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":17,"bounds":{"left":0.753125,"top":0.6205556,"width":0.088194445,"height":0.022777777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"2 others","depth":11,"bounds":{"left":0.87118053,"top":0.40888888,"width":0.11805555,"height":0.24444444},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"2 others","depth":13,"bounds":{"left":0.909375,"top":0.55722225,"width":0.041666668,"height":0.022777777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Pop out this video More screens are more fun. Play this video while you do other things.","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pop out this video","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"More screens are more fun. Play this video while you do other things.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"You’re continuously framed","depth":13,"bounds":{"left":0.82256943,"top":0.7644445,"width":0.030555556,"height":0.04888889},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Backgrounds and effects","depth":13,"bounds":{"left":0.853125,"top":0.7644445,"width":0.030555556,"height":0.04888889},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"More options for Lukas Kovalik","depth":13,"bounds":{"left":0.8836806,"top":0.76666665,"width":0.027777778,"height":0.044444446},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Lukas Kovalik","depth":17,"bounds":{"left":0.753125,"top":0.87833333,"width":0.06875,"height":0.022777777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Others might see more of your background. Click to view your full video.","depth":14,"bounds":{"left":0.96631944,"top":0.875,"width":0.018055556,"height":0.028888889},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"10:04","depth":12,"bounds":{"left":0.050347224,"top":0.9444444,"width":0.029513888,"height":0.022777777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"AM","depth":12,"bounds":{"left":0.083333336,"top":0.9444444,"width":0.017708333,"height":0.022777777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Daily - Platform","depth":12,"bounds":{"left":0.11840278,"top":0.9111111,"width":0.08090278,"height":0.08888888},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Daily - Platform","depth":15,"bounds":{"left":0.11840278,"top":0.9444444,"width":0.08090278,"height":0.022777777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Audio settings","depth":13,"bounds":{"left":0.32118055,"top":0.9288889,"width":0.06111111,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Turn off microphone","depth":13,"bounds":{"left":0.34895834,"top":0.9288889,"width":0.033333335,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":true,"is_selected":false},{"role":"AXButton","text":"Video settings","depth":13,"bounds":{"left":0.38784721,"top":0.9288889,"width":0.06111111,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Turn off camera","depth":13,"bounds":{"left":0.415625,"top":0.9288889,"width":0.033333335,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Nikolay Nikolov is presenting","depth":12,"bounds":{"left":0.45451388,"top":0.9288889,"width":0.03888889,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Send a reaction","depth":12,"bounds":{"left":0.49895832,"top":0.9288889,"width":0.03888889,"height":0.053333335},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Turn on captions","depth":13,"bounds":{"left":0.5434028,"top":0.9288889,"width":0.03888889,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Raise hand (ctrl + ⌘ + h)","depth":12,"bounds":{"left":0.58784723,"top":0.9288889,"width":0.03888889,"height":0.053333335},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"More options","depth":12,"bounds":{"left":0.6322917,"top":0.9288889,"width":0.025,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Leave call","depth":12,"bounds":{"left":0.6628472,"top":0.9288889,"width":0.05,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Meeting details","depth":12,"bounds":{"left":0.89166665,"top":0.9288889,"width":0.033333335,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Chat with everyone","depth":12,"bounds":{"left":0.925,"top":0.9288889,"width":0.033333335,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Meeting tools","depth":12,"bounds":{"left":0.9583333,"top":0.9288889,"width":0.033333335,"height":0.053333335},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Your microphone is on.","depth":8,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-9217377342110388166
|
-6416532991424922856
|
click
|
hybrid
|
NULL
|
Meet - Daily - Platform
Close tab
New Tab
Open Goo Meet - Daily - Platform
Close tab
New Tab
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Customize sidebar
Nikolay Nikolov (Presenting, annotating)
Nikolay Nikolov (Presenting, annotating)
People
7
Take notes with Gemini
Take notes with Gemini
Gemini
Gemini
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Unpin Nikolay Nikolov's presentation from your main screen
You can't unmute someone else's presentation
More options for Nikolay Nikolov
Zoom in
Open in new window
Enter Full Screen
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Pin Nikolay Nikolov to your main screen
Mute Nikolay Nikolov's microphone
More options for Nikolay Nikolov
Nikolay Nikolov
Pin Galya Dimitrova to your main screen
You can't unmute someone else
More options for Galya Dimitrova
Galya Dimitrova
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
Pin Stefka Stoyanova to your main screen
Mute Stefka Stoyanova's microphone
More options for Stefka Stoyanova
Stefka Stoyanova
2 others
2 others
Pop out this video More screens are more fun. Play this video while you do other things.
Pop out this video
More screens are more fun. Play this video while you do other things.
You’re continuously framed
Backgrounds and effects
More options for Lukas Kovalik
Lukas Kovalik
Others might see more of your background. Click to view your full video.
10:04
AM
Daily - Platform
Daily - Platform
Audio settings
Turn off microphone
Video settings
Turn off camera
Nikolay Nikolov is presenting
Send a reaction
Turn on captions
Raise hand (ctrl + ⌘ + h)
More options
Leave call
Meeting details
Chat with everyone
Meeting tools
Your microphone is on.
Firefox• 0FileEditViewHistory→BookmarksProfilesToolsWindowHelpmeet.google.com/agt-teir-cwt?authuser=lukas.kovalik%40jiminny.com•Daily - Platform - now100% K78 • Fri 24 Apr 9:46:13|=Pop out this videoNikolay NikolovStefka StoyanovaGalya DimitrovaLukas Kovalik9:46 AM | Daily - Platform• 0:27...
|
75896
|
|
18409
|
391
|
68
|
2026-04-14T16:16:01.672748+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776183361672_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
13033930/35toCastle Age--Villager Created--House B 13033930/35toCastle Age--Villager Created--House Built--Mini-mapThe mini-map shows the world at a smallerscale. Click the mini-map to go to thatlocation in the world.Scout Cavalrykovaliklnkas (Britons)T 0/236/454 Siddhraj Jaisingh: 1586/15866 Mindaugas: 1577/15775 Honorius: 1542/15428 Ashikaga Takauji: 1526/15261 kovaliklukas: 1449/14493 Bird Jaguar: 1447/1447 ®I7 Basil the Macedonian: 1314/1314 €₽ T02 Anccu Hualloc: 1277/1277...
|
NULL
|
-9217252974784888838
|
NULL
|
visual_change
|
ocr
|
NULL
|
13033930/35toCastle Age--Villager Created--House B 13033930/35toCastle Age--Villager Created--House Built--Mini-mapThe mini-map shows the world at a smallerscale. Click the mini-map to go to thatlocation in the world.Scout Cavalrykovaliklnkas (Britons)T 0/236/454 Siddhraj Jaisingh: 1586/15866 Mindaugas: 1577/15775 Honorius: 1542/15428 Ashikaga Takauji: 1526/15261 kovaliklukas: 1449/14493 Bird Jaguar: 1447/1447 ®I7 Basil the Macedonian: 1314/1314 €₽ T02 Anccu Hualloc: 1277/1277...
|
18407
|
|
21757
|
477
|
94
|
2026-04-15T10:18:20.657705+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776248300657_m2.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
18041912020021/25toDark AgeRight-click to forage f 18041912020021/25toDark AgeRight-click to forage for food. Build a Millnearby to gather food faster.1 kovaliklukas: 535/5356 Mindaugas: 531/5314 Siddhraj Jaisingh: 529/5293 Bird Jaguar: 520/5205 Honorius: 504/5042 Anccu Hualloc: 500/5008 Ashikaga Takauji: 479/4797 Basil the Macedonian: 476/476...
|
NULL
|
-9216829498677149118
|
NULL
|
visual_change
|
ocr
|
NULL
|
18041912020021/25toDark AgeRight-click to forage f 18041912020021/25toDark AgeRight-click to forage for food. Build a Millnearby to gather food faster.1 kovaliklukas: 535/5356 Mindaugas: 531/5314 Siddhraj Jaisingh: 529/5293 Bird Jaguar: 520/5205 Honorius: 504/5042 Anccu Hualloc: 500/5008 Ashikaga Takauji: 479/4797 Basil the Macedonian: 476/476...
|
NULL
|
|
62059
|
1335
|
79
|
2026-04-21T07:22:11.407233+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776756131407_m2.jpg...
|
Firefox
|
JY-20701 | Reschedule HubSpot Sync Objects by yalo JY-20701 | Reschedule HubSpot Sync Objects by yalokin-jiminny · Pull Request #11989 · jiminny/app — Work...
|
True
|
github.com/jiminny/app/pull/11989/changes#diff-a4d github.com/jiminny/app/pull/11989/changes#diff-a4d6898fb9e91bfcd80557141bb0e17c4698f41514ca09b8d04c7b44a370cf1f...
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
[JY-20676] Notify the user if a Panorama prompts is deleted but is used in AJ Report - Jira
[JY-20676] Notify the user if a Panorama prompts is deleted but is used in AJ Report - Jira
Jiminny Mail
Jiminny Mail
[JY-20500] Batch initial sync for Salesforce - Jira
[JY-20500] Batch initial sync for Salesforce - Jira
Feed — jiminny — Sentry
Feed — jiminny — Sentry
Jiminny
Jiminny
JY-20701 | Reschedule HubSpot Sync Objects by yalokin-jiminny · Pull Request #11989 · jiminny/app
JY-20701 | Reschedule HubSpot Sync Objects by yalokin-jiminny · Pull Request #11989 · jiminny/app
Close tab
Pipelines - jiminny/app
Pipelines - jiminny/app
New Tab
New Tab
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues(g then i)
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (31)
Pull requests
(
31
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality (21)
Security and quality
(
21
)
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20701 | Reschedule HubSpot Sync Objects #11989 Edit title
JY-20701 | Reschedule HubSpot Sync Objects
#
11989
Edit title
Preview
Preview
Awaiting approval
Awaiting approval
Code
Code
Open
yalokin-jiminny
yalokin-jiminny
wants to merge 22 commits into
master
master
from
JY-20701-reschedule-HubSpot-processing
JY-20701-reschedule-HubSpot-processing
Copy head branch name to clipboard
Lines changed: 949 additions & 97 deletions
Conversation (5)
Conversation
(
5
)
Commits (22)
Commits
(
22
)
Checks (3)
Checks
(
3
)
Files changed (11)
Files changed
(
11
)
Pull Request Toolbar
Pull Request Toolbar
Collapse file tree
Open
JY-20701 | Reschedule HubSpot Sync Objects
JY-20701 | Reschedule HubSpot Sync Objects
#
11989
All commits
All commits
yalokin-jiminny
yalokin-jiminny
wants to merge 22 commits into
master
master
from
JY-20701-reschedule-HubSpot-processing
JY-20701-reschedule-HubSpot-processing
Copy head branch name to clipboard
7
/
11
viewed
Awaiting approval
Awaiting approval
Submit review
Submit
review
Open diff view settings
Open overview panel
Open comments panel
(
0
)
Filter files…
Filter options
File tree
File tree
app
Console
Commands/Crm
Traits
SyncObjectsCommandTrait.php
SyncObjectsCommandTrait.php
SyncHubspotObjects.php
SyncHubspotObjects.php
SyncObjects.php
SyncObjects.php
Kernel.php
Kernel.php
Http/Controllers/Webhook/Hubspot
ProcessesWebhooksTrait.php
ProcessesWebhooksTrait.php
Jobs/Crm
SyncHubspotObjects.php
SyncHubspotObjects.php
SyncObjects.php
SyncObjects.php
Services/Crm/Hubspot/ServiceTraits
OpportunitySyncTrait.php
OpportunitySyncTrait.php
tests/Unit
Expand file
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php
Copy file name to clipboard
Lines changed: 81 additions & 0 deletions
Viewed
Viewed
Comment on this file
More options
Expand file
app/Console/Commands/Crm/SyncHubspotObjects.php
app/Console/Commands/Crm/SyncHubspotObjects.php
app/Console/Commands/Crm/SyncHubspotObjects.php
Copy file name to clipboard
Lines changed: 79 additions & 0 deletions
Viewed
Viewed
Comment on this file
More options
Expand file
app/Console/Commands/Crm/SyncObjects.php
app/Console/Commands/Crm/SyncObjects.php
app/Console/Commands/Crm/SyncObjects.php
Copy file name to clipboard
Lines changed: 41 additions & 36 deletions
Viewed
Viewed
Comment on this file
More options
Collapse file
app/Console/Kernel.php
app/Console/Kernel.php
app/Console/Kernel.php
Copy file name to clipboard
Expand all lines: app/Console/Kernel.php
Lines changed: 4 additions & 0 deletions
Viewed
Viewed
Comment on this file
More options
Original file line number
Original file line
Diff line number
Diff line change
@@ -133,6 +133,7 @@ class Kernel extends ConsoleKernel
133
Commands
\
Crm
\SyncProfileMetadata::class,
133
Commands
\
Crm
\SyncProfileMetadata::class,
134
Commands
\
Crm
\SyncContact::class,
134
Commands
\
Crm
\SyncContact::class,
135
Commands
\
Crm
\SyncObjects::class,
135
Commands
\
Crm
\SyncObjects::class,
136
+
Commands
\
Crm
\SyncHubspotObjects::class,
136
Commands
\
Crm
\SyncAccount::class,
137
Commands
\
Crm
\SyncAccount::class,
137
Commands
\
Crm
\ResetGovernorLimits::class,
138
Commands
\
Crm
\ResetGovernorLimits::class,
138
Commands
\
Crm
\ManageSyncStrategyCommand::class,
139
Commands
\
Crm
\ManageSyncStrategyCommand::class,
@@ -407,6 +408,9 @@ protected function scheduleEveryTwoMinutes(): void
407
protected
function
scheduleEveryFiveMinutes
():
void
408
protected
function
scheduleEveryFiveMinutes
():
void
408
{
409
{
409
$
this
->
scheduleCommand
(
'
activity:purge-stale
'
, [],
4
)->
everyFiveMinutes
();
410
$
this
->
scheduleCommand
(
'
activity:purge-stale
'
, [],
4
)->
everyFiveMinutes
();
411
+
// Offset by 1 minute to avoid overlap with crm:sync-objects (runs at :14 and :44)
412
+
$
this
->
scheduleCommand
(
'
crm:sync-hubspot-objects
'
, [],
4
)
413
+
->
cron
(
'
1,6,11,16,21,26,31,36,41,46,51,56 * * * *
'
);
410
$
this
->
scheduleCommand
(
'
mailbox:text-relay:sync
'
)->
everyFiveMinutes
();
414
$
this
->
scheduleCommand
(
'
mailbox:text-relay:sync
'
)->
everyFiveMinutes
();
411
$
this
->
scheduleCommand
(
'
conference:pre-meeting-notification
'
, [],
3
)->
everyFiveMinutes
();
415
$
this
->
scheduleCommand
(
'
conference:pre-meeting-notification
'
, [],
3
)->
everyFiveMinutes
();
412
$
this
->
scheduleCommand
(
'
conference:monitor:start
'
, expiresAt:
3
)->
everyFiveMinutes
();
416
$
this
->
scheduleCommand
(
'
conference:monitor:start
'
, expiresAt:
3
)->
everyFiveMinutes
();
Original file line number
@@ -133,6 +133,7 @@ class Kernel extends ConsoleKernel
133
134
135
136
137
138
@@ -407,6 +408,9 @@ protected function scheduleEveryTwoMinutes(): void
407
408
409
410
411
412
Original file line
@@ -133,6 +133,7 @@ class Kernel extends ConsoleKernel
Commands
\
Crm
\SyncProfileMetadata::class,
Commands
\
Crm
\SyncContact::class,
Commands
\
Crm
\SyncObjects::class,
Commands
\
Crm
\SyncAccount::class,
Commands
\
Crm
\ResetGovernorLimits::class,
Commands
\
Crm
\ManageSyncStrategyCommand::class,
@@ -407,6 +408,9 @@ protected function scheduleEveryTwoMinutes(): void
protected
function
scheduleEveryFiveMinutes
():
void
{
$
this
->
scheduleCommand
(
'
activity:purge-stale
'
, [],
4
)->
everyFiveMinutes
();
$
this
->
scheduleCommand
(
'
mailbox:text-relay:sync
'
)->
everyFiveMinutes
();
$
this
->
scheduleCommand
(
'
conference:pre-meeting-notification
'
, [],
3
)->
everyFiveMinutes
();
$
this
->
scheduleCommand
(
'
conference:monitor:start
'
, expiresAt:
3
)->
everyFiveMinutes
();
Diff line number
@@ -133,6 +133,7 @@ class Kernel extends ConsoleKernel
133
134
135
136
137
138
139
@@ -407,6 +408,9 @@ protected function scheduleEveryTwoMinutes(): void
408
409
410
411
412
413
414
415
416
Diff line change
@@ -133,6 +133,7 @@ class Kernel extends ConsoleKernel
Commands
\
Crm
\SyncProfileMetadata::class,
Commands
\
Crm
\SyncContact::class,
Commands
\
Crm
\SyncObjects::class,
+
Commands
\
Crm
\SyncHubspotObjects::class,
Commands
\
Crm
\SyncAccount::class,
Commands...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0018284575,"top":0.0518755,"width":0.07596409,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":4,"bounds":{"left":0.0,"top":0.09497207,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.10614525,"width":0.09524601,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6787] Issue with reconnecting Zoho - Jira","depth":4,"bounds":{"left":0.0,"top":0.12769353,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6787] Issue with reconnecting Zoho - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.13886672,"width":0.08344415,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.0,"top":0.16041501,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.013297873,"top":0.17158818,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20676] Notify the user if a Panorama prompts is deleted but is used in AJ Report - Jira","depth":4,"bounds":{"left":0.0,"top":0.19313647,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20676] Notify the user if a Panorama prompts is deleted but is used in AJ Report - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.20430966,"width":0.15791224,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny Mail","depth":4,"bounds":{"left":0.0,"top":0.22585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny Mail","depth":5,"bounds":{"left":0.013297873,"top":0.23703113,"width":0.02144282,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20500] Batch initial sync for Salesforce - Jira","depth":4,"bounds":{"left":0.0,"top":0.2585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20500] Batch initial sync for Salesforce - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.2697526,"width":0.08610372,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Feed — jiminny — Sentry","depth":4,"bounds":{"left":0.0,"top":0.29130086,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Feed — jiminny — Sentry","depth":5,"bounds":{"left":0.013297873,"top":0.30247405,"width":0.042719416,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.32402235,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.013297873,"top":0.33519554,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20701 | Reschedule HubSpot Sync Objects by yalokin-jiminny · Pull Request #11989 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.3567438,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"JY-20701 | Reschedule HubSpot Sync Objects by yalokin-jiminny · Pull Request #11989 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.367917,"width":0.1740359,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.06732048,"top":0.3639266,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.38946527,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.40063846,"width":0.039228722,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"New Tab","depth":4,"bounds":{"left":0.0,"top":0.42218676,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"New Tab","depth":5,"bounds":{"left":0.013297873,"top":0.43335995,"width":0.014960106,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Service-Desk - Queues - Platform team - Service space - Jira","depth":4,"bounds":{"left":0.0,"top":0.45490822,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Service-Desk - Queues - Platform team - Service space - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.4660814,"width":0.10721409,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.0028257978,"top":0.48922586,"width":0.07413564,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.0028257978,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.013796543,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.024933511,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.036070477,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.04720745,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"jiminny","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"jiminny","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"app","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues(g then i)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (31)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"31","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Wiki","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Wiki","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality (21)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"21","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Settings","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Settings","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"JY-20701 | Reschedule HubSpot Sync Objects #11989 Edit title","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-20701 | Reschedule HubSpot Sync Objects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"11989","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit title","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Preview","depth":13,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Preview","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Awaiting approval","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Awaiting approval","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":13,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Open","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"yalokin-jiminny","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"yalokin-jiminny","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"wants to merge 22 commits into","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"master","depth":15,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"master","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"from","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JY-20701-reschedule-HubSpot-processing","depth":16,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20701-reschedule-HubSpot-processing","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy head branch name to clipboard","depth":16,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Lines changed: 949 additions & 97 deletions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Conversation (5)","depth":16,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Conversation","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"5","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Commits (22)","depth":16,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"22","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Checks (3)","depth":16,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Checks","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Files changed (11)","depth":16,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Files changed","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"11","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Pull Request Toolbar","depth":14,"bounds":{"left":0.090259306,"top":0.07581804,"width":0.0003324468,"height":0.0007980846},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Pull Request Toolbar","depth":15,"bounds":{"left":0.090259306,"top":0.07861133,"width":0.030086435,"height":0.08060654},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Collapse file tree","depth":14,"bounds":{"left":0.090259306,"top":0.0650439,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"Open","depth":14,"bounds":{"left":0.112865694,"top":0.06943336,"width":0.011968086,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JY-20701 | Reschedule HubSpot Sync Objects","depth":14,"bounds":{"left":0.1314827,"top":0.058260176,"width":0.103390954,"height":0.016759777},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20701 | Reschedule HubSpot Sync Objects","depth":16,"bounds":{"left":0.1314827,"top":0.059856344,"width":0.103390954,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":15,"bounds":{"left":0.23753324,"top":0.059856344,"width":0.0028257978,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"11989","depth":15,"bounds":{"left":0.24035904,"top":0.059856344,"width":0.012965426,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"All commits","depth":14,"bounds":{"left":0.12882313,"top":0.07182761,"width":0.03374335,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"All commits","depth":16,"bounds":{"left":0.13181517,"top":0.07701516,"width":0.02244016,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"yalokin-jiminny","depth":15,"bounds":{"left":0.1668883,"top":0.07581804,"width":0.029920213,"height":0.014365523},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"yalokin-jiminny","depth":16,"bounds":{"left":0.1668883,"top":0.07701516,"width":0.029920213,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"wants to merge 22 commits into","depth":15,"bounds":{"left":0.1981383,"top":0.07701516,"width":0.060339097,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"master","depth":15,"bounds":{"left":0.25980717,"top":0.074221864,"width":0.018284574,"height":0.017557861},"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"master","depth":16,"bounds":{"left":0.26180187,"top":0.07741421,"width":0.014295213,"height":0.011572227},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"from","depth":16,"bounds":{"left":0.27942154,"top":0.07701516,"width":0.00880984,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JY-20701-reschedule-HubSpot-processing","depth":16,"bounds":{"left":0.28956118,"top":0.074221864,"width":0.09507979,"height":0.017557861},"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20701-reschedule-HubSpot-processing","depth":17,"bounds":{"left":0.29155585,"top":0.07741421,"width":0.091090426,"height":0.011572227},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy head branch name to clipboard","depth":16,"bounds":{"left":0.38597074,"top":0.07182761,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"7","depth":15,"bounds":{"left":0.8211436,"top":0.070231445,"width":0.0023271276,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":15,"bounds":{"left":0.8234708,"top":0.070231445,"width":0.0023271276,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"11","depth":15,"bounds":{"left":0.82696146,"top":0.070231445,"width":0.0038231383,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"viewed","depth":15,"bounds":{"left":0.83194816,"top":0.070231445,"width":0.013131649,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Awaiting approval","depth":14,"bounds":{"left":0.85339093,"top":0.0650439,"width":0.04654255,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Awaiting approval","depth":16,"bounds":{"left":0.8630319,"top":0.070231445,"width":0.033909574,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Submit review","depth":14,"bounds":{"left":0.9025931,"top":0.0650439,"width":0.03856383,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Submit","depth":16,"bounds":{"left":0.9055851,"top":0.070231445,"width":0.014793883,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"review","depth":16,"bounds":{"left":0.920379,"top":0.070231445,"width":0.012466756,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Open diff view settings","depth":14,"bounds":{"left":0.9438165,"top":0.0650439,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open overview panel","depth":14,"bounds":{"left":0.96143615,"top":0.0650439,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open comments panel","depth":14,"bounds":{"left":0.97207445,"top":0.0650439,"width":0.017287234,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"(","depth":16,"bounds":{"left":0.98038566,"top":0.070231445,"width":0.0026595744,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"bounds":{"left":0.9830452,"top":0.070231445,"width":0.0026595744,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":16,"bounds":{"left":0.9857048,"top":0.070231445,"width":0.0014960107,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Filter files…","depth":16,"bounds":{"left":0.1015625,"top":0.11332801,"width":0.06815159,"height":0.023942538},"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Filter options","depth":16,"bounds":{"left":0.17270611,"top":0.112529926,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"File tree","depth":15,"bounds":{"left":0.09059176,"top":0.15083799,"width":0.0003324468,"height":0.0007980846},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"File tree","depth":16,"bounds":{"left":0.09059176,"top":0.15363128,"width":0.014295213,"height":0.0518755},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app","depth":19,"bounds":{"left":0.1065492,"top":0.15682362,"width":0.008144947,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Console","depth":21,"bounds":{"left":0.10920878,"top":0.18276137,"width":0.017453458,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands/Crm","depth":23,"bounds":{"left":0.11186835,"top":0.20830008,"width":0.03474069,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Traits","depth":25,"bounds":{"left":0.114527926,"top":0.23383878,"width":0.011968086,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SyncObjectsCommandTrait.php","depth":27,"bounds":{"left":0.1171875,"top":0.25977653,"width":0.068317816,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SyncObjectsCommandTrait.php","depth":28,"bounds":{"left":0.1171875,"top":0.25977653,"width":0.068317816,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SyncHubspotObjects.php","depth":25,"bounds":{"left":0.114527926,"top":0.28531525,"width":0.05518617,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":26,"bounds":{"left":0.114527926,"top":0.28531525,"width":0.05518617,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SyncObjects.php","depth":25,"bounds":{"left":0.114527926,"top":0.31085396,"width":0.036901597,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SyncObjects.php","depth":26,"bounds":{"left":0.114527926,"top":0.31085396,"width":0.036901597,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Kernel.php","depth":23,"bounds":{"left":0.11186835,"top":0.33639267,"width":0.023271276,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Kernel.php","depth":24,"bounds":{"left":0.11186835,"top":0.33639267,"width":0.023271276,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Http/Controllers/Webhook/Hubspot","depth":21,"bounds":{"left":0.10920878,"top":0.36193135,"width":0.07579787,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"ProcessesWebhooksTrait.php","depth":23,"bounds":{"left":0.11186835,"top":0.38747007,"width":0.06333112,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"ProcessesWebhooksTrait.php","depth":24,"bounds":{"left":0.11186835,"top":0.38747007,"width":0.06333112,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jobs/Crm","depth":21,"bounds":{"left":0.10920878,"top":0.41300878,"width":0.020777926,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SyncHubspotObjects.php","depth":23,"bounds":{"left":0.11186835,"top":0.43894652,"width":0.05518617,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":24,"bounds":{"left":0.11186835,"top":0.43894652,"width":0.05518617,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SyncObjects.php","depth":23,"bounds":{"left":0.11186835,"top":0.46448523,"width":0.036901597,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SyncObjects.php","depth":24,"bounds":{"left":0.11186835,"top":0.46448523,"width":0.036901597,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Services/Crm/Hubspot/ServiceTraits","depth":21,"bounds":{"left":0.10920878,"top":0.49002394,"width":0.0774601,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"OpportunitySyncTrait.php","depth":23,"bounds":{"left":0.11186835,"top":0.51556265,"width":0.05518617,"height":0.013567438},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"OpportunitySyncTrait.php","depth":24,"bounds":{"left":0.11186835,"top":0.51556265,"width":0.05518617,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"tests/Unit","depth":19,"bounds":{"left":0.1065492,"top":0.54110134,"width":0.020777926,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Expand file","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy file name to clipboard","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Lines changed: 81 additions & 0 deletions","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Viewed","depth":14,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Viewed","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Comment on this file","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"More options","depth":14,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand file","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"app/Console/Commands/Crm/SyncHubspotObjects.php","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"app/Console/Commands/Crm/SyncHubspotObjects.php","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app/Console/Commands/Crm/SyncHubspotObjects.php","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy file name to clipboard","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Lines changed: 79 additions & 0 deletions","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Viewed","depth":14,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Viewed","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Comment on this file","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"More options","depth":14,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand file","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"app/Console/Commands/Crm/SyncObjects.php","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"app/Console/Commands/Crm/SyncObjects.php","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app/Console/Commands/Crm/SyncObjects.php","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy file name to clipboard","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Lines changed: 41 additions & 36 deletions","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Viewed","depth":14,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Viewed","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Comment on this file","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"More options","depth":14,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse file","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"app/Console/Kernel.php","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"app/Console/Kernel.php","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app/Console/Kernel.php","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy file name to clipboard","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Expand all lines: app/Console/Kernel.php","depth":15,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Lines changed: 4 additions & 0 deletions","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Viewed","depth":14,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Viewed","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Comment on this file","depth":14,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"More options","depth":14,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Original file line number","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Original file line","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Diff line number","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Diff line change","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"@@ -133,6 +133,7 @@ class Kernel extends ConsoleKernel","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"133","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncProfileMetadata::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"133","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncProfileMetadata::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"134","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncContact::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"134","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncContact::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"135","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncObjects::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"135","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncObjects::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"136","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncHubspotObjects::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"136","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncAccount::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"137","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncAccount::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"137","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\ResetGovernorLimits::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"138","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\ResetGovernorLimits::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"138","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\ManageSyncStrategyCommand::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"139","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\ManageSyncStrategyCommand::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"@@ -407,6 +408,9 @@ protected function scheduleEveryTwoMinutes(): void","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"407","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"protected","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"function","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleEveryFiveMinutes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"():","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"void","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"408","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"protected","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"function","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleEveryFiveMinutes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"():","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"void","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"408","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"409","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"409","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleCommand","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"activity:purge-stale","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", [],","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"everyFiveMinutes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"();","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"410","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleCommand","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"activity:purge-stale","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", [],","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"everyFiveMinutes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"();","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"411","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"// Offset by 1 minute to avoid overlap with crm:sync-objects (runs at :14 and :44)","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"412","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleCommand","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"crm:sync-hubspot-objects","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", [],","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"413","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cron","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1,6,11,16,21,26,31,36,41,46,51,56 * * * *","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":");","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"410","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleCommand","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mailbox:text-relay:sync","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"everyFiveMinutes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"();","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"414","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleCommand","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mailbox:text-relay:sync","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"everyFiveMinutes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"();","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"411","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleCommand","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"conference:pre-meeting-notification","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", [],","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"everyFiveMinutes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"();","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"415","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleCommand","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"conference:pre-meeting-notification","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", [],","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"everyFiveMinutes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"();","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"412","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleCommand","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"conference:monitor:start","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", expiresAt:","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"everyFiveMinutes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"();","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"416","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleCommand","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"conference:monitor:start","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", expiresAt:","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"everyFiveMinutes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"();","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Original file line number","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"@@ -133,6 +133,7 @@ class Kernel extends ConsoleKernel","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"133","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"134","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"135","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"136","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"137","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"138","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"@@ -407,6 +408,9 @@ protected function scheduleEveryTwoMinutes(): void","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"407","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"408","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"409","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"410","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"411","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"412","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Original file line","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"@@ -133,6 +133,7 @@ class Kernel extends ConsoleKernel","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncProfileMetadata::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncContact::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncObjects::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncAccount::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\ResetGovernorLimits::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\ManageSyncStrategyCommand::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"@@ -407,6 +408,9 @@ protected function scheduleEveryTwoMinutes(): void","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"protected","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"function","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleEveryFiveMinutes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"():","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"void","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleCommand","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"activity:purge-stale","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", [],","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"everyFiveMinutes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"();","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleCommand","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mailbox:text-relay:sync","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"everyFiveMinutes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"();","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleCommand","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"conference:pre-meeting-notification","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", [],","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"everyFiveMinutes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"();","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"scheduleCommand","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"conference:monitor:start","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", expiresAt:","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")->","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"everyFiveMinutes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"();","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Diff line number","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"@@ -133,6 +133,7 @@ class Kernel extends ConsoleKernel","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"133","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"134","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"135","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"136","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"137","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"138","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"139","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"@@ -407,6 +408,9 @@ protected function scheduleEveryTwoMinutes(): void","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"408","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"409","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"410","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"411","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"412","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"413","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"414","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"415","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"416","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Diff line change","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"@@ -133,6 +133,7 @@ class Kernel extends ConsoleKernel","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncProfileMetadata::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncContact::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncObjects::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"+","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncHubspotObjects::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Crm","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\\SyncAccount::class,","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Commands","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-9216096924582207861
|
-1062718584175697844
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
[SRD-6787] Issue with reconnecting Zoho - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
[JY-20676] Notify the user if a Panorama prompts is deleted but is used in AJ Report - Jira
[JY-20676] Notify the user if a Panorama prompts is deleted but is used in AJ Report - Jira
Jiminny Mail
Jiminny Mail
[JY-20500] Batch initial sync for Salesforce - Jira
[JY-20500] Batch initial sync for Salesforce - Jira
Feed — jiminny — Sentry
Feed — jiminny — Sentry
Jiminny
Jiminny
JY-20701 | Reschedule HubSpot Sync Objects by yalokin-jiminny · Pull Request #11989 · jiminny/app
JY-20701 | Reschedule HubSpot Sync Objects by yalokin-jiminny · Pull Request #11989 · jiminny/app
Close tab
Pipelines - jiminny/app
Pipelines - jiminny/app
New Tab
New Tab
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues(g then i)
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (31)
Pull requests
(
31
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality (21)
Security and quality
(
21
)
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20701 | Reschedule HubSpot Sync Objects #11989 Edit title
JY-20701 | Reschedule HubSpot Sync Objects
#
11989
Edit title
Preview
Preview
Awaiting approval
Awaiting approval
Code
Code
Open
yalokin-jiminny
yalokin-jiminny
wants to merge 22 commits into
master
master
from
JY-20701-reschedule-HubSpot-processing
JY-20701-reschedule-HubSpot-processing
Copy head branch name to clipboard
Lines changed: 949 additions & 97 deletions
Conversation (5)
Conversation
(
5
)
Commits (22)
Commits
(
22
)
Checks (3)
Checks
(
3
)
Files changed (11)
Files changed
(
11
)
Pull Request Toolbar
Pull Request Toolbar
Collapse file tree
Open
JY-20701 | Reschedule HubSpot Sync Objects
JY-20701 | Reschedule HubSpot Sync Objects
#
11989
All commits
All commits
yalokin-jiminny
yalokin-jiminny
wants to merge 22 commits into
master
master
from
JY-20701-reschedule-HubSpot-processing
JY-20701-reschedule-HubSpot-processing
Copy head branch name to clipboard
7
/
11
viewed
Awaiting approval
Awaiting approval
Submit review
Submit
review
Open diff view settings
Open overview panel
Open comments panel
(
0
)
Filter files…
Filter options
File tree
File tree
app
Console
Commands/Crm
Traits
SyncObjectsCommandTrait.php
SyncObjectsCommandTrait.php
SyncHubspotObjects.php
SyncHubspotObjects.php
SyncObjects.php
SyncObjects.php
Kernel.php
Kernel.php
Http/Controllers/Webhook/Hubspot
ProcessesWebhooksTrait.php
ProcessesWebhooksTrait.php
Jobs/Crm
SyncHubspotObjects.php
SyncHubspotObjects.php
SyncObjects.php
SyncObjects.php
Services/Crm/Hubspot/ServiceTraits
OpportunitySyncTrait.php
OpportunitySyncTrait.php
tests/Unit
Expand file
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php
Copy file name to clipboard
Lines changed: 81 additions & 0 deletions
Viewed
Viewed
Comment on this file
More options
Expand file
app/Console/Commands/Crm/SyncHubspotObjects.php
app/Console/Commands/Crm/SyncHubspotObjects.php
app/Console/Commands/Crm/SyncHubspotObjects.php
Copy file name to clipboard
Lines changed: 79 additions & 0 deletions
Viewed
Viewed
Comment on this file
More options
Expand file
app/Console/Commands/Crm/SyncObjects.php
app/Console/Commands/Crm/SyncObjects.php
app/Console/Commands/Crm/SyncObjects.php
Copy file name to clipboard
Lines changed: 41 additions & 36 deletions
Viewed
Viewed
Comment on this file
More options
Collapse file
app/Console/Kernel.php
app/Console/Kernel.php
app/Console/Kernel.php
Copy file name to clipboard
Expand all lines: app/Console/Kernel.php
Lines changed: 4 additions & 0 deletions
Viewed
Viewed
Comment on this file
More options
Original file line number
Original file line
Diff line number
Diff line change
@@ -133,6 +133,7 @@ class Kernel extends ConsoleKernel
133
Commands
\
Crm
\SyncProfileMetadata::class,
133
Commands
\
Crm
\SyncProfileMetadata::class,
134
Commands
\
Crm
\SyncContact::class,
134
Commands
\
Crm
\SyncContact::class,
135
Commands
\
Crm
\SyncObjects::class,
135
Commands
\
Crm
\SyncObjects::class,
136
+
Commands
\
Crm
\SyncHubspotObjects::class,
136
Commands
\
Crm
\SyncAccount::class,
137
Commands
\
Crm
\SyncAccount::class,
137
Commands
\
Crm
\ResetGovernorLimits::class,
138
Commands
\
Crm
\ResetGovernorLimits::class,
138
Commands
\
Crm
\ManageSyncStrategyCommand::class,
139
Commands
\
Crm
\ManageSyncStrategyCommand::class,
@@ -407,6 +408,9 @@ protected function scheduleEveryTwoMinutes(): void
407
protected
function
scheduleEveryFiveMinutes
():
void
408
protected
function
scheduleEveryFiveMinutes
():
void
408
{
409
{
409
$
this
->
scheduleCommand
(
'
activity:purge-stale
'
, [],
4
)->
everyFiveMinutes
();
410
$
this
->
scheduleCommand
(
'
activity:purge-stale
'
, [],
4
)->
everyFiveMinutes
();
411
+
// Offset by 1 minute to avoid overlap with crm:sync-objects (runs at :14 and :44)
412
+
$
this
->
scheduleCommand
(
'
crm:sync-hubspot-objects
'
, [],
4
)
413
+
->
cron
(
'
1,6,11,16,21,26,31,36,41,46,51,56 * * * *
'
);
410
$
this
->
scheduleCommand
(
'
mailbox:text-relay:sync
'
)->
everyFiveMinutes
();
414
$
this
->
scheduleCommand
(
'
mailbox:text-relay:sync
'
)->
everyFiveMinutes
();
411
$
this
->
scheduleCommand
(
'
conference:pre-meeting-notification
'
, [],
3
)->
everyFiveMinutes
();
415
$
this
->
scheduleCommand
(
'
conference:pre-meeting-notification
'
, [],
3
)->
everyFiveMinutes
();
412
$
this
->
scheduleCommand
(
'
conference:monitor:start
'
, expiresAt:
3
)->
everyFiveMinutes
();
416
$
this
->
scheduleCommand
(
'
conference:monitor:start
'
, expiresAt:
3
)->
everyFiveMinutes
();
Original file line number
@@ -133,6 +133,7 @@ class Kernel extends ConsoleKernel
133
134
135
136
137
138
@@ -407,6 +408,9 @@ protected function scheduleEveryTwoMinutes(): void
407
408
409
410
411
412
Original file line
@@ -133,6 +133,7 @@ class Kernel extends ConsoleKernel
Commands
\
Crm
\SyncProfileMetadata::class,
Commands
\
Crm
\SyncContact::class,
Commands
\
Crm
\SyncObjects::class,
Commands
\
Crm
\SyncAccount::class,
Commands
\
Crm
\ResetGovernorLimits::class,
Commands
\
Crm
\ManageSyncStrategyCommand::class,
@@ -407,6 +408,9 @@ protected function scheduleEveryTwoMinutes(): void
protected
function
scheduleEveryFiveMinutes
():
void
{
$
this
->
scheduleCommand
(
'
activity:purge-stale
'
, [],
4
)->
everyFiveMinutes
();
$
this
->
scheduleCommand
(
'
mailbox:text-relay:sync
'
)->
everyFiveMinutes
();
$
this
->
scheduleCommand
(
'
conference:pre-meeting-notification
'
, [],
3
)->
everyFiveMinutes
();
$
this
->
scheduleCommand
(
'
conference:monitor:start
'
, expiresAt:
3
)->
everyFiveMinutes
();
Diff line number
@@ -133,6 +133,7 @@ class Kernel extends ConsoleKernel
133
134
135
136
137
138
139
@@ -407,6 +408,9 @@ protected function scheduleEveryTwoMinutes(): void
408
409
410
411
412
413
414
415
416
Diff line change
@@ -133,6 +133,7 @@ class Kernel extends ConsoleKernel
Commands
\
Crm
\SyncProfileMetadata::class,
Commands
\
Crm
\SyncContact::class,
Commands
\
Crm
\SyncObjects::class,
+
Commands
\
Crm
\SyncHubspotObjects::class,
Commands
\
Crm
\SyncAccount::class,
Commands...
|
62057
|
|
45091
|
951
|
23
|
2026-04-17T09:19:55.689198+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776417595689_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpmeet.google.com/xpx-omah-rknllian Kyuchukov (Presenting, annotating)‹$0• Support Daily • in 2h 41 m100% <478 • Fri 17 Apr 12:19:556+4CloudWatch | eu-west-1CloudWatch | eu-west-1CloudWatch|eu-west-1logs insights | CloudWatcheu-west-1.console.aws.amazon.com/cloudwatch/home?region=eu-west-1#logsV2:logs-insightsS3FqueryDetails3D-(end-*2026-04-17T07*3a12*3a59.000Z-start-*2026-04-17T07*3a09*3a00...awsQ Search© Ask Amazon Q58029758241410MoudweteLogs Insights > _generalQuery definition intsQueriesa unified observabllity platform for a smoother experience, now in preview mode. Click here to try it out!2026-04-17T07:09:002026-04-17707:12:59UTC timezoneSaved queries• Fniter ty query nomdlQuery scopeTUUYCIY SEICLIOLog group nameSelect up to 50 log groupsBrowse: Log GroupsFacetsLookup tablesCreate queryCicar all7657201997114Show more chosen log groups (+29)Yields etimestang, @message, @logstream, etog1 filter @nessage Like ^2110972e-0ef)-405f-bcd8-cDfc44f98465*|1 Linit 10000|% Query generatorQ Fields• Saved and sample queries© Query commandsRun queryUpdate saved queryl© Completed. Query executed for 30 log groups. OLogs (579)Patterns (58)VisualizationLogs (579)' Summarize results, InvestigateÖ Share resuliExport resultsAdd to dashboardShowing 579 of 579 records matched ©128,078 records (36.5 MB) scanned in 6.8s @ 18,727 records/s (5.5 MB/s)|E CoudShellFeedback• Calendar (1)• CleandDB (20)|• CRM (12)• Dialers (19)• Emo (Activity Logs) (1)• Maits (1) |• Notetaker (31) |• Nudge (1)• Ogi (2)• Pipedrive (4)• Processing (4)• Prophet (1)• Recall (1) |• Summary (15)• Tomov (4)|_general - CWLI • +|_Social Account Status logs - CWU +|OB Errors - CWL +|Ouplicated track event - CWL +© 2026, Amazon Web Services, Inc. or its affilates.PivacyTerms12:19 PM 1Daily - Processing• Q 88• Fri17 Apr 12:19.Finish update :CU.View_Only©.765720199711Leam more tllian KyuchukovNikolay Nikolov000Vasil VasilevMihail MihaylovCookde preferencesLukas Kovalik...
|
NULL
|
-9215853128759524401
|
NULL
|
click
|
ocr
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpmeet.google.com/xpx-omah-rknllian Kyuchukov (Presenting, annotating)‹$0• Support Daily • in 2h 41 m100% <478 • Fri 17 Apr 12:19:556+4CloudWatch | eu-west-1CloudWatch | eu-west-1CloudWatch|eu-west-1logs insights | CloudWatcheu-west-1.console.aws.amazon.com/cloudwatch/home?region=eu-west-1#logsV2:logs-insightsS3FqueryDetails3D-(end-*2026-04-17T07*3a12*3a59.000Z-start-*2026-04-17T07*3a09*3a00...awsQ Search© Ask Amazon Q58029758241410MoudweteLogs Insights > _generalQuery definition intsQueriesa unified observabllity platform for a smoother experience, now in preview mode. Click here to try it out!2026-04-17T07:09:002026-04-17707:12:59UTC timezoneSaved queries• Fniter ty query nomdlQuery scopeTUUYCIY SEICLIOLog group nameSelect up to 50 log groupsBrowse: Log GroupsFacetsLookup tablesCreate queryCicar all7657201997114Show more chosen log groups (+29)Yields etimestang, @message, @logstream, etog1 filter @nessage Like ^2110972e-0ef)-405f-bcd8-cDfc44f98465*|1 Linit 10000|% Query generatorQ Fields• Saved and sample queries© Query commandsRun queryUpdate saved queryl© Completed. Query executed for 30 log groups. OLogs (579)Patterns (58)VisualizationLogs (579)' Summarize results, InvestigateÖ Share resuliExport resultsAdd to dashboardShowing 579 of 579 records matched ©128,078 records (36.5 MB) scanned in 6.8s @ 18,727 records/s (5.5 MB/s)|E CoudShellFeedback• Calendar (1)• CleandDB (20)|• CRM (12)• Dialers (19)• Emo (Activity Logs) (1)• Maits (1) |• Notetaker (31) |• Nudge (1)• Ogi (2)• Pipedrive (4)• Processing (4)• Prophet (1)• Recall (1) |• Summary (15)• Tomov (4)|_general - CWLI • +|_Social Account Status logs - CWU +|OB Errors - CWL +|Ouplicated track event - CWL +© 2026, Amazon Web Services, Inc. or its affilates.PivacyTerms12:19 PM 1Daily - Processing• Q 88• Fri17 Apr 12:19.Finish update :CU.View_Only©.765720199711Leam more tllian KyuchukovNikolay Nikolov000Vasil VasilevMihail MihaylovCookde preferencesLukas Kovalik...
|
NULL
|
|
59861
|
1291
|
3
|
2026-04-20T14:13:03.796855+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776694383796_m2.jpg...
|
Slack
|
Slack
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
SlackActivityLateMoreVIewmistonWindowJiminny ...→D SlackActivityLateMoreVIewmistonWindowJiminny ...→Drattc& contTMore unreads8 DieuurelEb External connections& Starred@ liminny-x-integrati...=nlatform-inner-teamE Channels# ai-chapter# alertsS hackendi# confusion-clinica curiosiiy ao# engineering# frontend# general# infra-changesa liminny-bg# platform-tickets# product launches" random# releases# support# thank-yous# the people of iimi..6? Direct messages2. Nikolay NikolovR Aneliva AngelovaGalva DimitrovaM Stefkn StovanovalStovan Tomov3 Aneliva Angelova, ...* Stoyan TanevVasil VasilevNikolay lvanoval Ves:: Apps• ToastiSf lira GloudHeld@ Search: shared-activiw Nkolay Nikolov• Messagesr FilesTodayLukas Kovalik 5:02 PMно като цяло на края както говорихме просто навсякьде кьдето се ползва сега тoгеaсh пропоресь ще го чьнкнем и по доо пратим ооNikolay Nikolov 5:03 PMManual commands (crm:sync-contact --from=...)пои тия 4 нямаме бaчовeи не знаех че zа усер профил се има предввид в задачатамислих че има svnc crm from .... и за всичкотова малко ме ооъоква за useralLukas Kovalik 5:05 PMna no pronleNikolay Nikolov 5:05 PMмислих, че синкваме всички obpornunines на customenLukas Kovalik 5:06 PMпри зохо датам няма remore search и реално всичко си дьопаме пои насNikolay Nikolov 5:08 PMеми тя стеока каза нешо Learning реорlе - те не са ли зохоако стане бързо, може да пробваме и 4те рьчни команди да добавим и тях, не само userOpportunities .Lukas Kovallk 5:10 PMне знам малко ми се стори излично при нас да пазим всичко ако няма да ни трябваа чакай комнали аз чета компании.Nikolay Nikolov 5:11 PMcrm.svnc-contact. crm.svnc-account .Lukas Kovalik 5:11 PMно отговой е сьшия , като шяло беше замислено ла имаме само това с което работимNikolay Nikolov 5:11 PMа ла, нали работи сегаNaus vavbs na cA anAмquaмото имаше няква идея за това да е с ID6- Lukas Kovalik 5:12 PMзащото има много данни което не ни трябва за трява при syncContacts например прескачаме всико което не е при нM9 4Nikolav Nikolov 5.12 PMако яма от jurnala сьщо упдейти по тая сделка ..Message Nikolav Nikolov+ Дạ.- New4 HS_local [jiminny@localhost]« console [PROD] X& console (Euldo jiminnyUTaLLUI LU E 995555,034 A1 A34 M62 ^m. 581, ar. 15440, 01. 3911, act. Field 162182d THEN " Cowner' ELSE" END) AS USer 1d"lesforce';er by id desc;0 = 40%54: # 4fdd41f6-dcf0-30d0-b339-7345381b6044 ["pdf" "podcast"]RE uuid_to_bin('822fa41b-afd3-43a9-a248-86b0e36f3131') = uuid;en ov no descRE id = 1919;PE report id = 54349:•$111. 692.16067-1iminnvinteorationdlesmils.com; # event 226147lybook_id = 5515;'ation_id = 692 and object_type = 'event':eld 1d = 2261471Id THEN ' (owner)' ELSE '* END) AS user id.llestorce'*1.n<->1: on u.id = co.user id WHERE u.team_id = 711100% LMon 20 Apr 17:13:03CascadeRetactor ConnectionCRM Initial Sync Oven+O •• CrmAccountReconnected → Listeners\Crm\ImportMetadata (ImportMetadata.php:13-51) runs the artisan commands crm: sync-team-metadataand crm:sunc-orofile-metadata.•Syncleametadata (Synclealmetadaca. pnp:ys-114) runs the neavy tning tor huospot/salestorce.•syncorganzzacion() - e.g. muospot service.php:40/-498 (pulis portal currency), salestorce does the equivalent• importStageso, importBusinessProcesses. importRecordTypes - pipelines/stages + record types (HubSpot: Service.pho:414-48syncProfiles() - creates Crm\Profile rows for each CRM user that matches a Jiminny team member. Hubspot: Service. php:505-556uses cllent→>getowners() + Pror1lerepos1tory::updateorcreateProrile.salestorce: service.php: 3059-3134 SoeL users querymarks Liahtnina/Classic edition. archives inactive)•syncrields() — custom/standard tield schema.3. ProfileCreated - per-user initial data sync (opportunities / leads)Every time syncProfiles() (Hubspot or Salesforce) calls ProfileRepository::update0rCreateProfile(...) and a new Crm\Profile row isinserted, Prot1leubserver.php:12-15 tires Protilecreated.EventServiceProvider.oho: 139-142 subscribes two listeners:• Listeners\Crm|SvncProfile0pportunities (SvncProfileOpportunities.oho:42-103) — apolies to HubSpot. Salesforce, Bullhorn. Cooper.Pipedrive, Zoho. For each new profile it:1. Dispatches SyncProfileMetadata (see below).2. Ensures a Deal Insights layout exists (createDealInsightsLayoutIfDoesNotExist, lines 105-146) via CrmOwnerResolver + buildLayout .3. Computes since = configurationSettingsService->getSyncPeriod(ScrmConfiguration).4. Dispatches SyncOpportunitieslob with strateay LAST MODIFIED BY PROFILE SYNC OPPORTUNITY STRATEGY , either as a sinale iob or. when requ1ressl1dingwindowsearch is true salestorce large tenants, chopped into rolling s/-day windows via Timeper1oditerator• Listeners Crm.SyncProf1leleadsSyncProt1leLeads.php:32-/9) - 40ho-onlv: dispatches Suncleads . Hubspot salestorce do not run aper-protlle lead sync nere,SyncProfileMetadata (SyncProfileMetadata.php: 39-113) - runs per profile/user: crmService->syncProfileFields() ; and for providersimplementing SyncCrmProfileRecordTypesInterface (Salesforce) it also calls syncProfileRecordTypes() .End-to-end tlow summary• HuhSnot•Team creation → no CRM sync.• Owner connects HubSpot OAuth ( SocialAccountConnected ) → no automatic data import (HubSpot's onActivityProviderIntegrated is ano-op; BootstrapIntegrationApp only fires for Integration.app providers). Initial metadata is typically triggered via CrmAccountReconnected ImoortMetadata → crm:svnc-team-metadata which in turn runs suncoroanization imoortStages • importBusinessProcesses simortRecordTypes syncProfiles syncFields.• svncProfiles() creates Profiile rows → ProfileCreated → SvncProfile0oportunities (creates Deal Insiahts lavout + dispatches SvncOpportunitiesJob with the profile-modified strategy) + SyncProfileMetadata (syncs that user's profile fields).•Salesforce•Team creation → onlv the optional Salesforce Account stamo in UodateSalesforceAccount if a linked account exists•Same reconnect-driven metadata path: SyncTeamMetadata → syncOrganization/importStages/importBusinessProcesses/importRecordTypes/svncProfiles/svncFieldsSalestorce imolementations.in Service.ono.•syncProfiles() SOQL-matches team members, creating Profile rows with edition + crm profile id ProfileCreated → SyncProfiluses TimePeriodIterator slidina window to avoid SOOL limits) + SvncProfileMetadata which also runs svncProfileRecordTypes() because Salesforce implements SyncCrmProfileRecordTypesInterface.Notohla chcoruotinne< CodeClaude Qnus 17 Medium172-21Po 4 st...
|
NULL
|
-9215526807243513914
|
NULL
|
click
|
ocr
|
NULL
|
SlackActivityLateMoreVIewmistonWindowJiminny ...→D SlackActivityLateMoreVIewmistonWindowJiminny ...→Drattc& contTMore unreads8 DieuurelEb External connections& Starred@ liminny-x-integrati...=nlatform-inner-teamE Channels# ai-chapter# alertsS hackendi# confusion-clinica curiosiiy ao# engineering# frontend# general# infra-changesa liminny-bg# platform-tickets# product launches" random# releases# support# thank-yous# the people of iimi..6? Direct messages2. Nikolay NikolovR Aneliva AngelovaGalva DimitrovaM Stefkn StovanovalStovan Tomov3 Aneliva Angelova, ...* Stoyan TanevVasil VasilevNikolay lvanoval Ves:: Apps• ToastiSf lira GloudHeld@ Search: shared-activiw Nkolay Nikolov• Messagesr FilesTodayLukas Kovalik 5:02 PMно като цяло на края както говорихме просто навсякьде кьдето се ползва сега тoгеaсh пропоресь ще го чьнкнем и по доо пратим ооNikolay Nikolov 5:03 PMManual commands (crm:sync-contact --from=...)пои тия 4 нямаме бaчовeи не знаех че zа усер профил се има предввид в задачатамислих че има svnc crm from .... и за всичкотова малко ме ооъоква за useralLukas Kovalik 5:05 PMna no pronleNikolay Nikolov 5:05 PMмислих, че синкваме всички obpornunines на customenLukas Kovalik 5:06 PMпри зохо датам няма remore search и реално всичко си дьопаме пои насNikolay Nikolov 5:08 PMеми тя стеока каза нешо Learning реорlе - те не са ли зохоако стане бързо, може да пробваме и 4те рьчни команди да добавим и тях, не само userOpportunities .Lukas Kovallk 5:10 PMне знам малко ми се стори излично при нас да пазим всичко ако няма да ни трябваа чакай комнали аз чета компании.Nikolay Nikolov 5:11 PMcrm.svnc-contact. crm.svnc-account .Lukas Kovalik 5:11 PMно отговой е сьшия , като шяло беше замислено ла имаме само това с което работимNikolay Nikolov 5:11 PMа ла, нали работи сегаNaus vavbs na cA anAмquaмото имаше няква идея за това да е с ID6- Lukas Kovalik 5:12 PMзащото има много данни което не ни трябва за трява при syncContacts например прескачаме всико което не е при нM9 4Nikolav Nikolov 5.12 PMако яма от jurnala сьщо упдейти по тая сделка ..Message Nikolav Nikolov+ Дạ.- New4 HS_local [jiminny@localhost]« console [PROD] X& console (Euldo jiminnyUTaLLUI LU E 995555,034 A1 A34 M62 ^m. 581, ar. 15440, 01. 3911, act. Field 162182d THEN " Cowner' ELSE" END) AS USer 1d"lesforce';er by id desc;0 = 40%54: # 4fdd41f6-dcf0-30d0-b339-7345381b6044 ["pdf" "podcast"]RE uuid_to_bin('822fa41b-afd3-43a9-a248-86b0e36f3131') = uuid;en ov no descRE id = 1919;PE report id = 54349:•$111. 692.16067-1iminnvinteorationdlesmils.com; # event 226147lybook_id = 5515;'ation_id = 692 and object_type = 'event':eld 1d = 2261471Id THEN ' (owner)' ELSE '* END) AS user id.llestorce'*1.n<->1: on u.id = co.user id WHERE u.team_id = 711100% LMon 20 Apr 17:13:03CascadeRetactor ConnectionCRM Initial Sync Oven+O •• CrmAccountReconnected → Listeners\Crm\ImportMetadata (ImportMetadata.php:13-51) runs the artisan commands crm: sync-team-metadataand crm:sunc-orofile-metadata.•Syncleametadata (Synclealmetadaca. pnp:ys-114) runs the neavy tning tor huospot/salestorce.•syncorganzzacion() - e.g. muospot service.php:40/-498 (pulis portal currency), salestorce does the equivalent• importStageso, importBusinessProcesses. importRecordTypes - pipelines/stages + record types (HubSpot: Service.pho:414-48syncProfiles() - creates Crm\Profile rows for each CRM user that matches a Jiminny team member. Hubspot: Service. php:505-556uses cllent→>getowners() + Pror1lerepos1tory::updateorcreateProrile.salestorce: service.php: 3059-3134 SoeL users querymarks Liahtnina/Classic edition. archives inactive)•syncrields() — custom/standard tield schema.3. ProfileCreated - per-user initial data sync (opportunities / leads)Every time syncProfiles() (Hubspot or Salesforce) calls ProfileRepository::update0rCreateProfile(...) and a new Crm\Profile row isinserted, Prot1leubserver.php:12-15 tires Protilecreated.EventServiceProvider.oho: 139-142 subscribes two listeners:• Listeners\Crm|SvncProfile0pportunities (SvncProfileOpportunities.oho:42-103) — apolies to HubSpot. Salesforce, Bullhorn. Cooper.Pipedrive, Zoho. For each new profile it:1. Dispatches SyncProfileMetadata (see below).2. Ensures a Deal Insights layout exists (createDealInsightsLayoutIfDoesNotExist, lines 105-146) via CrmOwnerResolver + buildLayout .3. Computes since = configurationSettingsService->getSyncPeriod(ScrmConfiguration).4. Dispatches SyncOpportunitieslob with strateay LAST MODIFIED BY PROFILE SYNC OPPORTUNITY STRATEGY , either as a sinale iob or. when requ1ressl1dingwindowsearch is true salestorce large tenants, chopped into rolling s/-day windows via Timeper1oditerator• Listeners Crm.SyncProf1leleadsSyncProt1leLeads.php:32-/9) - 40ho-onlv: dispatches Suncleads . Hubspot salestorce do not run aper-protlle lead sync nere,SyncProfileMetadata (SyncProfileMetadata.php: 39-113) - runs per profile/user: crmService->syncProfileFields() ; and for providersimplementing SyncCrmProfileRecordTypesInterface (Salesforce) it also calls syncProfileRecordTypes() .End-to-end tlow summary• HuhSnot•Team creation → no CRM sync.• Owner connects HubSpot OAuth ( SocialAccountConnected ) → no automatic data import (HubSpot's onActivityProviderIntegrated is ano-op; BootstrapIntegrationApp only fires for Integration.app providers). Initial metadata is typically triggered via CrmAccountReconnected ImoortMetadata → crm:svnc-team-metadata which in turn runs suncoroanization imoortStages • importBusinessProcesses simortRecordTypes syncProfiles syncFields.• svncProfiles() creates Profiile rows → ProfileCreated → SvncProfile0oportunities (creates Deal Insiahts lavout + dispatches SvncOpportunitiesJob with the profile-modified strategy) + SyncProfileMetadata (syncs that user's profile fields).•Salesforce•Team creation → onlv the optional Salesforce Account stamo in UodateSalesforceAccount if a linked account exists•Same reconnect-driven metadata path: SyncTeamMetadata → syncOrganization/importStages/importBusinessProcesses/importRecordTypes/svncProfiles/svncFieldsSalestorce imolementations.in Service.ono.•syncProfiles() SOQL-matches team members, creating Profile rows with edition + crm profile id ProfileCreated → SyncProfiluses TimePeriodIterator slidina window to avoid SOOL limits) + SvncProfileMetadata which also runs svncProfileRecordTypes() because Salesforce implements SyncCrmProfileRecordTypesInterface.Notohla chcoruotinne< CodeClaude Qnus 17 Medium172-21Po 4 st...
|
NULL
|
|
5978
|
109
|
34
|
2026-04-13T13:34:27.079890+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-13/1776 /Users/lukas/.screenpipe/data/data/2026-04-13/1776087267079_m1.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelplab|* Unable to access screenpipe activity dataDOCKERO $1DEV (-zsh)O 882APP (-zsh)• *3-zsh84-zsh• 25-zsh86-zsh®Bash(curl -s "http://localhost:3030/search?content_type=ocr&start_time=2026-04-11T00:00:00Z&end_time=2026-04-13T23:59:59Z&limit=5000&offset=0"im..)L Running..100% [RMon 13 Apr 16:34:261812>&1O 87python3* Unable to access s...-с "sash commandcurl-s "http://localhost:3030/search?content_type=ocr&start_time=2026-04-11T00:00:00Z&end_time=2026-04-13T23:59:59Z&limit=5000&offset=0"import json, sysfrom collections import defaultdictdata = json.load(sys.stdin)items = data.get('data', [])apps = defaultdict(int)windows = defaultdict(int)for item in items:c = item.get('content', (})app = c.get('app_name'"Unknown") orwindow = C.get('window_name', ""S or Unknown'apps[app] += 1if window:windows [f'[{app}] {window}'] += 1print(f'Total frames: {len(items)}')printOprint('=== Apps (frames) ===')for app, count in sorted(apps.items(), key=lambda x: -x[1]):print(f'{app}: {count}')printOprint('=== Top Windows ===')for w, count in sorted(windows.items(), key=lambda x: -x[1])[:25]:print(f' {count:4d}x {w[:110]}')" 2>81Run shell commando you want to proceed?• 1.Yes2.Yes, and don't ask again for similar commands in /Users/lukas3. Noisc to cancel • Tab to amend• ctrl+e to explainpython3 -c"...
|
NULL
|
-9215503842933244759
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelplab|* Unable to access screenpipe activity dataDOCKERO $1DEV (-zsh)O 882APP (-zsh)• *3-zsh84-zsh• 25-zsh86-zsh®Bash(curl -s "http://localhost:3030/search?content_type=ocr&start_time=2026-04-11T00:00:00Z&end_time=2026-04-13T23:59:59Z&limit=5000&offset=0"im..)L Running..100% [RMon 13 Apr 16:34:261812>&1O 87python3* Unable to access s...-с "sash commandcurl-s "http://localhost:3030/search?content_type=ocr&start_time=2026-04-11T00:00:00Z&end_time=2026-04-13T23:59:59Z&limit=5000&offset=0"import json, sysfrom collections import defaultdictdata = json.load(sys.stdin)items = data.get('data', [])apps = defaultdict(int)windows = defaultdict(int)for item in items:c = item.get('content', (})app = c.get('app_name'"Unknown") orwindow = C.get('window_name', ""S or Unknown'apps[app] += 1if window:windows [f'[{app}] {window}'] += 1print(f'Total frames: {len(items)}')printOprint('=== Apps (frames) ===')for app, count in sorted(apps.items(), key=lambda x: -x[1]):print(f'{app}: {count}')printOprint('=== Top Windows ===')for w, count in sorted(windows.items(), key=lambda x: -x[1])[:25]:print(f' {count:4d}x {w[:110]}')" 2>81Run shell commando you want to proceed?• 1.Yes2.Yes, and don't ask again for similar commands in /Users/lukas3. Noisc to cancel • Tab to amend• ctrl+e to explainpython3 -c"...
|
5977
|
|
1407
|
31
|
0
|
2026-04-11T17:26:06.185206+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775928366185_m1.jpg...
|
Code
|
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Cannot reconnect. Please reload the window.","depth":1,"automation_id":"_NS:78","role_description":"text"},{"role":"AXButton","text":"Reload Window","depth":1,"automation_id":"action-button--999","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Cancel","depth":1,"automation_id":"action-button--998","role_description":"button","is_enabled":true,"is_focused":true}]...
|
-9215443531147982391
|
7852115060714784816
|
manual
|
hybrid
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel
iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zshDOCKER• 881vad enginedata directorydebug modetelemetryuse pii removaluse all monitorsignored windowsincluded windowscloud syncauto-destruct piddeepgram keyLanguagesmonitorsaudio devicesDEV (-zsh)О 82Silero/Users/lukas/.screenpipefalsetruetruetruedisablednot setall languagesAPP (-zsh)• *3-zsh• ×4-zsh• ₴5|$0(ahl-zsh886-zsh100% <7O 87Sat 11 Apr 20:26:06-zshT81• *8|no monitors availabledisabledyou are using local processing. all your data stays on your computer.warning: telemetry isenabled. onlyerror-levelto disable, usethe --disable-telemetry flag.data will be sent.check latestchanges here:https://github.com/screenpipe/screenpipe/releases2026-04-11T20:26:05.348501ZINFOscreenpipe_core::pipes:pipe scheduler started (generation 2)2026-04-11T20:26:05.348754ZINFOscreenpipe:starting UIevent capture2026-04-11T20:26:05.353656ZWARNscreenpipe:piagent install failed: bun not found - install from https://bun.sh2026-04-11T20:26:05.3585402INFOscreenpipe_engine::power::manager:initial power profile: Performance2026-04-11T20:26:05.363864ZINFO(on_ac=true, battery=Some(100))screenpipe_engine::ui_recorder: Starting UIevent capture2026-04-11T20:26:05.378325ZINFOscreenpipe_engine::calendar_speaker_id:speakeridentification: started (user_name=<not set>)2026-04-11T20:26:05.3783922INFOscreenpipe_engine::ui_recorder: UI recording session started: 5b17c7fe-3811-4788-a81b-6b04773808f12026-04-11T20:26:05.378564ZINFOscreenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB(2026-04-10 17:26:05.378561 UTC to 2026-04-11 17:26:05.378561 UTC)2026-04-11T20:26:05.379467ZINFO2026-04-11T20:26:05.384798ZINFOscreenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)screenpipe_engine::server: Server listening on [IP_ADDRESS]:30302026-04-11T20:26:05.389960ZINFOscreenpipe_connect::mdns: mdns:advertising screenpipe onport 30302026-04-11T20:26:05.528107ZINFOscreenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 883entries, coverage from 2026-04-10 17:26:05.378561 UTC2026-04-11T20:26:05.683177ZINFOscreenpipe_engine::vision_manager::manager: Starting vision recordingfor monitor 1 (1440×900)2026-04-11T20:26:05.683293ZINFOscreenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)2026-04-11T20:26:05.683303ZINFO2026-04-11T20:26:05.683311Zscreenpipe_engine::vision_manager::manager: Skipping monitor 2 (Display 2_2560x1440_-597,-1440) - not in allowed listINFOscreenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (polling every 5 seconds)2026-04-11T20:26:05.6833592INFOscreenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)...
|
NULL
|
|
1420
|
31
|
13
|
2026-04-11T17:26:37.089062+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775928397089_m1.jpg...
|
Code
|
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Cannot reconnect. Please reload the window.","depth":1,"automation_id":"_NS:78","role_description":"text"},{"role":"AXButton","text":"Reload Window","depth":1,"automation_id":"action-button--999","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Cancel","depth":1,"automation_id":"action-button--998","role_description":"button","is_enabled":true,"is_focused":true}]...
|
-9215443531147982391
|
7852115060714784816
|
app_switch
|
hybrid
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel
iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zshDOCKER• 881use all monitorsignored windowsincluded windowscloud syncauto-destruct piddeepgram keylanguagesDEV (-zsh)truedisablednot setO 82APP (-zsh)• *3-zsh• *4-zsh• 285$0(ahl-zsh886-zsh100% <7O 87Sat 11 Apr 20:26:37-zshT81• *8all languagesmonitorsno monitors availableaudio devicesdisabledyou are using local processing. all your data stays on your computer.warning: telemetry is enabled. only error-level data will be sent.to disable, use the --disable-telemetry flag.check latest changes here: https://github.com/screenpipe/screenpipe/releases2026-04-11T20:26:05.348501ZINFO screenpipe_core::pipes: pipe scheduler started (generation 2)2026-04-11T20:26:05.348754ZINFOscreenpipe:starting UIevent capture2026-04-11T20:26:05.353656ZWARNscreenpipe:2026-04-11T20:26:05.358540ZINFOpiagent install failed: bun notfound- install from https://bun.shscreenpipe_engine::power::manager:initialpower profile:Performance (on_ac=true, battery=Some(100))2026-04-11T20:26:05.3638642INFOscreenpipe_engine::ui_recorder: Starting UIeventcapture2026-04-11T20:26:05.378325ZINFOscreenpipe_engine::calendar_speaker_id: speaker identification: started(user_name=<not set>)2026-04-11T20:26:05.378392ZINFOscreenpipe_engine::ui_recorder: UI recording session started: 5b17c7fe-3811-4788-a81b-6b04773808f12026-04-11T20:26:05.378564ZINFOscreenpipe_engine::hot_frame_cache: hot_frame_cache: warmingfrom DB (2026-04-10 17:26:05.378561 UTC to 2026-04-1117:26:05.378561 UTC)2026-04-11720:26:05.3794672INFO2026-04-11T20:26:05.384798Zscreenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)INFOscreenpipe_engine::server: Server listening on [IP_ADDRESS]:30302026-04-11T20:26:05.389960ZINFOscreenpipe_connect::mdns: mdns: advertising screenpipeon port 30302026-04-11T20:26:05.5281072INFOscreenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 883frame entries, coverage from 2026-04-10 17:26:05.378561 UTC2026-04-11T20:26:05.683177ZINFOscreenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)2026-04-11T20:26:05.683293ZINFOscreenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)2026-04-11T20:26:05.683303ZINFOscreenpipe_engine::vision_manager::manager: Skipping monitor 2 (Display 2_2560x1440_-597,-1440) - not in allowed list2026-04-11T20:26:05.683311ZINFOscreenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (polling every 5 seconds)2026-04-11T20:26:05.683359ZINFOscreenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)2026-04-11T20:26:06.488545ZINFOsck_rs::stream_manager:persistentSCK stream started for display 1 (1440x900,2fps)2026-04-11T20:26:07.067446ZINFOscreenpipe_engine::event_driven_capture: startupcapture for monitor 1:2026-04-11T20:26:08.752985ZINFOtrame_1d=140r, aur=33/msscreenpipe_engine::event_driven_capture: content dedup:skipping capture for monitor 1 (hash=-9215443531147982391, trigger=visual_change)2026-04-11T20:26:10.383131ZINFOscreenpipe_engine::retention: retention: initialized with 14d retention2026-04-11T20:26:10.383762ZINFO screenpipe: local retention auto-enabled (14 days)...
|
NULL
|
|
1782
|
37
|
37
|
2026-04-11T17:56:39.675700+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775930199675_m1.jpg...
|
Code
|
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Cannot reconnect. Please reload the window.","depth":1,"automation_id":"_NS:78","role_description":"text"},{"role":"AXButton","text":"Reload Window","depth":1,"automation_id":"action-button--999","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Cancel","depth":1,"automation_id":"action-button--998","role_description":"button","is_enabled":true,"is_focused":true}]...
|
-9215443531147982391
|
7852115060714784816
|
click
|
hybrid
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel
iTerm2ShellEditViewSessionScriptsProfilesWindowHelp20:56:39DOCKER• 81DEV (-zsh)O 82APP (-zsh)• хз-zsh84• 88586-zsh₴7*8r 14:58:40-zsh181*7\",, \"timestamp)": \"2026-04-11T14:58:40.295748+03:00\", \"window_name)": \"'3, \"type)": \"OCR\"\"agination)":(\"limit\":@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 0""timestamp":"2026-04-11T14:58:54.033733+03:00"5, \"offset\":0,\"total\":5947 Lukas"window_name" :"type" : "UI"}, {"content" : {"app_name"1, "device_name" : "monitor_1","file_path":"/Users/lukas/.screenpipe/data/data/2026-04-11/compact_monitor_1_1775909337991.mp4""browser_url" :nul"focused": true,"frame" :null,"frame.id":595,"frame_name":"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908731550_m1.jpg","offset_index":47,"tags":[],"text":"iTerm2ShelllEditViewSessionScriptsProfilesWindowHelp(ahlA100% C8Sat 11 Apr 14:58:51-zsh181D0CKERO ₴1DEV (-zsh)O $2APP (-zsh)• *3-zsh• 84-zsh• ₴5-zshO ₴6-zsh*7129568\\ndrwxr-xr-x10 lukasstaff320 11Apr 14:52.Indrwx-88lukasstaff2816 11Apr 14:53..In-rw-r--r--1 lukasstaff2709 Apr20:27config.json\\ndrwxr-xr-x4 lukasstaff1289 Apr 20:40 data\\n-rw-p--p--1 lukasstaff65761280 11Apr 14:57 db.sqlitel\n-rw-r--r--1 lukasstaff3276811 Apr 14:52 db.sqlite-shm\\n-rw-r--r--1 lukasstaff350232 11 Apr 14:58 db.sqlite-wal\\ndrwxr-xr-x8 lukasstaff9 Apr 21:27 screenpipe.2026-04-09.0.10g\\n-rw-r--r--1lukas staff2569 Apr 19:53 pipes\\n-rw-r--r--1 lukasstaff1327366799 11 Apr 14:57 screenpipe.2026-04-11.0.10g\\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipeSdu-sh~/.screenpipe/*.db\\nzsh: no matches found: /Users/lukas/.screenpipe/*.db\\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe S\\nDOCKER\\nClose Tab\\nDEV (-zsh)|\nCloseTab\\nAPP (-zsh)\\nClose Tab\\n-zsh\\nClose Tab\\n-zsh\ \nClose Tab\\n-zsh\ \nClose Tab\\n-zsh\ InClose Tab\\nxx1\\n-zsh\"name\": \"-zsh\"},type\": \"UI\"3, \"content)": {\"app_name)": \"**',\"timestamp)":\"2026-04-11T14:58:40.797783+03:00\", \"window_,\"browser_url\": null,\"device_name\": \"monitor_1\",\"file_path\": \"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908720295_m1.jpg\", \"focused\":true, \"frame)": null, \"frame_id\": 589, \"frame_name)": \"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908720295_m1.jpg\", \"offset_index\": 0,\"tags\": (],\"text\": \"iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100%<7-ZshDOCKERO Z1DEV (-zsh)Lastlogin:Sat Apr 11 14:52:25on ttys010•$2APP (-ZSh)• ₴3-zsho 84Poetrycould not find a pyproject.toml file in /Users/lukas or its parentsPoetry could not finda pyproject.tomlfile in /Users/lukasor itsparentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du-sh ~/.screenpipe/126M/Users/lukas/.screenpipe/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~$ du-sh~/Library/Application\|\\ Support/com.screenpipe.app/*/zsh: no matches found: /Users/lukas/Library/Application Support/com.screenpipe.app/*/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ Sdu-sh ~/.screenpipe/*/49M/Users/lukas/.screenpipe/data/24K/Users/lukas/.screenpipe/pipes/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $cd ~/.screenpipelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $1ltotal129568drwxr-xr-x10lukasstaff32011 Apr14:52drwx-88lukasstaff281611 Apr 14:53-rw-r--r--lukasstaff2709 Apr20:27config.jsondrwxr-xr-xlukasstaff1289Apr20:40data-rw-r--r--1lukasstaff6576128011 Apr 14:57db.sqlite-rw-r--r--1lukasstaff3276811 Apr 14:52db.sqlite-shmlukasstaffdrwxr-xr-x8 lukasstaff35023211 Apr 14:58 db.sqlite-wal2569 Apr19:53pipes-rw-r--r--1 lukasstaff1327369 Apr 21:27 screenpipe.2026-04-09.0.10g-rw-r--r--1 lukasstaff679911 Apr 14:57 screenpipe.2026-04-11.0.10glukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $du -sh ~/.screenpipe/*.dbzsh: no matchesfound: /Users/lukas/.screenpipe/*.dbLukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 1-zshe ₴5-zsh0 Z6Sat 11 Apr 14:58:40-zsh181*7\",',\"timestamp)": \"2026-04-11T14:58:40.295748+03:00\"', \"window_name\": \"'3, \"type\": \"OCR\"\"agination)": (\"limit\": 5,\"offset\": 0, \"total\": 594}Lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 0","timestamp":"2026-04-11T14:58:51.550116+03:00""window_name": "'''3, "type": "OCR"}, {"content" : {"app_name" : "","browser_url":null,"file_path":"/Users/lukas/.screenpipe/data/data/2026-04-11/compact_monitor 1 1775909337991.mp4"', "frame_name":"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908731550_m1.jpg","id":595, "initial_traversal_at":null,"offset_index":47,"text":"iTerm2ShelllEditViewSessionScriptsProfilesWindow Help(ahlA100% C8Sat 11 Apr 14:58:51-zsh181D0CKERO ₴1DEV (-zsh)O $2APP (-zsh)• *3-zshe 84-zsh•₴5-zsh0 ₴6-zsh*7129568\\ndrwxr-xr-x10 lukasstaff320 11Apr 14:52.Indrwx--88 lukasstaff2816 11 Apr 14:53..In-rw-r--r--1 lukasstaff2709 Apr20:27config.json\\ndrwxr-xr-x4 lukasstaff1289 Apr 20:40 data\\n-rw-p--p--1 lukasstaff65761280 11 Apr 14:57 db.sqlite\\n-rw-r--r--1 lukasstaff3276811 Apr 14:52 db.sqlite-shm\\n-rw-r--r--1 lukasstaff350232 11 Apr 14:58db.sqlite-wal\\ndrwxr-xr-x8 lukasstaff9 Apr 21:27 screenpipe.2026-04-09.0.10g\\n-rw-r--r--1 lukas staff2569 Apr 19:53 pipes\\n-rw-r--r--1lukasstaff1327366799 11 Apr 14:57 screenpipe.2026-04-11.0.10g\\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipeS du -sh ~/.screenpipe/*.db\\nzsh: no matchesfound: /Users/lukas/.screenpipe/*.db\\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe S\\nDOCKER\\nClose Tab\\nDEV (-zsh)\\nCloseTab\\nAPP (-zsh)\\nClose Tab\\n-zsh\InClose Tab\\n-zsh\ InClosTab\\n-zsh\\nClose Tab\\n-zsh\\nClose Tab\\nxx1\\n-zsh\"', \"timestamp\": \"2026-04-11T14:58:40.797783+03:00\", \"window_name)": \"-zsh\"},type\": \"UI\"3, \"content)":{\"app_name\": \"'•, \"browser_url\": null, \"device_name\": \"monitor_1\", \"file_path\": \"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908720295_m1.jpg\*: null,\"frame_id\": 589,\"frame_name\":\"/Users/lukas/.screenpipe/data/data/2026-04-11/1775908720295_m1.jpg\",\"focused\":true, \"frame)",\"offset_index)": 0,\"tags\":(J,\"text\": \"iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% <7-zshDOCKERO Z1DEV (-zsh)Last login:Sat Apr 11 14:52:25on ttys010• $ZAPP (-zsh)* ₴3-zsho 84Poetrycould not find a pyproject.toml filein /Users/lukas or its parentsPoetry could not find a pyproject.tomlfile in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~$ du -sh ~/.screenpipe/126M/Users/lukas/.screenpipe/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $du-sh~/Library/Application\ll\Support/com.screenpipe.app/*/zsh: no matches found: /Users/lukas/Library/Application Support/com.screenpipe.app/*/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ Sdu-sh ~/.screenpipe/*/49M/Users/lukas/.screenpipe/data/24K/Users/lukas/.screenpipe/pipes/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ Scd ~/.screenpipelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ 1ltotal129568drwxr-xr-x10lukasstaff32011 Apr14:52drwx-88lukasstaff281611 Apr 14:53-rw-r--r--lukasstaff2709 Apr20:27config.jsondrwxr-xr-xlukasstaff1289 Apr 20:40data-rw-r--r--1 lukasstaff6576128011 Apr 14:57db.sqlite-rw-r--r--1lukasstaff3276811Apr 14:52db.sqlite-shmlukasstaffdrwxr-xr-x8 lukasstaff35023211 Apr 14:58db.sqlite-wal2569 Apr19:53pipes-rw-r--r--1 lukasstaff1327369 Apr 21:27screenpipe.2026-04-09.0.10g-rw-r--r--1 lukasstaff679911 Apr 14:57 screenpipe.2026-04-11.0.10glukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du-sh ~/.screenpipe/*.dbzsh: nomatches found: /Users/lukas/.screenpipe/*.dbLukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 1-zshe ₴5-zshO ₴6Sat 11 Apr 14:58:40-zsh181*7\"',l"timestamp)": 1"2026-04-11T14:58:40.295748+03:00\", \"window_name)": \"'3, \"type)": \"OCR\"\"agination)":(\"limit\": 5,\"offset\": 0,\"total\": 594}Lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 0","timestamp":"2026-04-11T14:58:51.550116+03:00","window_name":"'"},"type": "UI"}],"pagination" : {"limit":50,"offset":0, "total":967}%ukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe/data/data $ U...
|
1781
|
|
3971
|
79
|
2
|
2026-04-12T19:16:41.516941+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-12/1776 /Users/lukas/.screenpipe/data/data/2026-04-12/1776021401516_m1.jpg...
|
Code
|
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Cannot reconnect. Please reload the window.","depth":1,"bounds":{"left":0.42222223,"top":0.5011111,"width":0.15555556,"height":0.035555556},"automation_id":"_NS:78","role_description":"text"},{"role":"AXButton","text":"Reload Window","depth":1,"bounds":{"left":0.41666666,"top":0.5477778,"width":0.16666667,"height":0.044444446},"automation_id":"action-button--999","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Cancel","depth":1,"bounds":{"left":0.41666666,"top":0.58555555,"width":0.16666667,"height":0.044444446},"automation_id":"action-button--998","role_description":"button","is_enabled":true,"is_focused":true}]...
|
-9215443531147982391
|
7852115060714784816
|
click
|
hybrid
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel
**CodeFileEditSelectionViewGoRunTerminalWindowHelpscreenpipe [SSH: [IP_ADDRESS]]EXPLORER• pipe.md• Release Notes: 1.115.0 X$ #!/bin/bash Untitle →V SCREENPIPE [SSH: [IP_ADDRESS]]> #recycleV appconsumerse_init_• activity.py₴audio.py• [EMAIL]* осr.pye report.py# summary.py> static•.env₴ cli.py≥ db.py• docker-compose.yml• Dockerfilemain.pyE requirements.txt› datav pipesv ai-habits* pipe.md> day-recap> meeting-summary› standup-update› time-breakdown> video-export= db.sqliteVisual Studio Code 1.115Show release notes after an updateFollow us on Linkedin, X, Bluesky | View online |Release date: April 8, 2026Welcome to the 1.115 release of Visual Studio Code. This release makes your agent-nativedevelopment experience even better withcompanion app!PROBLEMSOUTPUT|DEBUG CONIThe following issues were detectCmd+click on an issue to continuCannot reconnect. Please reloadthe window.Reload WindowStatusMessageCancelOffLineErrorError: OfflineError (The operation timed out)See verbose information in the Output Log...ablSign In100% _Sun 12 Apr 22:16:41Ua..•XI= Remote - SSH: Session Troubleshooting•|& Xession> OUTLINE> TIMELINEA Disconnected from SSH: [IP_ADDRESS]@0A 0Д) О& Sign In...
|
NULL
|
|
9020
|
172
|
54
|
2026-04-14T07:14:50.401582+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776150890401_m1.jpg...
|
Code
|
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Cannot reconnect. Please reload the window.","depth":1,"automation_id":"_NS:78","role_description":"text"},{"role":"AXButton","text":"Reload Window","depth":1,"automation_id":"action-button--999","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Cancel","depth":1,"automation_id":"action-button--998","role_description":"button","is_enabled":true,"is_focused":true}]...
|
-9215443531147982391
|
7852115060714784816
|
app_switch
|
hybrid
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel
iTerm2ShellEditViewSessionScriptsProfilesWindowHelpallSupport Daily - in 4h 46m100% <47Tue 14 Apr 10:14:50DOCKER (docker-compose)181DOCKER881DEV (-zsh)882APP (-zsh)-zsh84L1DOCKER (docker-compose)gins""taskManager""taskManager"],"message"KibanaUUID:bf01f365-e094-4cde-940d-3e0db65fa22a"}"TaskManager isidentified by theelasticsearchI {"type""timestamp":"INFO""2026-04-14T07:14:43,651Z""component" :"o.e.c.m.MetadataIndexTemplateService","cluster .name":"docker-c"node.name":e802ad473a4f""message" :index patterns [.management-beats]""cluster.uuid":template [.management-beats]"e2ZKzgw4Q4aCf2w5ljWr1A""8uhZw1CUSGyWYR_OvaKx6g"{"type":"log""@timestamp":"2026-04-14T07:14:43Z""crossClusterReplication"],"pid""tags":["info""message": "Your basic licensecrossClusterReplication.Please upgrade your{"type" : "log""@timestamp":"2026-04-14T07:14:43Z""tags": ["info""watcher"],'"message": "Your basic license does not support watcher."monitoring"{"type": "log""@timestamp":"2026-04-14T07:14:43Z","tags":["info""monitoring"kibana-monitoring"],"pid":7, "message": "Starting monitoringkibanaastics2026-04-14T07:14:error$Ikiaspo31/ersion[306248])kibanasticsearch", "data"],'"pid":7,"message"[version_conflict_engine_exception]:[task:Actions-actions_telemetry]: version conflict, document already exists (current version [727])"}kibana1 {"type": "log"asticsearch"',"data"],"pid":7,'"@timestamp":"2026-04-14T07:14:44Z","tags" : ["error""el"message":"[version_conflict_engine_exception]: [task:Alerting-alerting_telemetry]: version conflict, document already exists[727])"3(current versionkibana1 {"type": "log""@timestamp":"2026-04-14T07:14:44Z"',"tags" : ["error"asticsearch", "data"], "pid":7,"message":"[version_conflict_engine_exception]: [task:apm-telemetry-task]: versiondocument alreadyexists (current version [1204])"}kibana{"type" : "log""@timestamp":"2026-04-14T07:14:44Z", "tags" : ["listening""info"], "pid" :7,"message": "Serverat [URL_WITH_CREDENTIALS] ["info", "htt"server","Kibana"],"message": "http serverrunning at [URL_WITH_CREDENTIALS] ["warning"plugins""reporting"],"pid":7,"message": "Enabling the Chromium sandbox provides an additional layer ofprotection."}View in Docker Desktop@ View ConfigEnable Watch-zshT2PROD (-zsh)Lastlogin:-zsh86-zshO 87* Unable to acce...O 88Sat Apr 11 11:13:58 on consolePoetry could not find a pyproject.toml file in /Users/lukas or its parentsPRODPoetrycould not find a pyproject.toml file in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ |XIEU (-zsh)Lastlogin:Sat Apr 1111:13:58 on consolePoetry could not find a pyproject.toml file in /Users/lukas or its parentsPoetry could not find a pyproject.tomlfile in /Users/lukas or its parentsukas-Kovaliks-MacBook-Pro-JiminnyLastlogin:Sat Apr 1111:13:58 on consoleN15|QA (-zsh)Visual Studio CodeLast login: Sat Apr 11 12:38:35 on ttys003Poetry could not find a pyproject.toml file in /Users/lukas or its parentsPoetrycould not find a pyproject.tomlfile in /Users/lukas or its parents$XT6FE (-zsh)Last login: Sat Apr 11 12:38:35 on ttys004Poetry could not find a pyproject.toml file in /Users/lukas or its parents RONTENDPoetry could not find a pyproject.tomlfile in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ IX 17 ExT(-zsh)Poetry could not find a pyproject.toml file in /Users/lukas or its parentsEXTENSIONPoetry could not find a pyproject.tomlfile in /Users/lukas or its parentsukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ [|...
|
NULL
|
|
9021
|
173
|
59
|
2026-04-14T07:14:50.401603+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776150890401_m2.jpg...
|
Code
|
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Cannot reconnect. Please reload the window.","depth":1,"bounds":{"left":0.45625,"top":0.50069445,"width":0.0875,"height":0.022222223},"automation_id":"_NS:78","role_description":"text"},{"role":"AXButton","text":"Reload Window","depth":1,"bounds":{"left":0.453125,"top":0.5298611,"width":0.09375,"height":0.027777778},"automation_id":"action-button--999","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Cancel","depth":1,"bounds":{"left":0.453125,"top":0.5534722,"width":0.09375,"height":0.027777778},"automation_id":"action-button--998","role_description":"button","is_enabled":true,"is_focused":true}]...
|
-9215443531147982391
|
7852115060714784816
|
app_switch
|
hybrid
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel
Firefox•••)FileEoitViewHistoryBookmarks ProfilesToolsWindow Helpapp.staging.liminny.com/ai-reportsC< 0 ll O [ SupportDaily• in4h46m A 100%a & Tue 14 Apr 10:14:50Al ReportsS03 Ask Jiminny reportsPlatform Sprint 1 Q2 - Platform Tea( SRD-6779 | JY-20632 | Unable to |( Jy 19798 evaluation for ai activity8 Jiminny8 Ask Jiminny test report - 8 Apr 20:Service-Desk - Queues - Platform+ New Tab• Report namelPeriodReport Type• Clear allNAME -FREQUENCY +CHAREDDATEYACTIONSAsk Jiminny lest keoort- o Aorzuzo10Daily09/04/2016JY-18909-automated-reports-ask-iiminny = 869453)...
|
NULL
|
|
19706
|
419
|
50
|
2026-04-15T07:54:56.862636+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776239696862_m1.jpg...
|
Code
|
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Cannot reconnect. Please reload the window.","depth":1,"automation_id":"_NS:78","role_description":"text"},{"role":"AXButton","text":"Reload Window","depth":1,"automation_id":"action-button--999","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Cancel","depth":1,"automation_id":"action-button--998","role_description":"button","is_enabled":true,"is_focused":true}]...
|
-9215443531147982391
|
7852115060714784816
|
app_switch
|
hybrid
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel
FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelp| [Platform] Planning…. 6 m leftmeet.google.com/tgb-pyuf-dri?authuser=lukas.kovalik%40jiminny.comGalya Dimitrova (Presenting, annotating)SafariFileEditViewHistoryBookmarksDevelopWindowHelpa 8.Wed 15 Apr 10:54A Sentry3 HubSpot|AWS AIFirebase# Platform Tea.88g For youRecent# Starred89 AppsIID Capture TeamIID Enterprise Stability I...DiscoveryProductRecent4 Service-Desk= More spaces |= FiltersIB DashboardsOperations& Customers|@ ОрeпAl|#f Seit ServiceAWS USA Journey fr.• AWS EUPlanhat(] Emoi|2 Features Ad.intercomAsk Jiminey-A LogRocketP Postmark• Build your M.• Bamboox*. Campus xF LLM Evaluat.Search+ Create# Upgrade: Ask Rovo•Spaces / Jiminny (New)Platform TeamE Jira work itemSummary& TimelinebackiogIID Active sprints8 Calendar|L ReportsMore 9+QSearch backlog9208008Version ~Epic vType vMore ~31NVisual Studio CodeX JY-20278AJ Panorama> Don't show internal ….ASK ANYTHI...BACKLOGv0 JY-19967Upgrade Python and libraries - AprMAINTENAN....BACKLOGV© JY-19957 Upgrade BE libraries - AprMAINTENAN...BACKLOGv1A JY-20566 AI Review - Q1 - Summary/Action it..GROWTH - M…BACKLOG© JY-20352 Sync opportunities without a lo...PLATFORM S.OANLUNY+ Create15 work itemsEstimate:37.5• v Platform Sprint 3 Q2 29 Apr - 13 May (20 work items) |27.50meet.google.com is sharing your screen.Stop sharingStefka StoyanovaAneliya Angelova10:54 AM| [Platform] Planning | Session izLukas Kovalik54:42Wed 15 Apr 10:54:56509IIIGalya Dimitrova...
|
NULL
|
|
19707
|
420
|
40
|
2026-04-15T07:54:56.857044+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776239696857_m2.jpg...
|
Code
|
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Cannot reconnect. Please reload the window.","depth":1,"bounds":{"left":0.45625,"top":0.50069445,"width":0.0875,"height":0.022222223},"automation_id":"_NS:78","role_description":"text"},{"role":"AXButton","text":"Reload Window","depth":1,"bounds":{"left":0.453125,"top":0.5298611,"width":0.09375,"height":0.027777778},"automation_id":"action-button--999","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Cancel","depth":1,"bounds":{"left":0.453125,"top":0.5534722,"width":0.09375,"height":0.027777778},"automation_id":"action-button--998","role_description":"button","is_enabled":true,"is_focused":true}]...
|
-9215443531147982391
|
7852115060714784816
|
app_switch
|
hybrid
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel
SackFileEditViewHistoryWindowHelpSearch Jiminny IncJiminny ...Jira CloudDMs= Unreads@ Threads6 HuddlesDrafts & sent8 DirectoriesHomeMessagesAchivityEh External connectionsFiles# Starred& platform-inner-teamMore# Channels# ai-chapter# alerts# backend#: confusion-clinic# curiosity_labiengineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# randomuc releases# sofia-office# support# thank-yous# the people of jimi...Direct messazesAneliya Angelova,€. Vasil VasilevR. Steliyan Georgiev E3 Adelina Petrova, Ili...Adelina PetrovaP. Galya Dimitrova iD. Nikolay Nikolov2 Galya Dimitrova, Ni...2 Galya Dimitrova, Ni...#: AppsE Jira CloudToastGoogle Cale….AboutJuis Leccventurerdeorvei8/8Wednesday, April 1st~commentMore achons..Jira Cloud APP 3:00 PM4 ®Nikolay Nikolov edited a comment on a Bug you reportedJY-20530 Pipedrive opportunity sync issueWe have re-synced missed updated deals from 01.01.2026 - now:-- LUceameo inameoldnew2ZZ | Caribou44344lne Electric can schemeliSU11450/0377 ISEP22458ooy lAnaco1511805g-- US-- teamIDInameoldnew45 levermecoou cenotans648 lAdvanto786| ColormaticsXXodevonkev9401 Shellworks10olldrowchrad1086|Pipedrive1113|LeadVenturePipedrivel823975611X/28429• 1878113426104316878CommentMore actions...Monday, April 6th~Jira Cloud APP 11:31 AM• @Galya Dimitrova updated the description of a Story you are assigned toJY-20543 AJ Reports > Trackingsatus: backog• Type: StoryLK) Assignee: Lukas KovalikT Priority: MediumCommentTransitionToday "Jira Cloud APP 10:10 AM4 @Stefka Stoyanova transitioned a Story you are assigned to from |Code Review → Ready for DeploymentJY-20543 AJ Reports > TrackingStatus: Ready for Deploymentlype. storAssignee: Lukas Kovalik Priority: MediumCommentMore actions....@Stefka Stoyanova transitioned a Story you are assigned to from Ready for Deployment → ClosedJY-20543 AJ Reports > IrackingStatus: ClosedType: StoryLK Assignee: Lukas Kovalik1 Priority: MediumcommentMore actions.Message Jira CloudAaSlidesC < 40 ll © | [Platform] Planning... 6mleft A 100% C &• Wed 15 Apr 10:54:56Ask RovoStart hereEngineeringVisited 14 April 2026E AI Signals & AlertsProductVisited 11 March 20261+ CreateE Change playbook activity fieldEngineeringVisited 7 April 2026• PHP 8.x upgradeEngineeringVisited 9 March 20261Sort by: Most relevantEdit feedd spaces. Their activity will show up in your feed, but you won't receivet, your feed anytime.necenractionsgs without visible Notetakerord meetings without a visible notetaker, increasing customer confidence and reducing friction, and generating morend coaching.E 8 commentsRecent actionseue Wait Time to Under 1 Hourur requires reducing jobs or increasing processing rate, with options including increasing worker limit, faster auto-scaleinc, and optimizing job execution.arcn 4u401Recent actionsdexed_at for Comprehensive Activity Tracking and Memory Efficiencyced_at' timestamp for comprehensive activity tracking and memory efficiency....
|
NULL
|
|
80305
|
2108
|
4
|
2026-04-24T18:26:16.542457+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777055176542_m2.jpg...
|
Code
|
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Cannot reconnect. Please reload the window.","depth":1,"bounds":{"left":0.46276596,"top":0.5011971,"width":0.07446808,"height":0.025538707},"automation_id":"_NS:78","role_description":"text"},{"role":"AXButton","text":"Reload Window","depth":1,"bounds":{"left":0.46010637,"top":0.53471667,"width":0.07978723,"height":0.031923383},"automation_id":"action-button--999","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Cancel","depth":1,"bounds":{"left":0.46010637,"top":0.56185156,"width":0.07978723,"height":0.031923383},"automation_id":"action-button--998","role_description":"button","is_enabled":true,"is_focused":true}]...
|
-9215443531147982391
|
7852115060714784816
|
visual_change
|
hybrid
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel
selectionViewlerminalWindovmelpдeSCREENPIPE ISSH: NAS1/ #recycie/app> datapipes1 app_ setungs. soE db.salite$ screenpipe_svnc.shsudo doxper compose bu:1 See/рtрe-прр e/a suб d кeT сопросе ер -ре /сгеепріре-ар-app] exporting to image, OUTLINEAcmineoxeA0o 2LUS- Bte/0Lunst/5creenpipe/apps 0@оA0|cannot reconnect. Please reloadReload Windou*= Adm1n@DXP4800PLUS-B5F8:... X1 0100% CFri 24 Apr 21:26:1608 •0*MA•Aeminauxr4o0urlus"boro. volumelastill plavina speed is not showina properiv still lust in one second, also ! want to see in timeline where l am<option value="8">8x</option>• Now add the new state varlables,let ttFrames = 0Alet ttchunks = 1elet ttFrames = 0let _ttZoom = 1;let ttZoom = 1:* Coalescinalo bashIOhack...
|
80304
|
|
80306
|
2107
|
1
|
2026-04-24T18:26:21.004716+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777055181004_m1.jpg...
|
Code
|
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Cannot reconnect. Please reload the window.","depth":1,"automation_id":"_NS:78","role_description":"text"},{"role":"AXButton","text":"Reload Window","depth":1,"automation_id":"action-button--999","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Cancel","depth":1,"automation_id":"action-button--998","role_description":"button","is_enabled":true,"is_focused":true}]...
|
-9215443531147982391
|
7852115060714784816
|
idle
|
hybrid
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel
Activity MonitorFileEditViewWindowHelp‹$0(23APP (-zsh)APP (-zsh)DOCKERDEV (-zsh)882*3What's next:Try Dockerseamless, persistent debugging tools in any containeror image + docker debugdocker_1amp_1at [URL_WITH_CREDENTIALS] (JY-20508-notify-before-AJ-report-expiration) $ csfixdocker exec-it docker_lamp_1./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php-v--using-cache=no --diffPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski andcontributors.PHPruntime:8.3.30Running analysis on 7 coreswith 10 files perprocess.Parallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!Loaded config default from".php-cs-fixer.dist.php".5623/5623100%1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-40,7 +40,7AutomatedReportsRepository SautomatedReportsRepository,UserPilotClient SuserPilotClient): void {Suser= User::find(143);Suser = User::find(143);////Scount = SautomatedReportsRepository->countUserReports(Suser);Sthis->info("Count: {Scount}");Scount = SautomatedReportsRepository->countAllUserReports(Suser);end diffscreenpipe"O $4100% C8Fri 24 Apr 21:26:21-zsh*5APPFixed 1 of 5623 files in 148.623 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any container or image » docker debug docker_lamp_1Learn more at https://docs.docker.com/go/debug-cli/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20508-notify-before-AJ-report-expiration) $ I...
|
80300
|
|
80309
|
2107
|
2
|
2026-04-24T18:26:51.426382+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777055211426_m1.jpg...
|
Code
|
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Cannot reconnect. Please reload the window.","depth":1,"automation_id":"_NS:78","role_description":"text"},{"role":"AXButton","text":"Reload Window","depth":1,"automation_id":"action-button--999","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Cancel","depth":1,"automation_id":"action-button--998","role_description":"button","is_enabled":true,"is_focused":true}]...
|
-9215443531147982391
|
7852115060714784816
|
idle
|
hybrid
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel
Activity MonitorFileEditViewWindowHelp(23100% C8APP (-zsh)APP (-zsh)DOCKERDEV (-zsh)882*3What's next:Try Dockerseamless, persistent debugging tools in any containeror image + docker debugdocker_1amp_1at [URL_WITH_CREDENTIALS] (JY-20508-notify-before-AJ-report-expiration) $ csfixdocker exec-it docker_lamp_1./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php-v--using-cache=no --diffPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski andcontributors.PHPruntime:8.3.30Running analysis on 7 coreswith 10 files perprocess.Parallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!Loaded config default from".php-cs-fixer.dist.php".5623/5623100%1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-40,7 +40,7AutomatedReportsRepository SautomatedReportsRepository,UserPilotClient SuserPilotClient): void {Suser= User::find(143);Suser = User::find(143);////Scount = SautomatedReportsRepository->countUserReports(Suser);Sthis->info("Count: {Scount}");Scount = SautomatedReportsRepository->countAllUserReports(Suser);end diffscreenpipe"O $4-zshFri 24 Apr 21:26:51T₴1|*5APPFixed 1 of 5623 files in 148.623 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any container or image » docker debug docker_lamp_1Learn more at https://docs.docker.com/go/debug-cli/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20508-notify-before-AJ-report-expiration) $ I...
|
NULL
|
|
80324
|
2108
|
14
|
2026-04-24T18:27:11.028393+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777055231028_m2.jpg...
|
Code
|
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Cannot reconnect. Please reload the window.","depth":1,"bounds":{"left":0.46276596,"top":0.5011971,"width":0.07446808,"height":0.025538707},"automation_id":"_NS:78","role_description":"text"},{"role":"AXButton","text":"Reload Window","depth":1,"bounds":{"left":0.46010637,"top":0.53471667,"width":0.07978723,"height":0.031923383},"automation_id":"action-button--999","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Cancel","depth":1,"bounds":{"left":0.46010637,"top":0.56185156,"width":0.07978723,"height":0.031923383},"automation_id":"action-button--998","role_description":"button","is_enabled":true,"is_focused":true}]...
|
-9215443531147982391
|
7852115060714784816
|
visual_change
|
hybrid
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel
selectionViewlerminalWindovmeltдe, SCREENPIPE ISSH• NAS1/ #recycle/app> datapipes1app_setungs..soE db.salitesudo doxper compose bu:1 Suee/рtрe-прp e/a sud do кeT сопрое ер -ре/сгеепріре-аррAcmineoxeA0o 2LUS- Bte/0Lunst/5creenpipe/apps 0@оA0|cannot reconnect. Please reloadReload Windou100% CFri 24 Apr 21:27:103 Admin@DXP4800PLUS-B5F8:... X*m₫\Aeminauxr4o0urlus"boro. volumelastill plavina speed is not showina properiv still lust in one second, also ! want to see in timeline where l am<option value="8">8x</option>…Nealeleliale new cnle valdlellelet ttFrames = 0Alet ttFrames = 0let _ttZoom = 1;* AccomnlichinaIOhackf) Screen reader usage detected. Do vou want to enablé...
|
80322
|
|
80523
|
2128
|
0
|
2026-04-25T14:25:46.346717+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-25/1777 /Users/lukas/.screenpipe/data/data/2026-04-25/1777127146346_m2.jpg...
|
Code
|
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Cannot reconnect. Please reload the window.","depth":1,"bounds":{"left":0.46276596,"top":0.5011971,"width":0.07446808,"height":0.025538707},"automation_id":"_NS:78","role_description":"text"},{"role":"AXButton","text":"Reload Window","depth":1,"bounds":{"left":0.46010637,"top":0.53471667,"width":0.07978723,"height":0.031923383},"automation_id":"action-button--999","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Cancel","depth":1,"bounds":{"left":0.46010637,"top":0.56185156,"width":0.07978723,"height":0.031923383},"automation_id":"action-button--998","role_description":"button","is_enabled":true,"is_focused":true}]...
|
-9215443531147982391
|
7852115060714784816
|
idle
|
hybrid
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel
selectionViewlerminalWindowmelp/ SCREENPIPE ISSH: NAS1/ #recycie1 app_ setungs. soE db.saliteIne editor coula not be openea because the tile was not tound.Create FileCannot reconnect. Pleare reloadReload Windousudo doxper compose u:1 Suree/ptрe-прp e/a sud d keT сопрое ер 1ре/сгеепріре-аррsha256:f0bdf3408fc0f3be5858845e51322b8c0ac79327a6feebdd984de8d20068e3a1screenpipe/apps cd /volumel/screenpipe/app o sudo docker compose build screenpipe-app & sudo docker compose up =d screenpipe-apngmlayerba256. Ah7261h5dod05Qcd12005dcoeeag B83tat y0Lu eat/strepipe/aps 0)@0A0100% L2Sat 25 Apr 17:25:462= still plavina speed is n...sull playing soeed is not snowing propenl.grep -n "jumpToTimeline\|_ttPendingSeekMs\|btn-tl\|_pendingDevice" /volumel/screenpipe/app/static/jndex.htmlborder-radius:3px; background;var(--surface2); color:var(--muted); border:ipx solid var(--border); cursor:pointer; white-space:nowrap;• All wired up. Now rebulld1/screenpipe/app & sudo docker compose build screenpipe-app && sudo docker compose up =d screenpipe-appIn search result cards — a small © Timeline button appears top-right of each result. Clicking it (without opening the full detail modal) jumps directly to the Timetable tab.In the result detail modal — an 6 Onen in Timeline button appears at the bottom riaht. next to Prev/NextRoth nathe.1. Set the global date picker to the local date of the result's timestame2. Store the exact millisecond taraet in ttPendinaSeekMe2 Coll chouDonof I+imotohlolla loodtinotohlal) fatnhoe that daule framoe4. Once loaded. automatically seeks to the nearest frame to that timestamo (with an 80ms delav so the timeline renders first)bashbashdocker: default...
|
80496
|
|
80528
|
2128
|
5
|
2026-04-25T14:26:08.009790+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-25/1777 /Users/lukas/.screenpipe/data/data/2026-04-25/1777127168009_m2.jpg...
|
Code
|
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Cannot reconnect. Please reload the window.","depth":1,"bounds":{"left":0.46276596,"top":0.5011971,"width":0.07446808,"height":0.025538707},"automation_id":"_NS:78","role_description":"text"},{"role":"AXButton","text":"Reload Window","depth":1,"bounds":{"left":0.46010637,"top":0.53471667,"width":0.07978723,"height":0.031923383},"automation_id":"action-button--999","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"Cancel","depth":1,"bounds":{"left":0.46010637,"top":0.56185156,"width":0.07978723,"height":0.031923383},"automation_id":"action-button--998","role_description":"button","is_enabled":true,"is_focused":true}]...
|
-9215443531147982391
|
7852115060714784816
|
click
|
hybrid
|
NULL
|
Cannot reconnect. Please reload the window.
Reload Cannot reconnect. Please reload the window.
Reload Window
Cancel
selectionViewlerminalWindowmelt/ SCREENPIPE ISSH: NAS1/ #recycle1 app_ setungs. soE db.saliteIne eaitor coula not be openea because the file was not tound.Create Filecannot reconnect. Please reloadIeload Windousudo doxper compose u:1 Suree/ptрe-прp e/a sud d ket сопрое ер 1ре/сгеепріре-аррsha256:f0bdf3408fc0f3be5858845e5132268c0ac79327a6feebdd984de8d20068e3a1screenpipe/apps cd /volumel/screenpipe/app d sudo docker compose build screenpipe-app & sudo docker compose up =d screenpipe-apно 8оска 250: (821л)2739 2 оrр ро2 87353242063902c4365457315t o950c139060Coeрeдвo U Bete: olu et /screnpipe/aps 1.@0A0100% LzSat 25 Apr 17:26:07* Me2= still plavina speed is n...sull playing soeea is not snowing propenl.leis add ability to lumo tro.m search to timeline so we can see the exaci screen (also based on monitor and timegrep -n "jumpToTimeline\|_ttPendingSeekMs\|btn-tl\|_pendingDevice" /volumel/screenpipe/app/static/index.htmlborder-radius:3px; background;var(--surface2); color:var(--muted); border:1px solid var(--border); cursor:pointer; white-space: nowrap;• All wired up. Now rebulld1/screenpipe/app & sudo docker compose build screenpipe-app && sudo docker compose up =d screenpipe-appIn search result cards — a small © Timeline button appears top-right of each result. Clicking it (without opening the full detail modal) jumps directly to the Timetable tabIn the result detail modal — an 6 Onen in Timeline button appears at the bottom riaht. next to Prev/NextiRoth nathe.1. Set the global date picker to the local date of the result's timestame2 Coll chouDonof I+imotohlolla loodtinotohlal) fatnhae that daule framoc4. Once loaded. automatically seeks to the nearest frame to that timestamo (with an 80ms delav so the timeline renders first)bashPhackdocker: default...
|
NULL
|
|
26920
|
566
|
23
|
2026-04-15T13:36:36.369982+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776260196369_m1.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
+SlackFileEditViewGoEDHomeActivityFiles..•More+His +SlackFileEditViewGoEDHomeActivityFiles..•More+HistoryWindowHelp→Search Jiminny IncJiminny ...sos+# general# infra-changes# jiminny-bg# platform-tickets# product _launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesStoyan TanevVesGalya DimitrovaAneliya Angelova, ...Vasil VasilevSteliyan GeorgievAdelina Petrova, Ili...P. Adelina PetrovaD. Nikolay Nikolov2 Galya Dimitrova, Ni...ii: AppsToastJira CloudGoogle Cale...# releases8 22Messagesnewdou+@ Files• Bookmarksv 2 new messagesGitHub APP3:28 PM7 new commits pushed tomaster by nikolay-yankovNew24b989ee - Enhance SECFIXdocumentation and policiesa3a0a742 - Update SECFIX Slack channelreference in documentation and workflowfiles071c999d - Merge branch 'master' intoimprove-secfix-bot-15-04-2026981e9a1a - Update SECFIX_PROMPT.mdto enhance clarity on upgrade safety andchangelog reviews6e938e53 - Enhance SECFIX workflow withSlack notification optionsShow more( jiminny/app Added by GitHubCircleCl APP3:53 PMDeployment Successful!Project: appWhen:04/15/202612:53:30Tag:View JobMessage #releases+AaActivity MonitorAll ProcessesProcess NameBoosteroidWindowServerFirefoxFirefoxCP Isolated Web ContentFirefoxCursorUlViewService (Not Responding)FirefoxCP Isolated Web ContentFirefox GPU HelperFirefoxCP Isolated Web ContentFirefox GPU HelperVTDecoderXPCServiceSlack Helper (Renderer)FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentNotion Calendar Helper (Renderer)claudeNotion Helper (Renderer)Claude Helper (Renderer)FirefoxCP Isolated Web ContentiTerm2screenpipeFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentMEMORY PRESSUREMem...2,03 GB1,20 GB981,3 MB962,7 MB860,2 MB793,5 MB778,1 MB554,1 MB547,2 MB543,8 MB516,1 MB470,8 MB463,9 MB443,5 MB425,8 MB390,7 MB390,5 MB389,2 MB372,5 MB343,3 MB326,1 MB325,4 MB324,9 MB293,4 MB252,8 MB242,1 MB241,5 MB240,5 MBPhysical Memory:Memory Used:Cached Files:Swap Used:100% <478Wed 15 Apr 16:36:36CPUMemoryDiskThreads39237526872830252611162424262527242315132015276592627EnergyPorts60619 7567261261 20720 019130245128250165199121123125125126122121172723132201241 832516123127PID93892407801442974146648424203080193671314673938994186335480352763583143016436523689848173265485091011486051935833487842876561384829816,00 GB14,21 GB <1,74 GB2,91 GBApp Memory:Wired Memory:Compressed:NetworkUserlukas_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas3,68 GB2,91 GB7,08 GB...
|
NULL
|
-9214399503882381254
|
NULL
|
click
|
ocr
|
NULL
|
+SlackFileEditViewGoEDHomeActivityFiles..•More+His +SlackFileEditViewGoEDHomeActivityFiles..•More+HistoryWindowHelp→Search Jiminny IncJiminny ...sos+# general# infra-changes# jiminny-bg# platform-tickets# product _launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesStoyan TanevVesGalya DimitrovaAneliya Angelova, ...Vasil VasilevSteliyan GeorgievAdelina Petrova, Ili...P. Adelina PetrovaD. Nikolay Nikolov2 Galya Dimitrova, Ni...ii: AppsToastJira CloudGoogle Cale...# releases8 22Messagesnewdou+@ Files• Bookmarksv 2 new messagesGitHub APP3:28 PM7 new commits pushed tomaster by nikolay-yankovNew24b989ee - Enhance SECFIXdocumentation and policiesa3a0a742 - Update SECFIX Slack channelreference in documentation and workflowfiles071c999d - Merge branch 'master' intoimprove-secfix-bot-15-04-2026981e9a1a - Update SECFIX_PROMPT.mdto enhance clarity on upgrade safety andchangelog reviews6e938e53 - Enhance SECFIX workflow withSlack notification optionsShow more( jiminny/app Added by GitHubCircleCl APP3:53 PMDeployment Successful!Project: appWhen:04/15/202612:53:30Tag:View JobMessage #releases+AaActivity MonitorAll ProcessesProcess NameBoosteroidWindowServerFirefoxFirefoxCP Isolated Web ContentFirefoxCursorUlViewService (Not Responding)FirefoxCP Isolated Web ContentFirefox GPU HelperFirefoxCP Isolated Web ContentFirefox GPU HelperVTDecoderXPCServiceSlack Helper (Renderer)FirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentNotion Calendar Helper (Renderer)claudeNotion Helper (Renderer)Claude Helper (Renderer)FirefoxCP Isolated Web ContentiTerm2screenpipeFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentMEMORY PRESSUREMem...2,03 GB1,20 GB981,3 MB962,7 MB860,2 MB793,5 MB778,1 MB554,1 MB547,2 MB543,8 MB516,1 MB470,8 MB463,9 MB443,5 MB425,8 MB390,7 MB390,5 MB389,2 MB372,5 MB343,3 MB326,1 MB325,4 MB324,9 MB293,4 MB252,8 MB242,1 MB241,5 MB240,5 MBPhysical Memory:Memory Used:Cached Files:Swap Used:100% <478Wed 15 Apr 16:36:36CPUMemoryDiskThreads39237526872830252611162424262527242315132015276592627EnergyPorts60619 7567261261 20720 019130245128250165199121123125125126122121172723132201241 832516123127PID93892407801442974146648424203080193671314673938994186335480352763583143016436523689848173265485091011486051935833487842876561384829816,00 GB14,21 GB <1,74 GB2,91 GBApp Memory:Wired Memory:Compressed:NetworkUserlukas_windowserverlukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukaslukas3,68 GB2,91 GB7,08 GB...
|
26917
|
|
43742
|
930
|
25
|
2026-04-17T08:20:48.976334+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-17/1776 /Users/lukas/.screenpipe/data/data/2026-04-17/1776414048976_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEoitViewHistoryBookmarksImport bookmark FirefoxFileEoitViewHistoryBookmarksImport bookmarks...Sprint BoardSRD QueueProfilesToolsWindowHelpapp.staging.jiminny.com/Jiminny - app.staging.jiminny.comapoleapple watchapp storeapple musicapple watch 11apoe warch ulrraFirefox SuggestJiminny - app.staging.jiminny.com/ondemand?topic_idl]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4* Github - github.com/jiminny/app/pull/11932Jiminny - app.dev.jiminny.com/dashboardFirefoxSearch with Google or enter addressPlatform Sprint2Q2 -...JiminnyJiminnyJY-20543 addAJ reports...MInbox (1,565) -Pipelines -jiminny/appBambooHRMeet - Daily -22°CNew York CityBackend Chapter • 10 m leftAL AutomatedReportsCommandTestv100% C•8 • Fri 17 Apr 11:20:48nvestigating HubSpotAListeners|PendingAnalysis|OpportunityPendingAiAnalysisAfterStageChanged:ate the opportunityunityrendingAiAnalysisatlerstagecnanged listener class In 4.205rielu valuesoel vice execule - uoes ll uoudle te opportunily thoualllLiorsAiAnalysisAfterStageChanged does'te the opportunity. It's a trigger/orchestration step. Here's the full chain:ea event Tirea|1nqA1Ana Lys1SArterstagechanged: : hand lecunhry Trom Dbhas AT CRM FILLING teature enableding CRM templatesfor the opportunityplicable template field IDsunupporcunltyAlAnalysis event queueortun1tyA1Analys1sL1scener::handle1CrmFieldValuesService: : execute()Uoportuna Vurmrle ohand ler:execuie1. Calls Prophet AI to extract field values from deal2. Saves CrmTemplateRun records3. Dispatches AiAutomationAnalysisReadyJob (queued)- FrocessAlAucomaclonana lysiskesulcs→ calls service->syncOpportunity to refresh local data- caLls UpdatecrmFleldAction:: executet)→ writes AI-generated values back to CRM (HubSpot)Uiniisrronously, but not stage_id - it writes Al-generated CRM field values (notnalysisResults::getTargetObiect( calls service->syncOpportunity - Provsiskesulusono.bv - wnichre-suncste opporuhitrom =losoontage_id and other fields as a side effect:: syncRemoteRecord() also calls syncOpportunity after writing — UpdateCrmlly (no-op) if:_CRM_FILLING feature flagtch the opportunityve no active fieldshaes Issuealls inside ProcessAiAutomationAnalysisResults go through the normalen calls resolvestace → polentally inportstades, so this Al auromationnal trigger for the repeated importStages calls you're seeing, separate tromWinasun lea( 4 spaces...
|
NULL
|
-9213795680559457806
|
NULL
|
visual_change
|
ocr
|
NULL
|
FirefoxFileEoitViewHistoryBookmarksImport bookmark FirefoxFileEoitViewHistoryBookmarksImport bookmarks...Sprint BoardSRD QueueProfilesToolsWindowHelpapp.staging.jiminny.com/Jiminny - app.staging.jiminny.comapoleapple watchapp storeapple musicapple watch 11apoe warch ulrraFirefox SuggestJiminny - app.staging.jiminny.com/ondemand?topic_idl]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4* Github - github.com/jiminny/app/pull/11932Jiminny - app.dev.jiminny.com/dashboardFirefoxSearch with Google or enter addressPlatform Sprint2Q2 -...JiminnyJiminnyJY-20543 addAJ reports...MInbox (1,565) -Pipelines -jiminny/appBambooHRMeet - Daily -22°CNew York CityBackend Chapter • 10 m leftAL AutomatedReportsCommandTestv100% C•8 • Fri 17 Apr 11:20:48nvestigating HubSpotAListeners|PendingAnalysis|OpportunityPendingAiAnalysisAfterStageChanged:ate the opportunityunityrendingAiAnalysisatlerstagecnanged listener class In 4.205rielu valuesoel vice execule - uoes ll uoudle te opportunily thoualllLiorsAiAnalysisAfterStageChanged does'te the opportunity. It's a trigger/orchestration step. Here's the full chain:ea event Tirea|1nqA1Ana Lys1SArterstagechanged: : hand lecunhry Trom Dbhas AT CRM FILLING teature enableding CRM templatesfor the opportunityplicable template field IDsunupporcunltyAlAnalysis event queueortun1tyA1Analys1sL1scener::handle1CrmFieldValuesService: : execute()Uoportuna Vurmrle ohand ler:execuie1. Calls Prophet AI to extract field values from deal2. Saves CrmTemplateRun records3. Dispatches AiAutomationAnalysisReadyJob (queued)- FrocessAlAucomaclonana lysiskesulcs→ calls service->syncOpportunity to refresh local data- caLls UpdatecrmFleldAction:: executet)→ writes AI-generated values back to CRM (HubSpot)Uiniisrronously, but not stage_id - it writes Al-generated CRM field values (notnalysisResults::getTargetObiect( calls service->syncOpportunity - Provsiskesulusono.bv - wnichre-suncste opporuhitrom =losoontage_id and other fields as a side effect:: syncRemoteRecord() also calls syncOpportunity after writing — UpdateCrmlly (no-op) if:_CRM_FILLING feature flagtch the opportunityve no active fieldshaes Issuealls inside ProcessAiAutomationAnalysisResults go through the normalen calls resolvestace → polentally inportstades, so this Al auromationnal trigger for the repeated importStages calls you're seeing, separate tromWinasun lea( 4 spaces...
|
43740
|
|
76322
|
1910
|
31
|
2026-04-24T07:41:17.662699+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777016477662_m2.jpg...
|
Firefox
|
Coverage on New Code - app in Jiminny SonarQube Cl Coverage on New Code - app in Jiminny SonarQube Cloud — Work...
|
True
|
sonarcloud.io/component_measures?metric=new_covera sonarcloud.io/component_measures?metric=new_coverage&selected=jiminny_app%3Aapp%2FJobs%2FAutomatedReports%2FSendReportNotGeneratedMailJob.php&view=list&pullRequest=12011&id=jiminny_app...
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
New Tab
New Tab
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
Userpilot | Nudge-created
Userpilot | Nudge-created
Coverage on New Code - app in Jiminny SonarQube Cloud
Coverage on New Code - app in Jiminny SonarQube Cloud
Close tab
Pipelines - jiminny/app
Pipelines - jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to main content
Skip to main content
Skip to measure filters
Skip to measure filters
Undock sidebar
Continuous Code Quality
Favorite Projects
Favorite Projects
Assigned Issues
Assigned Issues
Explore
Explore
Search
Product news
1
Help
New...
Account
app
Project
Overview
Overview
Analysis
Summary
Summary
Issues
Issues
Architecture New
Architecture
New
Security hotspots
Security hotspots
Reporting
Measures
Measures
Activity
Activity
Policies
Intended architecture New
Intended architecture
New
Project
Pull Requests 154
Pull Requests
154
Branches 16
Branches
16
Code
Code
Project Information
Project Information
Jiminny
Jiminny
app
app
Measures
Measures
Measures
12011 – JY-20157 add not enough activities notification
12011 – JY-20157 add not enough activities notification
Project Overview
Security Domain help tooltip
Security
Reliability Domain help tooltip
Reliability
Maintainability Domain help tooltip
Maintainability
Security Review Domain help tooltip
Security Review
Coverage
Coverage
Coverage Has value: 6.3%
Coverage
6.3%
Lines to Cover Has value: 32
Lines to Cover
32
Uncovered Lines Has value: 30
Uncovered Lines
30
Line Coverage Has value: 6.3%
Line Coverage
6.3%
Conditions to Cover Has value: 0
Conditions to Cover
0
Uncovered Conditions Has value: 0
Uncovered Conditions
0
Duplications
Duplications
Size
Size
Issues
Issues
app
app
app
app
Jobs
Jobs
AutomatedReports
AutomatedReports
SendReportNotGeneratedMailJob.php
SendReportNotGeneratedMailJob.php
Copy to clipboard
Coverage on New Code
6.3%
Line: 1
Author: [EMAIL], Click to see SCM information
<?php
Line: 2
Author: [EMAIL], Click to see SCM information
Line: 3
Author: [EMAIL], Click to see SCM information
declare
(strict_types=
1
);
Line: 4
Author: [EMAIL], Click to see SCM information
Line: 5
Author: [EMAIL], Click to see SCM information...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.23287898,"top":0.0518755,"width":0.07596409,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app","depth":4,"bounds":{"left":0.23105054,"top":0.09497207,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app","depth":5,"bounds":{"left":0.2443484,"top":0.10614525,"width":0.1619016,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"New Tab","depth":4,"bounds":{"left":0.23105054,"top":0.12769353,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"New Tab","depth":5,"bounds":{"left":0.2443484,"top":0.13886672,"width":0.014960106,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app","depth":4,"bounds":{"left":0.23105054,"top":0.16041501,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app","depth":5,"bounds":{"left":0.2443484,"top":0.17158818,"width":0.14128989,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.23105054,"top":0.19313647,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2443484,"top":0.20430966,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.23105054,"top":0.22585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2443484,"top":0.23703113,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Userpilot | Nudge-created","depth":4,"bounds":{"left":0.23105054,"top":0.2585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Userpilot | Nudge-created","depth":5,"bounds":{"left":0.2443484,"top":0.2697526,"width":0.04537899,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Coverage on New Code - app in Jiminny SonarQube Cloud","depth":4,"bounds":{"left":0.23105054,"top":0.29130086,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Coverage on New Code - app in Jiminny SonarQube Cloud","depth":5,"bounds":{"left":0.2443484,"top":0.30247405,"width":0.10139628,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.29837102,"top":0.29848364,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.23105054,"top":0.32402235,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"bounds":{"left":0.2443484,"top":0.33519554,"width":0.039228722,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app","depth":4,"bounds":{"left":0.23105054,"top":0.3567438,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app","depth":5,"bounds":{"left":0.2443484,"top":0.367917,"width":0.15924202,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.23387633,"top":0.39106146,"width":0.07413564,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.23387633,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.24484707,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.25598404,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.26712102,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.27825797,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to main content","depth":7,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to main content","depth":8,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Skip to measure filters","depth":7,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to measure filters","depth":8,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Undock sidebar","depth":8,"bounds":{"left":0.3146609,"top":0.059856344,"width":0.011968086,"height":0.028731046},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Continuous Code Quality","depth":8,"bounds":{"left":0.33460772,"top":0.058260176,"width":0.04936835,"height":0.031923383},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Favorite Projects","depth":11,"bounds":{"left":0.39594415,"top":0.061452515,"width":0.041888297,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Favorite Projects","depth":12,"bounds":{"left":0.39793882,"top":0.06743815,"width":0.037898935,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Assigned Issues","depth":11,"bounds":{"left":0.44049203,"top":0.061452515,"width":0.040724736,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Assigned Issues","depth":12,"bounds":{"left":0.4424867,"top":0.06743815,"width":0.03673537,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Explore","depth":11,"bounds":{"left":0.48387632,"top":0.061452515,"width":0.020944148,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Explore","depth":12,"bounds":{"left":0.48587102,"top":0.06743815,"width":0.016954787,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search","depth":8,"bounds":{"left":0.92785907,"top":0.061452515,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Product news","depth":8,"bounds":{"left":0.9411569,"top":0.061452515,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":10,"bounds":{"left":0.9478058,"top":0.06384677,"width":0.0019946808,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Help","depth":8,"bounds":{"left":0.9544548,"top":0.061452515,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New...","depth":8,"bounds":{"left":0.96775264,"top":0.061452515,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Account","depth":8,"bounds":{"left":0.98105055,"top":0.061452515,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"app","depth":12,"bounds":{"left":0.32662898,"top":0.111332804,"width":0.008477394,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Project","depth":11,"bounds":{"left":0.32662898,"top":0.1264964,"width":0.013297873,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Overview","depth":10,"bounds":{"left":0.31333113,"top":0.15881884,"width":0.07446808,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Overview","depth":12,"bounds":{"left":0.32396942,"top":0.16480447,"width":0.020777926,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Analysis","depth":13,"bounds":{"left":0.3159907,"top":0.19752593,"width":0.015791224,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Summary","depth":13,"bounds":{"left":0.31333113,"top":0.21947326,"width":0.07446808,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Summary","depth":15,"bounds":{"left":0.32396942,"top":0.2254589,"width":0.020944148,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":13,"bounds":{"left":0.31333113,"top":0.2482043,"width":0.07446808,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":15,"bounds":{"left":0.32396942,"top":0.25418994,"width":0.01412899,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Architecture New","depth":13,"bounds":{"left":0.31333113,"top":0.27693537,"width":0.07446808,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture","depth":15,"bounds":{"left":0.32396942,"top":0.282921,"width":0.026928192,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"New","depth":15,"bounds":{"left":0.37516624,"top":0.28371906,"width":0.008643617,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security hotspots","depth":13,"bounds":{"left":0.31333113,"top":0.3056664,"width":0.07446808,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security hotspots","depth":15,"bounds":{"left":0.32396942,"top":0.31165203,"width":0.03856383,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Reporting","depth":13,"bounds":{"left":0.3159907,"top":0.3443735,"width":0.018284574,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Measures","depth":13,"bounds":{"left":0.31333113,"top":0.36632082,"width":0.07446808,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Measures","depth":15,"bounds":{"left":0.32396942,"top":0.37230647,"width":0.022273935,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Activity","depth":13,"bounds":{"left":0.31333113,"top":0.39505187,"width":0.07446808,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Activity","depth":15,"bounds":{"left":0.32396942,"top":0.4010375,"width":0.016456118,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Policies","depth":13,"bounds":{"left":0.3159907,"top":0.43375897,"width":0.014461436,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Intended architecture New","depth":13,"bounds":{"left":0.31333113,"top":0.4557063,"width":0.07446808,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Intended architecture","depth":15,"bounds":{"left":0.32396942,"top":0.46169195,"width":0.047041222,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"New","depth":15,"bounds":{"left":0.37516624,"top":0.46249002,"width":0.008643617,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Project","depth":13,"bounds":{"left":0.3159907,"top":0.4944134,"width":0.013297873,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull Requests 154","depth":13,"bounds":{"left":0.31333113,"top":0.51636076,"width":0.07446808,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull Requests","depth":15,"bounds":{"left":0.32396942,"top":0.5223464,"width":0.029587766,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"154","depth":15,"bounds":{"left":0.37699467,"top":0.5231444,"width":0.0068151597,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Branches 16","depth":13,"bounds":{"left":0.31333113,"top":0.5450918,"width":0.07446808,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Branches","depth":15,"bounds":{"left":0.32396942,"top":0.5510774,"width":0.020777926,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"16","depth":15,"bounds":{"left":0.37965426,"top":0.5518755,"width":0.004155585,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":13,"bounds":{"left":0.31333113,"top":0.5738228,"width":0.07446808,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":15,"bounds":{"left":0.32396942,"top":0.5798085,"width":0.011801862,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Project Information","depth":13,"bounds":{"left":0.31333113,"top":0.60255384,"width":0.07446808,"height":0.025538707},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Project Information","depth":15,"bounds":{"left":0.32396942,"top":0.6085395,"width":0.041888297,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Jiminny","depth":9,"bounds":{"left":0.39876994,"top":0.11691939,"width":0.01462766,"height":0.011971269},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":10,"bounds":{"left":0.39876994,"top":0.11691939,"width":0.01462766,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"app","depth":9,"bounds":{"left":0.42270613,"top":0.11691939,"width":0.0071476065,"height":0.011971269},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app","depth":10,"bounds":{"left":0.42270613,"top":0.11691939,"width":0.0071476065,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Measures","depth":9,"bounds":{"left":0.43916222,"top":0.11691939,"width":0.018450798,"height":0.011971269},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Measures","depth":8,"bounds":{"left":0.39876994,"top":0.14205906,"width":0.03673537,"height":0.028731046},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Measures","depth":9,"bounds":{"left":0.39876994,"top":0.14485236,"width":0.03673537,"height":0.023543496},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"12011 – JY-20157 add not enough activities notification","depth":8,"bounds":{"left":0.44348404,"top":0.14365523,"width":0.13297872,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12011 – JY-20157 add not enough activities notification","depth":11,"bounds":{"left":0.45462102,"top":0.14964086,"width":0.122340426,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Project Overview","depth":8,"bounds":{"left":0.3977726,"top":0.22027135,"width":0.08543883,"height":0.0415004},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Security Domain help tooltip","depth":9,"bounds":{"left":0.3977726,"top":0.27613726,"width":0.08543883,"height":0.0415004},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Security","depth":11,"bounds":{"left":0.40309176,"top":0.29010376,"width":0.018949468,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Reliability Domain help tooltip","depth":9,"bounds":{"left":0.3977726,"top":0.3320032,"width":0.08543883,"height":0.0415004},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Reliability","depth":11,"bounds":{"left":0.40309176,"top":0.34596968,"width":0.021941489,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Maintainability Domain help tooltip","depth":9,"bounds":{"left":0.3977726,"top":0.38786912,"width":0.08543883,"height":0.0415004},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Maintainability","depth":11,"bounds":{"left":0.40309176,"top":0.4018356,"width":0.03307846,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Security Review Domain help tooltip","depth":9,"bounds":{"left":0.3977726,"top":0.44373503,"width":0.08543883,"height":0.0415004},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Security Review","depth":11,"bounds":{"left":0.40309176,"top":0.4577015,"width":0.036236703,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Coverage","depth":9,"bounds":{"left":0.3977726,"top":0.49960095,"width":0.08543883,"height":0.0415004},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"Coverage","depth":11,"bounds":{"left":0.40309176,"top":0.51356745,"width":0.021775266,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Coverage Has value: 6.3%","depth":9,"bounds":{"left":0.3977726,"top":0.54269755,"width":0.08543883,"height":0.0415004},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Coverage","depth":11,"bounds":{"left":0.40575132,"top":0.556664,"width":0.021276595,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"6.3%","depth":11,"bounds":{"left":0.46509308,"top":0.556664,"width":0.011469414,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Lines to Cover Has value: 32","depth":9,"bounds":{"left":0.3977726,"top":0.584996,"width":0.08543883,"height":0.0415004},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Lines to Cover","depth":11,"bounds":{"left":0.40575132,"top":0.5989625,"width":0.03158245,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"32","depth":11,"bounds":{"left":0.4709109,"top":0.5989625,"width":0.0056515955,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Uncovered Lines Has value: 30","depth":9,"bounds":{"left":0.3977726,"top":0.6272945,"width":0.08543883,"height":0.0415004},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Uncovered Lines","depth":11,"bounds":{"left":0.40575132,"top":0.641261,"width":0.03706782,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"30","depth":11,"bounds":{"left":0.47074467,"top":0.641261,"width":0.005817819,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Line Coverage Has value: 6.3%","depth":9,"bounds":{"left":0.3977726,"top":0.669593,"width":0.08543883,"height":0.0415004},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Line Coverage","depth":11,"bounds":{"left":0.40575132,"top":0.6835595,"width":0.03174867,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"6.3%","depth":11,"bounds":{"left":0.46509308,"top":0.6835595,"width":0.011469414,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Conditions to Cover Has value: 0","depth":9,"bounds":{"left":0.3977726,"top":0.7118915,"width":0.08543883,"height":0.0415004},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Conditions to Cover","depth":11,"bounds":{"left":0.40575132,"top":0.7258579,"width":0.043550532,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":11,"bounds":{"left":0.47357047,"top":0.7258579,"width":0.0029920214,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Uncovered Conditions Has value: 0","depth":9,"bounds":{"left":0.3977726,"top":0.75418997,"width":0.08543883,"height":0.0415004},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Uncovered Conditions","depth":11,"bounds":{"left":0.40575132,"top":0.7681564,"width":0.04886968,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":11,"bounds":{"left":0.47357047,"top":0.7681564,"width":0.0029920214,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Duplications","depth":9,"bounds":{"left":0.3977726,"top":0.81005585,"width":0.08543883,"height":0.0415004},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Duplications","depth":11,"bounds":{"left":0.40309176,"top":0.82402235,"width":0.028091755,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Size","depth":9,"bounds":{"left":0.3977726,"top":0.8659218,"width":0.08543883,"height":0.0415004},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Size","depth":11,"bounds":{"left":0.40309176,"top":0.8798883,"width":0.009474734,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Issues","depth":9,"bounds":{"left":0.3977726,"top":0.92178774,"width":0.08543883,"height":0.0415004},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Issues","depth":11,"bounds":{"left":0.40309176,"top":0.9357542,"width":0.01462766,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"app","depth":12,"bounds":{"left":0.56865025,"top":0.22944932,"width":0.008477394,"height":0.01396648},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app","depth":13,"bounds":{"left":0.56865025,"top":0.22944932,"width":0.008477394,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"app","depth":12,"bounds":{"left":0.5824468,"top":0.22944932,"width":0.008477394,"height":0.01396648},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app","depth":13,"bounds":{"left":0.5824468,"top":0.22944932,"width":0.008477394,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Jobs","depth":12,"bounds":{"left":0.5962433,"top":0.22944932,"width":0.010970744,"height":0.01396648},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jobs","depth":13,"bounds":{"left":0.5962433,"top":0.22944932,"width":0.010970744,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"AutomatedReports","depth":12,"bounds":{"left":0.6125333,"top":0.22944932,"width":0.042220745,"height":0.01396648},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"AutomatedReports","depth":13,"bounds":{"left":0.6125333,"top":0.22944932,"width":0.042220745,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SendReportNotGeneratedMailJob.php","depth":12,"bounds":{"left":0.66007316,"top":0.22944932,"width":0.08610372,"height":0.01396648},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SendReportNotGeneratedMailJob.php","depth":13,"bounds":{"left":0.66007316,"top":0.22944932,"width":0.08610372,"height":0.01396648},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy to clipboard","depth":10,"bounds":{"left":0.75016624,"top":0.22346368,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Coverage on New Code","depth":12,"bounds":{"left":0.56865025,"top":0.28371906,"width":0.06050532,"height":0.01556265},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"6.3%","depth":12,"bounds":{"left":0.63048536,"top":0.28371906,"width":0.012965426,"height":0.01556265},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Line: 1","depth":12,"bounds":{"left":0.5716423,"top":0.32083002,"width":0.004986702,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Author: kovaliklukas@gmail.com, Click to see SCM information","depth":13,"bounds":{"left":0.58361036,"top":0.32083002,"width":0.019281914,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"<?php","depth":14,"bounds":{"left":0.6171875,"top":0.32322428,"width":0.011635638,"height":0.011572227},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Line: 2","depth":12,"bounds":{"left":0.5716423,"top":0.3367917,"width":0.004986702,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Author: kovaliklukas@gmail.com, Click to see SCM information","depth":13,"bounds":{"left":0.58361036,"top":0.3367917,"width":0.019281914,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Line: 3","depth":12,"bounds":{"left":0.5716423,"top":0.3527534,"width":0.004986702,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Author: kovaliklukas@gmail.com, Click to see SCM information","depth":13,"bounds":{"left":0.58361036,"top":0.3527534,"width":0.019281914,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"declare","depth":14,"bounds":{"left":0.6171875,"top":0.35514766,"width":0.016289894,"height":0.011572227},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(strict_types=","depth":14,"bounds":{"left":0.6334774,"top":0.35514766,"width":0.032579787,"height":0.011572227},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1","depth":14,"bounds":{"left":0.66605717,"top":0.35514766,"width":0.0023271276,"height":0.011572227},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":");","depth":14,"bounds":{"left":0.6683843,"top":0.35514766,"width":0.004654255,"height":0.011572227},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Line: 4","depth":12,"bounds":{"left":0.5716423,"top":0.36871508,"width":0.004986702,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Author: kovaliklukas@gmail.com, Click to see SCM information","depth":13,"bounds":{"left":0.58361036,"top":0.36871508,"width":0.019281914,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Line: 5","depth":12,"bounds":{"left":0.5716423,"top":0.38467678,"width":0.004986702,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Author: kovaliklukas@gmail.com, Click to see SCM information","depth":13,"bounds":{"left":0.58361036,"top":0.38467678,"width":0.019281914,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
-9213418456227941782
|
8455916017526694570
|
app_switch
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
JY-20489 | Optimize Nudges - Phase 2 by yalokin-jiminny · Pull Request #11997 · jiminny/app
New Tab
New Tab
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
Userpilot | Nudge-created
Userpilot | Nudge-created
Coverage on New Code - app in Jiminny SonarQube Cloud
Coverage on New Code - app in Jiminny SonarQube Cloud
Close tab
Pipelines - jiminny/app
Pipelines - jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to main content
Skip to main content
Skip to measure filters
Skip to measure filters
Undock sidebar
Continuous Code Quality
Favorite Projects
Favorite Projects
Assigned Issues
Assigned Issues
Explore
Explore
Search
Product news
1
Help
New...
Account
app
Project
Overview
Overview
Analysis
Summary
Summary
Issues
Issues
Architecture New
Architecture
New
Security hotspots
Security hotspots
Reporting
Measures
Measures
Activity
Activity
Policies
Intended architecture New
Intended architecture
New
Project
Pull Requests 154
Pull Requests
154
Branches 16
Branches
16
Code
Code
Project Information
Project Information
Jiminny
Jiminny
app
app
Measures
Measures
Measures
12011 – JY-20157 add not enough activities notification
12011 – JY-20157 add not enough activities notification
Project Overview
Security Domain help tooltip
Security
Reliability Domain help tooltip
Reliability
Maintainability Domain help tooltip
Maintainability
Security Review Domain help tooltip
Security Review
Coverage
Coverage
Coverage Has value: 6.3%
Coverage
6.3%
Lines to Cover Has value: 32
Lines to Cover
32
Uncovered Lines Has value: 30
Uncovered Lines
30
Line Coverage Has value: 6.3%
Line Coverage
6.3%
Conditions to Cover Has value: 0
Conditions to Cover
0
Uncovered Conditions Has value: 0
Uncovered Conditions
0
Duplications
Duplications
Size
Size
Issues
Issues
app
app
app
app
Jobs
Jobs
AutomatedReports
AutomatedReports
SendReportNotGeneratedMailJob.php
SendReportNotGeneratedMailJob.php
Copy to clipboard
Coverage on New Code
6.3%
Line: 1
Author: [EMAIL], Click to see SCM information
<?php
Line: 2
Author: [EMAIL], Click to see SCM information
Line: 3
Author: [EMAIL], Click to see SCM information
declare
(strict_types=
1
);
Line: 4
Author: [EMAIL], Click to see SCM information
Line: 5
Author: [EMAIL], Click to see SCM information...
|
NULL
|
|
57255
|
1233
|
7
|
2026-04-20T11:47:35.585423+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776685655585_m1.jpg...
|
iTerm2
|
iTerm2
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp‹ →0 dol100% C 8DEV (docker)APP (-zsh)DOCKER• 881DEV (docker)jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-conferences:worker-conferences_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1: jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00: startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny# php artisan activity:update-esYou are about to work on activities:willinclude soft-deleted activitiesAre you sure? (yes/no) [no]:• yesAbout to work on 63813 activities with chunk size 50! Are you sure? (yes/no) [no]:› noX3-zsh*4screenpipe"Mon 20 Apr 14:47:35T81• 85DEV...
|
NULL
|
-9213191696657258636
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp‹ →0 dol100% C 8DEV (docker)APP (-zsh)DOCKER• 881DEV (docker)jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-conferences:worker-conferences_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1: jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00: startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny# php artisan activity:update-esYou are about to work on activities:willinclude soft-deleted activitiesAre you sure? (yes/no) [no]:• yesAbout to work on 63813 activities with chunk size 50! Are you sure? (yes/no) [no]:› noX3-zsh*4screenpipe"Mon 20 Apr 14:47:35T81• 85DEV...
|
57253
|
|
72901
|
1779
|
27
|
2026-04-23T06:22:00.276981+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-23/1776 /Users/lukas/.screenpipe/data/data/2026-04-23/1776925320276_m2.jpg...
|
PhpStorm
|
faVsco.js – AutomatedReportsRepository.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20157-AJ-report-not-se Project: faVsco.js, menu
JY-20157-AJ-report-not-send-notification, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
16
2
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Carbon\CarbonImmutable;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\DB;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSort;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSortDirection;
class AutomatedReportsRepository
{
/**
* Create a new automated report
*
* @param array $data
*
* @return AutomatedReport
*/
public function create(array $data): AutomatedReport
{
return AutomatedReport::create($data);
}
/**
* Find an automated report by UUID
*
* @param string $uuid
*
* @return AutomatedReport|null
*/
public function findByUuid(string $uuid): ?AutomatedReport
{
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($uuid))->first();
}
public function findByIdOrUuid(string $idOrUuid): ?AutomatedReport
{
if (is_numeric($idOrUuid)) {
return AutomatedReport::find((int) $idOrUuid);
}
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($idOrUuid))->first();
}
/**
* Retrieve all standard (non-Ask Jiminny) automated reports.
*
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAllStandardReports(
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->whereNot('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->get();
}
/**
* Retrieve all Ask Jiminny reports created by the given user.
*
* @param User $user The user whose reports to retrieve.
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAskJiminnyReportsByUser(
User $user,
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->where('created_by', $user->getId())
->get();
}
private function buildSortedQuery(string $sortColumn, string $sortDirection): \Illuminate\Database\Eloquent\Builder
{
$allowedColumns = ['created_by', 'created_at'];
if (! in_array($sortColumn, $allowedColumns)) {
$sortColumn = 'created_at';
}
$sortDirection = strtolower($sortDirection) === 'asc' ? 'asc' : 'desc';
$query = AutomatedReport::query()->with(['creator', 'team']);
if ($sortColumn === 'created_by') {
$query->leftJoin('users', 'users.id', '=', 'automated_reports.created_by')
->orderByRaw("users.name COLLATE utf8mb4_unicode_ci {$sortDirection}")
->select('automated_reports.*');
} else {
$query->orderBy($sortColumn, $sortDirection);
}
return $query;
}
/**
* Get all active Ask Jiminny reports whose expiry date has passed.
*
* @return Collection<AutomatedReport>
*/
public function getExpiredActiveAskJiminnyReports(): Collection
{
return AutomatedReport::where('status', true)
->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->whereNotNull('expires_at')
->where('expires_at', '<', now()->toDateString())
->get();
}
/**
* Get all active and enabled reports with active teams for the specified frequency.
*
* @param string $frequency
*
* @return Collection<AutomatedReport>
*/
public function getActiveReportsByFrequency(string $frequency): Collection
{
return AutomatedReport::where('automated_reports.status', true)
->where('automated_reports.frequency', $frequency)
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->where('teams.status', Team::STATUS_ACTIVE)
->where(function ($query) {
$query->whereNull('automated_reports.expires_at')
->orWhere('automated_reports.expires_at', '>=', now()->toDateString());
})
->select('automated_reports.*')
->get();
}
/**
* Update an automated report
*
* @param AutomatedReport $report
* @param array $data
*
* @return AutomatedReport
*/
public function update(AutomatedReport $report, array $data): AutomatedReport
{
$report->update($data);
return $report;
}
/**
* Create a new automated report result.
*
* @param array $data The data to create the automated report result with.
*
* @return AutomatedReportResult The newly created automated report result.
*/
public function createResult(array $data): AutomatedReportResult
{
return AutomatedReportResult::create($data);
}
/**
* Find an automated report result by UUID.
*
* @param string $uuid The UUID to find the automated report result with.
*
* @return AutomatedReportResult|null The automated report result if found, otherwise null.
*/
public function findResultByUuid(string $uuid): ?AutomatedReportResult
{
return AutomatedReportResult::where('uuid', AutomatedReportResult::toOptimized($uuid))->first();
}
public function findResultByUuidForUser(string $uuid, User $user): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('uuid', AutomatedReportResult::toOptimized($uuid))
->whereHas('report', static function ($query) use ($user): void {
$query->where('team_id', $user->getTeamId())
->where('created_by', $user->getId());
})
->first();
}
public function findChildResult(AutomatedReportResult $result, string $type): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('parent_id', $result->getId())
->where('media_type', $type)
->first();
}
public function findLatestDefaultOrFailedResult(AutomatedReport $report): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('report_id', $report->getId())
->whereIn('status', [AutomatedReportResult::STATUS_DEFAULT, AutomatedReportResult::STATUS_FAILED])
->latest()
->first();
}
public function getGeneratedNotSentResults(): Collection
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNull('sent_at')
->where('status', AutomatedReportResult::STATUS_GENERATED)
->whereHas('report')
->with('report')
->get();
}
public function getPaginatedUserReports(
User $user,
ReportSort $sort,
ReportSortDirection $sortDirection,
int $resultsPerPage,
int $page,
?Carbon $fromDate,
?Carbon $toDate,
array $teamIds,
array $reportTypes,
?string $name,
): LengthAwarePaginator {
$query = AutomatedReportResult::query()
->whereNotNull('automated_report_results.generated_at')
->join('automated_reports', 'automated_report_results.report_id', '=', 'automated_reports.id')
->where(fn (Builder $q) => $this->applyUserAccessScope($q, $user))
->orderByRaw("$sort->value COLLATE utf8mb4_unicode_ci {$sortDirection->value}")
->select('automated_report_results.*')
->with('report.team');
if ($fromDate !== null && $toDate !== null) {
$query->whereBetween('generated_at', [$fromDate, $toDate]);
}
if (! empty($teamIds)) {
$query->where(function ($q) use ($teamIds) {
foreach ($teamIds as $id) {
$q->orWhereJsonContains('automated_reports.groups', $id);
}
});
}
if (! empty($reportTypes)) {
$query->whereIn('automated_reports.type', $reportTypes);
}
if (! empty($name)) {
$query->whereLike('name', "%$name%");
}
return $query->paginate($resultsPerPage, ['*'], 'page', $page);
}
public function countUserReports(User $user): int
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNotNull('sent_at')
->whereHas('report', function ($q) use ($user) {
$q->where('team_id', $user->getTeamId())
->whereJsonContains('recipients->users', $user->getId());
})
->count();
}
/**
* Restrict a query on the automated_reports table to reports the given user is allowed to see.
*
* Matches the customer-facing audience:
* - explicit user recipients (recipients.users)
* - members of any of the report's groups (Ask Jiminny reports)
*/
private function applyUserAccessScope(Builder $query, User $user): void
{
$userId = $user->getId();
$groupId = $user->getGroupId();
$query
->where('automated_reports.team_id', $user->getTeamId())
->where(function (Builder $q) use ($userId, $groupId): void {
$q->whereJsonContains('automated_reports.recipients->users', $userId);
if ($groupId !== null) {
$q->orWhere(function (Builder $sub) use ($groupId): void {
$sub->where('automated_reports.type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->whereJsonContains('automated_reports.groups', $groupId);
});
}
});
}
/**
* Get report IDs for a specific team
*
* @param Team $team
*
* @return \Illuminate\Support\Collection
*/
public function getReportIdsByTeam(Team $team): \Illuminate\Support\Collection
{
return AutomatedReport::where('team_id', $team->getId())->pluck('id');
}
/**
* Get all reports for a specific team
*
* @param Team $team
*
* @return Collection
*/
public function getReportsByTeam(Team $team): Collection
{
return AutomatedReport::where('team_id', $team->getId())->get();
}
/**
* Get all report results for a specific report
*
* @param AutomatedReport $report
*
* @return Collection
*/
public function getResultsByReport(AutomatedReport $report): Collection
{
return $this->getResultsByReportQuery($report)->get();
}
public function getResultsByReportQuery(AutomatedReport $report): Builder
{
return AutomatedReportResult::where('report_id', $report->getId());
}
public function getReportResultsQueryForRetention(Team $team, CarbonImmutable $retentionDate): Builder
{
$reportIds = $this->getReportIdsByTeam($team);
return AutomatedReportResult::query()->whereIn('report_id', $reportIds)
->whereRaw('IFNULL(generated_at, created_at) <= ?', [$retentionDate]);
}
/**
* @param int|null $teamId Optional team ID to filter results
*
* @return \Illuminate\Support\Collection<int, int> Collection of team IDs
*/
public function getTeamIdsWithReportsResults(?int $teamId = null): \Illuminate\Support\Collection
{
$query = DB::table('automated_reports')
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->select('teams.id')
->distinct();
if ($teamId !== null) {
$query->where('teams.id', $teamId);
}
return $query->pluck('teams.id');
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
36
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Component\DealInsights;
use Doctrine\DBAL\Connection;
use Generator;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Jiminny\Component\DealInsights\Forecast\DealData;
use Jiminny\Component\DealInsights\Forecast\DealsFilter;
use Jiminny\Component\DealInsights\QueryBuilder\QueryBuilder;
use Jiminny\Component\DealInsights\QueryBuilder\Visitor\QueryBuilderVisitorInterface;
use Jiminny\Contracts\Services\Crm\ServiceInterface;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Models\Activity;
use Jiminny\Models\Crm\Configuration;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Stage;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Models;
use Jiminny\Services\Crm\IntegrationApp\DTO\Utils\UrlGeneratorInterface;
use Jiminny\Services\Crm\ProviderRegistry;
use Jiminny\Traits\RequiresUUID;
use Illuminate\Database\Query\Builder;
use Illuminate\Database\Eloquent;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
class DealsRepository implements DealsRepositoryInterface
{
private Connection $connection;
private ProviderRegistry $providerRegistry;
/**
* @var QueryBuilderVisitorInterface[]
*/
private array $visitors = [];
/**
* @param QueryBuilderVisitorInterface[] $visitors
*/
public function __construct(Connection $connection, ProviderRegistry $crmProviderRegistry, array $visitors = [])
{
$this->connection = $connection;
$this->providerRegistry = $crmProviderRegistry;
foreach ($visitors as $visitor) {
$this->visitors[$visitor->getIdentifier()] = $visitor;
}
}
public function getDeals(CriteriaInterface $criteria): array
{
$context = $criteria->getContext();
$team = $context->getTeam();
$crmService = $this->getCrmService($team);
$qb = $this->createQueryBuilder(QueryBuilder::REALM_DEALS);
$qb = $this->getSearchSelectAndWhereClauses($qb);
$this->visit($qb, $criteria);
return $this->execute($team, $crmService, $qb);
}
public function getDeal(Team $team, int $id): array
{
$crmService = $this->getCrmService($team);
$qb = $this->createQueryBuilder(QueryBuilder::REALM_DEALS);
$qb = $this->getSearchSelectAndWhereClauses($qb);
$qb->andWhere('opp.id = :id')->setParameter('id', $id);
return $this->execute($team, $crmService, $qb);
}
public function getCrmFieldData(array $crmFields, int $crmId, array $opportunityIds = [])
{
$qb = new QueryBuilder($this->connection);
$qb
->select('f.id', 'f.crm_provider_id AS field_name', 'f.label', 'fd.object_id AS dealId', 'fd.value')
->from('crm_fields', 'f')
->join('f', 'crm_field_data', 'fd', 'fd.crm_field_id = f.id')
->where('f.crm_configuration_id = :crm')
->andWhere('f.object_type = :type')
->andWhere('fd.object_id IN (' . implode(',', $opportunityIds) . ')')
->orderBy('fd.object_id', 'ASC')
->addOrderBy('fd.updated_at', 'ASC')
->setParameter('type', Field::OBJECT_OPPORTUNITY)
->setParameter('crm', $crmId)
;
if (! empty($crmFields)) {
$fields = array_map(fn ($value): string => '"' . $value . '"', $crmFields);
$qb->andWhere('f.crm_provider_id IN (' . implode(',', $fields) . ')');
}
return $qb->executeQuery()->fetchAllAssociative();
}
public function getTotalsInDefaultCurrency(CriteriaInterface $criteria): array
{
$qb = $this->createQueryBuilder(QueryBuilder::REALM_TOTALS);
$qb
->select('SUM(opp.value) as total')
->addSelect('count(*) as `count`')
->where($qb->expr()->isNotNull('opp.user_id')) // we should not include deals owned by external users
->andWhere($qb->expr()->isNull('opp.deleted_at'))
;
$this->visit($qb, $criteria);
return $qb->executeQuery()->fetchAssociative();
}
public function getTotals(CriteriaInterface $criteria, string $defaultCurrency): array
{
$qb = $this->createQueryBuilder(QueryBuilder::REALM_TOTALS);
$qb
->select('COALESCE(opp.currency_code, "' . $defaultCurrency . '") AS currency')
->addSelect('SUM(opp.value) as total')
->addSelect('count(*) as `count`')
->where($qb->expr()->isNotNull('opp.user_id')) // we should not include deals owned by external users
->andWhere($qb->expr()->isNull('opp.deleted_at'))
->groupBy('currency')
;
$this->visit($qb, $criteria);
return $qb->executeQuery()->fetchAllAssociative();
}
public function getDealActivities(CriteriaInterface $criteria): array
{
$qb = Activity::with(['participants', 'user'])
->where('opportunity_id', $criteria->getOpportunityId())
->whereDate('actual_start_time', '>=', $criteria->getPeriod()->getStartDate())
->whereDate('actual_start_time', '<=', $criteria->getPeriod()->getEndDate())
->orderBy($criteria->getSortBy(), $criteria->getSortDirection())
;
// Should we filter activities by criteria? It's intended to filter deals.
return $qb->get()->all();
}
public function getStages(CriteriaInterface $criteria): array
{
$qb = new QueryBuilder($this->connection);
$qb
->select('id', 'label', 'sequence')
->from('stages', 's')
->where('crm_configuration_id = :crm_configuration_id')
->andWhere('type = :type')
->orderBy('sequence', 'ASC')
->setParameter('crm_configuration_id', $criteria->getContext()->getTeam()->getCrmConfiguration()->getId())
->setParameter('type', Stage::TYPE_OPPORTUNITY);
$result = [];
foreach ($qb->executeQuery()->fetchAllAssociative() as $row) {
$result[$row['id']] = [
'label' => $row['label'],
'sequence' => $row['sequence'],
];
}
return $result;
}
public function getConfigurationStages(Configuration $configuration): Collection
{
return $configuration
->stages()
->where('type', Stage::TYPE_OPPORTUNITY)
->get();
}
public function getPipelineData(Configuration $crm): array
{
$qb = new QueryBuilder($this->connection);
$provider = $crm->provider;
$qb
->select('s.label', 's.crm_provider_id', 's.sequence', 'bps.business_process_id AS pipeline_id')
->from('stages', 's')
->join('s', 'business_process_stages', 'bps', 's.id=bps.stage_id')
->where('s.crm_configuration_id = :crm_configuration_id')
->andWhere('s.type = :type')
->orderBy('bps.business_process_id', 'ASC')
->addOrderBy('s.sequence', 'ASC')
->setParameter('crm_configuration_id', $crm->id)
->setParameter('type', Stage::TYPE_OPPORTUNITY)
;
$result = [];
foreach ($qb->executeQuery()->fetchAllAssociative() as $row) {
$value = $provider === Configuration::PROVIDER_SALESFORCE ? $row['label'] : $row['crm_provider_id'];
$result[$row['pipeline_id']][] = [
'value' => $value,
'label' => $row['label'],
'sequence' => $row['sequence'],
];
}
return $result;
}
private function createQueryBuilder(string $realm): QueryBuilder
{
return (new QueryBuilder($this->connection))
->setRealm($realm)
->from('opportunities', 'opp')
->leftJoin('opp', 'record_types', 'rt', 'opp.record_type_id = rt.id')
->leftJoin('opp', 'users', 'usr', 'opp.user_id = usr.id')
->leftJoin('opp', 'accounts', 'acc', 'opp.account_id = acc.id')
;
}
/**
* Applies all applicable visitors and returns the IDs of the executed ones
*
* @return string[]
*/
private function visit(QueryBuilder $queryBuilder, CriteriaInterface $criteria): array
{
$queryVisitors = [];
foreach ($this->visitors as $visitor) {
if ($visitor->isSatisfiedBy($criteria, $queryBuilder->getRealm())) {
$visitor->visit($queryBuilder, $criteria);
$queryVisitors[] = $visitor->getIdentifier();
}
}
return $queryVisitors;
}
private function hydrateStages(array $deals): array
{
foreach ($this->fetchStages(array_keys($deals)) as $stage) {
$oppId = (int) $stage['opportunity_id'];
if (! isset($deals[$oppId])) {
continue; // or throw??!
}
$deals[$oppId]['stages'][] = [
'id' => $stage['stage_id'],
'name' => $stage['label'],
'enteredAt' => $stage['created_at'],
];
}
return $deals;
}
/**
* @param int[] $dealIds
*/
private function fetchStages(array $dealIds): array
{
if (empty($dealIds)) {
return [];
}
$qb = new QueryBuilder($this->connection);
$qb
->select('os.opportunity_id', 's.id AS stage_id', 's.label', 's.created_at')
->from('opportunity_stages', 'os')
->leftJoin('os', 'stages', 's', 'os.stage_id=s.id')
->where($qb->expr()->in('os.opportunity_id', $dealIds))
->orderBy('os.opportunity_id', 'ASC')
->addOrderBy('s.created_at', 'ASC')
;
return $qb->executeQuery()->fetchAllAssociative();
}
private function execute(Team $team, ServiceInterface $crmService, QueryBuilder $qb): array
{
$result = [];
foreach ($qb->executeQuery()->fetchAllAssociative() as $row) {
$data = [
'uuid' => RequiresUUID::toNormal($row['uuid']),
'name' => $row['name'],
'url' => $crmService->generateProviderUrl($row['opp_provider_id'], 'opportunity'),
'account' => [
'name' => $row['acc_name'],
'url' => $crmService->generateProviderUrl(
providerId: $row['acc_provider_id'],
objectType: $row['acc_is_internal'] ? 'internal-account' : 'account'
),
],
'owner' => null,
'rawValue' => [
'amount' => (float) $row['value'],
'currency' => $row['currency_code'],
],
'value' => formatOpportunityValue((float) $row['value'], $row['currency_code']),
'openDate' => $row['remotely_created_at'] ?? null,
'closeDate' => $row['close_date'] ?? null,
'stages' => [],
'currentPipelineId' => $row['pipeline_id'],
'currentStage' => [
'id' => $row['stage_id'],
'enteredAt' => $row['stage_updated_at'],
],
'currentStageUpdatedAt' => $row['stage_updated_at'],
'isClosed' => (bool) $row['is_closed'],
'isWon' => (bool) $row['is_won'],
];
if (isset($row['owner_uuid'])) {
$data['owner'] = [
'uuid' => RequiresUUID::toNormal($row['owner_uuid']),
'name' => $row['owner_name'],
'photoUrl' => $row['owner_photo'] === null
? null
: client_cdn($row['owner_photo'], $team),
'id' => $row['owner_id'],
'job' => $row['owner_job'],
];
}
$result[(int) $row['opp_id']] = $data;
}
return $this->hydrateStages($result);
}
private function getSearchSelectAndWhereClauses(QueryBuilder $queryBuilder): QueryBuilder
{
$qb = clone $queryBuilder;
$qb->leftJoin('usr', 'job_titles', 'jt', 'usr.job_title_id = jt.id');
$qb
->select(...[
'opp.id as opp_id',
'opp.uuid',
'opp.name',
'opp.value',
'opp.currency_code',
'opp.close_date',
'opp.remotely_created_at',
'opp.is_closed',
'opp.is_won',
])
->addSelect(...[
'usr.uuid as owner_uuid',
'usr.name AS owner_name',
'usr.photo_path as owner_photo',
'usr.id AS owner_id',
'jt.name as owner_job',
])
->addSelect('opp.stage_id', 'opp.stage_updated_at')
->addSelect(...[
'acc.name AS acc_name',
'acc.is_internal as acc_is_internal',
'opp.stage_updated_at',
'acc.crm_provider_id AS acc_provider_id',
'opp.crm_provider_id AS opp_provider_id',
])
->addSelect('rt.business_process_id AS pipeline_id')
->where($qb->expr()->isNotNull('opp.user_id')) // we should not display deals owned by external users
->andWhere($qb->expr()->isNull('opp.deleted_at'));
return $qb;
}
/**
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
* @throws SocialAccountTokenInvalidException
*/
private function getCrmService(Team $team): ServiceInterface
{
$crmService = $this->providerRegistry->get($team->crm->provider);
$crmService->setConfiguration($team->crm);
if ($crmService instanceof UrlGeneratorInterface) {
$crmService->setCrmUrlGenerator($team->crm);
}
return $crmService;
}
/**
*
* @return Generator<DealData>
*/
public function getForecastData(DealsFilter $filter): Generator
{
$opportunities = DB::query()
->select([
'o.value',
'o.close_date',
'o.currency_code',
'o.is_won',
'o.is_closed',
'o.probability',
'o.forecast_category',
])
->from('opportunities', 'o')
->join('users', 'users.id', '=', 'o.user_id')
->join('groups', 'groups.id', '=', 'users.group_id')
->where('users.team_id', $filter->getTeam()->getId())
->where('o.close_date', '>=', $filter->getStartDate())
->where('o.close_date', '<=', $filter->getEndDate())
->where('o.currency_code', $filter->getCurrency())
->where('o.deleted_at', '=', null)
;
$userUuidList = $filter->getUserUuidList();
if (! empty($userUuidList)) {
$userUuidList = array_map(fn ($uuid) => RequiresUUID::toOptimized($uuid), $userUuidList);
$opportunities->whereIn('users.uuid', $userUuidList);
}
$groupUuidList = $filter->getGroupUuidList();
if (! empty($groupUuidList)) {
$groupUuidList = array_map(fn ($uuid) => RequiresUUID::toOptimized($uuid), $groupUuidList);
$opportunities->whereIn('groups.uuid', $groupUuidList);
}
foreach ($opportunities->cursor() as $row) {
yield new DealData(
(float) $row->value,
$row->close_date,
! empty($row->is_won),
! empty($row->is_closed),
$row->probability ?: 0,
$row->forecast_category ?: '',
);
}
}
public function getUserOpportunitySubscriptions(User $user, array $opportunityIds): Collection
{
return $user->subscriptionSets()
->where(static function (Eloquent\Builder $query): void {
$query
->whereNull('expired_at')
->orWhere('expired_at', '>=', now());
})
->join('activity_subscriptions', function (Builder $join) use ($opportunityIds) {
$join
->on('subscription_set_id', '=', 'activity_subscription_sets.id');
$join
->where('followable_type', Models\Activity\Subscription::FOLLOWABLE_TYPE_OPPORTUNITY)
->whereIn('followable_id', $opportunityIds);
})
->pluck('followable_id');
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app
.circleci
.cursor
.github
.sonarlint
.vscode
.windsurf
app, sources root
Actions
Component
Acl
ActionItems
Activity
ActivityAnalytics
ActivitySearch
AiActivityType
AiAutomation
AiCallScoring
AskAnything
Dtos
Events
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi
AWS
BillingManagement
Cache
CoachingFeedback
Country
CustomerApi
Database
Datadog
DateTime
DealInsights
Activity
ActivityAggregator.php, class
ActivityAggregatorInterface.php, interface
DatabaseActivities.php, class
DatasourceInterface.php, interface
RelatedActivity.php, class
RelatedActivityInterface.php, interface
Commands
Comments
Forecast
Jobs
QueryBuilder
Services
ClosingPeriodOptionDecorator.php, class
CreatedPeriodOptionDecorator.php, class
Criteria.php, class
CriteriaInterface.php, interface
CriteriaNormalizer.php, class
CrmService.php, class
CrmServiceInterface.php, interface
DealContactService.php, class
DealInsightsCriteriaBuilder.php, class
DealService.php, class
DealServiceInterface.php, interface
DealsRepository.php, class
DealsRepositoryInterface.php, interface
DealsServiceRepositories.php, class
PerformanceMonitor.php, class
PeriodOptionDecoratorInterface.php, interface
PeriodService.php, final class
PeriodServiceInterface.php, interface
DealRisks
DealRiskTypes
DealRisk.php, class
DealRisksRepository.php, class
DealRisksService.php, class
DealRisksServiceInterface.php, interface
DealRiskType.php
GroupDealRiskType.php
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection
LiveFeed
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.25731382,"top":0.019952115,"width":0.03856383,"height":0.025538707},"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20157-AJ-report-not-send-notification, menu","depth":5,"bounds":{"left":0.29587767,"top":0.019952115,"width":0.10139628,"height":0.025538707},"help_text":"Git Branch: JY-20157-AJ-report-not-send-notification","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.7972075,"top":0.019952115,"width":0.011303191,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RequestGenerateAskJiminnyReportJobTest","depth":6,"bounds":{"left":0.8125,"top":0.019952115,"width":0.10305851,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'RequestGenerateAskJiminnyReportJobTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'RequestGenerateAskJiminnyReportJobTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"16","depth":4,"bounds":{"left":0.52327126,"top":0.22426178,"width":0.009640957,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.5349069,"top":0.22426178,"width":0.007978723,"height":0.015163607},"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.54454786,"top":0.22266561,"width":0.00731383,"height":0.018355945},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.5518617,"top":0.22266561,"width":0.006981383,"height":0.018355945},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Repositories;\n\nuse Carbon\\CarbonImmutable;\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Database\\Eloquent\\Collection;\nuse Illuminate\\Pagination\\LengthAwarePaginator;\nuse Illuminate\\Support\\Facades\\DB;\nuse Jiminny\\Models\\AutomatedReport;\nuse Jiminny\\Models\\AutomatedReportResult;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\ReportSort;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\ReportSortDirection;\n\nclass AutomatedReportsRepository\n{\n /**\n * Create a new automated report\n *\n * @param array $data\n *\n * @return AutomatedReport\n */\n public function create(array $data): AutomatedReport\n {\n return AutomatedReport::create($data);\n }\n\n /**\n * Find an automated report by UUID\n *\n * @param string $uuid\n *\n * @return AutomatedReport|null\n */\n public function findByUuid(string $uuid): ?AutomatedReport\n {\n return AutomatedReport::where('uuid', AutomatedReport::toOptimized($uuid))->first();\n }\n\n public function findByIdOrUuid(string $idOrUuid): ?AutomatedReport\n {\n if (is_numeric($idOrUuid)) {\n return AutomatedReport::find((int) $idOrUuid);\n }\n\n return AutomatedReport::where('uuid', AutomatedReport::toOptimized($idOrUuid))->first();\n }\n\n /**\n * Retrieve all standard (non-Ask Jiminny) automated reports.\n *\n * @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.\n * @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.\n *\n * @return Collection<AutomatedReport>\n */\n public function getAllStandardReports(\n string $sortColumn = 'created_at',\n string $sortDirection = 'desc'\n ): Collection {\n return $this->buildSortedQuery($sortColumn, $sortDirection)\n ->whereNot('type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->get();\n }\n\n /**\n * Retrieve all Ask Jiminny reports created by the given user.\n *\n * @param User $user The user whose reports to retrieve.\n * @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.\n * @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.\n *\n * @return Collection<AutomatedReport>\n */\n public function getAskJiminnyReportsByUser(\n User $user,\n string $sortColumn = 'created_at',\n string $sortDirection = 'desc'\n ): Collection {\n return $this->buildSortedQuery($sortColumn, $sortDirection)\n ->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->where('created_by', $user->getId())\n ->get();\n }\n\n private function buildSortedQuery(string $sortColumn, string $sortDirection): \\Illuminate\\Database\\Eloquent\\Builder\n {\n $allowedColumns = ['created_by', 'created_at'];\n if (! in_array($sortColumn, $allowedColumns)) {\n $sortColumn = 'created_at';\n }\n\n $sortDirection = strtolower($sortDirection) === 'asc' ? 'asc' : 'desc';\n\n $query = AutomatedReport::query()->with(['creator', 'team']);\n\n if ($sortColumn === 'created_by') {\n $query->leftJoin('users', 'users.id', '=', 'automated_reports.created_by')\n ->orderByRaw(\"users.name COLLATE utf8mb4_unicode_ci {$sortDirection}\")\n ->select('automated_reports.*');\n } else {\n $query->orderBy($sortColumn, $sortDirection);\n }\n\n return $query;\n }\n\n /**\n * Get all active Ask Jiminny reports whose expiry date has passed.\n *\n * @return Collection<AutomatedReport>\n */\n public function getExpiredActiveAskJiminnyReports(): Collection\n {\n return AutomatedReport::where('status', true)\n ->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->whereNotNull('expires_at')\n ->where('expires_at', '<', now()->toDateString())\n ->get();\n }\n\n /**\n * Get all active and enabled reports with active teams for the specified frequency.\n *\n * @param string $frequency\n *\n * @return Collection<AutomatedReport>\n */\n public function getActiveReportsByFrequency(string $frequency): Collection\n {\n return AutomatedReport::where('automated_reports.status', true)\n ->where('automated_reports.frequency', $frequency)\n ->join('teams', 'automated_reports.team_id', '=', 'teams.id')\n ->where('teams.status', Team::STATUS_ACTIVE)\n ->where(function ($query) {\n $query->whereNull('automated_reports.expires_at')\n ->orWhere('automated_reports.expires_at', '>=', now()->toDateString());\n })\n ->select('automated_reports.*')\n ->get();\n }\n\n /**\n * Update an automated report\n *\n * @param AutomatedReport $report\n * @param array $data\n *\n * @return AutomatedReport\n */\n public function update(AutomatedReport $report, array $data): AutomatedReport\n {\n $report->update($data);\n\n return $report;\n }\n\n /**\n * Create a new automated report result.\n *\n * @param array $data The data to create the automated report result with.\n *\n * @return AutomatedReportResult The newly created automated report result.\n */\n public function createResult(array $data): AutomatedReportResult\n {\n return AutomatedReportResult::create($data);\n }\n\n /**\n * Find an automated report result by UUID.\n *\n * @param string $uuid The UUID to find the automated report result with.\n *\n * @return AutomatedReportResult|null The automated report result if found, otherwise null.\n */\n public function findResultByUuid(string $uuid): ?AutomatedReportResult\n {\n return AutomatedReportResult::where('uuid', AutomatedReportResult::toOptimized($uuid))->first();\n }\n\n public function findResultByUuidForUser(string $uuid, User $user): ?AutomatedReportResult\n {\n return AutomatedReportResult::query()\n ->where('uuid', AutomatedReportResult::toOptimized($uuid))\n ->whereHas('report', static function ($query) use ($user): void {\n $query->where('team_id', $user->getTeamId())\n ->where('created_by', $user->getId());\n })\n ->first();\n }\n\n public function findChildResult(AutomatedReportResult $result, string $type): ?AutomatedReportResult\n {\n return AutomatedReportResult::query()\n ->where('parent_id', $result->getId())\n ->where('media_type', $type)\n ->first();\n }\n\n public function findLatestDefaultOrFailedResult(AutomatedReport $report): ?AutomatedReportResult\n {\n return AutomatedReportResult::query()\n ->where('report_id', $report->getId())\n ->whereIn('status', [AutomatedReportResult::STATUS_DEFAULT, AutomatedReportResult::STATUS_FAILED])\n ->latest()\n ->first();\n }\n\n public function getGeneratedNotSentResults(): Collection\n {\n return AutomatedReportResult::query()\n ->whereNotNull('generated_at')\n ->whereNull('sent_at')\n ->where('status', AutomatedReportResult::STATUS_GENERATED)\n ->whereHas('report')\n ->with('report')\n ->get();\n }\n\n public function getPaginatedUserReports(\n User $user,\n ReportSort $sort,\n ReportSortDirection $sortDirection,\n int $resultsPerPage,\n int $page,\n ?Carbon $fromDate,\n ?Carbon $toDate,\n array $teamIds,\n array $reportTypes,\n ?string $name,\n ): LengthAwarePaginator {\n $query = AutomatedReportResult::query()\n ->whereNotNull('automated_report_results.generated_at')\n ->join('automated_reports', 'automated_report_results.report_id', '=', 'automated_reports.id')\n ->where(fn (Builder $q) => $this->applyUserAccessScope($q, $user))\n ->orderByRaw(\"$sort->value COLLATE utf8mb4_unicode_ci {$sortDirection->value}\")\n ->select('automated_report_results.*')\n ->with('report.team');\n\n if ($fromDate !== null && $toDate !== null) {\n $query->whereBetween('generated_at', [$fromDate, $toDate]);\n }\n\n if (! empty($teamIds)) {\n $query->where(function ($q) use ($teamIds) {\n foreach ($teamIds as $id) {\n $q->orWhereJsonContains('automated_reports.groups', $id);\n }\n });\n }\n\n if (! empty($reportTypes)) {\n $query->whereIn('automated_reports.type', $reportTypes);\n }\n\n if (! empty($name)) {\n $query->whereLike('name', \"%$name%\");\n }\n\n return $query->paginate($resultsPerPage, ['*'], 'page', $page);\n }\n\n public function countUserReports(User $user): int\n {\n return AutomatedReportResult::query()\n ->whereNotNull('generated_at')\n ->whereNotNull('sent_at')\n ->whereHas('report', function ($q) use ($user) {\n $q->where('team_id', $user->getTeamId())\n ->whereJsonContains('recipients->users', $user->getId());\n })\n ->count();\n }\n\n /**\n * Restrict a query on the automated_reports table to reports the given user is allowed to see.\n *\n * Matches the customer-facing audience:\n * - explicit user recipients (recipients.users)\n * - members of any of the report's groups (Ask Jiminny reports)\n */\n private function applyUserAccessScope(Builder $query, User $user): void\n {\n $userId = $user->getId();\n $groupId = $user->getGroupId();\n\n $query\n ->where('automated_reports.team_id', $user->getTeamId())\n ->where(function (Builder $q) use ($userId, $groupId): void {\n $q->whereJsonContains('automated_reports.recipients->users', $userId);\n\n if ($groupId !== null) {\n $q->orWhere(function (Builder $sub) use ($groupId): void {\n $sub->where('automated_reports.type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->whereJsonContains('automated_reports.groups', $groupId);\n });\n }\n });\n }\n\n /**\n * Get report IDs for a specific team\n *\n * @param Team $team\n *\n * @return \\Illuminate\\Support\\Collection\n */\n public function getReportIdsByTeam(Team $team): \\Illuminate\\Support\\Collection\n {\n return AutomatedReport::where('team_id', $team->getId())->pluck('id');\n }\n\n /**\n * Get all reports for a specific team\n *\n * @param Team $team\n *\n * @return Collection\n */\n public function getReportsByTeam(Team $team): Collection\n {\n return AutomatedReport::where('team_id', $team->getId())->get();\n }\n\n /**\n * Get all report results for a specific report\n *\n * @param AutomatedReport $report\n *\n * @return Collection\n */\n public function getResultsByReport(AutomatedReport $report): Collection\n {\n return $this->getResultsByReportQuery($report)->get();\n }\n\n public function getResultsByReportQuery(AutomatedReport $report): Builder\n {\n return AutomatedReportResult::where('report_id', $report->getId());\n }\n\n public function getReportResultsQueryForRetention(Team $team, CarbonImmutable $retentionDate): Builder\n {\n $reportIds = $this->getReportIdsByTeam($team);\n\n return AutomatedReportResult::query()->whereIn('report_id', $reportIds)\n ->whereRaw('IFNULL(generated_at, created_at) <= ?', [$retentionDate]);\n }\n\n /**\n * @param int|null $teamId Optional team ID to filter results\n *\n * @return \\Illuminate\\Support\\Collection<int, int> Collection of team IDs\n */\n public function getTeamIdsWithReportsResults(?int $teamId = null): \\Illuminate\\Support\\Collection\n {\n $query = DB::table('automated_reports')\n ->join('teams', 'automated_reports.team_id', '=', 'teams.id')\n ->select('teams.id')\n ->distinct();\n\n if ($teamId !== null) {\n $query->where('teams.id', $teamId);\n }\n\n return $query->pluck('teams.id');\n }\n}","depth":4,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Repositories;\n\nuse Carbon\\CarbonImmutable;\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Database\\Eloquent\\Collection;\nuse Illuminate\\Pagination\\LengthAwarePaginator;\nuse Illuminate\\Support\\Facades\\DB;\nuse Jiminny\\Models\\AutomatedReport;\nuse Jiminny\\Models\\AutomatedReportResult;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\ReportSort;\nuse Jiminny\\Services\\Kiosk\\AutomatedReports\\ReportSortDirection;\n\nclass AutomatedReportsRepository\n{\n /**\n * Create a new automated report\n *\n * @param array $data\n *\n * @return AutomatedReport\n */\n public function create(array $data): AutomatedReport\n {\n return AutomatedReport::create($data);\n }\n\n /**\n * Find an automated report by UUID\n *\n * @param string $uuid\n *\n * @return AutomatedReport|null\n */\n public function findByUuid(string $uuid): ?AutomatedReport\n {\n return AutomatedReport::where('uuid', AutomatedReport::toOptimized($uuid))->first();\n }\n\n public function findByIdOrUuid(string $idOrUuid): ?AutomatedReport\n {\n if (is_numeric($idOrUuid)) {\n return AutomatedReport::find((int) $idOrUuid);\n }\n\n return AutomatedReport::where('uuid', AutomatedReport::toOptimized($idOrUuid))->first();\n }\n\n /**\n * Retrieve all standard (non-Ask Jiminny) automated reports.\n *\n * @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.\n * @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.\n *\n * @return Collection<AutomatedReport>\n */\n public function getAllStandardReports(\n string $sortColumn = 'created_at',\n string $sortDirection = 'desc'\n ): Collection {\n return $this->buildSortedQuery($sortColumn, $sortDirection)\n ->whereNot('type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->get();\n }\n\n /**\n * Retrieve all Ask Jiminny reports created by the given user.\n *\n * @param User $user The user whose reports to retrieve.\n * @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.\n * @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.\n *\n * @return Collection<AutomatedReport>\n */\n public function getAskJiminnyReportsByUser(\n User $user,\n string $sortColumn = 'created_at',\n string $sortDirection = 'desc'\n ): Collection {\n return $this->buildSortedQuery($sortColumn, $sortDirection)\n ->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->where('created_by', $user->getId())\n ->get();\n }\n\n private function buildSortedQuery(string $sortColumn, string $sortDirection): \\Illuminate\\Database\\Eloquent\\Builder\n {\n $allowedColumns = ['created_by', 'created_at'];\n if (! in_array($sortColumn, $allowedColumns)) {\n $sortColumn = 'created_at';\n }\n\n $sortDirection = strtolower($sortDirection) === 'asc' ? 'asc' : 'desc';\n\n $query = AutomatedReport::query()->with(['creator', 'team']);\n\n if ($sortColumn === 'created_by') {\n $query->leftJoin('users', 'users.id', '=', 'automated_reports.created_by')\n ->orderByRaw(\"users.name COLLATE utf8mb4_unicode_ci {$sortDirection}\")\n ->select('automated_reports.*');\n } else {\n $query->orderBy($sortColumn, $sortDirection);\n }\n\n return $query;\n }\n\n /**\n * Get all active Ask Jiminny reports whose expiry date has passed.\n *\n * @return Collection<AutomatedReport>\n */\n public function getExpiredActiveAskJiminnyReports(): Collection\n {\n return AutomatedReport::where('status', true)\n ->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->whereNotNull('expires_at')\n ->where('expires_at', '<', now()->toDateString())\n ->get();\n }\n\n /**\n * Get all active and enabled reports with active teams for the specified frequency.\n *\n * @param string $frequency\n *\n * @return Collection<AutomatedReport>\n */\n public function getActiveReportsByFrequency(string $frequency): Collection\n {\n return AutomatedReport::where('automated_reports.status', true)\n ->where('automated_reports.frequency', $frequency)\n ->join('teams', 'automated_reports.team_id', '=', 'teams.id')\n ->where('teams.status', Team::STATUS_ACTIVE)\n ->where(function ($query) {\n $query->whereNull('automated_reports.expires_at')\n ->orWhere('automated_reports.expires_at', '>=', now()->toDateString());\n })\n ->select('automated_reports.*')\n ->get();\n }\n\n /**\n * Update an automated report\n *\n * @param AutomatedReport $report\n * @param array $data\n *\n * @return AutomatedReport\n */\n public function update(AutomatedReport $report, array $data): AutomatedReport\n {\n $report->update($data);\n\n return $report;\n }\n\n /**\n * Create a new automated report result.\n *\n * @param array $data The data to create the automated report result with.\n *\n * @return AutomatedReportResult The newly created automated report result.\n */\n public function createResult(array $data): AutomatedReportResult\n {\n return AutomatedReportResult::create($data);\n }\n\n /**\n * Find an automated report result by UUID.\n *\n * @param string $uuid The UUID to find the automated report result with.\n *\n * @return AutomatedReportResult|null The automated report result if found, otherwise null.\n */\n public function findResultByUuid(string $uuid): ?AutomatedReportResult\n {\n return AutomatedReportResult::where('uuid', AutomatedReportResult::toOptimized($uuid))->first();\n }\n\n public function findResultByUuidForUser(string $uuid, User $user): ?AutomatedReportResult\n {\n return AutomatedReportResult::query()\n ->where('uuid', AutomatedReportResult::toOptimized($uuid))\n ->whereHas('report', static function ($query) use ($user): void {\n $query->where('team_id', $user->getTeamId())\n ->where('created_by', $user->getId());\n })\n ->first();\n }\n\n public function findChildResult(AutomatedReportResult $result, string $type): ?AutomatedReportResult\n {\n return AutomatedReportResult::query()\n ->where('parent_id', $result->getId())\n ->where('media_type', $type)\n ->first();\n }\n\n public function findLatestDefaultOrFailedResult(AutomatedReport $report): ?AutomatedReportResult\n {\n return AutomatedReportResult::query()\n ->where('report_id', $report->getId())\n ->whereIn('status', [AutomatedReportResult::STATUS_DEFAULT, AutomatedReportResult::STATUS_FAILED])\n ->latest()\n ->first();\n }\n\n public function getGeneratedNotSentResults(): Collection\n {\n return AutomatedReportResult::query()\n ->whereNotNull('generated_at')\n ->whereNull('sent_at')\n ->where('status', AutomatedReportResult::STATUS_GENERATED)\n ->whereHas('report')\n ->with('report')\n ->get();\n }\n\n public function getPaginatedUserReports(\n User $user,\n ReportSort $sort,\n ReportSortDirection $sortDirection,\n int $resultsPerPage,\n int $page,\n ?Carbon $fromDate,\n ?Carbon $toDate,\n array $teamIds,\n array $reportTypes,\n ?string $name,\n ): LengthAwarePaginator {\n $query = AutomatedReportResult::query()\n ->whereNotNull('automated_report_results.generated_at')\n ->join('automated_reports', 'automated_report_results.report_id', '=', 'automated_reports.id')\n ->where(fn (Builder $q) => $this->applyUserAccessScope($q, $user))\n ->orderByRaw(\"$sort->value COLLATE utf8mb4_unicode_ci {$sortDirection->value}\")\n ->select('automated_report_results.*')\n ->with('report.team');\n\n if ($fromDate !== null && $toDate !== null) {\n $query->whereBetween('generated_at', [$fromDate, $toDate]);\n }\n\n if (! empty($teamIds)) {\n $query->where(function ($q) use ($teamIds) {\n foreach ($teamIds as $id) {\n $q->orWhereJsonContains('automated_reports.groups', $id);\n }\n });\n }\n\n if (! empty($reportTypes)) {\n $query->whereIn('automated_reports.type', $reportTypes);\n }\n\n if (! empty($name)) {\n $query->whereLike('name', \"%$name%\");\n }\n\n return $query->paginate($resultsPerPage, ['*'], 'page', $page);\n }\n\n public function countUserReports(User $user): int\n {\n return AutomatedReportResult::query()\n ->whereNotNull('generated_at')\n ->whereNotNull('sent_at')\n ->whereHas('report', function ($q) use ($user) {\n $q->where('team_id', $user->getTeamId())\n ->whereJsonContains('recipients->users', $user->getId());\n })\n ->count();\n }\n\n /**\n * Restrict a query on the automated_reports table to reports the given user is allowed to see.\n *\n * Matches the customer-facing audience:\n * - explicit user recipients (recipients.users)\n * - members of any of the report's groups (Ask Jiminny reports)\n */\n private function applyUserAccessScope(Builder $query, User $user): void\n {\n $userId = $user->getId();\n $groupId = $user->getGroupId();\n\n $query\n ->where('automated_reports.team_id', $user->getTeamId())\n ->where(function (Builder $q) use ($userId, $groupId): void {\n $q->whereJsonContains('automated_reports.recipients->users', $userId);\n\n if ($groupId !== null) {\n $q->orWhere(function (Builder $sub) use ($groupId): void {\n $sub->where('automated_reports.type', AutomatedReportsService::TYPE_ASK_JIMINNY)\n ->whereJsonContains('automated_reports.groups', $groupId);\n });\n }\n });\n }\n\n /**\n * Get report IDs for a specific team\n *\n * @param Team $team\n *\n * @return \\Illuminate\\Support\\Collection\n */\n public function getReportIdsByTeam(Team $team): \\Illuminate\\Support\\Collection\n {\n return AutomatedReport::where('team_id', $team->getId())->pluck('id');\n }\n\n /**\n * Get all reports for a specific team\n *\n * @param Team $team\n *\n * @return Collection\n */\n public function getReportsByTeam(Team $team): Collection\n {\n return AutomatedReport::where('team_id', $team->getId())->get();\n }\n\n /**\n * Get all report results for a specific report\n *\n * @param AutomatedReport $report\n *\n * @return Collection\n */\n public function getResultsByReport(AutomatedReport $report): Collection\n {\n return $this->getResultsByReportQuery($report)->get();\n }\n\n public function getResultsByReportQuery(AutomatedReport $report): Builder\n {\n return AutomatedReportResult::where('report_id', $report->getId());\n }\n\n public function getReportResultsQueryForRetention(Team $team, CarbonImmutable $retentionDate): Builder\n {\n $reportIds = $this->getReportIdsByTeam($team);\n\n return AutomatedReportResult::query()->whereIn('report_id', $reportIds)\n ->whereRaw('IFNULL(generated_at, created_at) <= ?', [$retentionDate]);\n }\n\n /**\n * @param int|null $teamId Optional team ID to filter results\n *\n * @return \\Illuminate\\Support\\Collection<int, int> Collection of team IDs\n */\n public function getTeamIdsWithReportsResults(?int $teamId = null): \\Illuminate\\Support\\Collection\n {\n $query = DB::table('automated_reports')\n ->join('teams', 'automated_reports.team_id', '=', 'teams.id')\n ->select('teams.id')\n ->distinct();\n\n if ($teamId !== null) {\n $query->where('teams.id', $teamId);\n }\n\n return $query->pluck('teams.id');\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"36","depth":4,"bounds":{"left":0.69980055,"top":0.15003991,"width":0.010305851,"height":0.015163607},"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7117686,"top":0.14844373,"width":0.00731383,"height":0.018355945},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.7190825,"top":0.14844373,"width":0.006981383,"height":0.018355945},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\DealInsights;\n\nuse Doctrine\\DBAL\\Connection;\nuse Generator;\nuse Illuminate\\Support\\Collection;\nuse Illuminate\\Support\\Facades\\DB;\nuse Jiminny\\Component\\DealInsights\\Forecast\\DealData;\nuse Jiminny\\Component\\DealInsights\\Forecast\\DealsFilter;\nuse Jiminny\\Component\\DealInsights\\QueryBuilder\\QueryBuilder;\nuse Jiminny\\Component\\DealInsights\\QueryBuilder\\Visitor\\QueryBuilderVisitorInterface;\nuse Jiminny\\Contracts\\Services\\Crm\\ServiceInterface;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Crm\\Configuration;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Stage;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Models;\nuse Jiminny\\Services\\Crm\\IntegrationApp\\DTO\\Utils\\UrlGeneratorInterface;\nuse Jiminny\\Services\\Crm\\ProviderRegistry;\nuse Jiminny\\Traits\\RequiresUUID;\nuse Illuminate\\Database\\Query\\Builder;\nuse Illuminate\\Database\\Eloquent;\nuse Psr\\Container\\ContainerExceptionInterface;\nuse Psr\\Container\\NotFoundExceptionInterface;\n\nclass DealsRepository implements DealsRepositoryInterface\n{\n private Connection $connection;\n\n private ProviderRegistry $providerRegistry;\n\n /**\n * @var QueryBuilderVisitorInterface[]\n */\n private array $visitors = [];\n\n /**\n * @param QueryBuilderVisitorInterface[] $visitors\n */\n public function __construct(Connection $connection, ProviderRegistry $crmProviderRegistry, array $visitors = [])\n {\n $this->connection = $connection;\n $this->providerRegistry = $crmProviderRegistry;\n\n foreach ($visitors as $visitor) {\n $this->visitors[$visitor->getIdentifier()] = $visitor;\n }\n }\n\n public function getDeals(CriteriaInterface $criteria): array\n {\n $context = $criteria->getContext();\n $team = $context->getTeam();\n $crmService = $this->getCrmService($team);\n\n $qb = $this->createQueryBuilder(QueryBuilder::REALM_DEALS);\n $qb = $this->getSearchSelectAndWhereClauses($qb);\n\n $this->visit($qb, $criteria);\n\n return $this->execute($team, $crmService, $qb);\n }\n\n public function getDeal(Team $team, int $id): array\n {\n $crmService = $this->getCrmService($team);\n\n $qb = $this->createQueryBuilder(QueryBuilder::REALM_DEALS);\n $qb = $this->getSearchSelectAndWhereClauses($qb);\n $qb->andWhere('opp.id = :id')->setParameter('id', $id);\n\n return $this->execute($team, $crmService, $qb);\n }\n\n public function getCrmFieldData(array $crmFields, int $crmId, array $opportunityIds = [])\n {\n $qb = new QueryBuilder($this->connection);\n\n $qb\n ->select('f.id', 'f.crm_provider_id AS field_name', 'f.label', 'fd.object_id AS dealId', 'fd.value')\n ->from('crm_fields', 'f')\n ->join('f', 'crm_field_data', 'fd', 'fd.crm_field_id = f.id')\n ->where('f.crm_configuration_id = :crm')\n ->andWhere('f.object_type = :type')\n ->andWhere('fd.object_id IN (' . implode(',', $opportunityIds) . ')')\n ->orderBy('fd.object_id', 'ASC')\n ->addOrderBy('fd.updated_at', 'ASC')\n\n ->setParameter('type', Field::OBJECT_OPPORTUNITY)\n ->setParameter('crm', $crmId)\n ;\n\n if (! empty($crmFields)) {\n $fields = array_map(fn ($value): string => '\"' . $value . '\"', $crmFields);\n $qb->andWhere('f.crm_provider_id IN (' . implode(',', $fields) . ')');\n }\n\n return $qb->executeQuery()->fetchAllAssociative();\n }\n\n public function getTotalsInDefaultCurrency(CriteriaInterface $criteria): array\n {\n $qb = $this->createQueryBuilder(QueryBuilder::REALM_TOTALS);\n\n $qb\n ->select('SUM(opp.value) as total')\n ->addSelect('count(*) as `count`')\n ->where($qb->expr()->isNotNull('opp.user_id')) // we should not include deals owned by external users\n ->andWhere($qb->expr()->isNull('opp.deleted_at'))\n ;\n\n $this->visit($qb, $criteria);\n\n return $qb->executeQuery()->fetchAssociative();\n }\n\n public function getTotals(CriteriaInterface $criteria, string $defaultCurrency): array\n {\n $qb = $this->createQueryBuilder(QueryBuilder::REALM_TOTALS);\n\n $qb\n ->select('COALESCE(opp.currency_code, \"' . $defaultCurrency . '\") AS currency')\n ->addSelect('SUM(opp.value) as total')\n ->addSelect('count(*) as `count`')\n ->where($qb->expr()->isNotNull('opp.user_id')) // we should not include deals owned by external users\n ->andWhere($qb->expr()->isNull('opp.deleted_at'))\n ->groupBy('currency')\n ;\n\n $this->visit($qb, $criteria);\n\n return $qb->executeQuery()->fetchAllAssociative();\n }\n\n public function getDealActivities(CriteriaInterface $criteria): array\n {\n $qb = Activity::with(['participants', 'user'])\n ->where('opportunity_id', $criteria->getOpportunityId())\n ->whereDate('actual_start_time', '>=', $criteria->getPeriod()->getStartDate())\n ->whereDate('actual_start_time', '<=', $criteria->getPeriod()->getEndDate())\n ->orderBy($criteria->getSortBy(), $criteria->getSortDirection())\n ;\n\n // Should we filter activities by criteria? It's intended to filter deals.\n\n return $qb->get()->all();\n }\n\n public function getStages(CriteriaInterface $criteria): array\n {\n $qb = new QueryBuilder($this->connection);\n\n $qb\n ->select('id', 'label', 'sequence')\n ->from('stages', 's')\n ->where('crm_configuration_id = :crm_configuration_id')\n ->andWhere('type = :type')\n ->orderBy('sequence', 'ASC')\n\n ->setParameter('crm_configuration_id', $criteria->getContext()->getTeam()->getCrmConfiguration()->getId())\n ->setParameter('type', Stage::TYPE_OPPORTUNITY);\n\n $result = [];\n foreach ($qb->executeQuery()->fetchAllAssociative() as $row) {\n $result[$row['id']] = [\n 'label' => $row['label'],\n 'sequence' => $row['sequence'],\n ];\n }\n\n return $result;\n }\n\n public function getConfigurationStages(Configuration $configuration): Collection\n {\n return $configuration\n ->stages()\n ->where('type', Stage::TYPE_OPPORTUNITY)\n ->get();\n }\n\n public function getPipelineData(Configuration $crm): array\n {\n $qb = new QueryBuilder($this->connection);\n $provider = $crm->provider;\n\n $qb\n ->select('s.label', 's.crm_provider_id', 's.sequence', 'bps.business_process_id AS pipeline_id')\n ->from('stages', 's')\n ->join('s', 'business_process_stages', 'bps', 's.id=bps.stage_id')\n ->where('s.crm_configuration_id = :crm_configuration_id')\n ->andWhere('s.type = :type')\n ->orderBy('bps.business_process_id', 'ASC')\n ->addOrderBy('s.sequence', 'ASC')\n\n ->setParameter('crm_configuration_id', $crm->id)\n ->setParameter('type', Stage::TYPE_OPPORTUNITY)\n ;\n\n $result = [];\n foreach ($qb->executeQuery()->fetchAllAssociative() as $row) {\n $value = $provider === Configuration::PROVIDER_SALESFORCE ? $row['label'] : $row['crm_provider_id'];\n $result[$row['pipeline_id']][] = [\n 'value' => $value,\n 'label' => $row['label'],\n 'sequence' => $row['sequence'],\n ];\n }\n\n return $result;\n }\n\n private function createQueryBuilder(string $realm): QueryBuilder\n {\n return (new QueryBuilder($this->connection))\n ->setRealm($realm)\n ->from('opportunities', 'opp')\n ->leftJoin('opp', 'record_types', 'rt', 'opp.record_type_id = rt.id')\n ->leftJoin('opp', 'users', 'usr', 'opp.user_id = usr.id')\n ->leftJoin('opp', 'accounts', 'acc', 'opp.account_id = acc.id')\n ;\n }\n\n /**\n * Applies all applicable visitors and returns the IDs of the executed ones\n *\n * @return string[]\n */\n private function visit(QueryBuilder $queryBuilder, CriteriaInterface $criteria): array\n {\n $queryVisitors = [];\n\n foreach ($this->visitors as $visitor) {\n if ($visitor->isSatisfiedBy($criteria, $queryBuilder->getRealm())) {\n $visitor->visit($queryBuilder, $criteria);\n\n $queryVisitors[] = $visitor->getIdentifier();\n }\n }\n\n return $queryVisitors;\n }\n\n private function hydrateStages(array $deals): array\n {\n foreach ($this->fetchStages(array_keys($deals)) as $stage) {\n $oppId = (int) $stage['opportunity_id'];\n\n if (! isset($deals[$oppId])) {\n continue; // or throw??!\n }\n\n $deals[$oppId]['stages'][] = [\n 'id' => $stage['stage_id'],\n 'name' => $stage['label'],\n 'enteredAt' => $stage['created_at'],\n ];\n }\n\n return $deals;\n }\n\n /**\n * @param int[] $dealIds\n */\n private function fetchStages(array $dealIds): array\n {\n if (empty($dealIds)) {\n return [];\n }\n\n $qb = new QueryBuilder($this->connection);\n\n $qb\n ->select('os.opportunity_id', 's.id AS stage_id', 's.label', 's.created_at')\n ->from('opportunity_stages', 'os')\n ->leftJoin('os', 'stages', 's', 'os.stage_id=s.id')\n ->where($qb->expr()->in('os.opportunity_id', $dealIds))\n ->orderBy('os.opportunity_id', 'ASC')\n ->addOrderBy('s.created_at', 'ASC')\n ;\n\n return $qb->executeQuery()->fetchAllAssociative();\n }\n\n private function execute(Team $team, ServiceInterface $crmService, QueryBuilder $qb): array\n {\n $result = [];\n\n foreach ($qb->executeQuery()->fetchAllAssociative() as $row) {\n $data = [\n 'uuid' => RequiresUUID::toNormal($row['uuid']),\n 'name' => $row['name'],\n 'url' => $crmService->generateProviderUrl($row['opp_provider_id'], 'opportunity'),\n 'account' => [\n 'name' => $row['acc_name'],\n 'url' => $crmService->generateProviderUrl(\n providerId: $row['acc_provider_id'],\n objectType: $row['acc_is_internal'] ? 'internal-account' : 'account'\n ),\n ],\n 'owner' => null,\n 'rawValue' => [\n 'amount' => (float) $row['value'],\n 'currency' => $row['currency_code'],\n ],\n 'value' => formatOpportunityValue((float) $row['value'], $row['currency_code']),\n 'openDate' => $row['remotely_created_at'] ?? null,\n 'closeDate' => $row['close_date'] ?? null,\n 'stages' => [],\n 'currentPipelineId' => $row['pipeline_id'],\n 'currentStage' => [\n 'id' => $row['stage_id'],\n 'enteredAt' => $row['stage_updated_at'],\n ],\n 'currentStageUpdatedAt' => $row['stage_updated_at'],\n 'isClosed' => (bool) $row['is_closed'],\n 'isWon' => (bool) $row['is_won'],\n ];\n\n if (isset($row['owner_uuid'])) {\n $data['owner'] = [\n 'uuid' => RequiresUUID::toNormal($row['owner_uuid']),\n 'name' => $row['owner_name'],\n 'photoUrl' => $row['owner_photo'] === null\n ? null\n : client_cdn($row['owner_photo'], $team),\n 'id' => $row['owner_id'],\n 'job' => $row['owner_job'],\n ];\n }\n\n $result[(int) $row['opp_id']] = $data;\n }\n\n return $this->hydrateStages($result);\n }\n\n private function getSearchSelectAndWhereClauses(QueryBuilder $queryBuilder): QueryBuilder\n {\n $qb = clone $queryBuilder;\n $qb->leftJoin('usr', 'job_titles', 'jt', 'usr.job_title_id = jt.id');\n\n $qb\n ->select(...[\n 'opp.id as opp_id',\n 'opp.uuid',\n 'opp.name',\n 'opp.value',\n 'opp.currency_code',\n 'opp.close_date',\n 'opp.remotely_created_at',\n 'opp.is_closed',\n 'opp.is_won',\n ])\n ->addSelect(...[\n 'usr.uuid as owner_uuid',\n 'usr.name AS owner_name',\n 'usr.photo_path as owner_photo',\n 'usr.id AS owner_id',\n 'jt.name as owner_job',\n ])\n ->addSelect('opp.stage_id', 'opp.stage_updated_at')\n ->addSelect(...[\n 'acc.name AS acc_name',\n 'acc.is_internal as acc_is_internal',\n 'opp.stage_updated_at',\n 'acc.crm_provider_id AS acc_provider_id',\n 'opp.crm_provider_id AS opp_provider_id',\n ])\n ->addSelect('rt.business_process_id AS pipeline_id')\n\n ->where($qb->expr()->isNotNull('opp.user_id')) // we should not display deals owned by external users\n ->andWhere($qb->expr()->isNull('opp.deleted_at'));\n\n return $qb;\n }\n\n /**\n * @throws ContainerExceptionInterface\n * @throws NotFoundExceptionInterface\n * @throws SocialAccountTokenInvalidException\n */\n private function getCrmService(Team $team): ServiceInterface\n {\n $crmService = $this->providerRegistry->get($team->crm->provider);\n $crmService->setConfiguration($team->crm);\n if ($crmService instanceof UrlGeneratorInterface) {\n $crmService->setCrmUrlGenerator($team->crm);\n }\n\n return $crmService;\n }\n\n /**\n *\n * @return Generator<DealData>\n */\n public function getForecastData(DealsFilter $filter): Generator\n {\n $opportunities = DB::query()\n ->select([\n 'o.value',\n 'o.close_date',\n 'o.currency_code',\n 'o.is_won',\n 'o.is_closed',\n 'o.probability',\n 'o.forecast_category',\n ])\n ->from('opportunities', 'o')\n ->join('users', 'users.id', '=', 'o.user_id')\n ->join('groups', 'groups.id', '=', 'users.group_id')\n ->where('users.team_id', $filter->getTeam()->getId())\n ->where('o.close_date', '>=', $filter->getStartDate())\n ->where('o.close_date', '<=', $filter->getEndDate())\n ->where('o.currency_code', $filter->getCurrency())\n ->where('o.deleted_at', '=', null)\n ;\n\n $userUuidList = $filter->getUserUuidList();\n if (! empty($userUuidList)) {\n $userUuidList = array_map(fn ($uuid) => RequiresUUID::toOptimized($uuid), $userUuidList);\n\n $opportunities->whereIn('users.uuid', $userUuidList);\n }\n\n $groupUuidList = $filter->getGroupUuidList();\n if (! empty($groupUuidList)) {\n $groupUuidList = array_map(fn ($uuid) => RequiresUUID::toOptimized($uuid), $groupUuidList);\n\n $opportunities->whereIn('groups.uuid', $groupUuidList);\n }\n\n foreach ($opportunities->cursor() as $row) {\n yield new DealData(\n (float) $row->value,\n $row->close_date,\n ! empty($row->is_won),\n ! empty($row->is_closed),\n $row->probability ?: 0,\n $row->forecast_category ?: '',\n );\n }\n }\n\n public function getUserOpportunitySubscriptions(User $user, array $opportunityIds): Collection\n {\n return $user->subscriptionSets()\n ->where(static function (Eloquent\\Builder $query): void {\n $query\n ->whereNull('expired_at')\n ->orWhere('expired_at', '>=', now());\n })\n ->join('activity_subscriptions', function (Builder $join) use ($opportunityIds) {\n $join\n ->on('subscription_set_id', '=', 'activity_subscription_sets.id');\n $join\n ->where('followable_type', Models\\Activity\\Subscription::FOLLOWABLE_TYPE_OPPORTUNITY)\n ->whereIn('followable_id', $opportunityIds);\n })\n ->pluck('followable_id');\n }\n}","depth":4,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\DealInsights;\n\nuse Doctrine\\DBAL\\Connection;\nuse Generator;\nuse Illuminate\\Support\\Collection;\nuse Illuminate\\Support\\Facades\\DB;\nuse Jiminny\\Component\\DealInsights\\Forecast\\DealData;\nuse Jiminny\\Component\\DealInsights\\Forecast\\DealsFilter;\nuse Jiminny\\Component\\DealInsights\\QueryBuilder\\QueryBuilder;\nuse Jiminny\\Component\\DealInsights\\QueryBuilder\\Visitor\\QueryBuilderVisitorInterface;\nuse Jiminny\\Contracts\\Services\\Crm\\ServiceInterface;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Crm\\Configuration;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Stage;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Models;\nuse Jiminny\\Services\\Crm\\IntegrationApp\\DTO\\Utils\\UrlGeneratorInterface;\nuse Jiminny\\Services\\Crm\\ProviderRegistry;\nuse Jiminny\\Traits\\RequiresUUID;\nuse Illuminate\\Database\\Query\\Builder;\nuse Illuminate\\Database\\Eloquent;\nuse Psr\\Container\\ContainerExceptionInterface;\nuse Psr\\Container\\NotFoundExceptionInterface;\n\nclass DealsRepository implements DealsRepositoryInterface\n{\n private Connection $connection;\n\n private ProviderRegistry $providerRegistry;\n\n /**\n * @var QueryBuilderVisitorInterface[]\n */\n private array $visitors = [];\n\n /**\n * @param QueryBuilderVisitorInterface[] $visitors\n */\n public function __construct(Connection $connection, ProviderRegistry $crmProviderRegistry, array $visitors = [])\n {\n $this->connection = $connection;\n $this->providerRegistry = $crmProviderRegistry;\n\n foreach ($visitors as $visitor) {\n $this->visitors[$visitor->getIdentifier()] = $visitor;\n }\n }\n\n public function getDeals(CriteriaInterface $criteria): array\n {\n $context = $criteria->getContext();\n $team = $context->getTeam();\n $crmService = $this->getCrmService($team);\n\n $qb = $this->createQueryBuilder(QueryBuilder::REALM_DEALS);\n $qb = $this->getSearchSelectAndWhereClauses($qb);\n\n $this->visit($qb, $criteria);\n\n return $this->execute($team, $crmService, $qb);\n }\n\n public function getDeal(Team $team, int $id): array\n {\n $crmService = $this->getCrmService($team);\n\n $qb = $this->createQueryBuilder(QueryBuilder::REALM_DEALS);\n $qb = $this->getSearchSelectAndWhereClauses($qb);\n $qb->andWhere('opp.id = :id')->setParameter('id', $id);\n\n return $this->execute($team, $crmService, $qb);\n }\n\n public function getCrmFieldData(array $crmFields, int $crmId, array $opportunityIds = [])\n {\n $qb = new QueryBuilder($this->connection);\n\n $qb\n ->select('f.id', 'f.crm_provider_id AS field_name', 'f.label', 'fd.object_id AS dealId', 'fd.value')\n ->from('crm_fields', 'f')\n ->join('f', 'crm_field_data', 'fd', 'fd.crm_field_id = f.id')\n ->where('f.crm_configuration_id = :crm')\n ->andWhere('f.object_type = :type')\n ->andWhere('fd.object_id IN (' . implode(',', $opportunityIds) . ')')\n ->orderBy('fd.object_id', 'ASC')\n ->addOrderBy('fd.updated_at', 'ASC')\n\n ->setParameter('type', Field::OBJECT_OPPORTUNITY)\n ->setParameter('crm', $crmId)\n ;\n\n if (! empty($crmFields)) {\n $fields = array_map(fn ($value): string => '\"' . $value . '\"', $crmFields);\n $qb->andWhere('f.crm_provider_id IN (' . implode(',', $fields) . ')');\n }\n\n return $qb->executeQuery()->fetchAllAssociative();\n }\n\n public function getTotalsInDefaultCurrency(CriteriaInterface $criteria): array\n {\n $qb = $this->createQueryBuilder(QueryBuilder::REALM_TOTALS);\n\n $qb\n ->select('SUM(opp.value) as total')\n ->addSelect('count(*) as `count`')\n ->where($qb->expr()->isNotNull('opp.user_id')) // we should not include deals owned by external users\n ->andWhere($qb->expr()->isNull('opp.deleted_at'))\n ;\n\n $this->visit($qb, $criteria);\n\n return $qb->executeQuery()->fetchAssociative();\n }\n\n public function getTotals(CriteriaInterface $criteria, string $defaultCurrency): array\n {\n $qb = $this->createQueryBuilder(QueryBuilder::REALM_TOTALS);\n\n $qb\n ->select('COALESCE(opp.currency_code, \"' . $defaultCurrency . '\") AS currency')\n ->addSelect('SUM(opp.value) as total')\n ->addSelect('count(*) as `count`')\n ->where($qb->expr()->isNotNull('opp.user_id')) // we should not include deals owned by external users\n ->andWhere($qb->expr()->isNull('opp.deleted_at'))\n ->groupBy('currency')\n ;\n\n $this->visit($qb, $criteria);\n\n return $qb->executeQuery()->fetchAllAssociative();\n }\n\n public function getDealActivities(CriteriaInterface $criteria): array\n {\n $qb = Activity::with(['participants', 'user'])\n ->where('opportunity_id', $criteria->getOpportunityId())\n ->whereDate('actual_start_time', '>=', $criteria->getPeriod()->getStartDate())\n ->whereDate('actual_start_time', '<=', $criteria->getPeriod()->getEndDate())\n ->orderBy($criteria->getSortBy(), $criteria->getSortDirection())\n ;\n\n // Should we filter activities by criteria? It's intended to filter deals.\n\n return $qb->get()->all();\n }\n\n public function getStages(CriteriaInterface $criteria): array\n {\n $qb = new QueryBuilder($this->connection);\n\n $qb\n ->select('id', 'label', 'sequence')\n ->from('stages', 's')\n ->where('crm_configuration_id = :crm_configuration_id')\n ->andWhere('type = :type')\n ->orderBy('sequence', 'ASC')\n\n ->setParameter('crm_configuration_id', $criteria->getContext()->getTeam()->getCrmConfiguration()->getId())\n ->setParameter('type', Stage::TYPE_OPPORTUNITY);\n\n $result = [];\n foreach ($qb->executeQuery()->fetchAllAssociative() as $row) {\n $result[$row['id']] = [\n 'label' => $row['label'],\n 'sequence' => $row['sequence'],\n ];\n }\n\n return $result;\n }\n\n public function getConfigurationStages(Configuration $configuration): Collection\n {\n return $configuration\n ->stages()\n ->where('type', Stage::TYPE_OPPORTUNITY)\n ->get();\n }\n\n public function getPipelineData(Configuration $crm): array\n {\n $qb = new QueryBuilder($this->connection);\n $provider = $crm->provider;\n\n $qb\n ->select('s.label', 's.crm_provider_id', 's.sequence', 'bps.business_process_id AS pipeline_id')\n ->from('stages', 's')\n ->join('s', 'business_process_stages', 'bps', 's.id=bps.stage_id')\n ->where('s.crm_configuration_id = :crm_configuration_id')\n ->andWhere('s.type = :type')\n ->orderBy('bps.business_process_id', 'ASC')\n ->addOrderBy('s.sequence', 'ASC')\n\n ->setParameter('crm_configuration_id', $crm->id)\n ->setParameter('type', Stage::TYPE_OPPORTUNITY)\n ;\n\n $result = [];\n foreach ($qb->executeQuery()->fetchAllAssociative() as $row) {\n $value = $provider === Configuration::PROVIDER_SALESFORCE ? $row['label'] : $row['crm_provider_id'];\n $result[$row['pipeline_id']][] = [\n 'value' => $value,\n 'label' => $row['label'],\n 'sequence' => $row['sequence'],\n ];\n }\n\n return $result;\n }\n\n private function createQueryBuilder(string $realm): QueryBuilder\n {\n return (new QueryBuilder($this->connection))\n ->setRealm($realm)\n ->from('opportunities', 'opp')\n ->leftJoin('opp', 'record_types', 'rt', 'opp.record_type_id = rt.id')\n ->leftJoin('opp', 'users', 'usr', 'opp.user_id = usr.id')\n ->leftJoin('opp', 'accounts', 'acc', 'opp.account_id = acc.id')\n ;\n }\n\n /**\n * Applies all applicable visitors and returns the IDs of the executed ones\n *\n * @return string[]\n */\n private function visit(QueryBuilder $queryBuilder, CriteriaInterface $criteria): array\n {\n $queryVisitors = [];\n\n foreach ($this->visitors as $visitor) {\n if ($visitor->isSatisfiedBy($criteria, $queryBuilder->getRealm())) {\n $visitor->visit($queryBuilder, $criteria);\n\n $queryVisitors[] = $visitor->getIdentifier();\n }\n }\n\n return $queryVisitors;\n }\n\n private function hydrateStages(array $deals): array\n {\n foreach ($this->fetchStages(array_keys($deals)) as $stage) {\n $oppId = (int) $stage['opportunity_id'];\n\n if (! isset($deals[$oppId])) {\n continue; // or throw??!\n }\n\n $deals[$oppId]['stages'][] = [\n 'id' => $stage['stage_id'],\n 'name' => $stage['label'],\n 'enteredAt' => $stage['created_at'],\n ];\n }\n\n return $deals;\n }\n\n /**\n * @param int[] $dealIds\n */\n private function fetchStages(array $dealIds): array\n {\n if (empty($dealIds)) {\n return [];\n }\n\n $qb = new QueryBuilder($this->connection);\n\n $qb\n ->select('os.opportunity_id', 's.id AS stage_id', 's.label', 's.created_at')\n ->from('opportunity_stages', 'os')\n ->leftJoin('os', 'stages', 's', 'os.stage_id=s.id')\n ->where($qb->expr()->in('os.opportunity_id', $dealIds))\n ->orderBy('os.opportunity_id', 'ASC')\n ->addOrderBy('s.created_at', 'ASC')\n ;\n\n return $qb->executeQuery()->fetchAllAssociative();\n }\n\n private function execute(Team $team, ServiceInterface $crmService, QueryBuilder $qb): array\n {\n $result = [];\n\n foreach ($qb->executeQuery()->fetchAllAssociative() as $row) {\n $data = [\n 'uuid' => RequiresUUID::toNormal($row['uuid']),\n 'name' => $row['name'],\n 'url' => $crmService->generateProviderUrl($row['opp_provider_id'], 'opportunity'),\n 'account' => [\n 'name' => $row['acc_name'],\n 'url' => $crmService->generateProviderUrl(\n providerId: $row['acc_provider_id'],\n objectType: $row['acc_is_internal'] ? 'internal-account' : 'account'\n ),\n ],\n 'owner' => null,\n 'rawValue' => [\n 'amount' => (float) $row['value'],\n 'currency' => $row['currency_code'],\n ],\n 'value' => formatOpportunityValue((float) $row['value'], $row['currency_code']),\n 'openDate' => $row['remotely_created_at'] ?? null,\n 'closeDate' => $row['close_date'] ?? null,\n 'stages' => [],\n 'currentPipelineId' => $row['pipeline_id'],\n 'currentStage' => [\n 'id' => $row['stage_id'],\n 'enteredAt' => $row['stage_updated_at'],\n ],\n 'currentStageUpdatedAt' => $row['stage_updated_at'],\n 'isClosed' => (bool) $row['is_closed'],\n 'isWon' => (bool) $row['is_won'],\n ];\n\n if (isset($row['owner_uuid'])) {\n $data['owner'] = [\n 'uuid' => RequiresUUID::toNormal($row['owner_uuid']),\n 'name' => $row['owner_name'],\n 'photoUrl' => $row['owner_photo'] === null\n ? null\n : client_cdn($row['owner_photo'], $team),\n 'id' => $row['owner_id'],\n 'job' => $row['owner_job'],\n ];\n }\n\n $result[(int) $row['opp_id']] = $data;\n }\n\n return $this->hydrateStages($result);\n }\n\n private function getSearchSelectAndWhereClauses(QueryBuilder $queryBuilder): QueryBuilder\n {\n $qb = clone $queryBuilder;\n $qb->leftJoin('usr', 'job_titles', 'jt', 'usr.job_title_id = jt.id');\n\n $qb\n ->select(...[\n 'opp.id as opp_id',\n 'opp.uuid',\n 'opp.name',\n 'opp.value',\n 'opp.currency_code',\n 'opp.close_date',\n 'opp.remotely_created_at',\n 'opp.is_closed',\n 'opp.is_won',\n ])\n ->addSelect(...[\n 'usr.uuid as owner_uuid',\n 'usr.name AS owner_name',\n 'usr.photo_path as owner_photo',\n 'usr.id AS owner_id',\n 'jt.name as owner_job',\n ])\n ->addSelect('opp.stage_id', 'opp.stage_updated_at')\n ->addSelect(...[\n 'acc.name AS acc_name',\n 'acc.is_internal as acc_is_internal',\n 'opp.stage_updated_at',\n 'acc.crm_provider_id AS acc_provider_id',\n 'opp.crm_provider_id AS opp_provider_id',\n ])\n ->addSelect('rt.business_process_id AS pipeline_id')\n\n ->where($qb->expr()->isNotNull('opp.user_id')) // we should not display deals owned by external users\n ->andWhere($qb->expr()->isNull('opp.deleted_at'));\n\n return $qb;\n }\n\n /**\n * @throws ContainerExceptionInterface\n * @throws NotFoundExceptionInterface\n * @throws SocialAccountTokenInvalidException\n */\n private function getCrmService(Team $team): ServiceInterface\n {\n $crmService = $this->providerRegistry->get($team->crm->provider);\n $crmService->setConfiguration($team->crm);\n if ($crmService instanceof UrlGeneratorInterface) {\n $crmService->setCrmUrlGenerator($team->crm);\n }\n\n return $crmService;\n }\n\n /**\n *\n * @return Generator<DealData>\n */\n public function getForecastData(DealsFilter $filter): Generator\n {\n $opportunities = DB::query()\n ->select([\n 'o.value',\n 'o.close_date',\n 'o.currency_code',\n 'o.is_won',\n 'o.is_closed',\n 'o.probability',\n 'o.forecast_category',\n ])\n ->from('opportunities', 'o')\n ->join('users', 'users.id', '=', 'o.user_id')\n ->join('groups', 'groups.id', '=', 'users.group_id')\n ->where('users.team_id', $filter->getTeam()->getId())\n ->where('o.close_date', '>=', $filter->getStartDate())\n ->where('o.close_date', '<=', $filter->getEndDate())\n ->where('o.currency_code', $filter->getCurrency())\n ->where('o.deleted_at', '=', null)\n ;\n\n $userUuidList = $filter->getUserUuidList();\n if (! empty($userUuidList)) {\n $userUuidList = array_map(fn ($uuid) => RequiresUUID::toOptimized($uuid), $userUuidList);\n\n $opportunities->whereIn('users.uuid', $userUuidList);\n }\n\n $groupUuidList = $filter->getGroupUuidList();\n if (! empty($groupUuidList)) {\n $groupUuidList = array_map(fn ($uuid) => RequiresUUID::toOptimized($uuid), $groupUuidList);\n\n $opportunities->whereIn('groups.uuid', $groupUuidList);\n }\n\n foreach ($opportunities->cursor() as $row) {\n yield new DealData(\n (float) $row->value,\n $row->close_date,\n ! empty($row->is_won),\n ! empty($row->is_closed),\n $row->probability ?: 0,\n $row->forecast_category ?: '',\n );\n }\n }\n\n public function getUserOpportunitySubscriptions(User $user, array $opportunityIds): Collection\n {\n return $user->subscriptionSets()\n ->where(static function (Eloquent\\Builder $query): void {\n $query\n ->whereNull('expired_at')\n ->orWhere('expired_at', '>=', now());\n })\n ->join('activity_subscriptions', function (Builder $join) use ($opportunityIds) {\n $join\n ->on('subscription_set_id', '=', 'activity_subscription_sets.id');\n $join\n ->where('followable_type', Models\\Activity\\Subscription::FOLLOWABLE_TYPE_OPPORTUNITY)\n ->whereIn('followable_id', $opportunityIds);\n })\n ->pluck('followable_id');\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.24335106,"top":0.047885075,"width":0.024268618,"height":0.024740623},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"app ~/jiminny/app","depth":6,"role_description":"text"},{"role":"AXStaticText","text":".circleci","depth":7,"role_description":"text"},{"role":"AXStaticText","text":".cursor","depth":7,"role_description":"text"},{"role":"AXStaticText","text":".github","depth":7,"role_description":"text"},{"role":"AXStaticText","text":".sonarlint","depth":7,"role_description":"text"},{"role":"AXStaticText","text":".vscode","depth":7,"role_description":"text"},{"role":"AXStaticText","text":".windsurf","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"app, sources root","depth":7,"role_description":"text"},{"role":"AXStaticText","text":"Actions","depth":8,"role_description":"text"},{"role":"AXStaticText","text":"Component","depth":8,"role_description":"text"},{"role":"AXStaticText","text":"Acl","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ActionItems","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ActivityAnalytics","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ActivitySearch","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"AiActivityType","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"AiAutomation","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"AiCallScoring","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Dtos","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"Events","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"AskAnythingPromptService.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"HistoryService.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"AskJiminnyAi","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"AWS","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"BillingManagement","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Cache","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"CoachingFeedback","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Country","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"CustomerApi","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Database","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Datadog","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"DateTime","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"DealInsights","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"ActivityAggregator.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"ActivityAggregatorInterface.php, interface","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"DatabaseActivities.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"DatasourceInterface.php, interface","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"RelatedActivity.php, class","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"RelatedActivityInterface.php, interface","depth":11,"role_description":"text"},{"role":"AXStaticText","text":"Commands","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"Comments","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"Forecast","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"QueryBuilder","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"Services","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"ClosingPeriodOptionDecorator.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"CreatedPeriodOptionDecorator.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"Criteria.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"CriteriaInterface.php, interface","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"CriteriaNormalizer.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"CrmService.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"CrmServiceInterface.php, interface","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"DealContactService.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"DealInsightsCriteriaBuilder.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"DealService.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"DealServiceInterface.php, interface","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"DealsRepository.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"DealsRepositoryInterface.php, interface","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"DealsServiceRepositories.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"PerformanceMonitor.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"PeriodOptionDecoratorInterface.php, interface","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"PeriodService.php, final class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"PeriodServiceInterface.php, interface","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"DealRiskTypes","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"DealRisk.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"DealRisksRepository.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"DealRisksService.php, class","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"DealRisksServiceInterface.php, interface","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"DealRiskType.php","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"GroupDealRiskType.php","depth":10,"role_description":"text"},{"role":"AXStaticText","text":"ElasticSearch, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Eloquent, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Encoding, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Encryption, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ES, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Faker, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"FeatureFlags, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"FFMpeg, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"FileSystem, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Gecko, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Gong, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"GuzzleHttp, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"KeyPoints, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Kiosk, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"LanguageDetection","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"LiveFeed","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Locks, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Math, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"MediaPipeline, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"MobileSettings, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Model, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Notification, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Nudge, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ParagraphBreaker, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ParticipantSpeech, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"PartitionedCookie, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"PlaybackPage, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Playlist, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Prophet, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ProphetAi, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"ProsperWorks, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Queue, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Router, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Saml2, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"SCIM, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Seeder, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Sentry, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Serializer, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Settings, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Sidekick, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Slack, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"TeamInsights, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"TimeMemoryMapper, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Transcription, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"TranscriptionSummary, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Twilio, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Uploader, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"UrlGenerator, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Utility, folder","depth":9,"role_description":"text"},{"role":"AXStaticText","text":"Uuid, folder","depth":9,"role_description":"text"}]...
|
-9212941184989006924
|
-1285167062318110604
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20157-AJ-report-not-se Project: faVsco.js, menu
JY-20157-AJ-report-not-send-notification, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
16
2
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Carbon\CarbonImmutable;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\DB;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSort;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSortDirection;
class AutomatedReportsRepository
{
/**
* Create a new automated report
*
* @param array $data
*
* @return AutomatedReport
*/
public function create(array $data): AutomatedReport
{
return AutomatedReport::create($data);
}
/**
* Find an automated report by UUID
*
* @param string $uuid
*
* @return AutomatedReport|null
*/
public function findByUuid(string $uuid): ?AutomatedReport
{
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($uuid))->first();
}
public function findByIdOrUuid(string $idOrUuid): ?AutomatedReport
{
if (is_numeric($idOrUuid)) {
return AutomatedReport::find((int) $idOrUuid);
}
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($idOrUuid))->first();
}
/**
* Retrieve all standard (non-Ask Jiminny) automated reports.
*
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAllStandardReports(
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->whereNot('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->get();
}
/**
* Retrieve all Ask Jiminny reports created by the given user.
*
* @param User $user The user whose reports to retrieve.
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAskJiminnyReportsByUser(
User $user,
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->where('created_by', $user->getId())
->get();
}
private function buildSortedQuery(string $sortColumn, string $sortDirection): \Illuminate\Database\Eloquent\Builder
{
$allowedColumns = ['created_by', 'created_at'];
if (! in_array($sortColumn, $allowedColumns)) {
$sortColumn = 'created_at';
}
$sortDirection = strtolower($sortDirection) === 'asc' ? 'asc' : 'desc';
$query = AutomatedReport::query()->with(['creator', 'team']);
if ($sortColumn === 'created_by') {
$query->leftJoin('users', 'users.id', '=', 'automated_reports.created_by')
->orderByRaw("users.name COLLATE utf8mb4_unicode_ci {$sortDirection}")
->select('automated_reports.*');
} else {
$query->orderBy($sortColumn, $sortDirection);
}
return $query;
}
/**
* Get all active Ask Jiminny reports whose expiry date has passed.
*
* @return Collection<AutomatedReport>
*/
public function getExpiredActiveAskJiminnyReports(): Collection
{
return AutomatedReport::where('status', true)
->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->whereNotNull('expires_at')
->where('expires_at', '<', now()->toDateString())
->get();
}
/**
* Get all active and enabled reports with active teams for the specified frequency.
*
* @param string $frequency
*
* @return Collection<AutomatedReport>
*/
public function getActiveReportsByFrequency(string $frequency): Collection
{
return AutomatedReport::where('automated_reports.status', true)
->where('automated_reports.frequency', $frequency)
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->where('teams.status', Team::STATUS_ACTIVE)
->where(function ($query) {
$query->whereNull('automated_reports.expires_at')
->orWhere('automated_reports.expires_at', '>=', now()->toDateString());
})
->select('automated_reports.*')
->get();
}
/**
* Update an automated report
*
* @param AutomatedReport $report
* @param array $data
*
* @return AutomatedReport
*/
public function update(AutomatedReport $report, array $data): AutomatedReport
{
$report->update($data);
return $report;
}
/**
* Create a new automated report result.
*
* @param array $data The data to create the automated report result with.
*
* @return AutomatedReportResult The newly created automated report result.
*/
public function createResult(array $data): AutomatedReportResult
{
return AutomatedReportResult::create($data);
}
/**
* Find an automated report result by UUID.
*
* @param string $uuid The UUID to find the automated report result with.
*
* @return AutomatedReportResult|null The automated report result if found, otherwise null.
*/
public function findResultByUuid(string $uuid): ?AutomatedReportResult
{
return AutomatedReportResult::where('uuid', AutomatedReportResult::toOptimized($uuid))->first();
}
public function findResultByUuidForUser(string $uuid, User $user): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('uuid', AutomatedReportResult::toOptimized($uuid))
->whereHas('report', static function ($query) use ($user): void {
$query->where('team_id', $user->getTeamId())
->where('created_by', $user->getId());
})
->first();
}
public function findChildResult(AutomatedReportResult $result, string $type): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('parent_id', $result->getId())
->where('media_type', $type)
->first();
}
public function findLatestDefaultOrFailedResult(AutomatedReport $report): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('report_id', $report->getId())
->whereIn('status', [AutomatedReportResult::STATUS_DEFAULT, AutomatedReportResult::STATUS_FAILED])
->latest()
->first();
}
public function getGeneratedNotSentResults(): Collection
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNull('sent_at')
->where('status', AutomatedReportResult::STATUS_GENERATED)
->whereHas('report')
->with('report')
->get();
}
public function getPaginatedUserReports(
User $user,
ReportSort $sort,
ReportSortDirection $sortDirection,
int $resultsPerPage,
int $page,
?Carbon $fromDate,
?Carbon $toDate,
array $teamIds,
array $reportTypes,
?string $name,
): LengthAwarePaginator {
$query = AutomatedReportResult::query()
->whereNotNull('automated_report_results.generated_at')
->join('automated_reports', 'automated_report_results.report_id', '=', 'automated_reports.id')
->where(fn (Builder $q) => $this->applyUserAccessScope($q, $user))
->orderByRaw("$sort->value COLLATE utf8mb4_unicode_ci {$sortDirection->value}")
->select('automated_report_results.*')
->with('report.team');
if ($fromDate !== null && $toDate !== null) {
$query->whereBetween('generated_at', [$fromDate, $toDate]);
}
if (! empty($teamIds)) {
$query->where(function ($q) use ($teamIds) {
foreach ($teamIds as $id) {
$q->orWhereJsonContains('automated_reports.groups', $id);
}
});
}
if (! empty($reportTypes)) {
$query->whereIn('automated_reports.type', $reportTypes);
}
if (! empty($name)) {
$query->whereLike('name', "%$name%");
}
return $query->paginate($resultsPerPage, ['*'], 'page', $page);
}
public function countUserReports(User $user): int
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNotNull('sent_at')
->whereHas('report', function ($q) use ($user) {
$q->where('team_id', $user->getTeamId())
->whereJsonContains('recipients->users', $user->getId());
})
->count();
}
/**
* Restrict a query on the automated_reports table to reports the given user is allowed to see.
*
* Matches the customer-facing audience:
* - explicit user recipients (recipients.users)
* - members of any of the report's groups (Ask Jiminny reports)
*/
private function applyUserAccessScope(Builder $query, User $user): void
{
$userId = $user->getId();
$groupId = $user->getGroupId();
$query
->where('automated_reports.team_id', $user->getTeamId())
->where(function (Builder $q) use ($userId, $groupId): void {
$q->whereJsonContains('automated_reports.recipients->users', $userId);
if ($groupId !== null) {
$q->orWhere(function (Builder $sub) use ($groupId): void {
$sub->where('automated_reports.type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->whereJsonContains('automated_reports.groups', $groupId);
});
}
});
}
/**
* Get report IDs for a specific team
*
* @param Team $team
*
* @return \Illuminate\Support\Collection
*/
public function getReportIdsByTeam(Team $team): \Illuminate\Support\Collection
{
return AutomatedReport::where('team_id', $team->getId())->pluck('id');
}
/**
* Get all reports for a specific team
*
* @param Team $team
*
* @return Collection
*/
public function getReportsByTeam(Team $team): Collection
{
return AutomatedReport::where('team_id', $team->getId())->get();
}
/**
* Get all report results for a specific report
*
* @param AutomatedReport $report
*
* @return Collection
*/
public function getResultsByReport(AutomatedReport $report): Collection
{
return $this->getResultsByReportQuery($report)->get();
}
public function getResultsByReportQuery(AutomatedReport $report): Builder
{
return AutomatedReportResult::where('report_id', $report->getId());
}
public function getReportResultsQueryForRetention(Team $team, CarbonImmutable $retentionDate): Builder
{
$reportIds = $this->getReportIdsByTeam($team);
return AutomatedReportResult::query()->whereIn('report_id', $reportIds)
->whereRaw('IFNULL(generated_at, created_at) <= ?', [$retentionDate]);
}
/**
* @param int|null $teamId Optional team ID to filter results
*
* @return \Illuminate\Support\Collection<int, int> Collection of team IDs
*/
public function getTeamIdsWithReportsResults(?int $teamId = null): \Illuminate\Support\Collection
{
$query = DB::table('automated_reports')
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->select('teams.id')
->distinct();
if ($teamId !== null) {
$query->where('teams.id', $teamId);
}
return $query->pluck('teams.id');
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
36
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Component\DealInsights;
use Doctrine\DBAL\Connection;
use Generator;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Jiminny\Component\DealInsights\Forecast\DealData;
use Jiminny\Component\DealInsights\Forecast\DealsFilter;
use Jiminny\Component\DealInsights\QueryBuilder\QueryBuilder;
use Jiminny\Component\DealInsights\QueryBuilder\Visitor\QueryBuilderVisitorInterface;
use Jiminny\Contracts\Services\Crm\ServiceInterface;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Models\Activity;
use Jiminny\Models\Crm\Configuration;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Stage;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Models;
use Jiminny\Services\Crm\IntegrationApp\DTO\Utils\UrlGeneratorInterface;
use Jiminny\Services\Crm\ProviderRegistry;
use Jiminny\Traits\RequiresUUID;
use Illuminate\Database\Query\Builder;
use Illuminate\Database\Eloquent;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
class DealsRepository implements DealsRepositoryInterface
{
private Connection $connection;
private ProviderRegistry $providerRegistry;
/**
* @var QueryBuilderVisitorInterface[]
*/
private array $visitors = [];
/**
* @param QueryBuilderVisitorInterface[] $visitors
*/
public function __construct(Connection $connection, ProviderRegistry $crmProviderRegistry, array $visitors = [])
{
$this->connection = $connection;
$this->providerRegistry = $crmProviderRegistry;
foreach ($visitors as $visitor) {
$this->visitors[$visitor->getIdentifier()] = $visitor;
}
}
public function getDeals(CriteriaInterface $criteria): array
{
$context = $criteria->getContext();
$team = $context->getTeam();
$crmService = $this->getCrmService($team);
$qb = $this->createQueryBuilder(QueryBuilder::REALM_DEALS);
$qb = $this->getSearchSelectAndWhereClauses($qb);
$this->visit($qb, $criteria);
return $this->execute($team, $crmService, $qb);
}
public function getDeal(Team $team, int $id): array
{
$crmService = $this->getCrmService($team);
$qb = $this->createQueryBuilder(QueryBuilder::REALM_DEALS);
$qb = $this->getSearchSelectAndWhereClauses($qb);
$qb->andWhere('opp.id = :id')->setParameter('id', $id);
return $this->execute($team, $crmService, $qb);
}
public function getCrmFieldData(array $crmFields, int $crmId, array $opportunityIds = [])
{
$qb = new QueryBuilder($this->connection);
$qb
->select('f.id', 'f.crm_provider_id AS field_name', 'f.label', 'fd.object_id AS dealId', 'fd.value')
->from('crm_fields', 'f')
->join('f', 'crm_field_data', 'fd', 'fd.crm_field_id = f.id')
->where('f.crm_configuration_id = :crm')
->andWhere('f.object_type = :type')
->andWhere('fd.object_id IN (' . implode(',', $opportunityIds) . ')')
->orderBy('fd.object_id', 'ASC')
->addOrderBy('fd.updated_at', 'ASC')
->setParameter('type', Field::OBJECT_OPPORTUNITY)
->setParameter('crm', $crmId)
;
if (! empty($crmFields)) {
$fields = array_map(fn ($value): string => '"' . $value . '"', $crmFields);
$qb->andWhere('f.crm_provider_id IN (' . implode(',', $fields) . ')');
}
return $qb->executeQuery()->fetchAllAssociative();
}
public function getTotalsInDefaultCurrency(CriteriaInterface $criteria): array
{
$qb = $this->createQueryBuilder(QueryBuilder::REALM_TOTALS);
$qb
->select('SUM(opp.value) as total')
->addSelect('count(*) as `count`')
->where($qb->expr()->isNotNull('opp.user_id')) // we should not include deals owned by external users
->andWhere($qb->expr()->isNull('opp.deleted_at'))
;
$this->visit($qb, $criteria);
return $qb->executeQuery()->fetchAssociative();
}
public function getTotals(CriteriaInterface $criteria, string $defaultCurrency): array
{
$qb = $this->createQueryBuilder(QueryBuilder::REALM_TOTALS);
$qb
->select('COALESCE(opp.currency_code, "' . $defaultCurrency . '") AS currency')
->addSelect('SUM(opp.value) as total')
->addSelect('count(*) as `count`')
->where($qb->expr()->isNotNull('opp.user_id')) // we should not include deals owned by external users
->andWhere($qb->expr()->isNull('opp.deleted_at'))
->groupBy('currency')
;
$this->visit($qb, $criteria);
return $qb->executeQuery()->fetchAllAssociative();
}
public function getDealActivities(CriteriaInterface $criteria): array
{
$qb = Activity::with(['participants', 'user'])
->where('opportunity_id', $criteria->getOpportunityId())
->whereDate('actual_start_time', '>=', $criteria->getPeriod()->getStartDate())
->whereDate('actual_start_time', '<=', $criteria->getPeriod()->getEndDate())
->orderBy($criteria->getSortBy(), $criteria->getSortDirection())
;
// Should we filter activities by criteria? It's intended to filter deals.
return $qb->get()->all();
}
public function getStages(CriteriaInterface $criteria): array
{
$qb = new QueryBuilder($this->connection);
$qb
->select('id', 'label', 'sequence')
->from('stages', 's')
->where('crm_configuration_id = :crm_configuration_id')
->andWhere('type = :type')
->orderBy('sequence', 'ASC')
->setParameter('crm_configuration_id', $criteria->getContext()->getTeam()->getCrmConfiguration()->getId())
->setParameter('type', Stage::TYPE_OPPORTUNITY);
$result = [];
foreach ($qb->executeQuery()->fetchAllAssociative() as $row) {
$result[$row['id']] = [
'label' => $row['label'],
'sequence' => $row['sequence'],
];
}
return $result;
}
public function getConfigurationStages(Configuration $configuration): Collection
{
return $configuration
->stages()
->where('type', Stage::TYPE_OPPORTUNITY)
->get();
}
public function getPipelineData(Configuration $crm): array
{
$qb = new QueryBuilder($this->connection);
$provider = $crm->provider;
$qb
->select('s.label', 's.crm_provider_id', 's.sequence', 'bps.business_process_id AS pipeline_id')
->from('stages', 's')
->join('s', 'business_process_stages', 'bps', 's.id=bps.stage_id')
->where('s.crm_configuration_id = :crm_configuration_id')
->andWhere('s.type = :type')
->orderBy('bps.business_process_id', 'ASC')
->addOrderBy('s.sequence', 'ASC')
->setParameter('crm_configuration_id', $crm->id)
->setParameter('type', Stage::TYPE_OPPORTUNITY)
;
$result = [];
foreach ($qb->executeQuery()->fetchAllAssociative() as $row) {
$value = $provider === Configuration::PROVIDER_SALESFORCE ? $row['label'] : $row['crm_provider_id'];
$result[$row['pipeline_id']][] = [
'value' => $value,
'label' => $row['label'],
'sequence' => $row['sequence'],
];
}
return $result;
}
private function createQueryBuilder(string $realm): QueryBuilder
{
return (new QueryBuilder($this->connection))
->setRealm($realm)
->from('opportunities', 'opp')
->leftJoin('opp', 'record_types', 'rt', 'opp.record_type_id = rt.id')
->leftJoin('opp', 'users', 'usr', 'opp.user_id = usr.id')
->leftJoin('opp', 'accounts', 'acc', 'opp.account_id = acc.id')
;
}
/**
* Applies all applicable visitors and returns the IDs of the executed ones
*
* @return string[]
*/
private function visit(QueryBuilder $queryBuilder, CriteriaInterface $criteria): array
{
$queryVisitors = [];
foreach ($this->visitors as $visitor) {
if ($visitor->isSatisfiedBy($criteria, $queryBuilder->getRealm())) {
$visitor->visit($queryBuilder, $criteria);
$queryVisitors[] = $visitor->getIdentifier();
}
}
return $queryVisitors;
}
private function hydrateStages(array $deals): array
{
foreach ($this->fetchStages(array_keys($deals)) as $stage) {
$oppId = (int) $stage['opportunity_id'];
if (! isset($deals[$oppId])) {
continue; // or throw??!
}
$deals[$oppId]['stages'][] = [
'id' => $stage['stage_id'],
'name' => $stage['label'],
'enteredAt' => $stage['created_at'],
];
}
return $deals;
}
/**
* @param int[] $dealIds
*/
private function fetchStages(array $dealIds): array
{
if (empty($dealIds)) {
return [];
}
$qb = new QueryBuilder($this->connection);
$qb
->select('os.opportunity_id', 's.id AS stage_id', 's.label', 's.created_at')
->from('opportunity_stages', 'os')
->leftJoin('os', 'stages', 's', 'os.stage_id=s.id')
->where($qb->expr()->in('os.opportunity_id', $dealIds))
->orderBy('os.opportunity_id', 'ASC')
->addOrderBy('s.created_at', 'ASC')
;
return $qb->executeQuery()->fetchAllAssociative();
}
private function execute(Team $team, ServiceInterface $crmService, QueryBuilder $qb): array
{
$result = [];
foreach ($qb->executeQuery()->fetchAllAssociative() as $row) {
$data = [
'uuid' => RequiresUUID::toNormal($row['uuid']),
'name' => $row['name'],
'url' => $crmService->generateProviderUrl($row['opp_provider_id'], 'opportunity'),
'account' => [
'name' => $row['acc_name'],
'url' => $crmService->generateProviderUrl(
providerId: $row['acc_provider_id'],
objectType: $row['acc_is_internal'] ? 'internal-account' : 'account'
),
],
'owner' => null,
'rawValue' => [
'amount' => (float) $row['value'],
'currency' => $row['currency_code'],
],
'value' => formatOpportunityValue((float) $row['value'], $row['currency_code']),
'openDate' => $row['remotely_created_at'] ?? null,
'closeDate' => $row['close_date'] ?? null,
'stages' => [],
'currentPipelineId' => $row['pipeline_id'],
'currentStage' => [
'id' => $row['stage_id'],
'enteredAt' => $row['stage_updated_at'],
],
'currentStageUpdatedAt' => $row['stage_updated_at'],
'isClosed' => (bool) $row['is_closed'],
'isWon' => (bool) $row['is_won'],
];
if (isset($row['owner_uuid'])) {
$data['owner'] = [
'uuid' => RequiresUUID::toNormal($row['owner_uuid']),
'name' => $row['owner_name'],
'photoUrl' => $row['owner_photo'] === null
? null
: client_cdn($row['owner_photo'], $team),
'id' => $row['owner_id'],
'job' => $row['owner_job'],
];
}
$result[(int) $row['opp_id']] = $data;
}
return $this->hydrateStages($result);
}
private function getSearchSelectAndWhereClauses(QueryBuilder $queryBuilder): QueryBuilder
{
$qb = clone $queryBuilder;
$qb->leftJoin('usr', 'job_titles', 'jt', 'usr.job_title_id = jt.id');
$qb
->select(...[
'opp.id as opp_id',
'opp.uuid',
'opp.name',
'opp.value',
'opp.currency_code',
'opp.close_date',
'opp.remotely_created_at',
'opp.is_closed',
'opp.is_won',
])
->addSelect(...[
'usr.uuid as owner_uuid',
'usr.name AS owner_name',
'usr.photo_path as owner_photo',
'usr.id AS owner_id',
'jt.name as owner_job',
])
->addSelect('opp.stage_id', 'opp.stage_updated_at')
->addSelect(...[
'acc.name AS acc_name',
'acc.is_internal as acc_is_internal',
'opp.stage_updated_at',
'acc.crm_provider_id AS acc_provider_id',
'opp.crm_provider_id AS opp_provider_id',
])
->addSelect('rt.business_process_id AS pipeline_id')
->where($qb->expr()->isNotNull('opp.user_id')) // we should not display deals owned by external users
->andWhere($qb->expr()->isNull('opp.deleted_at'));
return $qb;
}
/**
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
* @throws SocialAccountTokenInvalidException
*/
private function getCrmService(Team $team): ServiceInterface
{
$crmService = $this->providerRegistry->get($team->crm->provider);
$crmService->setConfiguration($team->crm);
if ($crmService instanceof UrlGeneratorInterface) {
$crmService->setCrmUrlGenerator($team->crm);
}
return $crmService;
}
/**
*
* @return Generator<DealData>
*/
public function getForecastData(DealsFilter $filter): Generator
{
$opportunities = DB::query()
->select([
'o.value',
'o.close_date',
'o.currency_code',
'o.is_won',
'o.is_closed',
'o.probability',
'o.forecast_category',
])
->from('opportunities', 'o')
->join('users', 'users.id', '=', 'o.user_id')
->join('groups', 'groups.id', '=', 'users.group_id')
->where('users.team_id', $filter->getTeam()->getId())
->where('o.close_date', '>=', $filter->getStartDate())
->where('o.close_date', '<=', $filter->getEndDate())
->where('o.currency_code', $filter->getCurrency())
->where('o.deleted_at', '=', null)
;
$userUuidList = $filter->getUserUuidList();
if (! empty($userUuidList)) {
$userUuidList = array_map(fn ($uuid) => RequiresUUID::toOptimized($uuid), $userUuidList);
$opportunities->whereIn('users.uuid', $userUuidList);
}
$groupUuidList = $filter->getGroupUuidList();
if (! empty($groupUuidList)) {
$groupUuidList = array_map(fn ($uuid) => RequiresUUID::toOptimized($uuid), $groupUuidList);
$opportunities->whereIn('groups.uuid', $groupUuidList);
}
foreach ($opportunities->cursor() as $row) {
yield new DealData(
(float) $row->value,
$row->close_date,
! empty($row->is_won),
! empty($row->is_closed),
$row->probability ?: 0,
$row->forecast_category ?: '',
);
}
}
public function getUserOpportunitySubscriptions(User $user, array $opportunityIds): Collection
{
return $user->subscriptionSets()
->where(static function (Eloquent\Builder $query): void {
$query
->whereNull('expired_at')
->orWhere('expired_at', '>=', now());
})
->join('activity_subscriptions', function (Builder $join) use ($opportunityIds) {
$join
->on('subscription_set_id', '=', 'activity_subscription_sets.id');
$join
->where('followable_type', Models\Activity\Subscription::FOLLOWABLE_TYPE_OPPORTUNITY)
->whereIn('followable_id', $opportunityIds);
})
->pluck('followable_id');
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app
.circleci
.cursor
.github
.sonarlint
.vscode
.windsurf
app, sources root
Actions
Component
Acl
ActionItems
Activity
ActivityAnalytics
ActivitySearch
AiActivityType
AiAutomation
AiCallScoring
AskAnything
Dtos
Events
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi
AWS
BillingManagement
Cache
CoachingFeedback
Country
CustomerApi
Database
Datadog
DateTime
DealInsights
Activity
ActivityAggregator.php, class
ActivityAggregatorInterface.php, interface
DatabaseActivities.php, class
DatasourceInterface.php, interface
RelatedActivity.php, class
RelatedActivityInterface.php, interface
Commands
Comments
Forecast
Jobs
QueryBuilder
Services
ClosingPeriodOptionDecorator.php, class
CreatedPeriodOptionDecorator.php, class
Criteria.php, class
CriteriaInterface.php, interface
CriteriaNormalizer.php, class
CrmService.php, class
CrmServiceInterface.php, interface
DealContactService.php, class
DealInsightsCriteriaBuilder.php, class
DealService.php, class
DealServiceInterface.php, interface
DealsRepository.php, class
DealsRepositoryInterface.php, interface
DealsServiceRepositories.php, class
PerformanceMonitor.php, class
PeriodOptionDecoratorInterface.php, interface
PeriodService.php, final class
PeriodServiceInterface.php, interface
DealRisks
DealRiskTypes
DealRisk.php, class
DealRisksRepository.php, class
DealRisksService.php, class
DealRisksServiceInterface.php, interface
DealRiskType.php
GroupDealRiskType.php
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection
LiveFeed
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder...
|
72899
|
|
12488
|
269
|
15
|
2026-04-14T11:21:14.924990+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-14/1776 /Users/lukas/.screenpipe/data/data/2026-04-14/1776165674924_m2.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEoitViewHistoryBookmarksProfilesToolsWi FirefoxFileEoitViewHistoryBookmarksProfilesToolsWindowHelpapp.staging.jiminny.com/ondemand?include_internal_conversations=2&min_customer_questions=6&max_customer_questions=50&page=2&sequence_number=2Good Objection Handling991 activitiesSort by: Most recent* Add RecordingPlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloZ Configure SSH access to multipleleamSearch teamsiHostShow internal and external activities: Don't show internal xCustomer questions: 6 to 50 X8) Save Search@Clear all@ Console Home | Console Home | usSearch team membersiSecurityGroup | EC2 |us-east-210niso searen as DarticloanuJY-20543 add AJ reports User piloSRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity8 Jiminny7 Ask Jiminny test report - 8 Aor 201Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilc(x) Configure SSH access to multipleNew TabC CloudWatch I us-east-2& Jy 20541 stale records pr 1 by Vasi+ New TabParuicipantSearch team membersCustomer ®Customer or SubjectTranscript ©• Search transcript |Said byMnyonePeriodAll timeTopicsSearch topicsAcuivity tyрeSearch activity typesDuration ©Min (minutes)Max (minutes)Al call scoreSelect Al call scoreAutomated call scoreSelect automated callCoaching scoreselect coacnine scorelCoach ®Search coachesStage at callsearch stagesCurrent stagesearch stagesProductsup MMeeting with HarryCitation Canada MNotetaker added on 10-09-24@16:01Michael Minder at mindset.swiss 1Jiminny deep dive & trial &MichaelMinderDavid Ehrlich at Rapaport MRapaport team to review proposal wit….DavidThrlichtinspera.no M$ Jiminny & Inspera - Deeper DiveKyle Wilson at Pangborn M2 Jiminny &pangborn.com - DemoSpotler MCarl & Shell Jiminny Take 2Simon Jones at OAG M$ Jiminny & OAG - review business c...Simon JonesJake Newbury at SEP2 1Jake$ Jiminny & sep2.co.uk - Demo and T... NewburyBrickflow (Property Funding Hub Ltd)Notetaker added on 10-07-24 @ 18:34maria valentina at Tiendanube 1Valentina to meet with Tom from Jimi..mariavalentinaPostHog MLeon Daly and Petko KashinskiDanielle Gross at Charlie Health MCharlie Health to review Jiminny prop…..DanielleGrossNourish Care MpNourish Care x Jiminny - Jiminny Voice.app.staging.jiminny.com/plavback/24ee607c-dcd1-488d-b11d-889b8528daafLikely toKenew539.196Likelv toRenew$32,760Free Trial$2,586solutioniPresented$23,000SolutionPresented$30,300Likely toRenew$4,800SolutionPresented£31,772Free Trial$21,606Proposal£6,684Free Trial$7,500Proposal$4,500Negotiation$8,700Likely toRenew£26,917I0900 1 D 1|15mD242mDO12mD239m00→ Export Link$00DO35mD128m{08047mB0 G00sim$08023m29m00D0D019mDO18mFA: Get Notified09/10/2024, 9:16 AM09/10/2024, 8:44 AM09/10/2024, 6:45 AM09/10/2024. 6:11 AM09/10/2024, 4:36 AMl: Share08/10/2024, 5:35 AM08/10/2024, 3:30 AM08/10/2024, 1:49 AM07/10/2024, 9:06 AM07/10/2024, 8:56 AM07/10/2024, 8:30 AM07/10/2024, 8:21 AM07/10/2024, 6:19 AMj Support Daily • in 39 mA100% C•Tue 14 Apr 14:21:14Q InspectorFilter URLsConsoleD DebuggerN Network{) Style Editor( PerformanceELE MemoryE Storage0 99+Disable CacheNo ThrottlingAlIHMLeSSStatusMethodPOST200200200200200200200200200200200POSTPOsIPOSTGETGETGETGETGETPosGETPOSTPOSTPosl2001200200200POSTGETPOSTPOSTPOSTPOSTGETMediaDomainInitiatorA g 036719.ing...ap1b0 310 envelode/sentry versions/sentrv xe tetchA Y 036719.ing.../api/5627310/envelope/?sentry_version=7&sentry_ke fetch036/19.ing..ap1/562/310/envelope/?sentryversion=/&sentry_ke tetchA B 036719.ing.../api/5627310/envelope/?sentry_version=7&sentry_ke fetchapo.stagine.l.search?statusl|=completed&sort_by=dateHeld& * xhrA app.staging.ji...recenta xhrA app.stagingj...saved-searchA xhrA app.stagingji...integrationsA xhrA app.stagingji...on-demane.pageslxhrA app.stagingji...authenticateA find.userpilot.io NX-094be170api-lam.interc.pingAr.logr-in.comi?a=ponxaf/platform-staging&r=6-019d8b99-9ac3-7 xhrA 7 036719.ing...apl/ooz/s1u envelooesentry version=/asentr ke sentry-buscukxo.A B 036719.ing.../api/5627310/envelope/?sentry_version=7&sentry_ke sentry-B0ScDkXd...• app.staging.j...on-aemana.min customer cuestions=oamaxc r XhiAr.logr-in.comi?a=ponxaf/platform-staging&r=6-019d8b99-9a -A xhrrlogt-in.comi?a=ponxaf/platform-staging&r=6-019d8b99-9a +a xhros6/19indest./api/5627310/envelope/?sentry_version=7&sentry_ke sentry-B0ScDkXd...F 036719.ingest../api/5627310/envelope/?sentry_version=7&sentry_ke sentry-B0ScDkXd)...app.staging.jimin.on-demandrincude internal conversationss &min xhnTypeTransferredIsonsonb0088 || 146 ms500 B2 B | 94 msb00 B23 45 ms500 B2 B | 43 ms3.05 kB84 B l| 1082 ms756 KB42.51 kB || 1086 ms3.53 kB1.06 kB l|1347 ms3.83 kB5.53 kB 1/1384 ms58.59 kB 236.59...2449 msS.12 KB96 3884 mscached62 B3.98 KB6.36 kB349.08 kB| 470 ms500 B500 B2B2 B62.86 kB 251.54..2.57 MB2.39 MBOB| 43 ms2198 ms| 691 ms/837 msÔ 21 requests543.85 KB/ 5.46 MB transterredFinish: 14.55s DOMContentLoaded: 110 ms load: 255 ms...
|
NULL
|
-9212840411360455068
|
NULL
|
visual_change
|
ocr
|
NULL
|
FirefoxFileEoitViewHistoryBookmarksProfilesToolsWi FirefoxFileEoitViewHistoryBookmarksProfilesToolsWindowHelpapp.staging.jiminny.com/ondemand?include_internal_conversations=2&min_customer_questions=6&max_customer_questions=50&page=2&sequence_number=2Good Objection Handling991 activitiesSort by: Most recent* Add RecordingPlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloZ Configure SSH access to multipleleamSearch teamsiHostShow internal and external activities: Don't show internal xCustomer questions: 6 to 50 X8) Save Search@Clear all@ Console Home | Console Home | usSearch team membersiSecurityGroup | EC2 |us-east-210niso searen as DarticloanuJY-20543 add AJ reports User piloSRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity8 Jiminny7 Ask Jiminny test report - 8 Aor 201Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilc(x) Configure SSH access to multipleNew TabC CloudWatch I us-east-2& Jy 20541 stale records pr 1 by Vasi+ New TabParuicipantSearch team membersCustomer ®Customer or SubjectTranscript ©• Search transcript |Said byMnyonePeriodAll timeTopicsSearch topicsAcuivity tyрeSearch activity typesDuration ©Min (minutes)Max (minutes)Al call scoreSelect Al call scoreAutomated call scoreSelect automated callCoaching scoreselect coacnine scorelCoach ®Search coachesStage at callsearch stagesCurrent stagesearch stagesProductsup MMeeting with HarryCitation Canada MNotetaker added on 10-09-24@16:01Michael Minder at mindset.swiss 1Jiminny deep dive & trial &MichaelMinderDavid Ehrlich at Rapaport MRapaport team to review proposal wit….DavidThrlichtinspera.no M$ Jiminny & Inspera - Deeper DiveKyle Wilson at Pangborn M2 Jiminny &pangborn.com - DemoSpotler MCarl & Shell Jiminny Take 2Simon Jones at OAG M$ Jiminny & OAG - review business c...Simon JonesJake Newbury at SEP2 1Jake$ Jiminny & sep2.co.uk - Demo and T... NewburyBrickflow (Property Funding Hub Ltd)Notetaker added on 10-07-24 @ 18:34maria valentina at Tiendanube 1Valentina to meet with Tom from Jimi..mariavalentinaPostHog MLeon Daly and Petko KashinskiDanielle Gross at Charlie Health MCharlie Health to review Jiminny prop…..DanielleGrossNourish Care MpNourish Care x Jiminny - Jiminny Voice.app.staging.jiminny.com/plavback/24ee607c-dcd1-488d-b11d-889b8528daafLikely toKenew539.196Likelv toRenew$32,760Free Trial$2,586solutioniPresented$23,000SolutionPresented$30,300Likely toRenew$4,800SolutionPresented£31,772Free Trial$21,606Proposal£6,684Free Trial$7,500Proposal$4,500Negotiation$8,700Likely toRenew£26,917I0900 1 D 1|15mD242mDO12mD239m00→ Export Link$00DO35mD128m{08047mB0 G00sim$08023m29m00D0D019mDO18mFA: Get Notified09/10/2024, 9:16 AM09/10/2024, 8:44 AM09/10/2024, 6:45 AM09/10/2024. 6:11 AM09/10/2024, 4:36 AMl: Share08/10/2024, 5:35 AM08/10/2024, 3:30 AM08/10/2024, 1:49 AM07/10/2024, 9:06 AM07/10/2024, 8:56 AM07/10/2024, 8:30 AM07/10/2024, 8:21 AM07/10/2024, 6:19 AMj Support Daily • in 39 mA100% C•Tue 14 Apr 14:21:14Q InspectorFilter URLsConsoleD DebuggerN Network{) Style Editor( PerformanceELE MemoryE Storage0 99+Disable CacheNo ThrottlingAlIHMLeSSStatusMethodPOST200200200200200200200200200200200POSTPOsIPOSTGETGETGETGETGETPosGETPOSTPOSTPosl2001200200200POSTGETPOSTPOSTPOSTPOSTGETMediaDomainInitiatorA g 036719.ing...ap1b0 310 envelode/sentry versions/sentrv xe tetchA Y 036719.ing.../api/5627310/envelope/?sentry_version=7&sentry_ke fetch036/19.ing..ap1/562/310/envelope/?sentryversion=/&sentry_ke tetchA B 036719.ing.../api/5627310/envelope/?sentry_version=7&sentry_ke fetchapo.stagine.l.search?statusl|=completed&sort_by=dateHeld& * xhrA app.staging.ji...recenta xhrA app.stagingj...saved-searchA xhrA app.stagingji...integrationsA xhrA app.stagingji...on-demane.pageslxhrA app.stagingji...authenticateA find.userpilot.io NX-094be170api-lam.interc.pingAr.logr-in.comi?a=ponxaf/platform-staging&r=6-019d8b99-9ac3-7 xhrA 7 036719.ing...apl/ooz/s1u envelooesentry version=/asentr ke sentry-buscukxo.A B 036719.ing.../api/5627310/envelope/?sentry_version=7&sentry_ke sentry-B0ScDkXd...• app.staging.j...on-aemana.min customer cuestions=oamaxc r XhiAr.logr-in.comi?a=ponxaf/platform-staging&r=6-019d8b99-9a -A xhrrlogt-in.comi?a=ponxaf/platform-staging&r=6-019d8b99-9a +a xhros6/19indest./api/5627310/envelope/?sentry_version=7&sentry_ke sentry-B0ScDkXd...F 036719.ingest../api/5627310/envelope/?sentry_version=7&sentry_ke sentry-B0ScDkXd)...app.staging.jimin.on-demandrincude internal conversationss &min xhnTypeTransferredIsonsonb0088 || 146 ms500 B2 B | 94 msb00 B23 45 ms500 B2 B | 43 ms3.05 kB84 B l| 1082 ms756 KB42.51 kB || 1086 ms3.53 kB1.06 kB l|1347 ms3.83 kB5.53 kB 1/1384 ms58.59 kB 236.59...2449 msS.12 KB96 3884 mscached62 B3.98 KB6.36 kB349.08 kB| 470 ms500 B500 B2B2 B62.86 kB 251.54..2.57 MB2.39 MBOB| 43 ms2198 ms| 691 ms/837 msÔ 21 requests543.85 KB/ 5.46 MB transterredFinish: 14.55s DOMContentLoaded: 110 ms load: 255 ms...
|
NULL
|
|
81104
|
2158
|
17
|
2026-04-25T16:02:59.949670+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-25/1777 /Users/lukas/.screenpipe/data/data/2026-04-25/1777132979949_m1.jpg...
|
Claude
|
Claude
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Skip to content
Skip to content
Click to collapse
Skip to content
Skip to content
Click to collapse
⌘B
Drag to resize
Collapse sidebar
Search
Chat
Cowork
Code
New chat ⌘N
New chat
⌘N
Projects
Artifacts
Customize
Pinned
Bulgarian citizenship application process for EU residents
More options for Bulgarian citizenship application process for EU residents
Dawarich location tracking project
More options for Dawarich location tracking project
Recents
View all
Screenpipe sync database attachment error
More options for Screenpipe sync database attachment error
💬 What is the best switch I can…
More options for 💬 What is the best switch I can…
Last swimming outing with Dani
More options for Last swimming outing with Dani
💬 Screen pipe. Is there ability…
More options for 💬 Screen pipe. Is there ability…
Definition of incarcerated
More options for Definition of incarcerated
Chromecast remote volume buttons not working
More options for Chromecast remote volume buttons not working
Salesforce API errors with Organization and FieldDefinition queries
More options for Salesforce API errors with Organization and FieldDefinition queries
Daily activity summary from screenpipe data
More options for Daily activity summary from screenpipe data
MacBook unexpected restarts and kanji screen
More options for MacBook unexpected restarts and kanji screen
Security patch review and testing guidance
More options for Security patch review and testing guidance
Food calorie values reference
More options for Food calorie values reference
Tracking location history from last week
More options for Tracking location history from last week
Screenpipe WAL processing when stopped
More options for Screenpipe WAL processing when stopped
Reviewing recent conversation highlights
More options for Reviewing recent conversation highlights
Mac aliases not recognized
More options for Mac aliases not recognized
Boosteroid still recording despite ignored windows setting
More options for Boosteroid still recording despite ignored windows setting
Missing JavaScript promise in authorization response
More options for Missing JavaScript promise in authorization response
Linux SQLite UI for NAS
More options for Linux SQLite UI for NAS
Claude API 500 internal server error
More options for Claude API 500 internal server error
Screenpipe query capabilities and usage
More options for Screenpipe query capabilities and usage
Relaunch to update v1.3883.0
Relaunch to update
v1.3883.0
Lukas Kovalik
Lukas Kovalik
Get apps and extensions
Screenpipe sync database attachment error
Screenpipe sync database attachment error
More options for Screenpipe sync database attachment error
Share chat
Claude finished the response
You said: why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
You said: why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
Pasted Text, pasted, 352 lines
#!/bin/bash # screenpipe_sync.sh # Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions). # Also copies the day's video/frame data folder to the NAS. # # Usage: # ./screenpipe_sync.sh # syncs yesterday (default) # ./screenpipe_sync.sh 2026-04-15 # sync
PASTED
why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-24
[2026-04-25 18:50:07] ========================================
[2026-04-25 18:50:07] Screenpipe sync starting for: 2026-04-24
[2026-04-25 18:50:07] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (8.0G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (6.0G)
Data dir: OK (250 files, 143M)
[+00m00s] ▶ Counting source rows for 2026-04-24
frames: 5183
elements: 297071
ui_events: 6116
ocr_text: 1508
meetings: 2
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ⠋ Runtime error near line 2: unable to open database: /Volumes/screenpipe/archive.db (23)
Parse error near line 3: unknown database nas
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames
error here ---^
Parse error near line 4: unknown database nas
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements
error here ---^
Parse error near line 5: unknown database nas
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events
error here ---^
Parse error near line 6: unknown database nas
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text
error here ---^
Parse error near line 7: unknown database nas
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks
error here ---^
Parse error near line 8: unknown database nas
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings
error here ---^
Runtime error near line 9: no such database: nas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ when running
Show more
18:56
Retry
Edit
Copy
Claude responded: The error is unable to open database: /Volumes/screenpipe/archive.
Claude responded: The error is unable to open database: /Volumes/screenpipe/archive.
The error is
unable to open database: /Volumes/screenpipe/archive.db (23)
— error code 23 in SQLite means
SQLITE_AUTH
, which on macOS means a
permissions/sandbox issue
. The NAS is mounted but SQLite can't open/create the file there.
The root cause: SQLite's
ATTACH
with a path on a network volume (SMB) can fail when the terminal/process doesn't have full disk access, or the NAS mount has restrictions on file locking (SQLite requires advisory locks, which SMB on macOS sometimes blocks).
A few things to check and fix:
1. Verify the mount actually allows writes
Copy to clipboard
bash
touch
/Volumes/screenpipe/test.txt
&&
echo
"OK"
&&
rm
/Volumes/screenpipe/test.txt
If this fails, the mount itself is read-only or permission-restricted.
2. Check if
archive.db
can be opened directly
Copy to clipboard
bash
sqlite3 /Volumes/screenpipe/archive.db
".tables"
If this fails with the same error 23, it's a filesystem-level lock issue.
3. The real fix — use a local temp DB, then copy
SQLite over SMB is unreliable for ATTACH operations. The safest approach is to do all the work locally and then copy the result:
Copy to clipboard
bash
# At the top of your script, change NAS_DB to a local temp path
LOCAL_DB
=
"/tmp/screenpipe_archive_staging.db"
NAS_DB_FINAL
=
"
$NAS_MOUNT
/archive.db"
# At the start: copy existing archive down from NAS
if
[
-f
"
$NAS_DB_FINAL
"
]
;
then
cp
"
$NAS_DB_FINAL
"
"
$LOCAL_DB
"
else
touch
"
$LOCAL_DB
"
fi
# ... run all your sqlite3 operations against $LOCAL_DB ...
# At the end: copy back to NAS
cp
"
$LOCAL_DB
"
"
$NAS_DB_FINAL
"
rm
"
$LOCAL_DB
"
This avoids SMB locking entirely. The downside is you need ~6GB+ of local space temporarily, but it's much more reliable.
4. Alternative — disable WAL mode on the NAS DB
If you want to keep operating directly on the NAS file, ensure WAL mode isn't enabled (WAL requires shared memory files which SMB blocks):
Copy to clipboard
bash
sqlite3 /Volumes/screenpipe/archive.db
"PRAGMA journal_mode=DELETE;"
Then retry. But honestly the copy-locally approach from point 3 is the most robust long-term.
Quick diagnosis
: what does
sqlite3 /Volumes/screenpipe/archive.db ".tables"
return?
Copy
Give positive feedback
Give negative feedback
Retry
You said: lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
You said: lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch /Volumes/screenpipe/test.txt && echo "OK" && rm /Volumes/screenpipe/test.txt
touch: /Volumes/screenpipe/test.txt: Operation not permitted
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 /Volumes/screenpipe/archive.db ".tables"
Error: unable to open database "/Volumes/screenpipe/archive.db": authorization denied
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
18:58
Retry
Edit
Copy
Claude responded: The mount is read-only from Terminal's perspective — this is macOS Full Disk Access (FDA) issue.
Claude responded: The mount is read-only from Terminal's perspective — this is macOS Full Disk Access (FDA) issue.
The mount is read-only from Terminal's perspective — this is macOS
Full Disk Access
(FDA) issue. Terminal doesn't have permission to write to network volumes.
Fix: grant Full Disk Access to Terminal
System Settings → Privacy & Security → Full Disk Access
Click
+
and add
/Applications/Utilities/Terminal.app...
|
[{"role":"AXLink","text":& [{"role":"AXLink","text":"Skip to content","depth":14,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Skip to content","depth":15,"role_description":"text"},{"role":"AXStaticText","text":"Click to collapse","depth":16,"role_description":"text"},{"role":"AXStaticText","text":"⌘B","depth":16,"role_description":"text"},{"role":"AXStaticText","text":"Drag to resize","depth":16,"role_description":"text"},{"role":"AXButton","text":"Collapse sidebar","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Chat","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cowork","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New chat ⌘N","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"New chat","depth":16,"role_description":"text"},{"role":"AXStaticText","text":"⌘N","depth":17,"role_description":"text"},{"role":"AXButton","text":"Projects","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Artifacts","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Customize","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Pinned","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Bulgarian citizenship application process for EU residents","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Bulgarian citizenship application process for EU residents","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Dawarich location tracking project","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Dawarich location tracking project","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Recents","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"View all","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe sync database attachment error","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe sync database attachment error","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"💬 What is the best switch I can…","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for 💬 What is the best switch I can…","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Last swimming outing with Dani","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Last swimming outing with Dani","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"💬 Screen pipe. Is there ability…","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for 💬 Screen pipe. Is there ability…","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Definition of incarcerated","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Definition of incarcerated","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Chromecast remote volume buttons not working","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Chromecast remote volume buttons not working","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Salesforce API errors with Organization and FieldDefinition queries","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Salesforce API errors with Organization and FieldDefinition queries","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Daily activity summary from screenpipe data","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Daily activity summary from screenpipe data","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"MacBook unexpected restarts and kanji screen","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for MacBook unexpected restarts and kanji screen","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Security patch review and testing guidance","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Security patch review and testing guidance","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Food calorie values reference","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Food calorie values reference","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Tracking location history from last week","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Tracking location history from last week","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe WAL processing when stopped","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe WAL processing when stopped","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reviewing recent conversation highlights","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Reviewing recent conversation highlights","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Mac aliases not recognized","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Mac aliases not recognized","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Boosteroid still recording despite ignored windows setting","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Boosteroid still recording despite ignored windows setting","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Missing JavaScript promise in authorization response","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Missing JavaScript promise in authorization response","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Linux SQLite UI for NAS","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Linux SQLite UI for NAS","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Claude API 500 internal server error","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Claude API 500 internal server error","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe query capabilities and usage","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe query capabilities and usage","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Relaunch to update v1.3883.0","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Relaunch to update","depth":16,"role_description":"text"},{"role":"AXStaticText","text":"v1.3883.0","depth":16,"role_description":"text"},{"role":"AXPopUpButton","text":"Lukas Kovalik","depth":16,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Lukas Kovalik","depth":17,"role_description":"text"},{"role":"AXButton","text":"Get apps and extensions","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe sync database attachment error","depth":19,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Screenpipe sync database attachment error","depth":21,"role_description":"text"},{"role":"AXPopUpButton","text":"More options for Screenpipe sync database attachment error","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share chat","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Claude finished the response","depth":21,"role_description":"text"},{"role":"AXHeading","text":"You said: why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.","depth":20,"role_description":"heading"},{"role":"AXStaticText","text":"You said: why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.","depth":21,"role_description":"text"},{"role":"AXButton","text":"Pasted Text, pasted, 352 lines","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"#!/bin/bash # screenpipe_sync.sh # Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions). # Also copies the day's video/frame data folder to the NAS. # # Usage: # ./screenpipe_sync.sh # syncs yesterday (default) # ./screenpipe_sync.sh 2026-04-15 # sync","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"PASTED","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-24\n[2026-04-25 18:50:07] ========================================\n[2026-04-25 18:50:07] Screenpipe sync starting for: 2026-04-24\n[2026-04-25 18:50:07] ========================================\n[+00m00s] ▶ Preflight checks\n Source DB: OK (8.0G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: exists (6.0G)\n Data dir: OK (250 files, 143M)\n[+00m00s] ▶ Counting source rows for 2026-04-24\n frames: 5183\n elements: 297071\n ui_events: 6116\n ocr_text: 1508\n meetings: 2\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ⠋ Runtime error near line 2: unable to open database: /Volumes/screenpipe/archive.db (23)\nParse error near line 3: unknown database nas\n CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames\n error here ---^\nParse error near line 4: unknown database nas\n CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements\n error here ---^\nParse error near line 5: unknown database nas\n CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events\n error here ---^\nParse error near line 6: unknown database nas\n CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text\n error here ---^\nParse error near line 7: unknown database nas\n CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks\n error here ---^\nParse error near line 8: unknown database nas\n CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings\n error here ---^\nRuntime error near line 9: no such database: nas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ when running","depth":24,"role_description":"text"},{"role":"AXButton","text":"Show more","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"18:56","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Claude responded: The error is unable to open database: /Volumes/screenpipe/archive.","depth":21,"role_description":"heading"},{"role":"AXStaticText","text":"Claude responded: The error is unable to open database: /Volumes/screenpipe/archive.","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"The error is","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"unable to open database: /Volumes/screenpipe/archive.db (23)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"— error code 23 in SQLite means","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"SQLITE_AUTH","depth":24,"role_description":"text"},{"role":"AXStaticText","text":", which on macOS means a","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"permissions/sandbox issue","depth":24,"role_description":"text"},{"role":"AXStaticText","text":". The NAS is mounted but SQLite can't open/create the file there.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"The root cause: SQLite's","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"ATTACH","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"with a path on a network volume (SMB) can fail when the terminal/process doesn't have full disk access, or the NAS mount has restrictions on file locking (SQLite requires advisory locks, which SMB on macOS sometimes blocks).","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"A few things to check and fix:","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"1. Verify the mount actually allows writes","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"touch","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/Volumes/screenpipe/test.txt","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"&&","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"OK\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"&&","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"rm","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/Volumes/screenpipe/test.txt","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"If this fails, the mount itself is read-only or permission-restricted.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"2. Check if","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"archive.db","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"can be opened directly","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 /Volumes/screenpipe/archive.db","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\".tables\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"If this fails with the same error 23, it's a filesystem-level lock issue.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"3. The real fix — use a local temp DB, then copy","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"SQLite over SMB is unreliable for ATTACH operations. The safest approach is to do all the work locally and then copy the result:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"# At the top of your script, change NAS_DB to a local temp path","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"LOCAL_DB","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"/tmp/screenpipe_archive_staging.db\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"NAS_DB_FINAL","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$NAS_MOUNT","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/archive.db\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# At the start: copy existing archive down from NAS","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"if","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-f","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$NAS_DB_FINAL","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":";","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"then","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"cp","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$NAS_DB_FINAL","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$LOCAL_DB","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"else","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"touch","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$LOCAL_DB","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"fi","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# ... run all your sqlite3 operations against $LOCAL_DB ...","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# At the end: copy back to NAS","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"cp","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$LOCAL_DB","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$NAS_DB_FINAL","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"rm","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$LOCAL_DB","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"This avoids SMB locking entirely. The downside is you need ~6GB+ of local space temporarily, but it's much more reliable.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"4. Alternative — disable WAL mode on the NAS DB","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"If you want to keep operating directly on the NAS file, ensure WAL mode isn't enabled (WAL requires shared memory files which SMB blocks):","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 /Volumes/screenpipe/archive.db","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"PRAGMA journal_mode=DELETE;\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Then retry. But honestly the copy-locally approach from point 3 is the most robust long-term.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Quick diagnosis","depth":24,"role_description":"text"},{"role":"AXStaticText","text":": what does","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 /Volumes/screenpipe/archive.db \".tables\"","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"return?","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give positive feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give negative feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"You said: lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.","depth":20,"role_description":"heading"},{"role":"AXStaticText","text":"You said: lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch /Volumes/screenpipe/test.txt && echo \"OK\" && rm /Volumes/screenpipe/test.txt\ntouch: /Volumes/screenpipe/test.txt: Operation not permitted\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 /Volumes/screenpipe/archive.db \".tables\"\nError: unable to open database \"/Volumes/screenpipe/archive.db\": authorization denied\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"18:58","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Claude responded: The mount is read-only from Terminal's perspective — this is macOS Full Disk Access (FDA) issue.","depth":21,"role_description":"heading"},{"role":"AXStaticText","text":"Claude responded: The mount is read-only from Terminal's perspective — this is macOS Full Disk Access (FDA) issue.","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"The mount is read-only from Terminal's perspective — this is macOS","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Full Disk Access","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"(FDA) issue. Terminal doesn't have permission to write to network volumes.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Fix: grant Full Disk Access to Terminal","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"System Settings → Privacy & Security → Full Disk Access","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Click","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"+","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"and add","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"/Applications/Utilities/Terminal.app","depth":25,"role_description":"text"}]...
|
-9212737481795351833
|
739671694756241330
|
click
|
accessibility
|
NULL
|
Skip to content
Skip to content
Click to collapse
Skip to content
Skip to content
Click to collapse
⌘B
Drag to resize
Collapse sidebar
Search
Chat
Cowork
Code
New chat ⌘N
New chat
⌘N
Projects
Artifacts
Customize
Pinned
Bulgarian citizenship application process for EU residents
More options for Bulgarian citizenship application process for EU residents
Dawarich location tracking project
More options for Dawarich location tracking project
Recents
View all
Screenpipe sync database attachment error
More options for Screenpipe sync database attachment error
💬 What is the best switch I can…
More options for 💬 What is the best switch I can…
Last swimming outing with Dani
More options for Last swimming outing with Dani
💬 Screen pipe. Is there ability…
More options for 💬 Screen pipe. Is there ability…
Definition of incarcerated
More options for Definition of incarcerated
Chromecast remote volume buttons not working
More options for Chromecast remote volume buttons not working
Salesforce API errors with Organization and FieldDefinition queries
More options for Salesforce API errors with Organization and FieldDefinition queries
Daily activity summary from screenpipe data
More options for Daily activity summary from screenpipe data
MacBook unexpected restarts and kanji screen
More options for MacBook unexpected restarts and kanji screen
Security patch review and testing guidance
More options for Security patch review and testing guidance
Food calorie values reference
More options for Food calorie values reference
Tracking location history from last week
More options for Tracking location history from last week
Screenpipe WAL processing when stopped
More options for Screenpipe WAL processing when stopped
Reviewing recent conversation highlights
More options for Reviewing recent conversation highlights
Mac aliases not recognized
More options for Mac aliases not recognized
Boosteroid still recording despite ignored windows setting
More options for Boosteroid still recording despite ignored windows setting
Missing JavaScript promise in authorization response
More options for Missing JavaScript promise in authorization response
Linux SQLite UI for NAS
More options for Linux SQLite UI for NAS
Claude API 500 internal server error
More options for Claude API 500 internal server error
Screenpipe query capabilities and usage
More options for Screenpipe query capabilities and usage
Relaunch to update v1.3883.0
Relaunch to update
v1.3883.0
Lukas Kovalik
Lukas Kovalik
Get apps and extensions
Screenpipe sync database attachment error
Screenpipe sync database attachment error
More options for Screenpipe sync database attachment error
Share chat
Claude finished the response
You said: why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
You said: why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
Pasted Text, pasted, 352 lines
#!/bin/bash # screenpipe_sync.sh # Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions). # Also copies the day's video/frame data folder to the NAS. # # Usage: # ./screenpipe_sync.sh # syncs yesterday (default) # ./screenpipe_sync.sh 2026-04-15 # sync
PASTED
why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-24
[2026-04-25 18:50:07] ========================================
[2026-04-25 18:50:07] Screenpipe sync starting for: 2026-04-24
[2026-04-25 18:50:07] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (8.0G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (6.0G)
Data dir: OK (250 files, 143M)
[+00m00s] ▶ Counting source rows for 2026-04-24
frames: 5183
elements: 297071
ui_events: 6116
ocr_text: 1508
meetings: 2
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ⠋ Runtime error near line 2: unable to open database: /Volumes/screenpipe/archive.db (23)
Parse error near line 3: unknown database nas
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames
error here ---^
Parse error near line 4: unknown database nas
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements
error here ---^
Parse error near line 5: unknown database nas
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events
error here ---^
Parse error near line 6: unknown database nas
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text
error here ---^
Parse error near line 7: unknown database nas
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks
error here ---^
Parse error near line 8: unknown database nas
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings
error here ---^
Runtime error near line 9: no such database: nas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ when running
Show more
18:56
Retry
Edit
Copy
Claude responded: The error is unable to open database: /Volumes/screenpipe/archive.
Claude responded: The error is unable to open database: /Volumes/screenpipe/archive.
The error is
unable to open database: /Volumes/screenpipe/archive.db (23)
— error code 23 in SQLite means
SQLITE_AUTH
, which on macOS means a
permissions/sandbox issue
. The NAS is mounted but SQLite can't open/create the file there.
The root cause: SQLite's
ATTACH
with a path on a network volume (SMB) can fail when the terminal/process doesn't have full disk access, or the NAS mount has restrictions on file locking (SQLite requires advisory locks, which SMB on macOS sometimes blocks).
A few things to check and fix:
1. Verify the mount actually allows writes
Copy to clipboard
bash
touch
/Volumes/screenpipe/test.txt
&&
echo
"OK"
&&
rm
/Volumes/screenpipe/test.txt
If this fails, the mount itself is read-only or permission-restricted.
2. Check if
archive.db
can be opened directly
Copy to clipboard
bash
sqlite3 /Volumes/screenpipe/archive.db
".tables"
If this fails with the same error 23, it's a filesystem-level lock issue.
3. The real fix — use a local temp DB, then copy
SQLite over SMB is unreliable for ATTACH operations. The safest approach is to do all the work locally and then copy the result:
Copy to clipboard
bash
# At the top of your script, change NAS_DB to a local temp path
LOCAL_DB
=
"/tmp/screenpipe_archive_staging.db"
NAS_DB_FINAL
=
"
$NAS_MOUNT
/archive.db"
# At the start: copy existing archive down from NAS
if
[
-f
"
$NAS_DB_FINAL
"
]
;
then
cp
"
$NAS_DB_FINAL
"
"
$LOCAL_DB
"
else
touch
"
$LOCAL_DB
"
fi
# ... run all your sqlite3 operations against $LOCAL_DB ...
# At the end: copy back to NAS
cp
"
$LOCAL_DB
"
"
$NAS_DB_FINAL
"
rm
"
$LOCAL_DB
"
This avoids SMB locking entirely. The downside is you need ~6GB+ of local space temporarily, but it's much more reliable.
4. Alternative — disable WAL mode on the NAS DB
If you want to keep operating directly on the NAS file, ensure WAL mode isn't enabled (WAL requires shared memory files which SMB blocks):
Copy to clipboard
bash
sqlite3 /Volumes/screenpipe/archive.db
"PRAGMA journal_mode=DELETE;"
Then retry. But honestly the copy-locally approach from point 3 is the most robust long-term.
Quick diagnosis
: what does
sqlite3 /Volumes/screenpipe/archive.db ".tables"
return?
Copy
Give positive feedback
Give negative feedback
Retry
You said: lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
You said: lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch /Volumes/screenpipe/test.txt && echo "OK" && rm /Volumes/screenpipe/test.txt
touch: /Volumes/screenpipe/test.txt: Operation not permitted
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 /Volumes/screenpipe/archive.db ".tables"
Error: unable to open database "/Volumes/screenpipe/archive.db": authorization denied
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
18:58
Retry
Edit
Copy
Claude responded: The mount is read-only from Terminal's perspective — this is macOS Full Disk Access (FDA) issue.
Claude responded: The mount is read-only from Terminal's perspective — this is macOS Full Disk Access (FDA) issue.
The mount is read-only from Terminal's perspective — this is macOS
Full Disk Access
(FDA) issue. Terminal doesn't have permission to write to network volumes.
Fix: grant Full Disk Access to Terminal
System Settings → Privacy & Security → Full Disk Access
Click
+
and add
/Applications/Utilities/Terminal.app...
|
81101
|
|
81210
|
2160
|
20
|
2026-04-25T16:07:02.639759+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-25/1777 /Users/lukas/.screenpipe/data/data/2026-04-25/1777133222639_m1.jpg...
|
Claude
|
Claude
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Skip to content
Skip to content
Click to collapse
Skip to content
Skip to content
Click to collapse
⌘B
Drag to resize
Collapse sidebar
Search
Chat
Cowork
Code
New chat ⌘N
New chat
⌘N
Projects
Artifacts
Customize
Pinned
Bulgarian citizenship application process for EU residents
More options for Bulgarian citizenship application process for EU residents
Dawarich location tracking project
More options for Dawarich location tracking project
Recents
View all
Screenpipe sync database attachment error
More options for Screenpipe sync database attachment error
💬 What is the best switch I can…
More options for 💬 What is the best switch I can…
Last swimming outing with Dani
More options for Last swimming outing with Dani
💬 Screen pipe. Is there ability…
More options for 💬 Screen pipe. Is there ability…
Definition of incarcerated
More options for Definition of incarcerated
Chromecast remote volume buttons not working
More options for Chromecast remote volume buttons not working
Salesforce API errors with Organization and FieldDefinition queries
More options for Salesforce API errors with Organization and FieldDefinition queries
Daily activity summary from screenpipe data
More options for Daily activity summary from screenpipe data
MacBook unexpected restarts and kanji screen
More options for MacBook unexpected restarts and kanji screen
Security patch review and testing guidance
More options for Security patch review and testing guidance
Food calorie values reference
More options for Food calorie values reference
Tracking location history from last week
More options for Tracking location history from last week
Screenpipe WAL processing when stopped
More options for Screenpipe WAL processing when stopped
Reviewing recent conversation highlights
More options for Reviewing recent conversation highlights
Mac aliases not recognized
More options for Mac aliases not recognized
Boosteroid still recording despite ignored windows setting
More options for Boosteroid still recording despite ignored windows setting
Missing JavaScript promise in authorization response
More options for Missing JavaScript promise in authorization response
Linux SQLite UI for NAS
More options for Linux SQLite UI for NAS
Claude API 500 internal server error
More options for Claude API 500 internal server error
Screenpipe query capabilities and usage
More options for Screenpipe query capabilities and usage
Relaunch to update v1.3883.0
Relaunch to update
v1.3883.0
Lukas Kovalik
Lukas Kovalik
Get apps and extensions
Screenpipe sync database attachment error
Screenpipe sync database attachment error
More options for Screenpipe sync database attachment error
Share chat
Claude finished the response
You said: why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
You said: why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
Pasted Text, pasted, 352 lines
#!/bin/bash # screenpipe_sync.sh # Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions). # Also copies the day's video/frame data folder to the NAS. # # Usage: # ./screenpipe_sync.sh # syncs yesterday (default) # ./screenpipe_sync.sh 2026-04-15 # sync
PASTED
why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-24
[2026-04-25 18:50:07] ========================================
[2026-04-25 18:50:07] Screenpipe sync starting for: 2026-04-24
[2026-04-25 18:50:07] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (8.0G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (6.0G)
Data dir: OK (250 files, 143M)
[+00m00s] ▶ Counting source rows for 2026-04-24
frames: 5183
elements: 297071
ui_events: 6116
ocr_text: 1508
meetings: 2
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ⠋ Runtime error near line 2: unable to open database: /Volumes/screenpipe/archive.db (23)
Parse error near line 3: unknown database nas
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames
error here ---^
Parse error near line 4: unknown database nas
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements
error here ---^
Parse error near line 5: unknown database nas
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events
error here ---^
Parse error near line 6: unknown database nas
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text
error here ---^
Parse error near line 7: unknown database nas
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks
error here ---^
Parse error near line 8: unknown database nas
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings
error here ---^
Runtime error near line 9: no such database: nas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ when running
Show more
18:56
Retry
Edit
Copy
Claude responded: The error is unable to open database: /Volumes/screenpipe/archive.
Claude responded: The error is unable to open database: /Volumes/screenpipe/archive.
The error is
unable to open database: /Volumes/screenpipe/archive.db (23)
— error code 23 in SQLite means
SQLITE_AUTH
, which on macOS means a
permissions/sandbox issue
. The NAS is mounted but SQLite can't open/create the file there.
The root cause: SQLite's
ATTACH
with a path on a network volume (SMB) can fail when the terminal/process doesn't have full disk access, or the NAS mount has restrictions on file locking (SQLite requires advisory locks, which SMB on macOS sometimes blocks).
A few things to check and fix:
1. Verify the mount actually allows writes
Copy to clipboard
bash
touch
/Volumes/screenpipe/test.txt
&&
echo
"OK"
&&
rm
/Volumes/screenpipe/test.txt
If this fails, the mount itself is read-only or permission-restricted.
2. Check if
archive.db
can be opened directly
Copy to clipboard
bash
sqlite3 /Volumes/screenpipe/archive.db
".tables"
If this fails with the same error 23, it's a filesystem-level lock issue.
3. The real fix — use a local temp DB, then copy
SQLite over SMB is unreliable for ATTACH operations. The safest approach is to do all the work locally and then copy the result:
Copy to clipboard
bash
# At the top of your script, change NAS_DB to a local temp path
LOCAL_DB
=
"/tmp/screenpipe_archive_staging.db"
NAS_DB_FINAL
=
"
$NAS_MOUNT
/archive.db"
# At the start: copy existing archive down from NAS
if
[
-f
"
$NAS_DB_FINAL
"
]
;
then
cp
"
$NAS_DB_FINAL
"
"
$LOCAL_DB
"
else
touch
"
$LOCAL_DB
"
fi
# ... run all your sqlite3 operations against $LOCAL_DB ...
# At the end: copy back to NAS
cp
"
$LOCAL_DB
"
"
$NAS_DB_FINAL
"
rm
"
$LOCAL_DB
"
This avoids SMB locking entirely. The downside is you need ~6GB+ of local space temporarily, but it's much more reliable.
4. Alternative — disable WAL mode on the NAS DB
If you want to keep operating directly on the NAS file, ensure WAL mode isn't enabled (WAL requires shared memory files which SMB blocks):
Copy to clipboard
bash
sqlite3 /Volumes/screenpipe/archive.db
"PRAGMA journal_mode=DELETE;"
Then retry. But honestly the copy-locally approach from point 3 is the most robust long-term.
Quick diagnosis
: what does
sqlite3 /Volumes/screenpipe/archive.db ".tables"
return?
Copy
Give positive feedback
Give negative feedback
Retry
You said: lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
You said: lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch /Volumes/screenpipe/test.txt && echo "OK" && rm /Volumes/screenpipe/test.txt
touch: /Volumes/screenpipe/test.txt: Operation not permitted
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 /Volumes/screenpipe/archive.db ".tables"
Error: unable to open database "/Volumes/screenpipe/archive.db": authorization denied
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
18:58
Retry
Edit
Copy
Claude responded: The mount is read-only from Terminal's perspective — this is macOS Full Disk Access (FDA) issue.
Claude responded: The mount is read-only from Terminal's perspective — this is macOS Full Disk Access (FDA) issue.
The mount is read-only from Terminal's perspective — this is macOS
Full Disk Access
(FDA) issue. Terminal doesn't have permission to write to network volumes.
Fix: grant Full Disk Access to Terminal
System Settings → Privacy & Security → Full Disk Access
Click
+
and add
/Applications/Utilities/Terminal.app...
|
[{"role":"AXLink","text":& [{"role":"AXLink","text":"Skip to content","depth":14,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Skip to content","depth":15,"role_description":"text"},{"role":"AXStaticText","text":"Click to collapse","depth":16,"role_description":"text"},{"role":"AXStaticText","text":"⌘B","depth":16,"role_description":"text"},{"role":"AXStaticText","text":"Drag to resize","depth":16,"role_description":"text"},{"role":"AXButton","text":"Collapse sidebar","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Chat","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cowork","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New chat ⌘N","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"New chat","depth":16,"role_description":"text"},{"role":"AXStaticText","text":"⌘N","depth":17,"role_description":"text"},{"role":"AXButton","text":"Projects","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Artifacts","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Customize","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Pinned","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Bulgarian citizenship application process for EU residents","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Bulgarian citizenship application process for EU residents","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Dawarich location tracking project","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Dawarich location tracking project","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Recents","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"View all","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe sync database attachment error","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe sync database attachment error","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"💬 What is the best switch I can…","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for 💬 What is the best switch I can…","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Last swimming outing with Dani","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Last swimming outing with Dani","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"💬 Screen pipe. Is there ability…","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for 💬 Screen pipe. Is there ability…","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Definition of incarcerated","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Definition of incarcerated","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Chromecast remote volume buttons not working","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Chromecast remote volume buttons not working","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Salesforce API errors with Organization and FieldDefinition queries","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Salesforce API errors with Organization and FieldDefinition queries","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Daily activity summary from screenpipe data","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Daily activity summary from screenpipe data","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"MacBook unexpected restarts and kanji screen","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for MacBook unexpected restarts and kanji screen","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Security patch review and testing guidance","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Security patch review and testing guidance","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Food calorie values reference","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Food calorie values reference","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Tracking location history from last week","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Tracking location history from last week","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe WAL processing when stopped","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe WAL processing when stopped","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reviewing recent conversation highlights","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Reviewing recent conversation highlights","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Mac aliases not recognized","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Mac aliases not recognized","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Boosteroid still recording despite ignored windows setting","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Boosteroid still recording despite ignored windows setting","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Missing JavaScript promise in authorization response","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Missing JavaScript promise in authorization response","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Linux SQLite UI for NAS","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Linux SQLite UI for NAS","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Claude API 500 internal server error","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Claude API 500 internal server error","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe query capabilities and usage","depth":18,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe query capabilities and usage","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Relaunch to update v1.3883.0","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Relaunch to update","depth":16,"role_description":"text"},{"role":"AXStaticText","text":"v1.3883.0","depth":16,"role_description":"text"},{"role":"AXPopUpButton","text":"Lukas Kovalik","depth":16,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Lukas Kovalik","depth":17,"role_description":"text"},{"role":"AXButton","text":"Get apps and extensions","depth":15,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe sync database attachment error","depth":19,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Screenpipe sync database attachment error","depth":21,"role_description":"text"},{"role":"AXPopUpButton","text":"More options for Screenpipe sync database attachment error","depth":19,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share chat","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Claude finished the response","depth":21,"role_description":"text"},{"role":"AXHeading","text":"You said: why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.","depth":20,"role_description":"heading"},{"role":"AXStaticText","text":"You said: why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.","depth":21,"role_description":"text"},{"role":"AXButton","text":"Pasted Text, pasted, 352 lines","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"#!/bin/bash # screenpipe_sync.sh # Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions). # Also copies the day's video/frame data folder to the NAS. # # Usage: # ./screenpipe_sync.sh # syncs yesterday (default) # ./screenpipe_sync.sh 2026-04-15 # sync","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"PASTED","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-24\n[2026-04-25 18:50:07] ========================================\n[2026-04-25 18:50:07] Screenpipe sync starting for: 2026-04-24\n[2026-04-25 18:50:07] ========================================\n[+00m00s] ▶ Preflight checks\n Source DB: OK (8.0G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: exists (6.0G)\n Data dir: OK (250 files, 143M)\n[+00m00s] ▶ Counting source rows for 2026-04-24\n frames: 5183\n elements: 297071\n ui_events: 6116\n ocr_text: 1508\n meetings: 2\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ⠋ Runtime error near line 2: unable to open database: /Volumes/screenpipe/archive.db (23)\nParse error near line 3: unknown database nas\n CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames\n error here ---^\nParse error near line 4: unknown database nas\n CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements\n error here ---^\nParse error near line 5: unknown database nas\n CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events\n error here ---^\nParse error near line 6: unknown database nas\n CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text\n error here ---^\nParse error near line 7: unknown database nas\n CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks\n error here ---^\nParse error near line 8: unknown database nas\n CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings\n error here ---^\nRuntime error near line 9: no such database: nas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ when running","depth":24,"role_description":"text"},{"role":"AXButton","text":"Show more","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"18:56","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Claude responded: The error is unable to open database: /Volumes/screenpipe/archive.","depth":21,"role_description":"heading"},{"role":"AXStaticText","text":"Claude responded: The error is unable to open database: /Volumes/screenpipe/archive.","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"The error is","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"unable to open database: /Volumes/screenpipe/archive.db (23)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"— error code 23 in SQLite means","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"SQLITE_AUTH","depth":24,"role_description":"text"},{"role":"AXStaticText","text":", which on macOS means a","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"permissions/sandbox issue","depth":24,"role_description":"text"},{"role":"AXStaticText","text":". The NAS is mounted but SQLite can't open/create the file there.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"The root cause: SQLite's","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"ATTACH","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"with a path on a network volume (SMB) can fail when the terminal/process doesn't have full disk access, or the NAS mount has restrictions on file locking (SQLite requires advisory locks, which SMB on macOS sometimes blocks).","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"A few things to check and fix:","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"1. Verify the mount actually allows writes","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"touch","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/Volumes/screenpipe/test.txt","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"&&","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"echo","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"OK\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"&&","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"rm","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/Volumes/screenpipe/test.txt","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"If this fails, the mount itself is read-only or permission-restricted.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"2. Check if","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"archive.db","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"can be opened directly","depth":24,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 /Volumes/screenpipe/archive.db","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\".tables\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"If this fails with the same error 23, it's a filesystem-level lock issue.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"3. The real fix — use a local temp DB, then copy","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"SQLite over SMB is unreliable for ATTACH operations. The safest approach is to do all the work locally and then copy the result:","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"# At the top of your script, change NAS_DB to a local temp path","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"LOCAL_DB","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"/tmp/screenpipe_archive_staging.db\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"NAS_DB_FINAL","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"=","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$NAS_MOUNT","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"/archive.db\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# At the start: copy existing archive down from NAS","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"if","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"[","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"-f","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$NAS_DB_FINAL","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"]","depth":25,"role_description":"text"},{"role":"AXStaticText","text":";","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"then","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"cp","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$NAS_DB_FINAL","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$LOCAL_DB","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"else","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"touch","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$LOCAL_DB","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"fi","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# ... run all your sqlite3 operations against $LOCAL_DB ...","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"# At the end: copy back to NAS","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"cp","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$LOCAL_DB","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$NAS_DB_FINAL","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"rm","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"$LOCAL_DB","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"This avoids SMB locking entirely. The downside is you need ~6GB+ of local space temporarily, but it's much more reliable.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"4. Alternative — disable WAL mode on the NAS DB","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"If you want to keep operating directly on the NAS file, ensure WAL mode isn't enabled (WAL requires shared memory files which SMB blocks):","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":25,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 /Volumes/screenpipe/archive.db","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"\"PRAGMA journal_mode=DELETE;\"","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Then retry. But honestly the copy-locally approach from point 3 is the most robust long-term.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Quick diagnosis","depth":24,"role_description":"text"},{"role":"AXStaticText","text":": what does","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"sqlite3 /Volumes/screenpipe/archive.db \".tables\"","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"return?","depth":23,"role_description":"text"},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give positive feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give negative feedback","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"You said: lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.","depth":20,"role_description":"heading"},{"role":"AXStaticText","text":"You said: lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.","depth":21,"role_description":"text"},{"role":"AXStaticText","text":"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch /Volumes/screenpipe/test.txt && echo \"OK\" && rm /Volumes/screenpipe/test.txt\ntouch: /Volumes/screenpipe/test.txt: Operation not permitted\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 /Volumes/screenpipe/archive.db \".tables\"\nError: unable to open database \"/Volumes/screenpipe/archive.db\": authorization denied\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"18:58","depth":22,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Claude responded: The mount is read-only from Terminal's perspective — this is macOS Full Disk Access (FDA) issue.","depth":21,"role_description":"heading"},{"role":"AXStaticText","text":"Claude responded: The mount is read-only from Terminal's perspective — this is macOS Full Disk Access (FDA) issue.","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"The mount is read-only from Terminal's perspective — this is macOS","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Full Disk Access","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"(FDA) issue. Terminal doesn't have permission to write to network volumes.","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Fix: grant Full Disk Access to Terminal","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"System Settings → Privacy & Security → Full Disk Access","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Click","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"+","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"and add","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"/Applications/Utilities/Terminal.app","depth":25,"role_description":"text"}]...
|
-9212737481795351833
|
739671694756241330
|
click
|
accessibility
|
NULL
|
Skip to content
Skip to content
Click to collapse
Skip to content
Skip to content
Click to collapse
⌘B
Drag to resize
Collapse sidebar
Search
Chat
Cowork
Code
New chat ⌘N
New chat
⌘N
Projects
Artifacts
Customize
Pinned
Bulgarian citizenship application process for EU residents
More options for Bulgarian citizenship application process for EU residents
Dawarich location tracking project
More options for Dawarich location tracking project
Recents
View all
Screenpipe sync database attachment error
More options for Screenpipe sync database attachment error
💬 What is the best switch I can…
More options for 💬 What is the best switch I can…
Last swimming outing with Dani
More options for Last swimming outing with Dani
💬 Screen pipe. Is there ability…
More options for 💬 Screen pipe. Is there ability…
Definition of incarcerated
More options for Definition of incarcerated
Chromecast remote volume buttons not working
More options for Chromecast remote volume buttons not working
Salesforce API errors with Organization and FieldDefinition queries
More options for Salesforce API errors with Organization and FieldDefinition queries
Daily activity summary from screenpipe data
More options for Daily activity summary from screenpipe data
MacBook unexpected restarts and kanji screen
More options for MacBook unexpected restarts and kanji screen
Security patch review and testing guidance
More options for Security patch review and testing guidance
Food calorie values reference
More options for Food calorie values reference
Tracking location history from last week
More options for Tracking location history from last week
Screenpipe WAL processing when stopped
More options for Screenpipe WAL processing when stopped
Reviewing recent conversation highlights
More options for Reviewing recent conversation highlights
Mac aliases not recognized
More options for Mac aliases not recognized
Boosteroid still recording despite ignored windows setting
More options for Boosteroid still recording despite ignored windows setting
Missing JavaScript promise in authorization response
More options for Missing JavaScript promise in authorization response
Linux SQLite UI for NAS
More options for Linux SQLite UI for NAS
Claude API 500 internal server error
More options for Claude API 500 internal server error
Screenpipe query capabilities and usage
More options for Screenpipe query capabilities and usage
Relaunch to update v1.3883.0
Relaunch to update
v1.3883.0
Lukas Kovalik
Lukas Kovalik
Get apps and extensions
Screenpipe sync database attachment error
Screenpipe sync database attachment error
More options for Screenpipe sync database attachment error
Share chat
Claude finished the response
You said: why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
You said: why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
Pasted Text, pasted, 352 lines
#!/bin/bash # screenpipe_sync.sh # Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions). # Also copies the day's video/frame data folder to the NAS. # # Usage: # ./screenpipe_sync.sh # syncs yesterday (default) # ./screenpipe_sync.sh 2026-04-15 # sync
PASTED
why do I have error like this lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-24
[2026-04-25 18:50:07] ========================================
[2026-04-25 18:50:07] Screenpipe sync starting for: 2026-04-24
[2026-04-25 18:50:07] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (8.0G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (6.0G)
Data dir: OK (250 files, 143M)
[+00m00s] ▶ Counting source rows for 2026-04-24
frames: 5183
elements: 297071
ui_events: 6116
ocr_text: 1508
meetings: 2
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ⠋ Runtime error near line 2: unable to open database: /Volumes/screenpipe/archive.db (23)
Parse error near line 3: unknown database nas
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames
error here ---^
Parse error near line 4: unknown database nas
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements
error here ---^
Parse error near line 5: unknown database nas
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events
error here ---^
Parse error near line 6: unknown database nas
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text
error here ---^
Parse error near line 7: unknown database nas
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks
error here ---^
Parse error near line 8: unknown database nas
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings
error here ---^
Runtime error near line 9: no such database: nas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ when running
Show more
18:56
Retry
Edit
Copy
Claude responded: The error is unable to open database: /Volumes/screenpipe/archive.
Claude responded: The error is unable to open database: /Volumes/screenpipe/archive.
The error is
unable to open database: /Volumes/screenpipe/archive.db (23)
— error code 23 in SQLite means
SQLITE_AUTH
, which on macOS means a
permissions/sandbox issue
. The NAS is mounted but SQLite can't open/create the file there.
The root cause: SQLite's
ATTACH
with a path on a network volume (SMB) can fail when the terminal/process doesn't have full disk access, or the NAS mount has restrictions on file locking (SQLite requires advisory locks, which SMB on macOS sometimes blocks).
A few things to check and fix:
1. Verify the mount actually allows writes
Copy to clipboard
bash
touch
/Volumes/screenpipe/test.txt
&&
echo
"OK"
&&
rm
/Volumes/screenpipe/test.txt
If this fails, the mount itself is read-only or permission-restricted.
2. Check if
archive.db
can be opened directly
Copy to clipboard
bash
sqlite3 /Volumes/screenpipe/archive.db
".tables"
If this fails with the same error 23, it's a filesystem-level lock issue.
3. The real fix — use a local temp DB, then copy
SQLite over SMB is unreliable for ATTACH operations. The safest approach is to do all the work locally and then copy the result:
Copy to clipboard
bash
# At the top of your script, change NAS_DB to a local temp path
LOCAL_DB
=
"/tmp/screenpipe_archive_staging.db"
NAS_DB_FINAL
=
"
$NAS_MOUNT
/archive.db"
# At the start: copy existing archive down from NAS
if
[
-f
"
$NAS_DB_FINAL
"
]
;
then
cp
"
$NAS_DB_FINAL
"
"
$LOCAL_DB
"
else
touch
"
$LOCAL_DB
"
fi
# ... run all your sqlite3 operations against $LOCAL_DB ...
# At the end: copy back to NAS
cp
"
$LOCAL_DB
"
"
$NAS_DB_FINAL
"
rm
"
$LOCAL_DB
"
This avoids SMB locking entirely. The downside is you need ~6GB+ of local space temporarily, but it's much more reliable.
4. Alternative — disable WAL mode on the NAS DB
If you want to keep operating directly on the NAS file, ensure WAL mode isn't enabled (WAL requires shared memory files which SMB blocks):
Copy to clipboard
bash
sqlite3 /Volumes/screenpipe/archive.db
"PRAGMA journal_mode=DELETE;"
Then retry. But honestly the copy-locally approach from point 3 is the most robust long-term.
Quick diagnosis
: what does
sqlite3 /Volumes/screenpipe/archive.db ".tables"
return?
Copy
Give positive feedback
Give negative feedback
Retry
You said: lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
You said: lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch /Volumes/screenpipe/test.txt && echo "OK" && rm /Volumes/screenpipe/test.txt
touch: /Volumes/screenpipe/test.txt: Operation not permitted
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 /Volumes/screenpipe/archive.db ".tables"
Error: unable to open database "/Volumes/screenpipe/archive.db": authorization denied
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
18:58
Retry
Edit
Copy
Claude responded: The mount is read-only from Terminal's perspective — this is macOS Full Disk Access (FDA) issue.
Claude responded: The mount is read-only from Terminal's perspective — this is macOS Full Disk Access (FDA) issue.
The mount is read-only from Terminal's perspective — this is macOS
Full Disk Access
(FDA) issue. Terminal doesn't have permission to write to network volumes.
Fix: grant Full Disk Access to Terminal
System Settings → Privacy & Security → Full Disk Access
Click
+
and add
/Applications/Utilities/Terminal.app...
|
NULL
|
|
19380
|
NULL
|
0
|
2026-04-15T07:35:17.809264+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776238517809_m2.jpg...
|
Firefox
|
Platform Team - Backlog - Jira — Work
|
True
|
jiminny.atlassian.net/jira/software/c/projects/JY/ jiminny.atlassian.net/jira/software/c/projects/JY/boards/37/backlog?selectedIssue=JY-20372...
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Ask Google Gemini
Platform Team - Backlog - Jira
S Ask Google Gemini
Platform Team - Backlog - Jira
Service-Desk - Queues - Platform team - Service space - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Pipelines - jiminny/app
Feed — jiminny — Sentry
Inbox (1,550) - [EMAIL] - Jiminny Mail
For you - Confluence
For you - Confluence
Lukas Kovalik - Time Off
Lukas Kovalik - Time Off
Product Growth Platform | Userpilot
Product Growth Platform | Userpilot
Userpilot
Userpilot
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to:
Top Bar
Top Bar
Sidebar
Sidebar
Main Content
Main Content
Space navigation
Space navigation
Panel
Panel
Collapse sidebar [
Collapse sidebar [
Switch sites or apps
Switch sites or apps
Go to your Jira homepage
Search, press enter to navigate to advanced search with your text query
Create
Create
Rovo Ask Rovo
Ask Rovo
Notifications
Notifications
Help
Help
Settings
Settings
[EMAIL]
For you
For you
Recent
Recent
Starred
Starred
Apps
Apps
More actions for Apps
More actions for Apps
Spaces
Spaces
Create space
Create space
More actions for spaces
More actions for spaces
Recent
Service-Desk
Service-Desk
More actions for Service-Desk
More actions for Service-Desk
Jiminny (New)
Jiminny (New)
Jiminny (New)
Create board
Create board
More actions for Jiminny (New)
More actions for Jiminny (New)
Platform Team
Platform Team
Board actions
Board actions
SE Kanban
SE Kanban
Board actions
Board actions
Capture Team
Capture Team
Board actions
Board actions
Enterprise Stability Issues 🤕
Enterprise Stability Issues 🤕
Board actions
Board actions
Processing Team
Processing Team
Board actions
Board actions
More spaces
More spaces
Filters
Filters
More actions for Filters
More actions for Filters
Dashboards
Dashboards
Create dashboard
Create dashboard
More actions for Dashboards
More actions for Dashboards
Operations
Operations
More actions for Operations
More actions for Operations
Confluence , (opens new window)
Confluence
, (opens new window)
Teams , (opens new window)
Teams
, (opens new window)
open menu
open menu
Customise sidebar
Customise sidebar
Resize side navigation panel
Spaces
Spaces
/
Jiminny (New)
Jiminny (New)
Platform Team
Platform Team
Link contributing teams
Board actions
Board actions
Share
Automation
Give feedback
Give feedback
Enter full screen
Enter full screen
Summary
Summary
Timeline
Timeline
Backlog
Backlog
Active sprints
Active sprints
Calendar
Calendar
Reports
Reports
Testing Board
Testing Board
List
List
Forms
Forms
Components
Components
10 more tabs
More
9+
Add to navigation
Results will be filtered below as you type to search or apply filters.
Search on current page
Filter by assignee
Filter assignees by Lukas Kovalik
Filter assignees by Ahmet Katranci
Filter assignees by Aneliya Angelova
Filter assignees by Galya Dimitrova
Filter assignees by George Tulev
Filter assignees by James Graham
+8
+8
Version
Version
Epic
Epic
Type
Type
Label...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Ask Google Gemini","depth":4,"bounds":{"left":0.8925781,"top":0.69861114,"width":0.01328125,"height":0.023611112},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Platform Team - Backlog - Jira","depth":4,"bounds":{"left":0.00234375,"top":0.045138888,"width":0.017578125,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXRadioButton","text":"Service-Desk - Queues - Platform team - Service space - Jira","depth":4,"bounds":{"left":0.019921875,"top":0.045138888,"width":0.01796875,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app","depth":4,"bounds":{"left":0.037890624,"top":0.045138888,"width":0.01796875,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.055859376,"top":0.045138888,"width":0.017578125,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Feed — jiminny — Sentry","depth":4,"bounds":{"left":0.0734375,"top":0.045138888,"width":0.01796875,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Inbox (1,550) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.00234375,"top":0.07361111,"width":0.017578125,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"For you - Confluence","depth":4,"bounds":{"left":0.0,"top":0.11111111,"width":0.09375,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"For you - Confluence","depth":5,"bounds":{"left":0.015625,"top":0.12083333,"width":0.04296875,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Lukas Kovalik - Time Off","depth":4,"bounds":{"left":0.0,"top":0.13958333,"width":0.09375,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Lukas Kovalik - Time Off","depth":5,"bounds":{"left":0.015625,"top":0.14930555,"width":0.049609374,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Product Growth Platform | Userpilot","depth":4,"bounds":{"left":0.0,"top":0.16805555,"width":0.09375,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Product Growth Platform | Userpilot","depth":5,"bounds":{"left":0.015625,"top":0.17777778,"width":0.07304688,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Userpilot","depth":4,"bounds":{"left":0.0,"top":0.19652778,"width":0.09375,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Userpilot","depth":5,"bounds":{"left":0.015625,"top":0.20625,"width":0.01875,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.003125,"top":0.22638889,"width":0.08710937,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.003125,"top":0.97430557,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.01640625,"top":0.97430557,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.029296875,"top":0.97430557,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.0421875,"top":0.97430557,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.05546875,"top":0.97430557,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to:","depth":9,"bounds":{"left":0.10625,"top":0.068055555,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Top Bar","depth":10,"bounds":{"left":0.10625,"top":0.08472222,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Top Bar","depth":11,"bounds":{"left":0.10625,"top":0.08472222,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Sidebar","depth":10,"bounds":{"left":0.10625,"top":0.10138889,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sidebar","depth":11,"bounds":{"left":0.10625,"top":0.10138889,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Main Content","depth":10,"bounds":{"left":0.10625,"top":0.11805555,"width":0.034375,"height":0.0125},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Main Content","depth":11,"bounds":{"left":0.10625,"top":0.11805555,"width":0.034375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Space navigation","depth":10,"bounds":{"left":0.10625,"top":0.13472222,"width":0.04453125,"height":0.0125},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Space navigation","depth":11,"bounds":{"left":0.10625,"top":0.13472222,"width":0.04453125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Panel","depth":10,"bounds":{"left":0.10625,"top":0.15138888,"width":0.014453125,"height":0.0125},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Panel","depth":11,"bounds":{"left":0.10625,"top":0.15138888,"width":0.014453125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Collapse sidebar [","depth":9,"bounds":{"left":0.0984375,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Collapse sidebar [","depth":11,"bounds":{"left":0.1046875,"top":0.05486111,"width":0.046484374,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Switch sites or apps","depth":10,"bounds":{"left":0.1125,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Switch sites or apps","depth":12,"bounds":{"left":0.11875,"top":0.05486111,"width":0.051953126,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Go to your Jira homepage","depth":9,"bounds":{"left":0.128125,"top":0.050694443,"width":0.034765624,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXComboBox","text":"Search, press enter to navigate to advanced search with your text query","depth":10,"bounds":{"left":0.38828126,"top":0.05486111,"width":0.28515625,"height":0.013888889},"help_text":"","placeholder":"Search","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Create","depth":10,"bounds":{"left":0.6832031,"top":0.050694443,"width":0.035546876,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create","depth":12,"bounds":{"left":0.6964844,"top":0.055555556,"width":0.017578125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Rovo Ask Rovo","depth":12,"bounds":{"left":0.89570314,"top":0.050694443,"width":0.0421875,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Ask Rovo","depth":14,"bounds":{"left":0.90898436,"top":0.055555556,"width":0.02421875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Notifications","depth":12,"bounds":{"left":0.9394531,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Notifications","depth":14,"bounds":{"left":0.94570315,"top":0.05486111,"width":0.032421876,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Help","depth":12,"bounds":{"left":0.95351565,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Help","depth":14,"bounds":{"left":0.9597656,"top":0.05486111,"width":0.01171875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Settings","depth":12,"bounds":{"left":0.9675781,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Settings","depth":14,"bounds":{"left":0.97382814,"top":0.05486111,"width":0.020703126,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"lukas.kovalik@jiminny.com","depth":12,"bounds":{"left":0.9824219,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"For you","depth":12,"bounds":{"left":0.0984375,"top":0.08680555,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"For you","depth":15,"bounds":{"left":0.1109375,"top":0.09166667,"width":0.01953125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Recent","depth":12,"bounds":{"left":0.0984375,"top":0.10902778,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Recent","depth":15,"bounds":{"left":0.1109375,"top":0.11388889,"width":0.018359374,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Starred","depth":12,"bounds":{"left":0.0984375,"top":0.13125,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Starred","depth":15,"bounds":{"left":0.1109375,"top":0.13611111,"width":0.019140625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Apps","depth":12,"bounds":{"left":0.0984375,"top":0.15347221,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Apps","depth":15,"bounds":{"left":0.1109375,"top":0.15833333,"width":0.013671875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Apps","depth":13,"bounds":{"left":0.18007812,"top":0.15625,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Apps","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Spaces","depth":12,"bounds":{"left":0.0984375,"top":0.17569445,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"Spaces","depth":15,"bounds":{"left":0.1109375,"top":0.18055555,"width":0.01953125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create space","depth":13,"bounds":{"left":0.16054687,"top":0.17847222,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create space","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for spaces","depth":13,"bounds":{"left":0.17148438,"top":0.17847222,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for spaces","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Recent","depth":16,"bounds":{"left":0.10546875,"top":0.20416667,"width":0.016015625,"height":0.010416667},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Service-Desk","depth":17,"bounds":{"left":0.103125,"top":0.22013889,"width":0.07929687,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Service-Desk","depth":20,"bounds":{"left":0.115625,"top":0.225,"width":0.035546876,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Service-Desk","depth":18,"bounds":{"left":0.18164062,"top":0.22291666,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Service-Desk","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Jiminny (New)","depth":17,"bounds":{"left":0.103125,"top":0.24236111,"width":0.07929687,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny (New)","depth":20,"bounds":{"left":0.115625,"top":0.24722221,"width":0.0375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Jiminny (New)","depth":18,"bounds":{"left":0.1046875,"top":0.24513888,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXMenuButton","text":"Create board","depth":18,"bounds":{"left":0.16054687,"top":0.24513888,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Create board","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Jiminny (New)","depth":18,"bounds":{"left":0.17148438,"top":0.24513888,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Jiminny (New)","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Platform Team","depth":19,"bounds":{"left":0.1078125,"top":0.26458332,"width":0.07460938,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Team","depth":22,"bounds":{"left":0.1203125,"top":0.26944444,"width":0.037890624,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.18007812,"top":0.2673611,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SE Kanban","depth":19,"bounds":{"left":0.1078125,"top":0.28680557,"width":0.07460938,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SE Kanban","depth":22,"bounds":{"left":0.1203125,"top":0.29166666,"width":0.028125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.18007812,"top":0.28958333,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Capture Team","depth":19,"bounds":{"left":0.1078125,"top":0.3090278,"width":0.07460938,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Capture Team","depth":22,"bounds":{"left":0.1203125,"top":0.31388888,"width":0.03671875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.18007812,"top":0.31180555,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Enterprise Stability Issues 🤕","depth":19,"bounds":{"left":0.1078125,"top":0.33125,"width":0.07460938,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Enterprise Stability Issues 🤕","depth":22,"bounds":{"left":0.1203125,"top":0.3361111,"width":0.059375,"height":0.027083334},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.18007812,"top":0.33402777,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Processing Team","depth":19,"bounds":{"left":0.1078125,"top":0.35347223,"width":0.07460938,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Processing Team","depth":22,"bounds":{"left":0.1203125,"top":0.35833332,"width":0.044921875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.18007812,"top":0.35625,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More spaces","depth":17,"bounds":{"left":0.103125,"top":0.37569445,"width":0.07929687,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More spaces","depth":20,"bounds":{"left":0.115625,"top":0.38055557,"width":0.03359375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Filters","depth":12,"bounds":{"left":0.0984375,"top":0.39791667,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Filters","depth":15,"bounds":{"left":0.1109375,"top":0.4027778,"width":0.016015625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Filters","depth":13,"bounds":{"left":0.18007812,"top":0.40069443,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Filters","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dashboards","depth":12,"bounds":{"left":0.0984375,"top":0.4201389,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Dashboards","depth":15,"bounds":{"left":0.1109375,"top":0.425,"width":0.031640626,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create dashboard","depth":13,"bounds":{"left":0.18242188,"top":0.42291668,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create dashboard","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Dashboards","depth":13,"bounds":{"left":0.19101563,"top":0.42291668,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Dashboards","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Operations","depth":12,"bounds":{"left":0.0984375,"top":0.44236112,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Operations","depth":15,"bounds":{"left":0.1109375,"top":0.44722223,"width":0.02890625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Operations","depth":13,"bounds":{"left":0.18007812,"top":0.4451389,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Operations","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Confluence , (opens new window)","depth":13,"bounds":{"left":0.0984375,"top":0.47291666,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Confluence","depth":17,"bounds":{"left":0.1109375,"top":0.47777778,"width":0.030078124,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", (opens new window)","depth":15,"bounds":{"left":0.0984375,"top":0.48472223,"width":0.05703125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Teams , (opens new window)","depth":13,"bounds":{"left":0.0984375,"top":0.49513888,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Teams","depth":17,"bounds":{"left":0.1109375,"top":0.5,"width":0.0171875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", (opens new window)","depth":15,"bounds":{"left":0.0984375,"top":0.5069444,"width":0.05703125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"open menu","depth":14,"bounds":{"left":0.16914062,"top":0.49791667,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"open menu","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Customise sidebar","depth":12,"bounds":{"left":0.0984375,"top":0.52569443,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Customise sidebar","depth":15,"bounds":{"left":0.1109375,"top":0.53055555,"width":0.048828125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Resize side navigation panel","depth":13,"bounds":{"left":0.24804688,"top":0.08541667,"width":0.07304688,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Spaces","depth":13,"bounds":{"left":0.196875,"top":0.08680555,"width":0.019140625,"height":0.016666668},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Spaces","depth":15,"bounds":{"left":0.196875,"top":0.08888889,"width":0.019140625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":13,"bounds":{"left":0.21992187,"top":0.08888889,"width":0.001953125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Jiminny (New)","depth":13,"bounds":{"left":0.22539063,"top":0.08680555,"width":0.037109375,"height":0.016666668},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny (New)","depth":15,"bounds":{"left":0.22539063,"top":0.08888889,"width":0.037109375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Platform Team","depth":10,"bounds":{"left":0.196875,"top":0.10625,"width":0.05390625,"height":0.016666668},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Platform Team","depth":11,"bounds":{"left":0.196875,"top":0.10625,"width":0.05390625,"height":0.017361112},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Link contributing teams","depth":10,"bounds":{"left":0.253125,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Board actions","depth":10,"bounds":{"left":0.26796874,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Share","depth":10,"bounds":{"left":0.621875,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Automation","depth":10,"bounds":{"left":0.6375,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give feedback","depth":10,"bounds":{"left":0.653125,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Give feedback","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Enter full screen","depth":10,"bounds":{"left":0.66875,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Enter full screen","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Summary","depth":13,"bounds":{"left":0.19375,"top":0.12847222,"width":0.0421875,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Summary","depth":15,"bounds":{"left":0.20703125,"top":0.13333334,"width":0.025,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Timeline","depth":13,"bounds":{"left":0.2375,"top":0.12847222,"width":0.039453126,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Timeline","depth":15,"bounds":{"left":0.25078124,"top":0.13333334,"width":0.022265624,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Backlog","depth":13,"bounds":{"left":0.27851564,"top":0.12847222,"width":0.03828125,"height":0.022222223},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Backlog","depth":15,"bounds":{"left":0.29179686,"top":0.13333334,"width":0.02109375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Active sprints","depth":13,"bounds":{"left":0.31835938,"top":0.12847222,"width":0.052734375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Active sprints","depth":15,"bounds":{"left":0.33164063,"top":0.13333334,"width":0.035546876,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Calendar","depth":13,"bounds":{"left":0.37265626,"top":0.12847222,"width":0.041015625,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Calendar","depth":15,"bounds":{"left":0.3859375,"top":0.13333334,"width":0.023828125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Reports","depth":13,"bounds":{"left":0.4152344,"top":0.12847222,"width":0.0375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Reports","depth":15,"bounds":{"left":0.4285156,"top":0.13333334,"width":0.0203125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Testing Board","depth":13,"bounds":{"left":0.4542969,"top":0.12847222,"width":0.0546875,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Testing Board","depth":15,"bounds":{"left":0.4675781,"top":0.13333334,"width":0.0359375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"List","depth":13,"bounds":{"left":0.51054686,"top":0.12847222,"width":0.0265625,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"List","depth":15,"bounds":{"left":0.52382815,"top":0.13333334,"width":0.009375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Forms","depth":13,"bounds":{"left":0.53867185,"top":0.12847222,"width":0.03359375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Forms","depth":15,"bounds":{"left":0.55195314,"top":0.13333334,"width":0.01640625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Components","depth":13,"bounds":{"left":0.5738281,"top":0.12847222,"width":0.050390624,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Components","depth":15,"bounds":{"left":0.5871094,"top":0.13333334,"width":0.033203125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"10 more tabs","depth":11,"bounds":{"left":0.62578124,"top":0.12847222,"width":0.030859375,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":12,"bounds":{"left":0.6296875,"top":0.13333334,"width":0.013671875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"9+","depth":13,"bounds":{"left":0.6464844,"top":0.13472222,"width":0.00625,"height":0.010416667},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add to navigation","depth":11,"bounds":{"left":0.6582031,"top":0.13125,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Results will be filtered below as you type to search or apply filters.","depth":13,"bounds":{"left":0.196875,"top":0.17638889,"width":0.17109375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Search on current page","depth":13,"bounds":{"left":0.20664063,"top":0.16388889,"width":0.059375,"height":0.023611112},"placeholder":"Search backlog","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Filter by assignee","depth":14,"bounds":{"left":0.271875,"top":0.16527778,"width":0.0453125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Filter assignees by Lukas Kovalik","depth":13,"bounds":{"left":0.2734375,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Filter assignees by Ahmet Katranci","depth":14,"bounds":{"left":0.2828125,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Filter assignees by Aneliya Angelova","depth":13,"bounds":{"left":0.2921875,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Filter assignees by Galya Dimitrova","depth":13,"bounds":{"left":0.3015625,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Filter assignees by George Tulev","depth":13,"bounds":{"left":0.3109375,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Filter assignees by James Graham","depth":13,"bounds":{"left":0.3203125,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"+8","depth":13,"bounds":{"left":0.328125,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"+8","depth":15,"bounds":{"left":0.33125,"top":0.17083333,"width":0.00625,"height":0.010416667},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Version","depth":15,"bounds":{"left":0.34375,"top":0.16458334,"width":0.036328126,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Version","depth":18,"bounds":{"left":0.3484375,"top":0.16944444,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Epic","depth":15,"bounds":{"left":0.38320312,"top":0.16458334,"width":0.02734375,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Epic","depth":18,"bounds":{"left":0.38789064,"top":0.16944444,"width":0.0109375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Type","depth":15,"bounds":{"left":0.41367188,"top":0.16458334,"width":0.0296875,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Type","depth":18,"bounds":{"left":0.41835937,"top":0.16944444,"width":0.01328125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Label","depth":15,"bounds":{"left":0.4464844,"top":0.16458334,"width":0.03046875,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-9212333812869177610
|
1337867248987919535
|
idle
|
accessibility
|
NULL
|
Ask Google Gemini
Platform Team - Backlog - Jira
S Ask Google Gemini
Platform Team - Backlog - Jira
Service-Desk - Queues - Platform team - Service space - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Pipelines - jiminny/app
Feed — jiminny — Sentry
Inbox (1,550) - [EMAIL] - Jiminny Mail
For you - Confluence
For you - Confluence
Lukas Kovalik - Time Off
Lukas Kovalik - Time Off
Product Growth Platform | Userpilot
Product Growth Platform | Userpilot
Userpilot
Userpilot
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to:
Top Bar
Top Bar
Sidebar
Sidebar
Main Content
Main Content
Space navigation
Space navigation
Panel
Panel
Collapse sidebar [
Collapse sidebar [
Switch sites or apps
Switch sites or apps
Go to your Jira homepage
Search, press enter to navigate to advanced search with your text query
Create
Create
Rovo Ask Rovo
Ask Rovo
Notifications
Notifications
Help
Help
Settings
Settings
[EMAIL]
For you
For you
Recent
Recent
Starred
Starred
Apps
Apps
More actions for Apps
More actions for Apps
Spaces
Spaces
Create space
Create space
More actions for spaces
More actions for spaces
Recent
Service-Desk
Service-Desk
More actions for Service-Desk
More actions for Service-Desk
Jiminny (New)
Jiminny (New)
Jiminny (New)
Create board
Create board
More actions for Jiminny (New)
More actions for Jiminny (New)
Platform Team
Platform Team
Board actions
Board actions
SE Kanban
SE Kanban
Board actions
Board actions
Capture Team
Capture Team
Board actions
Board actions
Enterprise Stability Issues 🤕
Enterprise Stability Issues 🤕
Board actions
Board actions
Processing Team
Processing Team
Board actions
Board actions
More spaces
More spaces
Filters
Filters
More actions for Filters
More actions for Filters
Dashboards
Dashboards
Create dashboard
Create dashboard
More actions for Dashboards
More actions for Dashboards
Operations
Operations
More actions for Operations
More actions for Operations
Confluence , (opens new window)
Confluence
, (opens new window)
Teams , (opens new window)
Teams
, (opens new window)
open menu
open menu
Customise sidebar
Customise sidebar
Resize side navigation panel
Spaces
Spaces
/
Jiminny (New)
Jiminny (New)
Platform Team
Platform Team
Link contributing teams
Board actions
Board actions
Share
Automation
Give feedback
Give feedback
Enter full screen
Enter full screen
Summary
Summary
Timeline
Timeline
Backlog
Backlog
Active sprints
Active sprints
Calendar
Calendar
Reports
Reports
Testing Board
Testing Board
List
List
Forms
Forms
Components
Components
10 more tabs
More
9+
Add to navigation
Results will be filtered below as you type to search or apply filters.
Search on current page
Filter by assignee
Filter assignees by Lukas Kovalik
Filter assignees by Ahmet Katranci
Filter assignees by Aneliya Angelova
Filter assignees by Galya Dimitrova
Filter assignees by George Tulev
Filter assignees by James Graham
+8
+8
Version
Version
Epic
Epic
Type
Type
Label...
|
NULL
|
|
19404
|
414
|
5
|
2026-04-15T07:37:56.101726+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776238676101_m2.jpg...
|
Firefox
|
Platform Team - Backlog - Jira — Work
|
True
|
jiminny.atlassian.net/jira/software/c/projects/JY/ jiminny.atlassian.net/jira/software/c/projects/JY/boards/37/backlog?selectedIssue=JY-20372...
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Ask Google Gemini
Platform Team - Backlog - Jira
S Ask Google Gemini
Platform Team - Backlog - Jira
Service-Desk - Queues - Platform team - Service space - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Pipelines - jiminny/app
Feed — jiminny — Sentry
Inbox (1,550) - [EMAIL] - Jiminny Mail
For you - Confluence
For you - Confluence
Lukas Kovalik - Time Off
Lukas Kovalik - Time Off
Product Growth Platform | Userpilot
Product Growth Platform | Userpilot
Userpilot
Userpilot
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to:
Top Bar
Top Bar
Sidebar
Sidebar
Main Content
Main Content
Space navigation
Space navigation
Panel
Panel
Collapse sidebar [
Collapse sidebar [
Switch sites or apps
Switch sites or apps
Go to your Jira homepage
Search, press enter to navigate to advanced search with your text query
Create
Create
Rovo Ask Rovo
Ask Rovo
Notifications
Notifications
Help
Help
Settings
Settings
[EMAIL]
For you
For you
Recent
Recent
Starred
Starred
Apps
Apps
More actions for Apps
More actions for Apps
Spaces
Spaces
Create space
Create space
More actions for spaces
More actions for spaces
Recent
Service-Desk
Service-Desk
More actions for Service-Desk
More actions for Service-Desk
Jiminny (New)
Jiminny (New)
Jiminny (New)
Create board
Create board
More actions for Jiminny (New)
More actions for Jiminny (New)
Platform Team
Platform Team
Board actions
Board actions
SE Kanban
SE Kanban
Board actions
Board actions
Capture Team
Capture Team
Board actions
Board actions
Enterprise Stability Issues 🤕
Enterprise Stability Issues 🤕
Board actions
Board actions
Processing Team
Processing Team
Board actions
Board actions
More spaces
More spaces
Filters
Filters
More actions for Filters
More actions for Filters
Dashboards
Dashboards
Create dashboard
Create dashboard
More actions for Dashboards
More actions for Dashboards
Operations
Operations
More actions for Operations
More actions for Operations
Confluence , (opens new window)
Confluence
, (opens new window)
Teams , (opens new window)
Teams
, (opens new window)
open menu
open menu
Customise sidebar
Customise sidebar
Resize side navigation panel
Spaces
Spaces
/
Jiminny (New)
Jiminny (New)
Platform Team
Platform Team
Link contributing teams
Board actions
Board actions
Share
Automation
Give feedback
Give feedback
Enter full screen
Enter full screen
Summary
Summary
Timeline
Timeline
Backlog
Backlog
Active sprints
Active sprints
Calendar
Calendar
Reports
Reports
Testing Board
Testing Board
List
List
Forms
Forms
Components
Components
10 more tabs
More
9+
Add to navigation
Results will be filtered below as you type to search or apply filters.
Search on current page
Filter by assignee
Filter assignees by Lukas Kovalik
Filter assignees by Ahmet Katranci
Filter assignees by Aneliya Angelova
Filter assignees by Galya Dimitrova
Filter assignees by George Tulev
Filter assignees by James Graham
+8
+8
Version
Version
Epic
Epic
Type
Type
Label...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Ask Google Gemini","depth":4,"bounds":{"left":0.8925781,"top":0.69861114,"width":0.01328125,"height":0.023611112},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Platform Team - Backlog - Jira","depth":4,"bounds":{"left":0.00234375,"top":0.045138888,"width":0.017578125,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXRadioButton","text":"Service-Desk - Queues - Platform team - Service space - Jira","depth":4,"bounds":{"left":0.019921875,"top":0.045138888,"width":0.01796875,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app","depth":4,"bounds":{"left":0.037890624,"top":0.045138888,"width":0.01796875,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.055859376,"top":0.045138888,"width":0.017578125,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Feed — jiminny — Sentry","depth":4,"bounds":{"left":0.0734375,"top":0.045138888,"width":0.01796875,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Inbox (1,550) - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.00234375,"top":0.07361111,"width":0.017578125,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"For you - Confluence","depth":4,"bounds":{"left":0.0,"top":0.11111111,"width":0.09375,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"For you - Confluence","depth":5,"bounds":{"left":0.015625,"top":0.12083333,"width":0.04296875,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Lukas Kovalik - Time Off","depth":4,"bounds":{"left":0.0,"top":0.13958333,"width":0.09375,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Lukas Kovalik - Time Off","depth":5,"bounds":{"left":0.015625,"top":0.14930555,"width":0.049609374,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Product Growth Platform | Userpilot","depth":4,"bounds":{"left":0.0,"top":0.16805555,"width":0.09375,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Product Growth Platform | Userpilot","depth":5,"bounds":{"left":0.015625,"top":0.17777778,"width":0.07304688,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Userpilot","depth":4,"bounds":{"left":0.0,"top":0.19652778,"width":0.09375,"height":0.028472222},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Userpilot","depth":5,"bounds":{"left":0.015625,"top":0.20625,"width":0.01875,"height":0.009722223},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.003125,"top":0.22638889,"width":0.08710937,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.003125,"top":0.97430557,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.01640625,"top":0.97430557,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.029296875,"top":0.97430557,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.0421875,"top":0.97430557,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.05546875,"top":0.97430557,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to:","depth":9,"bounds":{"left":0.10625,"top":0.068055555,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Top Bar","depth":10,"bounds":{"left":0.10625,"top":0.08472222,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Top Bar","depth":11,"bounds":{"left":0.10625,"top":0.08472222,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Sidebar","depth":10,"bounds":{"left":0.10625,"top":0.10138889,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sidebar","depth":11,"bounds":{"left":0.10625,"top":0.10138889,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Main Content","depth":10,"bounds":{"left":0.10625,"top":0.11805555,"width":0.034375,"height":0.0125},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Main Content","depth":11,"bounds":{"left":0.10625,"top":0.11805555,"width":0.034375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Space navigation","depth":10,"bounds":{"left":0.10625,"top":0.13472222,"width":0.04453125,"height":0.0125},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Space navigation","depth":11,"bounds":{"left":0.10625,"top":0.13472222,"width":0.04453125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Panel","depth":10,"bounds":{"left":0.10625,"top":0.15138888,"width":0.014453125,"height":0.0125},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Panel","depth":11,"bounds":{"left":0.10625,"top":0.15138888,"width":0.014453125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Collapse sidebar [","depth":9,"bounds":{"left":0.0984375,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Collapse sidebar [","depth":11,"bounds":{"left":0.1046875,"top":0.05486111,"width":0.046484374,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Switch sites or apps","depth":10,"bounds":{"left":0.1125,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Switch sites or apps","depth":12,"bounds":{"left":0.11875,"top":0.05486111,"width":0.051953126,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Go to your Jira homepage","depth":9,"bounds":{"left":0.128125,"top":0.050694443,"width":0.034765624,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXComboBox","text":"Search, press enter to navigate to advanced search with your text query","depth":10,"bounds":{"left":0.38828126,"top":0.05486111,"width":0.28515625,"height":0.013888889},"help_text":"","placeholder":"Search","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Create","depth":10,"bounds":{"left":0.6832031,"top":0.050694443,"width":0.035546876,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create","depth":12,"bounds":{"left":0.6964844,"top":0.055555556,"width":0.017578125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Rovo Ask Rovo","depth":12,"bounds":{"left":0.89570314,"top":0.050694443,"width":0.0421875,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Ask Rovo","depth":14,"bounds":{"left":0.90898436,"top":0.055555556,"width":0.02421875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Notifications","depth":12,"bounds":{"left":0.9394531,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Notifications","depth":14,"bounds":{"left":0.94570315,"top":0.05486111,"width":0.032421876,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Help","depth":12,"bounds":{"left":0.95351565,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Help","depth":14,"bounds":{"left":0.9597656,"top":0.05486111,"width":0.01171875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Settings","depth":12,"bounds":{"left":0.9675781,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Settings","depth":14,"bounds":{"left":0.97382814,"top":0.05486111,"width":0.020703126,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"lukas.kovalik@jiminny.com","depth":12,"bounds":{"left":0.9824219,"top":0.050694443,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"For you","depth":12,"bounds":{"left":0.0984375,"top":0.08680555,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"For you","depth":15,"bounds":{"left":0.1109375,"top":0.09166667,"width":0.01953125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Recent","depth":12,"bounds":{"left":0.0984375,"top":0.10902778,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Recent","depth":15,"bounds":{"left":0.1109375,"top":0.11388889,"width":0.018359374,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Starred","depth":12,"bounds":{"left":0.0984375,"top":0.13125,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Starred","depth":15,"bounds":{"left":0.1109375,"top":0.13611111,"width":0.019140625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Apps","depth":12,"bounds":{"left":0.0984375,"top":0.15347221,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Apps","depth":15,"bounds":{"left":0.1109375,"top":0.15833333,"width":0.013671875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Apps","depth":13,"bounds":{"left":0.18007812,"top":0.15625,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Apps","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Spaces","depth":12,"bounds":{"left":0.0984375,"top":0.17569445,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"Spaces","depth":15,"bounds":{"left":0.1109375,"top":0.18055555,"width":0.01953125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create space","depth":13,"bounds":{"left":0.16054687,"top":0.17847222,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create space","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for spaces","depth":13,"bounds":{"left":0.17148438,"top":0.17847222,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for spaces","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Recent","depth":16,"bounds":{"left":0.10546875,"top":0.20416667,"width":0.016015625,"height":0.010416667},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Service-Desk","depth":17,"bounds":{"left":0.103125,"top":0.22013889,"width":0.07929687,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Service-Desk","depth":20,"bounds":{"left":0.115625,"top":0.225,"width":0.035546876,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Service-Desk","depth":18,"bounds":{"left":0.18164062,"top":0.22291666,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Service-Desk","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Jiminny (New)","depth":17,"bounds":{"left":0.103125,"top":0.24236111,"width":0.07929687,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny (New)","depth":20,"bounds":{"left":0.115625,"top":0.24722221,"width":0.0375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Jiminny (New)","depth":18,"bounds":{"left":0.1046875,"top":0.24513888,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXMenuButton","text":"Create board","depth":18,"bounds":{"left":0.16054687,"top":0.24513888,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Create board","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Jiminny (New)","depth":18,"bounds":{"left":0.17148438,"top":0.24513888,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Jiminny (New)","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Platform Team","depth":19,"bounds":{"left":0.1078125,"top":0.26458332,"width":0.07460938,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Team","depth":22,"bounds":{"left":0.1203125,"top":0.26944444,"width":0.037890624,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.18007812,"top":0.2673611,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SE Kanban","depth":19,"bounds":{"left":0.1078125,"top":0.28680557,"width":0.07460938,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SE Kanban","depth":22,"bounds":{"left":0.1203125,"top":0.29166666,"width":0.028125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.18007812,"top":0.28958333,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Capture Team","depth":19,"bounds":{"left":0.1078125,"top":0.3090278,"width":0.07460938,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Capture Team","depth":22,"bounds":{"left":0.1203125,"top":0.31388888,"width":0.03671875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.18007812,"top":0.31180555,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Enterprise Stability Issues 🤕","depth":19,"bounds":{"left":0.1078125,"top":0.33125,"width":0.07460938,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Enterprise Stability Issues 🤕","depth":22,"bounds":{"left":0.1203125,"top":0.3361111,"width":0.059375,"height":0.027083334},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.18007812,"top":0.33402777,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Processing Team","depth":19,"bounds":{"left":0.1078125,"top":0.35347223,"width":0.07460938,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Processing Team","depth":22,"bounds":{"left":0.1203125,"top":0.35833332,"width":0.044921875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.18007812,"top":0.35625,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More spaces","depth":17,"bounds":{"left":0.103125,"top":0.37569445,"width":0.07929687,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More spaces","depth":20,"bounds":{"left":0.115625,"top":0.38055557,"width":0.03359375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Filters","depth":12,"bounds":{"left":0.0984375,"top":0.39791667,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Filters","depth":15,"bounds":{"left":0.1109375,"top":0.4027778,"width":0.016015625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Filters","depth":13,"bounds":{"left":0.18007812,"top":0.40069443,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Filters","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dashboards","depth":12,"bounds":{"left":0.0984375,"top":0.4201389,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Dashboards","depth":15,"bounds":{"left":0.1109375,"top":0.425,"width":0.031640626,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create dashboard","depth":13,"bounds":{"left":0.18242188,"top":0.42291668,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create dashboard","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Dashboards","depth":13,"bounds":{"left":0.19101563,"top":0.42291668,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Dashboards","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Operations","depth":12,"bounds":{"left":0.0984375,"top":0.44236112,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Operations","depth":15,"bounds":{"left":0.1109375,"top":0.44722223,"width":0.02890625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Operations","depth":13,"bounds":{"left":0.18007812,"top":0.4451389,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Operations","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Confluence , (opens new window)","depth":13,"bounds":{"left":0.0984375,"top":0.47291666,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Confluence","depth":17,"bounds":{"left":0.1109375,"top":0.47777778,"width":0.030078124,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", (opens new window)","depth":15,"bounds":{"left":0.0984375,"top":0.48472223,"width":0.05703125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Teams , (opens new window)","depth":13,"bounds":{"left":0.0984375,"top":0.49513888,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Teams","depth":17,"bounds":{"left":0.1109375,"top":0.5,"width":0.0171875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", (opens new window)","depth":15,"bounds":{"left":0.0984375,"top":0.5069444,"width":0.05703125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"open menu","depth":14,"bounds":{"left":0.16914062,"top":0.49791667,"width":0.0046875,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"open menu","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Customise sidebar","depth":12,"bounds":{"left":0.0984375,"top":0.52569443,"width":0.083984375,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Customise sidebar","depth":15,"bounds":{"left":0.1109375,"top":0.53055555,"width":0.048828125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Resize side navigation panel","depth":13,"bounds":{"left":0.24804688,"top":0.08541667,"width":0.07304688,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Spaces","depth":13,"bounds":{"left":0.196875,"top":0.08680555,"width":0.019140625,"height":0.016666668},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Spaces","depth":15,"bounds":{"left":0.196875,"top":0.08888889,"width":0.019140625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":13,"bounds":{"left":0.21992187,"top":0.08888889,"width":0.001953125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Jiminny (New)","depth":13,"bounds":{"left":0.22539063,"top":0.08680555,"width":0.037109375,"height":0.016666668},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny (New)","depth":15,"bounds":{"left":0.22539063,"top":0.08888889,"width":0.037109375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Platform Team","depth":10,"bounds":{"left":0.196875,"top":0.10625,"width":0.05390625,"height":0.016666668},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Platform Team","depth":11,"bounds":{"left":0.196875,"top":0.10625,"width":0.05390625,"height":0.017361112},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Link contributing teams","depth":10,"bounds":{"left":0.253125,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Board actions","depth":10,"bounds":{"left":0.26796874,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Share","depth":10,"bounds":{"left":0.621875,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Automation","depth":10,"bounds":{"left":0.6375,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give feedback","depth":10,"bounds":{"left":0.653125,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Give feedback","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Enter full screen","depth":10,"bounds":{"left":0.66875,"top":0.103472225,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Enter full screen","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Summary","depth":13,"bounds":{"left":0.19375,"top":0.12847222,"width":0.0421875,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Summary","depth":15,"bounds":{"left":0.20703125,"top":0.13333334,"width":0.025,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Timeline","depth":13,"bounds":{"left":0.2375,"top":0.12847222,"width":0.039453126,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Timeline","depth":15,"bounds":{"left":0.25078124,"top":0.13333334,"width":0.022265624,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Backlog","depth":13,"bounds":{"left":0.27851564,"top":0.12847222,"width":0.03828125,"height":0.022222223},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Backlog","depth":15,"bounds":{"left":0.29179686,"top":0.13333334,"width":0.02109375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Active sprints","depth":13,"bounds":{"left":0.31835938,"top":0.12847222,"width":0.052734375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Active sprints","depth":15,"bounds":{"left":0.33164063,"top":0.13333334,"width":0.035546876,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Calendar","depth":13,"bounds":{"left":0.37265626,"top":0.12847222,"width":0.041015625,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Calendar","depth":15,"bounds":{"left":0.3859375,"top":0.13333334,"width":0.023828125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Reports","depth":13,"bounds":{"left":0.4152344,"top":0.12847222,"width":0.0375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Reports","depth":15,"bounds":{"left":0.4285156,"top":0.13333334,"width":0.0203125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Testing Board","depth":13,"bounds":{"left":0.4542969,"top":0.12847222,"width":0.0546875,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Testing Board","depth":15,"bounds":{"left":0.4675781,"top":0.13333334,"width":0.0359375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"List","depth":13,"bounds":{"left":0.51054686,"top":0.12847222,"width":0.0265625,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"List","depth":15,"bounds":{"left":0.52382815,"top":0.13333334,"width":0.009375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Forms","depth":13,"bounds":{"left":0.53867185,"top":0.12847222,"width":0.03359375,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Forms","depth":15,"bounds":{"left":0.55195314,"top":0.13333334,"width":0.01640625,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Components","depth":13,"bounds":{"left":0.5738281,"top":0.12847222,"width":0.050390624,"height":0.022222223},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Components","depth":15,"bounds":{"left":0.5871094,"top":0.13333334,"width":0.033203125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"10 more tabs","depth":11,"bounds":{"left":0.62578124,"top":0.12847222,"width":0.030859375,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":12,"bounds":{"left":0.6296875,"top":0.13333334,"width":0.013671875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"9+","depth":13,"bounds":{"left":0.6464844,"top":0.13472222,"width":0.00625,"height":0.010416667},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add to navigation","depth":11,"bounds":{"left":0.6582031,"top":0.13125,"width":0.009375,"height":0.016666668},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Results will be filtered below as you type to search or apply filters.","depth":13,"bounds":{"left":0.196875,"top":0.17638889,"width":0.17109375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Search on current page","depth":13,"bounds":{"left":0.20664063,"top":0.16388889,"width":0.059375,"height":0.023611112},"placeholder":"Search backlog","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Filter by assignee","depth":14,"bounds":{"left":0.271875,"top":0.16527778,"width":0.0453125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Filter assignees by Lukas Kovalik","depth":13,"bounds":{"left":0.2734375,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Filter assignees by Ahmet Katranci","depth":14,"bounds":{"left":0.2828125,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Filter assignees by Aneliya Angelova","depth":13,"bounds":{"left":0.2921875,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Filter assignees by Galya Dimitrova","depth":13,"bounds":{"left":0.3015625,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Filter assignees by George Tulev","depth":13,"bounds":{"left":0.3109375,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Filter assignees by James Graham","depth":13,"bounds":{"left":0.3203125,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"+8","depth":13,"bounds":{"left":0.328125,"top":0.16458334,"width":0.0125,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"+8","depth":15,"bounds":{"left":0.33125,"top":0.17083333,"width":0.00625,"height":0.010416667},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Version","depth":15,"bounds":{"left":0.34375,"top":0.16458334,"width":0.036328126,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Version","depth":18,"bounds":{"left":0.3484375,"top":0.16944444,"width":0.019921875,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Epic","depth":15,"bounds":{"left":0.38320312,"top":0.16458334,"width":0.02734375,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Epic","depth":18,"bounds":{"left":0.38789064,"top":0.16944444,"width":0.0109375,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Type","depth":15,"bounds":{"left":0.41367188,"top":0.16458334,"width":0.0296875,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Type","depth":18,"bounds":{"left":0.41835937,"top":0.16944444,"width":0.01328125,"height":0.0125},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Label","depth":15,"bounds":{"left":0.4464844,"top":0.16458334,"width":0.03046875,"height":0.022222223},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-9212333812869177610
|
1337867248987919535
|
idle
|
accessibility
|
NULL
|
Ask Google Gemini
Platform Team - Backlog - Jira
S Ask Google Gemini
Platform Team - Backlog - Jira
Service-Desk - Queues - Platform team - Service space - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Pipelines - jiminny/app
Feed — jiminny — Sentry
Inbox (1,550) - [EMAIL] - Jiminny Mail
For you - Confluence
For you - Confluence
Lukas Kovalik - Time Off
Lukas Kovalik - Time Off
Product Growth Platform | Userpilot
Product Growth Platform | Userpilot
Userpilot
Userpilot
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to:
Top Bar
Top Bar
Sidebar
Sidebar
Main Content
Main Content
Space navigation
Space navigation
Panel
Panel
Collapse sidebar [
Collapse sidebar [
Switch sites or apps
Switch sites or apps
Go to your Jira homepage
Search, press enter to navigate to advanced search with your text query
Create
Create
Rovo Ask Rovo
Ask Rovo
Notifications
Notifications
Help
Help
Settings
Settings
[EMAIL]
For you
For you
Recent
Recent
Starred
Starred
Apps
Apps
More actions for Apps
More actions for Apps
Spaces
Spaces
Create space
Create space
More actions for spaces
More actions for spaces
Recent
Service-Desk
Service-Desk
More actions for Service-Desk
More actions for Service-Desk
Jiminny (New)
Jiminny (New)
Jiminny (New)
Create board
Create board
More actions for Jiminny (New)
More actions for Jiminny (New)
Platform Team
Platform Team
Board actions
Board actions
SE Kanban
SE Kanban
Board actions
Board actions
Capture Team
Capture Team
Board actions
Board actions
Enterprise Stability Issues 🤕
Enterprise Stability Issues 🤕
Board actions
Board actions
Processing Team
Processing Team
Board actions
Board actions
More spaces
More spaces
Filters
Filters
More actions for Filters
More actions for Filters
Dashboards
Dashboards
Create dashboard
Create dashboard
More actions for Dashboards
More actions for Dashboards
Operations
Operations
More actions for Operations
More actions for Operations
Confluence , (opens new window)
Confluence
, (opens new window)
Teams , (opens new window)
Teams
, (opens new window)
open menu
open menu
Customise sidebar
Customise sidebar
Resize side navigation panel
Spaces
Spaces
/
Jiminny (New)
Jiminny (New)
Platform Team
Platform Team
Link contributing teams
Board actions
Board actions
Share
Automation
Give feedback
Give feedback
Enter full screen
Enter full screen
Summary
Summary
Timeline
Timeline
Backlog
Backlog
Active sprints
Active sprints
Calendar
Calendar
Reports
Reports
Testing Board
Testing Board
List
List
Forms
Forms
Components
Components
10 more tabs
More
9+
Add to navigation
Results will be filtered below as you type to search or apply filters.
Search on current page
Filter by assignee
Filter assignees by Lukas Kovalik
Filter assignees by Ahmet Katranci
Filter assignees by Aneliya Angelova
Filter assignees by Galya Dimitrova
Filter assignees by George Tulev
Filter assignees by James Graham
+8
+8
Version
Version
Epic
Epic
Type
Type
Label...
|
NULL
|
|
37673
|
774
|
1
|
2026-04-16T12:51:08.993111+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776343868993_m1.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell•EditViewSessionScriptsProfilesWindowHe iTerm2Shell•EditViewSessionScriptsProfilesWindowHelpC$O l 0LA100% <47Thu 16 Apr 15:51:08-zshDOCKER881Last login: Thu Apr 16 15:48:11 on ttys009DEV (-zsh)882APP (-zsh)*3-zsh• $84-zsh85Poetry could not find a pyproject.toml file in /Users/lukas or its parentsPoetry could not find a pyproject.toml file in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~S sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE "%Safari%" OR window_name LIKE "%Boostroid%"ORDER BY created_at DESC LIMIT 20;"Error: in prepare, no such column: created_atari%'OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;error here-_ЛTukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE "%Safari%' OR window_name LIKE "%Boostcreated_at DESC LIMIT 20;"Error: in prepare, no such column: created_atari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;error here ---^lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE "%Safari%' OR window_name LIKE "%Boostroid%' ORDER BYcreated_at DESC LIMIT 20;"Error: in prepare, no such column: created_atari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;error here ---лlukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ U...
|
NULL
|
-9211809931343577508
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2Shell•EditViewSessionScriptsProfilesWindowHe iTerm2Shell•EditViewSessionScriptsProfilesWindowHelpC$O l 0LA100% <47Thu 16 Apr 15:51:08-zshDOCKER881Last login: Thu Apr 16 15:48:11 on ttys009DEV (-zsh)882APP (-zsh)*3-zsh• $84-zsh85Poetry could not find a pyproject.toml file in /Users/lukas or its parentsPoetry could not find a pyproject.toml file in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~S sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE "%Safari%" OR window_name LIKE "%Boostroid%"ORDER BY created_at DESC LIMIT 20;"Error: in prepare, no such column: created_atari%'OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;error here-_ЛTukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE "%Safari%' OR window_name LIKE "%Boostcreated_at DESC LIMIT 20;"Error: in prepare, no such column: created_atari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;error here ---^lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE "%Safari%' OR window_name LIKE "%Boostroid%' ORDER BYcreated_at DESC LIMIT 20;"Error: in prepare, no such column: created_atari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;error here ---лlukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ U...
|
37671
|
|
81025
|
2156
|
8
|
2026-04-25T15:56:21.192275+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-25/1777 /Users/lukas/.screenpipe/data/data/2026-04-25/1777132581192_m1.jpg...
|
Code
|
screenpipe_sync.sh — screenpipe [SSH: nas]
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 2 pending changes
2
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
pipes
.gitignore
app_settings.json
archive.db
db.sqlite
screenpipe_sync.sh
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
db.sqlite-shm, preview, Editor Group 1
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lets add ability to jump…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports
PORTS
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
No Ports Forwarded
0
Notifications
Signed out
Signed out
Shell Script
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 2
Ln 320, Col 36
Screen Reader Optimized
git-commit Lukas Kovalik (23 hours ago)
Lukas Kovalik (23 hours ago)
Info: Downloading VS Code Server...
lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time
Session history
New session
Message actions
This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.
Summary:
1. Primary Request and Intent:
The user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:
- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.
- **Q2**: AND combination search (term1 + term2 must both appear) → Added "AND also" input field.
- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.
- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.
- **Q5**: "still the same" (container not picking up config) → Explained `up -d` vs `restart`.
- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.
- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.
- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.
- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.
2. Key Technical Concepts:
- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.
- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.
- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.
- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.
- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.
- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.
- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.
- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.
- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.
- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.
- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\#recycle/`.
3. Files and Code Sections:
- **`/volume1/screenpipe/app/main.py`**
- Added `/api/apps` endpoint (all unique app names from frames table)
- Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)
- `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: "..."}`
- Key snippet:
```python
@app.get("/api/timetable"
)
async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):
...
rows = conn.execute(f"""
SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,
f.offset_index, f.snapshot_path,
vc.file_path AS video_path, vc.fps AS video_fps
FROM frames f
JOIN video_chunks vc ON f.video_chunk_id = vc.id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND f.video_chunk_id IS NOT NULL {dev_clause}
ORDER BY f.timestamp
""", params).fetchall()
# seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)
```
- **`/volume1/screenpipe/app/docker-compose.yml`**
- Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`
- Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`
- screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`
- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)
- **Search enhancements**:
- Added `id="sq2"` "AND also" input between search-row1 and search-row2
- Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id="msOnlyApps"`, `id="msSkipApps"`)
- Updated `buildUrl()` to combine `q + " " + q2` and convert times with `localTimeToUtc()`
- Added `fmtDateTime(ts)` showing "Apr 20 14:08" format
- Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC
- Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`
- **Timetable tab** (new page):
- Tab button added between Work Report and AI Summary
- `showPage` array updated: `['activity','search','audio','report','timetable','summary']`
- `refresh()` calls `loadTimetable()` when on timetable page
- **Timetable CSS** (key styles):
```css
.tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }
.tt-inner { position:relative; height:52px; } /* width set dynamically */
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
.tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }
.tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }
```
- **Timetable JS state variables**:
```javascript
let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;
let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;
const _ttAppColors = {};
const TT_ZOOMS = [1, 2, 4, 8, 16, 32];
const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};
```
- **Key JS functions**:
- `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders
- `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead
- `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)
- `ttOverviewClick(e)` — scrolls timeline + seeks video
- `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`
- `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`
- `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video
- `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked
- `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`
- `_ttShowNow(f)` — updates screenshot thumbnail + now-text div
- `ttSyncBtn()` — syncs play/pause button text
- Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom
- **`/volume1/screenpipe/.gitignore`**
```
*.db, *.sqlite, *.sqlite-shm, *.sqlite-wal
data/, \#recycle/,
@eaDir/
app_settings.json, app/.env
__pycache__/, *.pyc, .DS_Store
```
4. Errors and Fixes:
- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\#recycle/`. Also had to `git rm --cached "#recycle/desktop.ini"` to unstage it.
- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.
- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.
- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.
- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.
5. Problem Solving:
- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.
- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.
- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).
- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.
6. All User Messages:
- "do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps."
- "doi I need to restart?"
- "there is sudo docker compose"
- "no still the same"
- "add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git"
- "just do it" (re: git push)
- "how to make sure data in :8767 are accurate and point to archive.db"
- "I can't see older than 16th there should 21st of april. In http://[IP_ADDRESS]:8766/ I can see all but not on sqlite viewer http://[IP_ADDRESS]:8767"
- "ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive"
- [docker compose output showing orphan container error]
- "looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast"
- "lets make the playing speed more than 8x"
- "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
7. Pending Tasks:
- **Playback speed fix** (in progress, partially done):
- Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` inside `ttInner` HTML
- Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions
- Update speed select `onchange` to call `ttSetSpeed(+this.value)`
- Add 64× option to speed select
- Update `_ttMovePlayhead` to also update `ttPlayheadTime` label
- Update `ttSyncBtn` to start/stop timer based on play state + speed
- Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)
- Rebuild Docker image after changes
8. Current Work:
Working on fixing two issues with the Timetable tab:
1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.
2. **Timeline position indicator**: Playhead not prominent enough.
**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:
```css
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
```
Session was interrupted by summary request after this CSS edit, mid-implementation.
9. Optional Next Step:
Continuing the fix for: "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
The next steps in order are:
1. Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)
2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`
3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)
4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option
5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer
6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`
If you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl
Continue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with "I'll continue" or similar. Pick up the last task as if the break never happened.
Thinking
Thinking
Bash
Find timetable speed and playhead related code
IN
grep -n "tt-playhead\|ttPlayhead\|ttInner\|_ttMovePlayhead\|ttSetSpeed\|_ttStartSpeed\|_ttStopSpeed\|ttSyncBtn\|playbackRate\|speed.*select\|spdSel\|ttSpeed" /volume1/screenpipe/app/static/index.html | head -80
Copy code to clipboard
OUT
207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
580: <div class="tt-inner" id="ttInner" onclick="ttTimelineClick(event)">
583: <div class="tt-playhead" id="ttPlayhead"></div>
598: onpause="ttSyncBtn()"
599: onplay="ttSyncBtn()">
607: <select id="ttSpeed" onchange="document.getElementById('ttVideo').playbackRate=+this.value">
1624: document.getElementById('ttInner').style.width = '100%';
1632: document.getElementById('ttPlayhead').style.display = 'none';
1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';
1700: const inner = document.getElementById('ttInner');
1710: const inner = document.getElementById('ttInner');
1718: const inner = document.getElementById('ttInner');
1750: _ttMovePlayhead(new Date(best.ts).getTime());
1772: _ttMovePlayhead(new Date(best.ts).getTime());
1791:function _ttMovePlayhead(tsMs) {
1792: const ph = document.getElementById('ttPlayhead');
1802: const ph = document.getElementById('ttPlayhead');
1805: const inner = document.getElementById('ttInner');
1819:function ttSyncBtn() {
Read
index.html
index.html
(lines 576-625)
Read
index.html
index.html
(lines 1786-1865)
Thinking
Thinking
Bash
Find chunk loading and playhead update functions
IN
grep -n "ttUpdatePlayhead\|ttNextChunk\|ttLoadChunk\|_ttCurChunk\|_ttChunks\|_ttFrames" /volume1/screenpipe/app/static/index.html | head -50
Copy code to clipboard
OUT
596: onended="ttNextChunk()"
597: ontimeupdate="ttUpdatePlayhead()"
1569:let _ttFrames = [];
1570:let _ttChunks = [];
1571:let _ttCurChunk = -1;
1607: _ttFrames = data.frames;
1609: for (const f of _ttFrames) {
1613: _ttChunks = [...chunkMap.values()];
1614: _ttCurChunk = -1;
1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();
1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();
1620: for (const f of _ttFrames) _ttColor(f.app);
1640: for (const f of _ttFrames) {
1736: if (!_ttFrames.length) return;
1737: let best = _ttFrames[0], minDiff = Infinity;
1738: for (const f of _ttFrames) {
1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);
1744: _ttCurChunk = ci;
1753:function ttNextChunk() {
1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;
1755: _ttCurChunk++;
1757: video.src = _ttChunks[_ttCurChunk][0].video_url;
1762:function ttUpdatePlayhead() {
1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;
1765: const chunk = _ttChunks[_ttCurChunk];
Read
index.html
index.html
(lines 1754-1793)
Thinking
Thinking
Read
index.html
index.html
(lines 1701-1760)
Thinking
Thinking
Read
index.html
index.html
(lines 1561-1640)
Thinking
Thinking
Bash
Find time formatting functions
IN
grep -n "function fmtTime\|function fmtDate\|function _fmt\|localTimeToUtc\|fmtDateTime" /volume1/screenpipe/app/static/index.html | head -20
Copy code to clipboard
OUT...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 2 pending changes","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update, 1 requires restart","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Containers","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: screenpipe [SSH: nas]","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: screenpipe [SSH: nas]","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"SCREENPIPE [SSH: NAS]","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"#recycle","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"data","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"pipes","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":".gitignore","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"app_settings.json","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"archive.db","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"db.sqlite","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"screenpipe_sync.sh","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"screenpipe.db","depth":27,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"role_description":"text"},{"role":"AXRadioButton","text":"app_settings.json, Editor Group 1","depth":28,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe_sync.sh, Editor Group 1","depth":28,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"db.sqlite-shm, preview, Editor Group 1","depth":28,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","depth":28,"value":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","role_description":"editor","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","depth":29,"role_description":"text"},{"role":"AXRadioButton","text":"lets add ability to jump…, Editor Group 2","depth":28,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Problems (⇧⌘M)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PROBLEMS","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Output (⇧⌘U)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUTPUT","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Debug Console (⇧⌘Y)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DEBUG CONSOLE","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Terminal (⌃`)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"TERMINAL","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Ports","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PORTS","depth":24,"role_description":"text"},{"role":"AXButton","text":"remote SSH: nas","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"SSH: nas","depth":17,"role_description":"text"},{"role":"AXButton","text":"screenpipe (Git) - master*, Checkout Branch/Tag...","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"master*","depth":17,"role_description":"text"},{"role":"AXButton","text":"screenpipe (Git) - Synchronize Changes","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"No Problems","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"role_description":"text"},{"role":"AXButton","text":"No Ports Forwarded","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Signed out","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"Signed out","depth":17,"role_description":"text"},{"role":"AXButton","text":"Shell Script","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"LF","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UTF-8","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Spaces: 2","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Ln 320, Col 36","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screen Reader Optimized","depth":16,"bounds":{"left":1.0,"top":0.0,"width":-0.07500005,"height":0.024444444},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"git-commit Lukas Kovalik (23 hours ago)","depth":16,"bounds":{"left":0.9388889,"top":0.0,"width":0.061111093,"height":0.024444444},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.9423611,"top":0.0,"width":0.011805556,"height":0.017777778},"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik (23 hours ago)","depth":17,"bounds":{"left":0.9534722,"top":0.0,"width":0.046527803,"height":0.015555556},"role_description":"text"},{"role":"AXStaticText","text":"Info: Downloading VS Code Server...","depth":12,"role_description":"text"},{"role":"AXButton","text":"lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time","depth":19,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.\n\nSummary:\n1. Primary Request and Intent:\n\nThe user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:\n- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.\n- **Q2**: AND combination search (term1 + term2 must both appear) → Added \"AND also\" input field.\n- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.\n- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.\n- **Q5**: \"still the same\" (container not picking up config) → Explained `up -d` vs `restart`.\n- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.\n- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.\n- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.\n- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.\n\n2. Key Technical Concepts:\n\n- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.\n- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.\n- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.\n- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.\n- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.\n- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.\n- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.\n- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.\n- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.\n- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.\n- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\\#recycle/`.\n\n3. Files and Code Sections:\n\n- **`/volume1/screenpipe/app/main.py`**\n - Added `/api/apps` endpoint (all unique app names from frames table)\n - Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)\n - `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: \"...\"}`\n - Key snippet:\n ```python","depth":26,"role_description":"text"},{"role":"AXButton","text":"@app.get(\"/api/timetable\"","depth":26,"help_text":"Open app.get(\"/api/timetable\"","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":")\n async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):\n ...\n rows = conn.execute(f\"\"\"\n SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,\n f.offset_index, f.snapshot_path,\n vc.file_path AS video_path, vc.fps AS video_fps\n FROM frames f\n JOIN video_chunks vc ON f.video_chunk_id = vc.id\n WHERE f.timestamp >= ? AND f.timestamp < ?\n AND f.video_chunk_id IS NOT NULL {dev_clause}\n ORDER BY f.timestamp\n \"\"\", params).fetchall()\n # seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)\n ```\n\n- **`/volume1/screenpipe/app/docker-compose.yml`**\n - Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`\n - Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`\n - screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`\n\n- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)\n - **Search enhancements**:\n - Added `id=\"sq2\"` \"AND also\" input between search-row1 and search-row2\n - Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id=\"msOnlyApps\"`, `id=\"msSkipApps\"`)\n - Updated `buildUrl()` to combine `q + \" \" + q2` and convert times with `localTimeToUtc()`\n - Added `fmtDateTime(ts)` showing \"Apr 20 14:08\" format\n - Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC\n - Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`\n - **Timetable tab** (new page):\n - Tab button added between Work Report and AI Summary\n - `showPage` array updated: `['activity','search','audio','report','timetable','summary']`\n - `refresh()` calls `loadTimetable()` when on timetable page\n - **Timetable CSS** (key styles):\n ```css\n .tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }\n .tt-inner { position:relative; height:52px; } /* width set dynamically */\n .tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n .tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n .tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }\n .tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }\n ```\n - **Timetable JS state variables**:\n ```javascript\n let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;\n let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;\n const _ttAppColors = {};\n const TT_ZOOMS = [1, 2, 4, 8, 16, 32];\n const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};\n ```\n - **Key JS functions**:\n - `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders\n - `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead\n - `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)\n - `ttOverviewClick(e)` — scrolls timeline + seeks video\n - `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`\n - `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`\n - `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video\n - `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked\n - `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`\n - `_ttShowNow(f)` — updates screenshot thumbnail + now-text div\n - `ttSyncBtn()` — syncs play/pause button text\n - Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom\n\n- **`/volume1/screenpipe/.gitignore`**\n ```\n *.db, *.sqlite, *.sqlite-shm, *.sqlite-wal\n data/, \\#recycle/,","depth":26,"role_description":"text"},{"role":"AXButton","text":"@eaDir/","depth":26,"help_text":"Open eaDir/","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"app_settings.json, app/.env\n __pycache__/, *.pyc, .DS_Store\n ```\n\n4. Errors and Fixes:\n\n- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\\#recycle/`. Also had to `git rm --cached \"#recycle/desktop.ini\"` to unstage it.\n- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.\n- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.\n- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.\n- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.\n\n5. Problem Solving:\n\n- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.\n- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.\n- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).\n- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.\n\n6. All User Messages:\n\n- \"do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps.\"\n- \"doi I need to restart?\"\n- \"there is sudo docker compose\"\n- \"no still the same\"\n- \"add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git\"\n- \"just do it\" (re: git push)\n- \"how to make sure data in :8767 are accurate and point to archive.db\"\n- \"I can't see older than 16th there should 21st of april. In http://192.168.0.242:8766/ I can see all but not on sqlite viewer http://192.168.0.242:8767\"\n- \"ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive\"\n- [docker compose output showing orphan container error]\n- \"looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast\"\n- \"lets make the playing speed more than 8x\"\n- \"still playing speed is not showing properly still just in one second. also I want to see in timeline where I am\"\n\n7. Pending Tasks:\n\n- **Playback speed fix** (in progress, partially done):\n - Add `<div class=\"tt-playhead-time\" id=\"ttPlayheadTime\"></div>` inside `ttInner` HTML\n - Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions\n - Update speed select `onchange` to call `ttSetSpeed(+this.value)`\n - Add 64× option to speed select\n - Update `_ttMovePlayhead` to also update `ttPlayheadTime` label\n - Update `ttSyncBtn` to start/stop timer based on play state + speed\n - Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)\n - Rebuild Docker image after changes\n\n8. Current Work:\n\nWorking on fixing two issues with the Timetable tab:\n1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.\n2. **Timeline position indicator**: Playhead not prominent enough. \n\n**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:\n```css\n.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n```\n\nSession was interrupted by summary request after this CSS edit, mid-implementation.\n\n9. Optional Next Step:\n\nContinuing the fix for: \"still playing speed is not showing properly still just in one second. also I want to see in timeline where I am\"\n\nThe next steps in order are:\n1. Add `<div class=\"tt-playhead-time\" id=\"ttPlayheadTime\"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)\n2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`\n3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)\n4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option\n5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer\n6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`\n\nIf you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl\nContinue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with \"I'll continue\" or similar. Pick up the last task as if the break never happened.","depth":26,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find timetable speed and playhead related code","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"tt-playhead\\|ttPlayhead\\|ttInner\\|_ttMovePlayhead\\|ttSetSpeed\\|_ttStartSpeed\\|_ttStopSpeed\\|ttSyncBtn\\|playbackRate\\|speed.*select\\|spdSel\\|ttSpeed\" /volume1/screenpipe/app/static/index.html | head -80","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n580: <div class=\"tt-inner\" id=\"ttInner\" onclick=\"ttTimelineClick(event)\">\n583: <div class=\"tt-playhead\" id=\"ttPlayhead\"></div>\n598: onpause=\"ttSyncBtn()\"\n599: onplay=\"ttSyncBtn()\">\n607: <select id=\"ttSpeed\" onchange=\"document.getElementById('ttVideo').playbackRate=+this.value\">\n1624: document.getElementById('ttInner').style.width = '100%';\n1632: document.getElementById('ttPlayhead').style.display = 'none';\n1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';\n1700: const inner = document.getElementById('ttInner');\n1710: const inner = document.getElementById('ttInner');\n1718: const inner = document.getElementById('ttInner');\n1750: _ttMovePlayhead(new Date(best.ts).getTime());\n1772: _ttMovePlayhead(new Date(best.ts).getTime());\n1791:function _ttMovePlayhead(tsMs) {\n1792: const ph = document.getElementById('ttPlayhead');\n1802: const ph = document.getElementById('ttPlayhead');\n1805: const inner = document.getElementById('ttInner');\n1819:function ttSyncBtn() {","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 576-625)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1786-1865)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find chunk loading and playhead update functions","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"ttUpdatePlayhead\\|ttNextChunk\\|ttLoadChunk\\|_ttCurChunk\\|_ttChunks\\|_ttFrames\" /volume1/screenpipe/app/static/index.html | head -50","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"596: onended=\"ttNextChunk()\"\n597: ontimeupdate=\"ttUpdatePlayhead()\"\n1569:let _ttFrames = [];\n1570:let _ttChunks = [];\n1571:let _ttCurChunk = -1;\n1607: _ttFrames = data.frames;\n1609: for (const f of _ttFrames) {\n1613: _ttChunks = [...chunkMap.values()];\n1614: _ttCurChunk = -1;\n1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();\n1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();\n1620: for (const f of _ttFrames) _ttColor(f.app);\n1640: for (const f of _ttFrames) {\n1736: if (!_ttFrames.length) return;\n1737: let best = _ttFrames[0], minDiff = Infinity;\n1738: for (const f of _ttFrames) {\n1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);\n1744: _ttCurChunk = ci;\n1753:function ttNextChunk() {\n1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;\n1755: _ttCurChunk++;\n1757: video.src = _ttChunks[_ttCurChunk][0].video_url;\n1762:function ttUpdatePlayhead() {\n1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;\n1765: const chunk = _ttChunks[_ttCurChunk];","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1754-1793)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1701-1760)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1561-1640)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find time formatting functions","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"function fmtTime\\|function fmtDate\\|function _fmt\\|localTimeToUtc\\|fmtDateTime\" /volume1/screenpipe/app/static/index.html | head -20","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"}]...
|
-9211766644227580523
|
4474475550963076503
|
click
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 2 pending changes
2
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
pipes
.gitignore
app_settings.json
archive.db
db.sqlite
screenpipe_sync.sh
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
db.sqlite-shm, preview, Editor Group 1
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lets add ability to jump…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports
PORTS
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
No Ports Forwarded
0
Notifications
Signed out
Signed out
Shell Script
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 2
Ln 320, Col 36
Screen Reader Optimized
git-commit Lukas Kovalik (23 hours ago)
Lukas Kovalik (23 hours ago)
Info: Downloading VS Code Server...
lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time
Session history
New session
Message actions
This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.
Summary:
1. Primary Request and Intent:
The user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:
- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.
- **Q2**: AND combination search (term1 + term2 must both appear) → Added "AND also" input field.
- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.
- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.
- **Q5**: "still the same" (container not picking up config) → Explained `up -d` vs `restart`.
- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.
- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.
- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.
- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.
2. Key Technical Concepts:
- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.
- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.
- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.
- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.
- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.
- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.
- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.
- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.
- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.
- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.
- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\#recycle/`.
3. Files and Code Sections:
- **`/volume1/screenpipe/app/main.py`**
- Added `/api/apps` endpoint (all unique app names from frames table)
- Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)
- `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: "..."}`
- Key snippet:
```python
@app.get("/api/timetable"
)
async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):
...
rows = conn.execute(f"""
SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,
f.offset_index, f.snapshot_path,
vc.file_path AS video_path, vc.fps AS video_fps
FROM frames f
JOIN video_chunks vc ON f.video_chunk_id = vc.id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND f.video_chunk_id IS NOT NULL {dev_clause}
ORDER BY f.timestamp
""", params).fetchall()
# seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)
```
- **`/volume1/screenpipe/app/docker-compose.yml`**
- Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`
- Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`
- screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`
- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)
- **Search enhancements**:
- Added `id="sq2"` "AND also" input between search-row1 and search-row2
- Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id="msOnlyApps"`, `id="msSkipApps"`)
- Updated `buildUrl()` to combine `q + " " + q2` and convert times with `localTimeToUtc()`
- Added `fmtDateTime(ts)` showing "Apr 20 14:08" format
- Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC
- Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`
- **Timetable tab** (new page):
- Tab button added between Work Report and AI Summary
- `showPage` array updated: `['activity','search','audio','report','timetable','summary']`
- `refresh()` calls `loadTimetable()` when on timetable page
- **Timetable CSS** (key styles):
```css
.tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }
.tt-inner { position:relative; height:52px; } /* width set dynamically */
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
.tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }
.tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }
```
- **Timetable JS state variables**:
```javascript
let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;
let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;
const _ttAppColors = {};
const TT_ZOOMS = [1, 2, 4, 8, 16, 32];
const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};
```
- **Key JS functions**:
- `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders
- `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead
- `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)
- `ttOverviewClick(e)` — scrolls timeline + seeks video
- `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`
- `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`
- `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video
- `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked
- `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`
- `_ttShowNow(f)` — updates screenshot thumbnail + now-text div
- `ttSyncBtn()` — syncs play/pause button text
- Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom
- **`/volume1/screenpipe/.gitignore`**
```
*.db, *.sqlite, *.sqlite-shm, *.sqlite-wal
data/, \#recycle/,
@eaDir/
app_settings.json, app/.env
__pycache__/, *.pyc, .DS_Store
```
4. Errors and Fixes:
- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\#recycle/`. Also had to `git rm --cached "#recycle/desktop.ini"` to unstage it.
- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.
- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.
- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.
- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.
5. Problem Solving:
- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.
- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.
- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).
- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.
6. All User Messages:
- "do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps."
- "doi I need to restart?"
- "there is sudo docker compose"
- "no still the same"
- "add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git"
- "just do it" (re: git push)
- "how to make sure data in :8767 are accurate and point to archive.db"
- "I can't see older than 16th there should 21st of april. In http://[IP_ADDRESS]:8766/ I can see all but not on sqlite viewer http://[IP_ADDRESS]:8767"
- "ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive"
- [docker compose output showing orphan container error]
- "looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast"
- "lets make the playing speed more than 8x"
- "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
7. Pending Tasks:
- **Playback speed fix** (in progress, partially done):
- Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` inside `ttInner` HTML
- Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions
- Update speed select `onchange` to call `ttSetSpeed(+this.value)`
- Add 64× option to speed select
- Update `_ttMovePlayhead` to also update `ttPlayheadTime` label
- Update `ttSyncBtn` to start/stop timer based on play state + speed
- Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)
- Rebuild Docker image after changes
8. Current Work:
Working on fixing two issues with the Timetable tab:
1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.
2. **Timeline position indicator**: Playhead not prominent enough.
**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:
```css
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
```
Session was interrupted by summary request after this CSS edit, mid-implementation.
9. Optional Next Step:
Continuing the fix for: "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
The next steps in order are:
1. Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)
2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`
3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)
4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option
5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer
6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`
If you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl
Continue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with "I'll continue" or similar. Pick up the last task as if the break never happened.
Thinking
Thinking
Bash
Find timetable speed and playhead related code
IN
grep -n "tt-playhead\|ttPlayhead\|ttInner\|_ttMovePlayhead\|ttSetSpeed\|_ttStartSpeed\|_ttStopSpeed\|ttSyncBtn\|playbackRate\|speed.*select\|spdSel\|ttSpeed" /volume1/screenpipe/app/static/index.html | head -80
Copy code to clipboard
OUT
207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
580: <div class="tt-inner" id="ttInner" onclick="ttTimelineClick(event)">
583: <div class="tt-playhead" id="ttPlayhead"></div>
598: onpause="ttSyncBtn()"
599: onplay="ttSyncBtn()">
607: <select id="ttSpeed" onchange="document.getElementById('ttVideo').playbackRate=+this.value">
1624: document.getElementById('ttInner').style.width = '100%';
1632: document.getElementById('ttPlayhead').style.display = 'none';
1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';
1700: const inner = document.getElementById('ttInner');
1710: const inner = document.getElementById('ttInner');
1718: const inner = document.getElementById('ttInner');
1750: _ttMovePlayhead(new Date(best.ts).getTime());
1772: _ttMovePlayhead(new Date(best.ts).getTime());
1791:function _ttMovePlayhead(tsMs) {
1792: const ph = document.getElementById('ttPlayhead');
1802: const ph = document.getElementById('ttPlayhead');
1805: const inner = document.getElementById('ttInner');
1819:function ttSyncBtn() {
Read
index.html
index.html
(lines 576-625)
Read
index.html
index.html
(lines 1786-1865)
Thinking
Thinking
Bash
Find chunk loading and playhead update functions
IN
grep -n "ttUpdatePlayhead\|ttNextChunk\|ttLoadChunk\|_ttCurChunk\|_ttChunks\|_ttFrames" /volume1/screenpipe/app/static/index.html | head -50
Copy code to clipboard
OUT
596: onended="ttNextChunk()"
597: ontimeupdate="ttUpdatePlayhead()"
1569:let _ttFrames = [];
1570:let _ttChunks = [];
1571:let _ttCurChunk = -1;
1607: _ttFrames = data.frames;
1609: for (const f of _ttFrames) {
1613: _ttChunks = [...chunkMap.values()];
1614: _ttCurChunk = -1;
1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();
1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();
1620: for (const f of _ttFrames) _ttColor(f.app);
1640: for (const f of _ttFrames) {
1736: if (!_ttFrames.length) return;
1737: let best = _ttFrames[0], minDiff = Infinity;
1738: for (const f of _ttFrames) {
1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);
1744: _ttCurChunk = ci;
1753:function ttNextChunk() {
1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;
1755: _ttCurChunk++;
1757: video.src = _ttChunks[_ttCurChunk][0].video_url;
1762:function ttUpdatePlayhead() {
1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;
1765: const chunk = _ttChunks[_ttCurChunk];
Read
index.html
index.html
(lines 1754-1793)
Thinking
Thinking
Read
index.html
index.html
(lines 1701-1760)
Thinking
Thinking
Read
index.html
index.html
(lines 1561-1640)
Thinking
Thinking
Bash
Find time formatting functions
IN
grep -n "function fmtTime\|function fmtDate\|function _fmt\|localTimeToUtc\|fmtDateTime" /volume1/screenpipe/app/static/index.html | head -20
Copy code to clipboard
OUT...
|
81023
|
|
5051
|
94
|
64
|
2026-04-13T12:53:42.491084+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-13/1776 /Users/lukas/.screenpipe/data/data/2026-04-13/1776084822491_m1.jpg...
|
Boosteroid
|
Boosteroid
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelplall94% <47* Unable to access screenpipe activity dataDOCKERO $1- Used Claude, LikelyDEV (-zsh)relatedtoO 882APP (-zsh)• *3-zsh• *4screenpipework (querying the screenpipe search API)-zsh• 25-zsh86-zsh®O 87Mon 13 Apr 15:53:42181* Unable to access s...X8TL;DR: Mostly a dev day focused on building something with screenpipe data (a reporting UI), some light work task-checking on Jira/email, and evening reading on Slovak news.what did I do today so farThe screenpipe MCP server has disconnected, so I can't query your activity right now. You'd need to reconnect it to get today's summary.You can try restarting the screenpipe MCP server and then ask again.give mesummary for last 48 hoursThe screenpipe MCPserver is still disconnected - I don't have access to those tools. You'll need to reconnect it first.If screenpipe is running locally, you can try restarting the MCPserver or check its status with ! screenpipe or however you normally manage it.it is healhty and running, chekc againThe tools aren't showing up in my session even though screenpipe is running. This likely means the MCP connection needs to be re-established on the Claude Code side.Try running ! claude mep list to check the MCP serverstatus, or restart Claude Code to reconnect the screenpipe MCP server.claude mep listBash(Claude mcp list)L Checking MCP server health...claude.ai Reminders: https://todo.lakylak.xyz/mcp - ! Needs authentication. +5 lines (ctrl+o to expand)Screenpipe shows asconnected. The tools may just need to be re-registered in this session. Let me try calling it directly:The screenpipe MCP is connected, but the tools got deregistered from this session when it disconnected earlier and can't be re-loaded mid-conversation.Start a new Claude Code session - the tools will be fully available again and I can pull the 48-hour summary right away.? for shortcuts...
|
NULL
|
-9211739917514762805
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelplall94% <47* Unable to access screenpipe activity dataDOCKERO $1- Used Claude, LikelyDEV (-zsh)relatedtoO 882APP (-zsh)• *3-zsh• *4screenpipework (querying the screenpipe search API)-zsh• 25-zsh86-zsh®O 87Mon 13 Apr 15:53:42181* Unable to access s...X8TL;DR: Mostly a dev day focused on building something with screenpipe data (a reporting UI), some light work task-checking on Jira/email, and evening reading on Slovak news.what did I do today so farThe screenpipe MCP server has disconnected, so I can't query your activity right now. You'd need to reconnect it to get today's summary.You can try restarting the screenpipe MCP server and then ask again.give mesummary for last 48 hoursThe screenpipe MCPserver is still disconnected - I don't have access to those tools. You'll need to reconnect it first.If screenpipe is running locally, you can try restarting the MCPserver or check its status with ! screenpipe or however you normally manage it.it is healhty and running, chekc againThe tools aren't showing up in my session even though screenpipe is running. This likely means the MCP connection needs to be re-established on the Claude Code side.Try running ! claude mep list to check the MCP serverstatus, or restart Claude Code to reconnect the screenpipe MCP server.claude mep listBash(Claude mcp list)L Checking MCP server health...claude.ai Reminders: https://todo.lakylak.xyz/mcp - ! Needs authentication. +5 lines (ctrl+o to expand)Screenpipe shows asconnected. The tools may just need to be re-registered in this session. Let me try calling it directly:The screenpipe MCP is connected, but the tools got deregistered from this session when it disconnected earlier and can't be re-loaded mid-conversation.Start a new Claude Code session - the tools will be fully available again and I can pull the 48-hour summary right away.? for shortcuts...
|
5050
|
|
62483
|
1348
|
35
|
2026-04-21T07:54:35.497034+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776758075497_m1.jpg...
|
iTerm2
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
QuickTime PlayerFileEditViewWindowHelp, 0§ Suppo QuickTime PlayerFileEditViewWindowHelp, 0§ Support Daily • in 4h 6 mDOCKERO $1Source DB:NAS mount:Archive DB:Data dir:-zshO $82-zsh• ₴3OKOK(4.5G)/Volumes/Test/screenpipeexistsOK(3.0G)(192 files, 501M)[+00m03s] • Counting source rows for2026-04-20frames:elements:ul_events:ocr_text:meetings:9093687142997059712[+00m03s] • Initialising tables, indexes, FTScreating tablescreating indexescreating FTS tables• Om00s• 0m01s• OmOOs[+00m04s] • Syncing data for 2026-04-20video_chunksframes (9093 rows)ocr_text (5971 rows)ui_events (9970 rows)elements (687142 rows)meetings (2 rows)• Om00s/ 1m20s• 0m48s• Om01s• Om48s• Om00s[+03m01s] • Updating FTSindexeselements_ftsframes_ftsui_events_fts• 1m27s• 2m10s• Om03s[+06m41s] • Verifying DBframes:elements:ui_events:ocr_text:meetings:9093 / 9093687142 / 6871429970 / 99705971 / 59712/2[+07m44s] • Copying data folder for 2026-04-20rsync2026-04-20/ NAS• 0m31s2026-04-2110:48:54]Archive DB size:3.8G[2026-04-2110:48:54]Total time:8m15s[2026-04-2110:48:54]Sync complete for 2026-04-20[2026-04-2110:48:54]-____------пппппlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $* Build full da...• *4-zshscreenpipe"• 85-zsh86APP (-zsh)|• 87ec2-user@ip-…100% <8Tue 21 Apr 10:54:35181• 88--zsh• *9+(192 files, 501M)...
|
NULL
|
-9211543453746196945
|
NULL
|
click
|
ocr
|
NULL
|
QuickTime PlayerFileEditViewWindowHelp, 0§ Suppo QuickTime PlayerFileEditViewWindowHelp, 0§ Support Daily • in 4h 6 mDOCKERO $1Source DB:NAS mount:Archive DB:Data dir:-zshO $82-zsh• ₴3OKOK(4.5G)/Volumes/Test/screenpipeexistsOK(3.0G)(192 files, 501M)[+00m03s] • Counting source rows for2026-04-20frames:elements:ul_events:ocr_text:meetings:9093687142997059712[+00m03s] • Initialising tables, indexes, FTScreating tablescreating indexescreating FTS tables• Om00s• 0m01s• OmOOs[+00m04s] • Syncing data for 2026-04-20video_chunksframes (9093 rows)ocr_text (5971 rows)ui_events (9970 rows)elements (687142 rows)meetings (2 rows)• Om00s/ 1m20s• 0m48s• Om01s• Om48s• Om00s[+03m01s] • Updating FTSindexeselements_ftsframes_ftsui_events_fts• 1m27s• 2m10s• Om03s[+06m41s] • Verifying DBframes:elements:ui_events:ocr_text:meetings:9093 / 9093687142 / 6871429970 / 99705971 / 59712/2[+07m44s] • Copying data folder for 2026-04-20rsync2026-04-20/ NAS• 0m31s2026-04-2110:48:54]Archive DB size:3.8G[2026-04-2110:48:54]Total time:8m15s[2026-04-2110:48:54]Sync complete for 2026-04-20[2026-04-2110:48:54]-____------пппппlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $* Build full da...• *4-zshscreenpipe"• 85-zsh86APP (-zsh)|• 87ec2-user@ip-…100% <8Tue 21 Apr 10:54:35181• 88--zsh• *9+(192 files, 501M)...
|
NULL
|
|
54843
|
1184
|
61
|
2026-04-20T09:21:19.153810+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676879153_m2.jpg...
|
Firefox
|
Jiminny — Work
|
True
|
app.dev.jiminny.com/ai-reports/manage
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
JY-20553 | Improve crm-sync delays by yalokin-jiminny · Pull Request #11976 · jiminny/app
JY-20553 | Improve crm-sync delays by yalokin-jiminny · Pull Request #11976 · jiminny/app
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
JY-20692 change confirmation parameter by LakyLak · Pull Request #11986 · jiminny/app
JY-20692 change confirmation parameter by LakyLak · Pull Request #11986 · jiminny/app
[JY-20543] AJ Reports > Tracking - Jira
[JY-20543] AJ Reports > Tracking - Jira
[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira
[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira
Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app
Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app
New Tab
New Tab
Product Growth Platform | Userpilot
Product Growth Platform | Userpilot
Userpilot | Logged-activity
Userpilot | Logged-activity
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Feed — jiminny — Sentry
Feed — jiminny — Sentry
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
Jiminny
Jiminny
Close tab
Jiminny
Jiminny
Jiminny
Jiminny
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Ask Jiminny Reports
Ask Jiminny Reports
Create
Report name
Prompt Prompt
Prompt
Prompt
Saved search Saved search
Saved search
Saved search
All statuses All statuses
All statuses
All statuses
Clear all
NAME
FREQUENCY
SHARED
EXPIRING
ACTIONS
Monthly Ask J Report
Monthly
Jiminny Mobile SA
30/06/2026
Search One
Daily
Jiminny Mobile SA
30/04/2026
Create report
Save
1. General
1. General
NAME
Exp
Clear
*
FREQUENCY
Select Daily
Select
Daily
*
EXPIRES ON
20 Apr, 2027
*
Share with
TEAM
Select Select
Select
Select
TEAM MEMBER
Select Select
Select
Select
2. Report parameters
2. Report parameters
SAVED SEARCH
Select group one
Select
group one
*
ASK JIMINNY PROMPT
Select
Select
*
Clear
Filter URLs
Pause/Resume recording network log
New Request
Search
Request Blocking
All
HTML
CSS
JS
XHR
Fonts
Images
Media
WS
Other
Disable Cache
Disable Cache
No Throttling
Network Settings
Status
Status
Method
Method
Domain
Domain
File
File
Initiator
Initiator
Type
Type
Transferred
Transferred
Size
Size
0 ms
0 ms
200
GET
app.dev.jiminny.com
form-data
xhr
json
7.56 kB
10.67 kB
589 ms
Status
Status
200
Method
Method
GET
Domain
Domain
app.dev.jiminny.com
File
File
form-data
Initiator
Initiator
xhr
Type
Type
json
Transferred
Transferred
7.56 kB
Size
Size
10.67 kB
0 ms
0 ms
589 ms
Start performance analysis
1 request
10.67 kB / 7.56 kB transferred
Finish: 589 ms...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0018284575,"top":0.0518755,"width":0.07596409,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-20553 | Improve crm-sync delays by yalokin-jiminny · Pull Request #11976 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.09497207,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20553 | Improve crm-sync delays by yalokin-jiminny · Pull Request #11976 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.10614525,"width":0.15774602,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":4,"bounds":{"left":0.0,"top":0.12769353,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.13886672,"width":0.09524601,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.16041501,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.17158818,"width":0.19963431,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20692 change confirmation parameter by LakyLak · Pull Request #11986 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.19313647,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20692 change confirmation parameter by LakyLak · Pull Request #11986 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.20430966,"width":0.15525267,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20543] AJ Reports > Tracking - Jira","depth":4,"bounds":{"left":0.0,"top":0.22585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20543] AJ Reports > Tracking - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.23703113,"width":0.06981383,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira","depth":4,"bounds":{"left":0.0,"top":0.2585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.2697526,"width":0.10688165,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.29130086,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.30247405,"width":0.12915559,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"New Tab","depth":4,"bounds":{"left":0.0,"top":0.32402235,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"New Tab","depth":5,"bounds":{"left":0.013297873,"top":0.33519554,"width":0.014960106,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Product Growth Platform | Userpilot","depth":4,"bounds":{"left":0.0,"top":0.3567438,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Product Growth Platform | Userpilot","depth":5,"bounds":{"left":0.013297873,"top":0.367917,"width":0.06200133,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Userpilot | Logged-activity","depth":4,"bounds":{"left":0.0,"top":0.38946527,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Userpilot | Logged-activity","depth":5,"bounds":{"left":0.013297873,"top":0.40063846,"width":0.04637633,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.42218676,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.43335995,"width":0.2052859,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.45490822,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.4660814,"width":0.039228722,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Feed — jiminny — Sentry","depth":4,"bounds":{"left":0.0,"top":0.48762968,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Feed — jiminny — Sentry","depth":5,"bounds":{"left":0.013297873,"top":0.49880287,"width":0.042719416,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.5203512,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.53152436,"width":0.2052859,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.55307263,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.013297873,"top":0.5642458,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.06732048,"top":0.5602554,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.5857941,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.013297873,"top":0.5969673,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.61851555,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.013297873,"top":0.62968874,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.0028257978,"top":0.6528332,"width":0.07413564,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.0028257978,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.013796543,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.024933511,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.036070477,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.04720745,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Ask Jiminny Reports","depth":10,"bounds":{"left":0.10887633,"top":0.06943336,"width":0.06000665,"height":0.019553073},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ask Jiminny Reports","depth":11,"bounds":{"left":0.10887633,"top":0.06943336,"width":0.06000665,"height":0.019553073},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create","depth":10,"bounds":{"left":0.5103058,"top":0.06464485,"width":0.023271276,"height":0.028731046},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXTextField","text":"Report name","depth":11,"bounds":{"left":0.12134308,"top":0.10933759,"width":0.058011968,"height":0.019952115},"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXComboBox","text":"Prompt Prompt","depth":10,"bounds":{"left":0.19930187,"top":0.10933759,"width":0.0731383,"height":0.019952115},"value":"Prompt Prompt","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Prompt","depth":11,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Prompt","depth":12,"bounds":{"left":0.19930187,"top":0.11292897,"width":0.01462766,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Saved search Saved search","depth":10,"bounds":{"left":0.28041887,"top":0.10933759,"width":0.0731383,"height":0.019952115},"value":"Saved search Saved search","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Saved search","depth":11,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Saved search","depth":12,"bounds":{"left":0.28041887,"top":0.11292897,"width":0.025099734,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"All statuses All statuses","depth":10,"bounds":{"left":0.3615359,"top":0.10933759,"width":0.059840426,"height":0.019952115},"value":"All statuses All statuses","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"All statuses","depth":11,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"All statuses","depth":12,"bounds":{"left":0.3615359,"top":0.11292897,"width":0.022273935,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Clear all","depth":10,"bounds":{"left":0.42503324,"top":0.112529926,"width":0.024268618,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"NAME","depth":12,"bounds":{"left":0.10854388,"top":0.16679968,"width":0.012965426,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"FREQUENCY","depth":12,"bounds":{"left":0.2521609,"top":0.16679968,"width":0.026097074,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SHARED","depth":12,"bounds":{"left":0.32396942,"top":0.16679968,"width":0.017453458,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"EXPIRING","depth":12,"bounds":{"left":0.3956117,"top":0.16679968,"width":0.02044548,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ACTIONS","depth":12,"bounds":{"left":0.46742022,"top":0.16679968,"width":0.019115692,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Monthly Ask J Report","depth":14,"bounds":{"left":0.10854388,"top":0.207502,"width":0.042220745,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Monthly","depth":14,"bounds":{"left":0.2521609,"top":0.207502,"width":0.01662234,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Mobile SA","depth":15,"bounds":{"left":0.33111703,"top":0.20071827,"width":0.015957447,"height":0.04309657},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"30/06/2026","depth":14,"bounds":{"left":0.3956117,"top":0.207502,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Search One","depth":14,"bounds":{"left":0.10854388,"top":0.2462091,"width":0.022606382,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Daily","depth":14,"bounds":{"left":0.2521609,"top":0.2462091,"width":0.010139627,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Mobile SA","depth":15,"bounds":{"left":0.33111703,"top":0.23902634,"width":0.015957447,"height":0.04309657},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"30/04/2026","depth":14,"bounds":{"left":0.3956117,"top":0.2462091,"width":0.024102394,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Create report","depth":13,"bounds":{"left":0.34208778,"top":0.06943336,"width":0.04055851,"height":0.019553073},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Save","depth":12,"bounds":{"left":0.5021609,"top":0.06464485,"width":0.018783245,"height":0.028731046},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"1. General","depth":11,"bounds":{"left":0.34208778,"top":0.12609737,"width":0.19414894,"height":0.032721467},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1. General","depth":12,"bounds":{"left":0.34208778,"top":0.13248204,"width":0.024601065,"height":0.01556265},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"NAME","depth":13,"bounds":{"left":0.3464096,"top":0.16799681,"width":0.009973404,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Exp","depth":12,"bounds":{"left":0.3464096,"top":0.17797287,"width":0.1775266,"height":0.019952115},"value":"Exp","help_text":"","placeholder":"Enter name","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Clear","depth":12,"bounds":{"left":0.52393615,"top":0.1783719,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"*","depth":12,"bounds":{"left":0.53125,"top":0.16241021,"width":0.0026595744,"height":0.019553073},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"FREQUENCY","depth":13,"bounds":{"left":0.3464096,"top":0.22306465,"width":0.020279255,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select Daily","depth":11,"bounds":{"left":0.3464096,"top":0.2330407,"width":0.09075798,"height":0.019952115},"value":"Select Daily","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":12,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Daily","depth":13,"bounds":{"left":0.3464096,"top":0.23663208,"width":0.010139627,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"*","depth":12,"bounds":{"left":0.4325133,"top":0.21747805,"width":0.0026595744,"height":0.019553073},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"EXPIRES ON","depth":15,"bounds":{"left":0.44514626,"top":0.22306465,"width":0.019281914,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"20 Apr, 2027","depth":15,"bounds":{"left":0.44514626,"top":0.2386273,"width":0.024933511,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"*","depth":14,"bounds":{"left":0.53125,"top":0.21747805,"width":0.0026595744,"height":0.019553073},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Share with","depth":12,"bounds":{"left":0.34208778,"top":0.27094972,"width":0.022107713,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"TEAM","depth":13,"bounds":{"left":0.3464096,"top":0.2980846,"width":0.009474734,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select Select","depth":11,"bounds":{"left":0.3464096,"top":0.30806065,"width":0.09075798,"height":0.019952115},"value":"Select Select","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":12,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Select","depth":13,"bounds":{"left":0.3464096,"top":0.31165203,"width":0.011801862,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"TEAM MEMBER","depth":13,"bounds":{"left":0.44514626,"top":0.2980846,"width":0.024601065,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select Select","depth":11,"bounds":{"left":0.44514626,"top":0.30806065,"width":0.09075798,"height":0.019952115},"value":"Select Select","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":12,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Select","depth":13,"bounds":{"left":0.44514626,"top":0.31165203,"width":0.011801862,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"2. Report parameters","depth":11,"bounds":{"left":0.34208778,"top":0.34477255,"width":0.19414894,"height":0.032721467},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2. Report parameters","depth":12,"bounds":{"left":0.34208778,"top":0.35115722,"width":0.05119681,"height":0.01556265},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SAVED SEARCH","depth":13,"bounds":{"left":0.3464096,"top":0.386672,"width":0.02443484,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select group one","depth":11,"bounds":{"left":0.3464096,"top":0.39664805,"width":0.09075798,"height":0.019952115},"value":"Select group one","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":12,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"group one","depth":13,"bounds":{"left":0.3464096,"top":0.40023944,"width":0.019448139,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"*","depth":12,"bounds":{"left":0.4325133,"top":0.3810854,"width":0.0026595744,"height":0.019553073},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ASK JIMINNY PROMPT","depth":13,"bounds":{"left":0.44514626,"top":0.386672,"width":0.035904255,"height":0.009976057},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select","depth":11,"bounds":{"left":0.44514626,"top":0.39664805,"width":0.09075798,"height":0.019952115},"value":"Select","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXTextField","text":"Select","depth":12,"bounds":{"left":0.44514626,"top":0.39864326,"width":0.080784574,"height":0.015961692},"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":true,"is_selected":false},{"role":"AXStaticText","text":"*","depth":12,"bounds":{"left":0.53125,"top":0.3810854,"width":0.0026595744,"height":0.019553073},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Clear","depth":16,"bounds":{"left":0.54288566,"top":0.07821229,"width":0.008643617,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXTextField","text":"Filter URLs","depth":16,"bounds":{"left":0.5531915,"top":0.07581804,"width":0.18517287,"height":0.0207502},"help_text":"","role_description":"search text field","subrole":"AXSearchField","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Pause/Resume recording network log","depth":16,"bounds":{"left":0.75199467,"top":0.077813245,"width":0.008643617,"height":0.016759777},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"New Request","depth":16,"bounds":{"left":0.7613032,"top":0.07821229,"width":0.008643617,"height":0.015961692},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Search","depth":16,"bounds":{"left":0.7706117,"top":0.07821229,"width":0.008643617,"height":0.015961692},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Request Blocking","depth":16,"bounds":{"left":0.7799202,"top":0.07821229,"width":0.008643617,"height":0.015961692},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"All","depth":17,"bounds":{"left":0.7925532,"top":0.07861133,"width":0.00831117,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"HTML","depth":17,"bounds":{"left":0.8015292,"top":0.07861133,"width":0.014295213,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"CSS","depth":17,"bounds":{"left":0.81648934,"top":0.07861133,"width":0.011469414,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"JS","depth":17,"bounds":{"left":0.82862365,"top":0.07861133,"width":0.00831117,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"XHR","depth":17,"bounds":{"left":0.83759975,"top":0.07861133,"width":0.011635638,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Fonts","depth":17,"bounds":{"left":0.84990025,"top":0.07861133,"width":0.013630319,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Images","depth":17,"bounds":{"left":0.86419547,"top":0.07861133,"width":0.01662234,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Media","depth":17,"bounds":{"left":0.8814827,"top":0.07861133,"width":0.014461436,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"WS","depth":17,"bounds":{"left":0.89660907,"top":0.07861133,"width":0.009973404,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Other","depth":17,"bounds":{"left":0.90724736,"top":0.07861133,"width":0.013796543,"height":0.01556265},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Disable Cache","depth":17,"bounds":{"left":0.92669547,"top":0.080207504,"width":0.004654255,"height":0.011173184},"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Disable Cache","depth":17,"bounds":{"left":0.93234706,"top":0.08100559,"width":0.024933511,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"No Throttling","depth":16,"bounds":{"left":0.9609375,"top":0.07940942,"width":0.027094414,"height":0.01396648},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Network Settings","depth":16,"bounds":{"left":0.9896942,"top":0.07821229,"width":0.008643617,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Status","depth":24,"bounds":{"left":0.5415558,"top":0.0981644,"width":0.027593086,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Status","depth":26,"bounds":{"left":0.5432181,"top":0.10295291,"width":0.011136968,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Method","depth":24,"bounds":{"left":0.5694814,"top":0.0981644,"width":0.027260639,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Method","depth":26,"bounds":{"left":0.5711436,"top":0.10295291,"width":0.013297873,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Domain","depth":24,"bounds":{"left":0.59707445,"top":0.0981644,"width":0.06981383,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Domain","depth":26,"bounds":{"left":0.5987367,"top":0.10295291,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"File","depth":24,"bounds":{"left":0.6672208,"top":0.0981644,"width":0.1377992,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"File","depth":26,"bounds":{"left":0.66888297,"top":0.10295291,"width":0.006150266,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Initiator","depth":24,"bounds":{"left":0.8053524,"top":0.0981644,"width":0.054853722,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initiator","depth":26,"bounds":{"left":0.80701464,"top":0.10295291,"width":0.013297873,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Type","depth":24,"bounds":{"left":0.86053854,"top":0.0981644,"width":0.027260639,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":26,"bounds":{"left":0.8622008,"top":0.10295291,"width":0.008477394,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Transferred","depth":24,"bounds":{"left":0.8881317,"top":0.0981644,"width":0.006150266,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Transferred","depth":26,"bounds":{"left":0.8897939,"top":0.10295291,"width":0.020279255,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Size","depth":24,"bounds":{"left":0.89461434,"top":0.0981644,"width":0.08277926,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Size","depth":26,"bounds":{"left":0.8962766,"top":0.10295291,"width":0.00731383,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"0 ms","depth":24,"bounds":{"left":0.97772604,"top":0.0981644,"width":0.021941489,"height":0.01915403},"help_text":"Timeline","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0 ms","depth":27,"bounds":{"left":0.9790558,"top":0.105347164,"width":0.0066489363,"height":0.007980846},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"200","depth":24,"bounds":{"left":0.54388297,"top":0.12290503,"width":0.006482713,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"GET","depth":24,"bounds":{"left":0.5711436,"top":0.122505985,"width":0.00731383,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app.dev.jiminny.com","depth":24,"bounds":{"left":0.6037234,"top":0.122505985,"width":0.03507314,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"form-data","depth":25,"bounds":{"left":0.66888297,"top":0.122505985,"width":0.017453458,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"xhr","depth":24,"bounds":{"left":0.80701464,"top":0.122505985,"width":0.005485372,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"json","depth":24,"bounds":{"left":0.8622008,"top":0.122505985,"width":0.00731383,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"7.56 kB","depth":24,"bounds":{"left":0.8897939,"top":0.122505985,"width":0.012799202,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"10.67 kB","depth":24,"bounds":{"left":0.96127,"top":0.122505985,"width":0.014793883,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"589 ms","depth":25,"bounds":{"left":0.9793883,"top":0.12330407,"width":0.011303191,"height":0.008778931},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Status","depth":23,"bounds":{"left":0.5415558,"top":0.0981644,"width":0.027593086,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Status","depth":25,"bounds":{"left":0.5432181,"top":0.10295291,"width":0.011136968,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"200","depth":23,"bounds":{"left":0.54388297,"top":0.12290503,"width":0.006482713,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Method","depth":23,"bounds":{"left":0.5694814,"top":0.0981644,"width":0.027260639,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Method","depth":25,"bounds":{"left":0.5711436,"top":0.10295291,"width":0.013297873,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"GET","depth":23,"bounds":{"left":0.5711436,"top":0.122505985,"width":0.00731383,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Domain","depth":23,"bounds":{"left":0.59707445,"top":0.0981644,"width":0.06981383,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Domain","depth":25,"bounds":{"left":0.5987367,"top":0.10295291,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app.dev.jiminny.com","depth":23,"bounds":{"left":0.6037234,"top":0.122505985,"width":0.03507314,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"File","depth":23,"bounds":{"left":0.6672208,"top":0.0981644,"width":0.1377992,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"File","depth":25,"bounds":{"left":0.66888297,"top":0.10295291,"width":0.006150266,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"form-data","depth":24,"bounds":{"left":0.66888297,"top":0.122505985,"width":0.017453458,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Initiator","depth":23,"bounds":{"left":0.8053524,"top":0.0981644,"width":0.054853722,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initiator","depth":25,"bounds":{"left":0.80701464,"top":0.10295291,"width":0.013297873,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"xhr","depth":23,"bounds":{"left":0.80701464,"top":0.122505985,"width":0.005485372,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Type","depth":23,"bounds":{"left":0.86053854,"top":0.0981644,"width":0.027260639,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":25,"bounds":{"left":0.8622008,"top":0.10295291,"width":0.008477394,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"json","depth":23,"bounds":{"left":0.8622008,"top":0.122505985,"width":0.00731383,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Transferred","depth":23,"bounds":{"left":0.8881317,"top":0.0981644,"width":0.006150266,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Transferred","depth":25,"bounds":{"left":0.8897939,"top":0.10295291,"width":0.020279255,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"7.56 kB","depth":23,"bounds":{"left":0.8897939,"top":0.122505985,"width":0.012799202,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Size","depth":23,"bounds":{"left":0.89461434,"top":0.0981644,"width":0.08277926,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Size","depth":25,"bounds":{"left":0.8962766,"top":0.10295291,"width":0.00731383,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"10.67 kB","depth":23,"bounds":{"left":0.96127,"top":0.122505985,"width":0.014793883,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"0 ms","depth":23,"bounds":{"left":0.97772604,"top":0.0981644,"width":0.021941489,"height":0.01915403},"help_text":"Timeline","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0 ms","depth":26,"bounds":{"left":0.9790558,"top":0.105347164,"width":0.0066489363,"height":0.007980846},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"589 ms","depth":24,"bounds":{"left":0.9793883,"top":0.12330407,"width":0.011303191,"height":0.008778931},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Start performance analysis","depth":20,"bounds":{"left":0.54288566,"top":0.98244214,"width":0.007978723,"height":0.015961692},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1 request","depth":21,"bounds":{"left":0.55452126,"top":0.98523545,"width":0.01662234,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"10.67 kB / 7.56 kB transferred","depth":21,"bounds":{"left":0.578125,"top":0.98523545,"width":0.05319149,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Finish: 589 ms","depth":21,"bounds":{"left":0.63829786,"top":0.98523545,"width":0.025598405,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-9211371961455356686
|
8526831431878369966
|
click
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
JY-20553 | Improve crm-sync delays by yalokin-jiminny · Pull Request #11976 · jiminny/app
JY-20553 | Improve crm-sync delays by yalokin-jiminny · Pull Request #11976 · jiminny/app
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
JY-20692 change confirmation parameter by LakyLak · Pull Request #11986 · jiminny/app
JY-20692 change confirmation parameter by LakyLak · Pull Request #11986 · jiminny/app
[JY-20543] AJ Reports > Tracking - Jira
[JY-20543] AJ Reports > Tracking - Jira
[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira
[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira
Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app
Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app
New Tab
New Tab
Product Growth Platform | Userpilot
Product Growth Platform | Userpilot
Userpilot | Logged-activity
Userpilot | Logged-activity
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Feed — jiminny — Sentry
Feed — jiminny — Sentry
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
Jiminny
Jiminny
Close tab
Jiminny
Jiminny
Jiminny
Jiminny
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Ask Jiminny Reports
Ask Jiminny Reports
Create
Report name
Prompt Prompt
Prompt
Prompt
Saved search Saved search
Saved search
Saved search
All statuses All statuses
All statuses
All statuses
Clear all
NAME
FREQUENCY
SHARED
EXPIRING
ACTIONS
Monthly Ask J Report
Monthly
Jiminny Mobile SA
30/06/2026
Search One
Daily
Jiminny Mobile SA
30/04/2026
Create report
Save
1. General
1. General
NAME
Exp
Clear
*
FREQUENCY
Select Daily
Select
Daily
*
EXPIRES ON
20 Apr, 2027
*
Share with
TEAM
Select Select
Select
Select
TEAM MEMBER
Select Select
Select
Select
2. Report parameters
2. Report parameters
SAVED SEARCH
Select group one
Select
group one
*
ASK JIMINNY PROMPT
Select
Select
*
Clear
Filter URLs
Pause/Resume recording network log
New Request
Search
Request Blocking
All
HTML
CSS
JS
XHR
Fonts
Images
Media
WS
Other
Disable Cache
Disable Cache
No Throttling
Network Settings
Status
Status
Method
Method
Domain
Domain
File
File
Initiator
Initiator
Type
Type
Transferred
Transferred
Size
Size
0 ms
0 ms
200
GET
app.dev.jiminny.com
form-data
xhr
json
7.56 kB
10.67 kB
589 ms
Status
Status
200
Method
Method
GET
Domain
Domain
app.dev.jiminny.com
File
File
form-data
Initiator
Initiator
xhr
Type
Type
json
Transferred
Transferred
7.56 kB
Size
Size
10.67 kB
0 ms
0 ms
589 ms
Start performance analysis
1 request
10.67 kB / 7.56 kB transferred
Finish: 589 ms...
|
54842
|
|
54844
|
1183
|
52
|
2026-04-20T09:21:19.210181+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676879210_m1.jpg...
|
Firefox
|
Jiminny — Work
|
True
|
app.dev.jiminny.com/ai-reports/manage
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
JY-20553 | Improve crm-sync delays by yalokin-jiminny · Pull Request #11976 · jiminny/app
JY-20553 | Improve crm-sync delays by yalokin-jiminny · Pull Request #11976 · jiminny/app
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
JY-20692 change confirmation parameter by LakyLak · Pull Request #11986 · jiminny/app
JY-20692 change confirmation parameter by LakyLak · Pull Request #11986 · jiminny/app
[JY-20543] AJ Reports > Tracking - Jira
[JY-20543] AJ Reports > Tracking - Jira
[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira
[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira
Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app
Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app
New Tab
New Tab
Product Growth Platform | Userpilot
Product Growth Platform | Userpilot
Userpilot | Logged-activity
Userpilot | Logged-activity
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Feed — jiminny — Sentry
Feed — jiminny — Sentry
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
Jiminny
Jiminny
Close tab
Jiminny
Jiminny
Jiminny
Jiminny
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Ask Jiminny Reports
Ask Jiminny Reports
Create
Report name
Prompt Prompt
Prompt
Prompt
Saved search Saved search
Saved search
Saved search
All statuses All statuses
All statuses
All statuses
Clear all
NAME
FREQUENCY
SHARED
EXPIRING
ACTIONS
Monthly Ask J Report
Monthly
Jiminny Mobile SA
30/06/2026
Search One
Daily
Jiminny Mobile SA
30/04/2026
Create report
Save
1. General
1. General
NAME
Exp
Clear
*
FREQUENCY
Select Daily
Select
Daily
*
EXPIRES ON
20 Apr, 2027
*
Share with
TEAM
Select Select
Select
Select
TEAM MEMBER
Select Select
Select
Select
2. Report parameters
2. Report parameters
SAVED SEARCH
Select group one
Select
group one
*
ASK JIMINNY PROMPT
Select
Select
*
Clear
Filter URLs
Pause/Resume recording network log
New Request
Search
Request Blocking
All
HTML
CSS
JS
XHR
Fonts
Images
Media
WS
Other
Disable Cache
Disable Cache
No Throttling
Network Settings
Status
Status
Method
Method
Domain
Domain
File
File
Initiator
Initiator
Type
Type
Transferred
Transferred
Size
Size
0 ms
0 ms
200
GET
app.dev.jiminny.com
form-data
xhr
json
7.56 kB
10.67 kB
589 ms
Status
Status
200
Method
Method
GET
Domain
Domain
app.dev.jiminny.com
File
File
form-data
Initiator
Initiator
xhr
Type
Type
json
Transferred
Transferred
7.56 kB
Size
Size
10.67 kB
0 ms
0 ms
589 ms
Start performance analysis
1 request
10.67 kB / 7.56 kB transferred
Finish: 589 ms...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-20553 | Improve crm-sync delays by yalokin-jiminny · Pull Request #11976 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20553 | Improve crm-sync delays by yalokin-jiminny · Pull Request #11976 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20692 change confirmation parameter by LakyLak · Pull Request #11986 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20692 change confirmation parameter by LakyLak · Pull Request #11986 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20543] AJ Reports > Tracking - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20543] AJ Reports > Tracking - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"New Tab","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"New Tab","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Product Growth Platform | Userpilot","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Product Growth Platform | Userpilot","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Userpilot | Logged-activity","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Userpilot | Logged-activity","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Feed — jiminny — Sentry","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Feed — jiminny — Sentry","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Ask Jiminny Reports","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ask Jiminny Reports","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXTextField","text":"Report name","depth":11,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXComboBox","text":"Prompt Prompt","depth":10,"value":"Prompt Prompt","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Prompt","depth":11,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Prompt","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Saved search Saved search","depth":10,"value":"Saved search Saved search","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Saved search","depth":11,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Saved search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"All statuses All statuses","depth":10,"value":"All statuses All statuses","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"All statuses","depth":11,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"All statuses","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Clear all","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"NAME","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"FREQUENCY","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SHARED","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"EXPIRING","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ACTIONS","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Monthly Ask J Report","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Monthly","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Mobile SA","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"30/06/2026","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Search One","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Daily","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jiminny Mobile SA","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"30/04/2026","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Create report","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Save","depth":12,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"1. General","depth":11,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1. General","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"NAME","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Exp","depth":12,"value":"Exp","help_text":"","placeholder":"Enter name","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Clear","depth":12,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"*","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"FREQUENCY","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select Daily","depth":11,"value":"Select Daily","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":12,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Daily","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"*","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"EXPIRES ON","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"20 Apr, 2027","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"*","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Share with","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"TEAM","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select Select","depth":11,"value":"Select Select","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":12,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Select","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"TEAM MEMBER","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select Select","depth":11,"value":"Select Select","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":12,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Select","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"2. Report parameters","depth":11,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2. Report parameters","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SAVED SEARCH","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select group one","depth":11,"value":"Select group one","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Select","depth":12,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"group one","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"*","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ASK JIMINNY PROMPT","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Select","depth":11,"value":"Select","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXTextField","text":"Select","depth":12,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":true,"is_selected":false},{"role":"AXStaticText","text":"*","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Clear","depth":16,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXTextField","text":"Filter URLs","depth":16,"help_text":"","role_description":"search text field","subrole":"AXSearchField","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Pause/Resume recording network log","depth":16,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"New Request","depth":16,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Search","depth":16,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Request Blocking","depth":16,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"All","depth":17,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"HTML","depth":17,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"CSS","depth":17,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"JS","depth":17,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"XHR","depth":17,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Fonts","depth":17,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Images","depth":17,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Media","depth":17,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"WS","depth":17,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Other","depth":17,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Disable Cache","depth":17,"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Disable Cache","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"No Throttling","depth":16,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Network Settings","depth":16,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Status","depth":24,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Status","depth":26,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Method","depth":24,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Method","depth":26,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Domain","depth":24,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Domain","depth":26,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"File","depth":24,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"File","depth":26,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Initiator","depth":24,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initiator","depth":26,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Type","depth":24,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":26,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Transferred","depth":24,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Transferred","depth":26,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Size","depth":24,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Size","depth":26,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"0 ms","depth":24,"help_text":"Timeline","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0 ms","depth":27,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"200","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"GET","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app.dev.jiminny.com","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"form-data","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"xhr","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"json","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"7.56 kB","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"10.67 kB","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"589 ms","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Status","depth":23,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Status","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"200","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Method","depth":23,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Method","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"GET","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Domain","depth":23,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Domain","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app.dev.jiminny.com","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"File","depth":23,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"File","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"form-data","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Initiator","depth":23,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initiator","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"xhr","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Type","depth":23,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"json","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Transferred","depth":23,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Transferred","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"7.56 kB","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Size","depth":23,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Size","depth":25,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"10.67 kB","depth":23,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"0 ms","depth":23,"help_text":"Timeline","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0 ms","depth":26,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"589 ms","depth":24,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Start performance analysis","depth":20,"bounds":{"left":0.5694444,"top":0.0,"width":0.016666668,"height":0.022222223},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1 request","depth":21,"bounds":{"left":0.59375,"top":0.0,"width":0.034722224,"height":0.015},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"10.67 kB / 7.56 kB transferred","depth":21,"bounds":{"left":0.64305556,"top":0.0,"width":0.11111111,"height":0.015},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Finish: 589 ms","depth":21,"bounds":{"left":0.76875,"top":0.0,"width":0.05347222,"height":0.015},"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-9211371961455356686
|
8526831431878369966
|
click
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
JY-20553 | Improve crm-sync delays by yalokin-jiminny · Pull Request #11976 · jiminny/app
JY-20553 | Improve crm-sync delays by yalokin-jiminny · Pull Request #11976 · jiminny/app
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
JY-20698 handle failed field sync on playbook import activity types by LakyLak · Pull Request #11988 · jiminny/app
JY-20692 change confirmation parameter by LakyLak · Pull Request #11986 · jiminny/app
JY-20692 change confirmation parameter by LakyLak · Pull Request #11986 · jiminny/app
[JY-20543] AJ Reports > Tracking - Jira
[JY-20543] AJ Reports > Tracking - Jira
[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira
[JY-18909] [Part2] Automated reports with Ask Jiminny - Jira
Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app
Ask Jiminny Reports by nikolay-yankov · Pull Request #11894 · jiminny/app
New Tab
New Tab
Product Growth Platform | Userpilot
Product Growth Platform | Userpilot
Userpilot | Logged-activity
Userpilot | Logged-activity
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Feed — jiminny — Sentry
Feed — jiminny — Sentry
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
fix(security): composer dependency updates – 2026-04-15 by github-actions[bot] · Pull Request #11970 · jiminny/app
Jiminny
Jiminny
Close tab
Jiminny
Jiminny
Jiminny
Jiminny
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Ask Jiminny Reports
Ask Jiminny Reports
Create
Report name
Prompt Prompt
Prompt
Prompt
Saved search Saved search
Saved search
Saved search
All statuses All statuses
All statuses
All statuses
Clear all
NAME
FREQUENCY
SHARED
EXPIRING
ACTIONS
Monthly Ask J Report
Monthly
Jiminny Mobile SA
30/06/2026
Search One
Daily
Jiminny Mobile SA
30/04/2026
Create report
Save
1. General
1. General
NAME
Exp
Clear
*
FREQUENCY
Select Daily
Select
Daily
*
EXPIRES ON
20 Apr, 2027
*
Share with
TEAM
Select Select
Select
Select
TEAM MEMBER
Select Select
Select
Select
2. Report parameters
2. Report parameters
SAVED SEARCH
Select group one
Select
group one
*
ASK JIMINNY PROMPT
Select
Select
*
Clear
Filter URLs
Pause/Resume recording network log
New Request
Search
Request Blocking
All
HTML
CSS
JS
XHR
Fonts
Images
Media
WS
Other
Disable Cache
Disable Cache
No Throttling
Network Settings
Status
Status
Method
Method
Domain
Domain
File
File
Initiator
Initiator
Type
Type
Transferred
Transferred
Size
Size
0 ms
0 ms
200
GET
app.dev.jiminny.com
form-data
xhr
json
7.56 kB
10.67 kB
589 ms
Status
Status
200
Method
Method
GET
Domain
Domain
app.dev.jiminny.com
File
File
form-data
Initiator
Initiator
xhr
Type
Type
json
Transferred
Transferred
7.56 kB
Size
Size
10.67 kB
0 ms
0 ms
589 ms
Start performance analysis
1 request
10.67 kB / 7.56 kB transferred
Finish: 589 ms...
|
54841
|